CN106920271A - 基于gs的粒子系统在风场驱动下构建流线动画的方法 - Google Patents
基于gs的粒子系统在风场驱动下构建流线动画的方法 Download PDFInfo
- Publication number
- CN106920271A CN106920271A CN201710036116.4A CN201710036116A CN106920271A CN 106920271 A CN106920271 A CN 106920271A CN 201710036116 A CN201710036116 A CN 201710036116A CN 106920271 A CN106920271 A CN 106920271A
- Authority
- CN
- China
- Prior art keywords
- control point
- drift angle
- point
- wind field
- control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 239000002245 particle Substances 0.000 claims abstract description 52
- 238000009877 rendering Methods 0.000 claims abstract description 11
- 230000033001 locomotion Effects 0.000 claims abstract description 6
- 238000005070 sampling Methods 0.000 claims description 10
- 238000004040 coloring Methods 0.000 claims description 9
- 230000000694 effects Effects 0.000 claims description 8
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 claims description 3
- 239000003086 colorant Substances 0.000 claims description 3
- 239000011159 matrix material Substances 0.000 claims description 3
- 238000000205 computational method Methods 0.000 claims 1
- 238000005516 engineering process Methods 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 241001481296 Malus spectabilis Species 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008033 biological extinction Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000024159 perception of rate of movement Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/60—3D [Three Dimensional] animation of natural phenomena, e.g. rain, snow, water or plants
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
一种基于GS的粒子系统在风场驱动下构建流线动画的方法,由大量的粒子带构成风场流线动画,每一个粒子带是以m个控制顶点为基础,由相应的三角面构成;一个粒子带即为风场流线动画中的一条运动的流线;先建立控制点处理模块,用于对构成每条风场流线的粒子带的控制点进行起始位置、生命周期、强度要素的控制;再建立几何着色器GS模块,用于在显卡可编程管道的几何着色器GS处理阶段,在所述控制点的基础上动态地在显卡内部生成更多的顶点,从而构成渲染每个粒子带所需的三角面。本方法摒弃了以往固定管道的渲染管线,使用了基于Direct3D 11的显卡可编程管道,绝大多数的计算都在显卡的流处理器阵列中完成,从根本上解脱了CPU的计算负担。
Description
[技术领域]
本发明涉及一种Direct3D 11的数据处理与着色器的构建方法,具体是一种基于GS(几何着色器)的粒子系统在模式风场驱动下构建风场流线动画的方法。
[背景技术]
随着数值预报和计算机技术的发展,气象预报人员常使用高分辨率数值天气预报模式开展气象预报,这些数值天气预报模式输出的风场数据可以反映出模式预报的网格内风场的强度和方向信息。
风矢量杆是风场数据传统的绘制方式,风矢量杆有方向和强度的信息,用此来表示网格中某一个点上风的方向和大小。但这个显示方案有以下弊端:
1、由于风矢量杆的绘制占了屏幕上的一部分空间,所以在实际绘制风场的风矢量杆的时候,我们往往是隔开几个网格点绘制的,否则所有的风矢量杆会相互重叠。比如有500×500个网格点的风矢量需要在屏幕上绘制,我们在水平方向和竖直方向每隔开4个点绘制,这样有便只有100×100个风矢量杆最终被绘制在屏幕上,大部分网格点上的风场信息依然没有被绘制出来。这种抽样绘制风场网格数据的方式不能全面地呈现风场的全部信息。
2、虽然我们可以通过放大模式网格的局部来绘制网格中某一个部分的全部风矢量杆,但是这样的绘制方式切割了局部与整体的联系,在这种处理方案中会带来只见树木,不见森林的弊端。
3、传统的风矢量杆的绘制方式是一种静态图像的绘制,表达不出风场的运动感。
4、在气象上,除了中尺度的台风系统或范围较大的副高、低压等天气系统能从风矢量杆抽样绘制的绘图中看出来,其他的小范围的气流扰动很难被人们直观地察觉出来或者由于抽样绘制的缘故根本没在屏幕上显示出来。
[发明内容]
本发明客服了上述技术的不足,提出了一个基于GS的粒子系统在模式风场驱动下风场流线动画的显示技术(基于GS的粒子系统在模式风场驱动下构建风场流线动画的方法)。本发明用大量的、流动的线条(粒子带)来展现一个风场的运动趋势,线条流动的方向和速度,反映了风场某处的风速和风向。为实现上述目的,本发明采用了下列技术方案:
一种基于GS的粒子系统在模式风场驱动下构建风场流线动画的方法,其设计思想是,1)风场流线动画由大量的粒子带构成,例如,每一个粒子带是以10个控制顶点为基础,由20个三角面组成。在本方法中,一个粒子带即为风场流线动画中的一条运动的流线。2)设计了一个原始的控制点生成、发展和消亡的处理模块,作用是对每条风场流线(粒子带)的控制点进行起始位置、生命周期、强度等要素的控制。3)设计了一个GS(几何着色器)模块,其主要作用是在显卡可编程管道的GS阶段,在上面提到的控制点的基础上动态地在显卡内部生成更多的顶点,从而构成渲染每个粒子带所需的三角面。
具体来说:
一种基于GS的粒子系统在模式风场驱动下构建风场流线动画的方法,由大量的粒子带构成风场流线动画,每一个粒子带是以m个控制顶点为基础,由相应的三角面构成;一个粒子带即为风场流线动画中的一条运动的流线;先建立控制点处理模块,用于对构成每条风场流线的粒子带的控制点进行起始位置、生命周期、强度要素的控制;再建立几何着色器GS模块,用于在显卡可编程管道的几何着色器GS处理阶段,在所述控制点的基础上动态地在显卡内部生成更多的顶点,从而构成渲染每个粒子带所需的三角面;
具体步骤包括:
1)对风速划分了n个等级(在本发明中,可以是n=8),从色谱中选取了n种颜色作为风速大小的示意;
创建了一个一维纹理,该纹理为1×n个像素点,这n个像素点对应所述的n种颜色;该一维纹理用于在后续步骤的几何着色器GS中用作风速的取样信息;
2)控制点生成模块:
将屏幕区域划分成多块相同面积的控制子区域,每个控制子区域的范围内有N个粒子带(在本发明中,可以是N=200);
设每个粒子带的生存时间为T(在本发明中,可以是T=6)秒,随后消亡,并随后在该控制子区域的其它位置随机重新生成,那么在每一秒内,控制点生成模块在每一个控制子区域内随机生成N/T个控制点;
3)粒子带的构成:
每个粒子带是由C个(本发明中,可以是C=10)控制点对应的2×(C-1)个三角面组成,每两个三角面组成一个四边形,四边形的四个顶点以相应的控制点为参考;
在顶点进入显卡可编程流水线处理之前,先通过CPU的计算、指定控制点的经纬度坐标位置;然后在显卡的几何着色器GS处理阶段,在每个控制点的四周动态地生成4个顶点,这4个顶点构成所述两个三角面;
4)控制点顶点的数据结构的设计:
经纬度数据,
生存时间,
强度,
颜色和透明值,
当前控制点和下一个控制点的偏角;
5)控制点的位置计算:
一个粒子带用到了C个控制点,用含有步骤4)列出的元素构建顶点数据数组来存储这些控制点的信息;
控制点位置计算的频率是每隔一帧计算一次;
虽然每条粒子带由C个控制点构成,但是每次计算的时候,只计算最新时刻的一个控制点;如果到了第m+1帧,m个顶点都已经计算过了,那么从第2个顶点至第m个顶点依次往前挪动一位,这样原来的第1个顶点数据数组的元素被第2个改写,第2个被第3个改写,直至第m-1个被第m个改写;第m个顶点数据数组的元素空出来后计算当前时刻第m个控制点;
新控制点的位置为上个控制点的位置加上其在当前帧受到风场影响下的偏移位置,方法为:
首先计算上个控制点的风速和风向,方法为取风场网格中和上个控制点相邻的4个顶点(即该控制点在这4个顶点构成的正方形内),使用该控制点到4个顶点距离的倒数为权重进行线性插值,从而计算出该控制点的合成风速和风向。在这种线性插值的方案中,可以看到如果控制点在4个顶点的几何中心的位置,那么控制点的风速和风向角度取4个顶点的平均值,如果控制点和4个顶点中的某个点重合,那么控制点的风速和风向就取和其重合的顶点的数值。
有了上个控制点的位置和其风速风向,我们就可以计算出新控制点的位置了。
6)当前控制点与上一个控制点的偏角值计算:
该偏角值的作用是在GS阶段中,根据控制点构建四边形时,确定四边形四条边的角度;
偏角值的计算是每隔一帧计算一次;
如果到了第m帧,处理第1至第m-1个的偏角值的改写操作,方法为:
从第2个偏角值至第m个偏角值依次往前挪动一位,这样原来的第1个偏角值被第2个改写,第2个被第3个改写,直至第m-1个被第m个改写;第m个偏角值空出来后计算当前时刻第m个偏角值;
此处,第1帧计算第1个控制点时,由于没有上一个控制点,所以该控制点的偏角值设置为0;
7)控制点强度的计算:
强度值反映风速的大小,设风场最小风速为0,最大风速为Vmax,把该控制点的强度值重新映射到区间[0,1]内;强度值在后续的GS阶段用作取样步骤1)的1×n纹理的颜色信息,在0到1之间,线性取值1×n纹理中的特定颜色值;
强度的值的计算是,到了第m帧,处理第1至第m-1个的强度值的改写操作,方法为:从第2个强度值至第m个强度值依次往前挪动一位,这样原来的第1个强度值被第2个改写,第2个被第3个改写,直至第m-1个被第m个改写;第m个强度值空出来后计算当前时刻第m个强度值;
8)控制点生存时间的计算:
生存时间表明了一个粒子带在屏幕上可见的时间范围;
粒子带新生成时,生存时间赋值为0,以后每帧渲染前,该数值加1;
如果到了设定的结束时间,则重新清空该控制点数组,然后对控制点数组的第一个控制点在当前控制子区域内重新随机赋予新的初始位置;则一个粒子带在到了预定的时间消亡后又随机在当前控制子区域的另外一处位置重新开始显示了;
9)顶点着色器VS阶段:用于将显卡的输入装配单元IA传过来的数据提交给随后的GS;在VS中,数据不做任何处理,该VS只起到了传递数据的作用;
10)几何着色器GS阶段:
先将VS传递过来的控制点坐标进行世界矩阵-观察矩阵-投影矩阵的变换,变换之后,控制点的坐标即为屏幕空间的坐标;
接下来,动态生成围绕该控制点的四个顶点来构建四边形,该四边形是由2个三角形拼成:
设定四边形的上下两边为垂直于该控制点的偏角方向,将控制点垂直偏角方向左移一个像素得到点PA,将控制点垂直偏角方向右移一个像素得到点控制点右移一个像素得到PB,这样粒子带的宽度变为2个像素宽;
四边形的左右两边和该控制点的偏角方向平行,即
由点PA沿着平行偏角方向移动当前控制点和上个控制点的位置差得到点PC;
由点PB沿着平行偏角方向移动当前控制点和上个控制点的位置差得到点PD;
四边形的四个顶点在屏幕上的位置计算出来之后,给这四个点的颜色赋值,在步骤7)中,控制点的强度已经归一化到[0,1]之间,把该强度值作为纹理坐标UV参数的U值,V值取0.5,在步骤1)生成的1×n纹理上取样,取样得到的颜色值赋给顶点;
11)像素着色器PS阶段:
GS阶段生成的顶点数据经过显卡渲染的光栅化操作后传入PS,像素着色器将接收到的像素渲染到渲染表面,最后在屏幕上显示出每帧的图像。
本发明的有益效果如下:
1、摒弃了以往固定管道的渲染管线,使用了基于Direct3D 11的显卡可编程管道,绝大多数的计算都在显卡的流处理器阵列中完成,从根本上解脱了CPU的计算负担。
2、对于每条渲染的粒子带,使用CPU来计算控制点的位置和强度等信息,保证了对顶点的灵活控制能力;在显卡的GS阶段,根据CPU计算出控制点的位置,动态生成三角面,然后取样强度信息对顶点的颜色和透明度进行控制。在该过程中,充分地利用了显卡并行处理单元强大的计算能力,极大地减轻了CPU的计算负担,并十分可观地提高了渲染的帧率。
3、使用本发明的渲染方案,可以清晰再现模式预报范围内各个天气系统发生发展的过程,以及不同天气系统彼此之间相互影响和作用的过程;可以清晰、详细地描绘出台风、副高、锋面、西风急流等天气系统,对于小扰动系统也有很直观的表现力。
[附图说明]
图1为本发明各个着色器的工作流程图。
图2为使用本技术方案渲染的风场流线动画中的某一时刻的截图,从图中我们可以明显地看到2005年第0505号海棠台风的运动态势以及和周边天气系统以及和地形的相互联系和作用。
[具体实施方式]
下面结合附图与本发明的实施方式作进一步详细地描述:
1、本发明对于风速划分了8个等级,从蓝色到红色的色谱中等间隔地选取了8种颜色作为风速大小的示意,蓝色为最小,红色为最大。创建了一个一维纹理,该纹理为1×8个像素点,这8个像素点对应上述的8种颜色,在后续步骤的几何着色器GS中用作风速的取样信息。
2、控制点生成模块:将屏幕区域划分成16×9块相同面积的控制子区域,每个控制子区域的范围内包含N个粒子带,在本例中,N取值是200。
设定每个粒子带的生存时间为T秒,随后消亡并在下一秒中在该控制子区域的其它位置随机重新生成,那么在每一秒内,控制点生成模块在每一个子区域范围内随机生成N/T个控制点,这样便保证了在空间和时间的尺度上,粒子带生成的平均性。在本例中,T值取值为6秒。
3、粒子带的构成:风场流线的每条粒子带,是由10个控制点对应的20个三角面组成,每两个三角面组成一个四边形,四边形的四个顶点以控制点为参考,方法在后面详细说明。
在顶点进入显卡可编程流水线处理之前,通过CPU的计算指定控制点的经纬度坐标位置。然后在显卡的几何着色器GS处理阶段,在每个控制点的四周动态地生成4个顶点,上述的两个三角面便由这4个顶点构成。
4、控制点顶点的数据结构的设计:
经纬度数据(float2),
生存时间(float),
强度(float),
颜色和透明值(DWORD),
当前控制点和下一个控制点的偏角(float)
以上float、DWORD均为4个字节,float2表示两个float类型的数据。
5、控制点的位置计算:一个粒子带用到了10个控制点,本例用含有10个元素的顶点数据数组来存储这些控制点的信息。
控制点位置计算的频率是每隔一帧计算一次,假设动画每秒定帧40,即一秒内对于某个控制点只计算了20次。虽然每条粒子带在本方案中由10个控制点构成,但是每次计算的时候,只计算最新时刻的一个控制点,如果到了第11帧,10个顶点都已近计算过了,那么从第2个顶点至第10个顶点依次往前挪动一位,这样原来的第1个顶点数据数组的元素被第2个改写,第2个被第3个改写,直至第9个被第10个改写。第10个顶点数据数组的元素空出来后计算当前时刻第10个控制点。
新控制点的位置为上个控制点的位置加上其在当前帧受到风场影响下的偏移位置:由上个控制点的位置可以确定其在模式风场网格中的位置;然后取风场网格中和该控制点相邻的4个顶点(即步骤3中,构成两个三角面的4个顶点)的风速和角度做线性插值,得到一个合成的风速和风向,计算出的偏移方向和风向一致,偏移的距离和风速成线性关系。
线性参数的大小根据实际地图的底图分辨率设定一个合适的值,在本发明中,全球等经纬度地图第4级(宽4096,高2048)的分辨率下,线性参数大小为20像素点。
6、控制点数组中当前控制点与上一个控制点的偏角计算:该偏角的作用是在GS阶段中根据控制点构建四边形时,确定四边形四边的角度。和控制点位置的计算类似,也是隔帧计算最新一个控制点与上个控制点的偏角,如果到了第11帧,处理第1至第9个控制点偏角值的改写操作也和步骤5相同。需要指出的是第一帧计算第一个控制点时由于没有上一个控制点,所以该控制点的偏角设置为0。
7、控制点强度的计算:该强度反映了风速的大小,设风场最小风速为0,最大风速为Vmax,把该控制点的强度重新映射到区间[0,1]内,该值在后面的GS阶段用作取样步骤1的1×8纹理的颜色信息,强度为0时取值是蓝色,1时取值为红色,在0到1之间,线性取值1*8纹理中的某个颜色值。强度的计算也是计算最新的一个控制点,处理第1至第9个控制点强度的改写操作也和步骤5相同。
8、控制点生存时间的计算:生存时间表明了一个粒子带在屏幕上可见的时间范围。粒子带新生成时,生存时间赋值为0,以后每帧渲染前,该数值加1。如果到了设定的结束时间,则重新清空该控制点数组,然后对数组第一个控制点在当前控制子区域内重新随机赋予新的初始位置,这样一个粒子带在到了预定的时间消亡后又随机在当前控制子区域的另外一处位置重新开始显示了。
以上的计算,都是在每帧渲染前由CPU计算的,可以看出,使用控制点来抽象一个四边形,而且更多的操作是数组的赋值,这样极大地减轻了CPU的计算负担。步骤5至步骤8,可以看作是每帧渲染前的预处理。接下来,将预处理过的控制点数组传入显卡的IA(输入装配)单元,开始随后的可编程渲染处理。
9、VS(顶点着色器)阶段:功能是将由显卡IA(输入装配)单元传过来的数据提交给随后的GS,在VS中,数据不做任何处理,该VS只起到了传递数据的作用。
10、GS(几何着色器)阶段:将VS传递过来的控制点坐标进行世界矩阵-观察矩阵-投影矩阵的变换,变换之后,控制点的坐标即为屏幕空间的坐标。接下来便是动态生成围绕该控制点的四个顶点来构建四边形(实际上是由2个三角形拼成),设定四边形的上下两边为垂直该控制点的偏角方向,左右各偏移一个像素得到点PA,和PB,这样粒子带的宽度变为2个像素宽。四边形的左右两边和该控制点的偏角方向平行,即由点PA沿着平行偏角方向移动当前控制点和上个控制点的位置差得到点PC,由点PB沿着平行偏角方向移动当前控制点和上个控制点的位置差得到点PD。四边形的四个顶点在屏幕上的位置计算出来之后,给这四个点的颜色赋值,在步骤7中,控制点的强度已经归一化到[0,1]之间,我们把该值作为纹理坐标UV参数的U值,V值取0.5,在步骤一生成的1*8纹理上取样,取样得到的颜色值赋给顶点。
11、PS(像素着色器)阶段:GS阶段生成的顶点数据经过系统的光栅化操作后传入PS,本着色器将接收到的像素渲染到渲染表面,最后在屏幕上显示出每帧的图像。
Claims (5)
1.一种基于GS的粒子系统在风场驱动下构建流线动画的方法,其特征是由大量的粒子带构成风场流线动画,每一个粒子带是以m个控制顶点为基础,由相应的三角面构成;一个粒子带即为风场流线动画中的一条运动的流线;
先建立控制点处理模块,用于对构成每条风场流线的粒子带的控制点进行起始位置、生命周期、强度要素的控制;再建立几何着色器GS模块,用于在显卡可编程管道的几何着色器GS处理阶段,在所述控制点的基础上动态地在显卡内部生成更多的顶点,从而构成渲染每个粒子带所需的三角面;
具体步骤包括:
1)对风速划分了n个等级,从色谱中选取了n种颜色作为风速大小的示意;
创建了一个一维纹理,该纹理为1×n个像素点,这n个像素点对应所述的n种颜色;该一维纹理用于在后续步骤的几何着色器GS中用作风速的取样信息;
2)控制点生成模块:
将屏幕区域划分成多块相同面积的控制子区域,每个控制子区域的范围内有N个粒子带;
设每个粒子带的生存时间为T秒,随后消亡,并随后在该控制子区域的其它位置随机重新生成,那么在每一秒内,控制点生成模块在每一个控制子区域内随机生成N/T个控制点;
3)粒子带的构成:
每个粒子带是由C个控制点对应的2×(C-1)个三角面组成,每两个三角面组成一个四边形,四边形的四个顶点以相应的控制点为参考;
在顶点进入显卡可编程流水线处理之前,先通过CPU的计算、指定控制点的经纬度坐标位置;然后在显卡的几何着色器GS处理阶段,在每个控制点的四周动态地生成4个顶点,这4个顶点构成所述两个三角面;
4)控制点顶点的元素的数据结构的设计:
经纬度数据,
生存时间,
强度,
颜色和透明值,
当前控制点和下一个控制点的偏角;
5)控制点的位置计算:
一个粒子带用到了C个控制点,用含有步骤4)列出的元素构建顶点数据数组来存储这些控制点的信息;
控制点位置计算的频率是每隔一帧计算一次:虽然每条粒子带由C个控制点构成,但是每次计算的时候,只计算最新时刻的一个控制点;
新控制点的位置为上个控制点的位置加上其在当前帧受到风场影响下的偏移位置;
6)当前控制点与上一个控制点的偏角值计算:
该偏角值的作用是在GS阶段中,根据控制点构建四边形时,确定四边形四条边的角度;偏角值的计算是每隔一帧计算一次;
7)控制点强度的计算:
强度值反映风速的大小,设风场最小风速为0,最大风速为Vmax,把该控制点的强度值重新映射到区间[0,1]内;
8)控制点生存时间的计算:
生存时间表明了一个粒子带在屏幕上可见的时间范围;
粒子带新生成时,生存时间赋值为0,以后每帧渲染前,该数值加1;
如果到了设定的结束时间,则重新清空该控制点数组,然后对控制点数组的第一个控制点在当前控制子区域内重新随机赋予新的初始位置;则一个粒子带在到了预定的时间消亡后又随机在当前控制子区域的另外一处位置重新开始显示了;
9)顶点着色器VS阶段:用于将显卡的输入装配单元IA传过来的数据提交给随后的GS;在顶点着色器VS中,数据不做任何处理,该顶点着色器VS只起到了传递数据的作用;
10)几何着色器GS阶段:
先将顶点着色器VS传递过来的控制点坐标进行世界矩阵-观察矩阵-投影矩阵的变换,变换之后,控制点的坐标即为屏幕空间的坐标;
接下来,动态生成围绕该控制点的四个顶点来构建四边形,该四边形是由2个三角形拼成:
设定四边形的上下两边为垂直于该控制点的偏角方向,将控制点垂直偏角方向左移一个像素得到点PA,将控制点垂直偏角方向右移一个像素得到点控制点右移一个像素得到PB,这样粒子带的宽度变为2个像素宽;
四边形的左右两边和该控制点的偏角方向平行,即
由点PA沿着平行偏角方向移动当前控制点和上个控制点的位置差得到点PC;
由点PB沿着平行偏角方向移动当前控制点和上个控制点的位置差得到点PD;
四边形的四个顶点在屏幕上的位置计算出来之后,给这四个点的颜色赋值,在步骤7)中,控制点的强度已经归一化到[0,1]之间,把该强度值作为纹理坐标UV参数的U值,V值取0.5,在步骤1)生成的1×n纹理上取样,取样得到的颜色值赋给顶点;
11)像素着色器PS阶段:
几何着色器GS阶段生成的顶点数据经过显卡渲染的光栅化操作后传入像素着色器PS,像素着色器PS将接收到的像素渲染到渲染表面,最后在屏幕上显示出每帧的图像。
2.根据权利要求1所述的基于GS的粒子系统在风场驱动下构建流线动画的方法,其特征是所述步骤1)中,n=8;步骤2)中,N=200,T=6;步骤3)中,C=10。
3.根据权利要求1所述的基于GS的粒子系统在风场驱动下构建流线动画的方法,其特征是所述步骤5)中,
控制点位置计算的频率是每隔一帧计算一次;如果到了第m+1帧,m个顶点都已经计算过了,那么从第2个顶点至第m个顶点依次往前挪动一位,这样原来的第1个顶点数据数组的元素被第2个改写,第2个被第3个改写,直至第m-1个被第m个改写;第m个顶点数据数组元素空出来后计算当前时刻第m个控制点;
新控制点的位置的计算方法为:
首先计算上个控制点的风速和风向,方法为取风场网格中和上个控制点相邻的4个顶点,即该控制点在这4个顶点构成的正方形内,使用该控制点到4个顶点距离的倒数为权重进行线性插值,从而计算出该控制点的合成风速和风向;
在这种线性插值的方法中,如果控制点在4个顶点的几何中心的位置,那么控制点的风速和风向角度取4个顶点的平均值,如果控制点和4个顶点中的某个点重合,那么控制点的风速和风向就取和其重合的顶点的数值。
4.根据权利要求1所述的基于GS的粒子系统在风场驱动下构建流线动画的方法,其特征是所述步骤6中),偏角值的计算是每隔一帧计算一次,如果到了第m帧,处理第1至第m-1个的偏角值的改写操作,方法为:从第2个偏角值至第m个偏角值依次往前挪动一位,这样原来的第1个偏角值被第2个改写,第2个被第3个改写,直至第m-1个被第m个改写;第m个偏角值空出来后计算当前时刻第m个偏角值;
如果第1帧计算第1个控制点时,由于没有上一个控制点,所以该控制点的偏角值设置为0。
5.根据权利要求1所述的基于GS的粒子系统在风场驱动下构建流线动画的方法,其特征是所述步骤7)中,控制点强度的计算是,到了第m帧,处理第1至第m-1个的强度值的改写操作,方法为:从第2个强度值至第m个强度值依次往前挪动一位,这样原来的第1个强度值被第2个改写,第2个被第3个改写,直至第m-1个被第m个改写;第m个强度值空出来后计算当前时刻第m个强度值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710036116.4A CN106920271B (zh) | 2017-01-18 | 2017-01-18 | 基于gs的粒子系统在风场驱动下构建流线动画的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710036116.4A CN106920271B (zh) | 2017-01-18 | 2017-01-18 | 基于gs的粒子系统在风场驱动下构建流线动画的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106920271A true CN106920271A (zh) | 2017-07-04 |
CN106920271B CN106920271B (zh) | 2020-06-02 |
Family
ID=59454391
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710036116.4A Expired - Fee Related CN106920271B (zh) | 2017-01-18 | 2017-01-18 | 基于gs的粒子系统在风场驱动下构建流线动画的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106920271B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625170A (zh) * | 2020-06-15 | 2020-09-04 | 北京达佳互联信息技术有限公司 | 一种动画显示方法、电子设备和存储介质 |
CN112200896A (zh) * | 2020-11-27 | 2021-01-08 | 成都完美时空网络技术有限公司 | 虚拟对象风动画的渲染方法及装置、存储介质、电子装置 |
CN113192167A (zh) * | 2021-03-30 | 2021-07-30 | 深圳震有科技股份有限公司 | 一种动态圆形态势的生成方法及终端 |
CN113658296A (zh) * | 2021-10-20 | 2021-11-16 | 腾讯科技(深圳)有限公司 | 一种图像渲染方法及相关装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761380A (zh) * | 2014-01-16 | 2014-04-30 | 苏州工业园区设计研究院股份有限公司 | 一种模拟大型复杂屋面水流形态的方法 |
CN105701851A (zh) * | 2014-11-28 | 2016-06-22 | 星际空间(天津)科技发展有限公司 | 一种基于地理信息的三维渲染引擎系统 |
CN106056661A (zh) * | 2016-05-31 | 2016-10-26 | 钱进 | 基于Direct3D 11的三维图形渲染引擎 |
CN106228594A (zh) * | 2016-07-18 | 2016-12-14 | 中国人民解放军理工大学 | 基于曲面细分的台风模式云动画显示方法 |
-
2017
- 2017-01-18 CN CN201710036116.4A patent/CN106920271B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761380A (zh) * | 2014-01-16 | 2014-04-30 | 苏州工业园区设计研究院股份有限公司 | 一种模拟大型复杂屋面水流形态的方法 |
CN105701851A (zh) * | 2014-11-28 | 2016-06-22 | 星际空间(天津)科技发展有限公司 | 一种基于地理信息的三维渲染引擎系统 |
CN106056661A (zh) * | 2016-05-31 | 2016-10-26 | 钱进 | 基于Direct3D 11的三维图形渲染引擎 |
CN106228594A (zh) * | 2016-07-18 | 2016-12-14 | 中国人民解放军理工大学 | 基于曲面细分的台风模式云动画显示方法 |
Non-Patent Citations (3)
Title |
---|
JENS KRUGER等: "A Particle System for Interactive Visualization of 3D Flows", 《IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS》 * |
SUSUMU GOTO等: "Particle pair diffusion and persistent streamline topology in two-dimensional turbulence", 《NEW JOURNAL OF PHYSICS》 * |
王丹等: "基于3D GameStudio的粒子系统设计与应用", 《电脑开发与应用》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625170A (zh) * | 2020-06-15 | 2020-09-04 | 北京达佳互联信息技术有限公司 | 一种动画显示方法、电子设备和存储介质 |
CN112200896A (zh) * | 2020-11-27 | 2021-01-08 | 成都完美时空网络技术有限公司 | 虚拟对象风动画的渲染方法及装置、存储介质、电子装置 |
CN112200896B (zh) * | 2020-11-27 | 2021-03-02 | 成都完美时空网络技术有限公司 | 虚拟对象风动画的渲染方法及装置、存储介质、电子装置 |
CN113192167A (zh) * | 2021-03-30 | 2021-07-30 | 深圳震有科技股份有限公司 | 一种动态圆形态势的生成方法及终端 |
CN113658296A (zh) * | 2021-10-20 | 2021-11-16 | 腾讯科技(深圳)有限公司 | 一种图像渲染方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106920271B (zh) | 2020-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106920271A (zh) | 基于gs的粒子系统在风场驱动下构建流线动画的方法 | |
CN105247575B (zh) | 用于在三维场景上叠加二维地图数据的系统和方法 | |
CN103606192B (zh) | 一种基于三维虚拟地球的风场可视化展示方法 | |
CN101976429B (zh) | 基于游弋图像的水面鸟瞰图成像方法 | |
CN102323996B (zh) | 基于三维gis技术的输电线路可视化状态监测系统 | |
CN106228594B (zh) | 基于曲面细分的台风模式云动画显示方法 | |
CN110147415A (zh) | 一种地理信息系统gis的气象数据分布图展示方法及系统 | |
CN109829022A (zh) | 一种融合监控视频信息的互联网地图服务系统及构建方法 | |
CN110097224A (zh) | 一种可视化风暴潮-海浪耦合预报方法 | |
CN103714167A (zh) | 一种灾害信息时空数据在线三维显示方法 | |
CN113436308A (zh) | 一种三维环境空气质量动态渲染方法 | |
US20140267236A1 (en) | System and Method for Approximating Cartographic Projections by Linear Transformation | |
CN106648046A (zh) | 一种基于虚拟现实技术的真实环境映射系统 | |
CN108717729A (zh) | 一种面向虚拟地球的地形多尺度tin在线可视化方法 | |
CN109426825A (zh) | 一种物体封闭轮廓的检测方法和装置 | |
KR102424571B1 (ko) | Gis 데이터 자동변환 시스템 | |
CN116012557B (zh) | 基于三维系统的天气自然景象数据对接系统及对接方法 | |
EP1669929A2 (en) | Systems and methods for presenting descriptions of conditions with respect to a surface | |
US8379037B1 (en) | Multi-resolution texture aggregation | |
CN108375806A (zh) | 气象地图的获取方法和装置 | |
CN108830794B (zh) | 高斯投影的pdf地图跨图幅无缝拼接显示方法 | |
CN101383052B (zh) | 基于球面分段常数基函数的动态场景实时绘制方法 | |
CN110232846A (zh) | 一种冲锋舟模拟驾驶方法、系统及相关装置 | |
CN116383320A (zh) | 一种将gis数据切割成矢量切片的方法 | |
CN114549714A (zh) | 基于WebGL三维风向图可视化的渲染方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200602 |
|
CF01 | Termination of patent right due to non-payment of annual fee |