当前位置: 首页 > 专利查询>钱进专利>正文

基于GS的粒子系统在风场驱动下构建流线动画的方法技术方案

技术编号:15764507 阅读:98 留言:0更新日期:2017-07-06 05:00
一种基于GS的粒子系统在风场驱动下构建流线动画的方法,由大量的粒子带构成风场流线动画,每一个粒子带是以m个控制顶点为基础,由相应的三角面构成;一个粒子带即为风场流线动画中的一条运动的流线;先建立控制点处理模块,用于对构成每条风场流线的粒子带的控制点进行起始位置、生命周期、强度要素的控制;再建立几何着色器GS模块,用于在显卡可编程管道的几何着色器GS处理阶段,在所述控制点的基础上动态地在显卡内部生成更多的顶点,从而构成渲染每个粒子带所需的三角面。本方法摒弃了以往固定管道的渲染管线,使用了基于Direct3D 11的显卡可编程管道,绝大多数的计算都在显卡的流处理器阵列中完成,从根本上解脱了CPU的计算负担。

Method of constructing streamline animation based on GS's particle system driven by wind field

A GS method based on particle system in construction of animation driven by the wind flow, by a large number of particles with a wind field animation, each particle is m with control points as the foundation, formed by the triangular surface corresponding; one of the particles is a streamline motion wind streamline animation in the first set up the control point; processing module, used to control the starting position, structure of the control points of each wind streamline particles with the life cycle and strength factor; then establish the geometry shader GS module for GS geometry shader processing stage programmable graphics pipeline, based on the control point. The dynamic graphics internally generated more vertices, triangles to form each particle with desired rendering. This method replaces the fixed pipeline rendering pipeline, using Direct3D 11 programmable graphics pipeline based on most of the calculations are done on the stream processor array card, fundamentally relieved the computational burden of CPU.

【技术实现步骤摘要】
基于GS的粒子系统在风场驱动下构建流线动画的方法[
]本专利技术涉及一种Direct3D11的数据处理与着色器的构建方法,具体是一种基于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;如果到了设定的结束时间,则重新清空该控制点数组,然后对控制点数组的第一个控制点在当前控制子区域内重新随机赋予新的初始位置;则一个粒子带在到了预定的时间消亡本文档来自技高网...
基于GS的粒子系统在风场驱动下构建流线动画的方法

【技术保护点】
一种基于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将接收到的像素渲染到渲染表面,最后在屏幕上显示出每帧的图像。...

【技术特征摘要】
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传递过来的控制点坐标进行世界矩阵-观察矩阵-投影矩阵的变换,变换之后,控制点的坐标即为屏幕空间的坐标;接下来,...

【专利技术属性】
技术研发人员:钱进费建芳黄小刚程小平洪亮
申请(专利权)人:钱进费建芳黄小刚程小平洪亮
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1