[发明专利]一种基于Compute Shader的实时流体仿真方法及其系统有效
| 申请号: | 202010960425.2 | 申请日: | 2020-09-14 |
| 公开(公告)号: | CN112100939B | 公开(公告)日: | 2023-06-16 |
| 发明(设计)人: | 刘德建;宋衍杰;王宪宇;陈宏展 | 申请(专利权)人: | 福建天晴在线互动科技有限公司 |
| 主分类号: | G06F30/28 | 分类号: | G06F30/28 |
| 代理公司: | 福州旭辰知识产权代理事务所(普通合伙) 35233 | 代理人: | 程勇 |
| 地址: | 350212 福*** | 国省代码: | 福建;35 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 compute shader 实时 流体 仿真 方法 及其 系统 | ||
1.一种基于Compute Shader的实时流体仿真方法,其特征在于:所述方法包括如下步骤:
步骤S1、设置流体粒子的数据结构,并在流体粒子模拟中,将仿真区域划分为若干个空间网格;
步骤S2、对流体粒子施加外力,得到各流体粒子受到外力后的预测位置;
步骤S3、将各个流体粒子根据空间网格信息进行排序;
步骤S4、对排序后的各流体粒子计算相应的位移量;
步骤S5、根据预测位置和位移量来更新当前帧的流体位置信息及压力值;
所述步骤S1进一步具体为:所述流体粒子的数据结构为ComputeBuffer positions;ComputeBuffer predictedPos;ComputeBuffer velocities;ComputeBuffer densities;ComputeBuffer pressures;其中,positions是保存粒子的实际位置,predictedPos及velocities用以在仿真中计算各流体粒子的预测位置和速度数据,并最终将预测位置的值赋给positions,densities表示各粒子的密度信息,pressures为各粒子受到的压力值;在流体粒子模拟中,将仿真区域划分为若干个正方形网格,正方形网格的边长为流体粒子半径的4倍,网格序号从左往右,从上往下依次递增,每个流体粒子依据其圆心位置获得所属的网格序号。
2.根据权利要求1所述的一种基于Compute Shader的实时流体仿真方法,其特征在于:所述步骤S2进一步具体为:在流体粒子仿真流程开始时,流体粒子会受到重力作用,则开启流体粒子总数的线程数计算各流体粒子受到外力后的预测位置predictedPos:
predictedPos[id]=positions[id]+deltaTime·gravity;其中id为当前粒子的索引值,deltaTime为每一帧的时间步长,gravity为重力值。
3.根据权利要求2所述的一种基于Compute Shader的实时流体仿真方法,其特征在于:所述步骤S3进一步具体为:步骤S3.1计算粒子哈希值:即定义数据结构IndexMap,其中IndexMap的x分量表示粒子的哈希值,IndexMap的y分量表示粒子的实际id,粒子的哈希值由如下公式计算得出:
grid.x+grid.y·HashSize.x+grid.z·HashSize.x·HashSize.y
其中grid的三个分量表示当前粒子所处网格的三维坐标值,HashSize的两个分量表示仿真区域在长宽维度拥有的网格数量;
步骤S3.2将IndexMap进行排序:利用双调排序将IndexMap按照IndexMap.y从小到大进行排序;
步骤S3.3将排序后的IndexMap中的数据映射到Table上:即数据结构Table保存IndexMap中相同hash的起始和终止位置,其中x分量保存起始位置,y分量保存终止位置。
4.根据权利要求3所述的一种基于Compute Shader的实时流体仿真方法,其特征在于:所述步骤S4进一步具体为:对于当前流体粒子,根据所述的IndexMap数据获取周围邻域的粒子信息;开启粒子总数的线程数,利用公式(3)计算出流体粒子对应的pressures数据,
其中Cid表示当前粒子所受的约束,表示当前粒子相对于序号为k的粒子的梯度值,k为Cid(p1,...,pn)中的粒子序号,ε为实验设定参数,p1,…,pn是所有与当前粒子存在接触的粒子集合,其中Cid计算如下
其中ρid为当前粒子的密度,ρ0为静态密度,初始设置为1000;
计算出pressure之后,利用公式(5)计算粒子的位移量:
其中,h为4倍的粒子半径,pid为当前仿真粒子,W(pid-pj,h)为粒子仿真核函数,该粒子仿真核函数使用行业标准的Poly6核函数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福建天晴在线互动科技有限公司,未经福建天晴在线互动科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010960425.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:水表盖加工用定位夹具
- 下一篇:氨基末端脑钠肽前体多肽、偶联蛋白





