[发明专利]一种基于粒子系统的海面航迹并行化仿真方法有效
申请号: | 201210251962.5 | 申请日: | 2012-07-19 |
公开(公告)号: | CN102789650A | 公开(公告)日: | 2012-11-21 |
发明(设计)人: | 徐永志;石书浩;吕品;郑昌文 | 申请(专利权)人: | 中国科学院软件研究所 |
主分类号: | G06T15/00 | 分类号: | G06T15/00 |
代理公司: | 北京科迪生专利代理有限责任公司 11251 | 代理人: | 杨学明 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 粒子 系统 海面 航迹 并行 仿真 方法 | ||
1.一种基于粒子系统的海面航迹并行化仿真方法,其特征在于包括以下步骤:
(1)在CPU中进行一些初始化的工作:具体包括:初始化CUDA设备、申请显存、创建FFT Plan、创建VBO、初始化粒子系统;
(2)在GPU中进行海面网格的并行化运算:具体包括:求解某一特定时刻的Phillips海浪频谱的海面高度场、执行CUFFT求解Phillips海浪频谱的波浪扩散场、将计算结果输出到显存中的Global Memory;
(3)在GPU中进行航迹粒子系统的并行化运算:具体包括:计算并更新粒子属性、将粒子位置映射到海面网格坐标点、计算粒子对所在位置周围网格的扰动并进行范围内扰动叠加运算、将运算结果输出到Global Memory;
(4)在GPU Shader中运用GLSL对海面进行环境、光照渲染,形成动态海面航迹效果。
2.如权利要求1所述的基于粒子系统的海面航迹并行化仿真方法,其特征在于,所述步骤(1)中初始化粒子系统之中,粒子属性包括一个生命值和一个死亡值,初始值都被赋予一个正数的随机整数值。
3.如权利要求1所述的基于粒子系统的海面航迹并行化仿真方法,其特征在于,所述步骤(3)中的计算并更新粒子属性的方法为:
在每个粒子死亡的时候,将粒子的存活标志设为死亡,并为其赋予一个随机的死亡值,开始死亡计时,不断更新死亡值;当死亡计时结束时,粒子重新激活,为其赋予一个随机的生命值,进入一个新的生命循环,粒子存活的持续时间也重新开始计时。
4.如权利要求1所述的基于粒子系统的海面航迹并行化仿真方法,其特征在于,所述步骤(2)中的并行化求解Phillips海浪频谱的海面高度场的CUDA线程拆分方式为:
假设仿真区域的网格密度为meshW*meshH,按照二维拆分,将CUDA内核的Block内的线程维度设为BlockDim(x,y,1),拆分后的Block个数为:
其中,meshH是仿真区域长度被划分的网格数,meshW是仿真区域宽度被划分的网格数,BlockDim.x和BlockDim.y分别为Block内的线程维度BlockDim(x,y,1)在两个维度上的分量;
每个Block内的Thread个数为:
munThreads=BlockDim.x*BlockDim.y。
5.如权利要求1所述的基于粒子系统的海面航迹并行化仿真方法,其特征在于,所述步骤(3)中的粒子位置映射到海面网格坐标点方法为:
其中,粒子的水平坐标为position(x,y),网格密度为meshW*meshH,网格区域的长度为Width,宽度为Height,映射得到的网格点坐标为(GridX,GridY)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院软件研究所,未经中国科学院软件研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210251962.5/1.html,转载请声明来源钻瓜专利网。