发明名称 一种多点爆炸效果的实时生成方法
摘要 本发明提出了一种多点爆炸效果的实时生成方法,通过速度场模型的建立和计算,对经典的流体运动模型Navier-Stokes方程进行简化处理,采用分步法在GPU上实现模型求解,获得速度场;粒子系统的更新,在GPU上根据速度场的值更新粒子的位置,根据爆炸光照模型更新粒子的颜色,并更新粒子的其他属性;真实感绘制,根据粒子中心点图元生成四边形粒子图元,利用三维纹理给粒子贴图,得到最终的颜色。本发明可完全基于GPU来实现物理模型的计算、粒子系统的更新和绘制,具有实时性好,物理真实感强的特点。<pb pnum="1" />
申请公布号 CN106342298B 申请公布日期 2015.05.27
申请号 CN201318000239.5 申请日期 2013.01.22
申请人 北京军区军事训练模拟仿真研发服务中心 发明人 贾照亮;李刚;张鹏;段永强;贺小林
分类号 G06F9/455(2006.01)I 主分类号 G06F9/455(2006.01)I
代理机构 中国船舶专利中心 11026 代理人 缪蕾
主权项 一种多点爆炸效果的实时生成方法,其特征在于包括以下步骤:步骤一,将仿真区域划分为若干正方体单元网格,定义两张与网格大小相同的速度纹理,将其中一张作为渲染目标速度纹理,并根据爆炸剧烈程度,设定初始爆炸流体速度值,运行一遍初始化着色器,将仿真区域内的爆炸流体速度分布初始化为一个半球形区域,根据粒子数,在GPU上定义两个顶点缓冲区,并对粒子、颜色、大小和生命值进行初始化,将粒子的分布初始化为以爆炸中心为圆心的半球形区域内,并将初始化后的粒子拷贝到其中的一个顶点缓冲区;步骤二,设定爆炸流体所受的外力(f)向上,利用计算流体力学中的分步法计算每一时间步长单元网格的爆炸流体速度值(u),具体方法是:设t<sub>n</sub>时刻,速度值为u<sup>n</sup>,以速度值u<sup>n</sup>作为输入计算外力项<img file="FWW0000000083880000011.GIF" wi="236" he="52" />得到第一中间速度值u<sup>*</sup>;再以中间速度值u<sup>*</sup>作为输入计算对流项<img file="FWW0000000083880000012.GIF" wi="388" he="51" />得到第二中间速度值u<sup>**</sup>:最后,以第二中间速度值u<sup>**</sup>作为输入计算压力项<img file="FWW0000000083880000013.GIF" wi="604" he="62" />得到一个时间步长后的速度值u<sup>n+1</sup>,即t<sub>n+1</sub>时刻的速度值;步骤三,利用步骤二获得的速度值u<sup>n+1</sup>,更新在爆炸流体场中粒子的位置,即利用粒子所在位置,将其变换为纹理坐标,通过纹理坐标访问速度纹理,得到粒子所在处的速度值,根据该速度值和时间步长,更新粒子的位置,然后根据爆炸光照模型更新粒子的颜色,并更新粒子的其他属性;步骤四,根据粒子中心点图元生成四边形粒子图元,利用三维纹理给粒子贴图,绘制爆炸效果的真实感,得到最终的颜色。
地址 100093 北京市海淀区香山南路红旗村3号院