[发明专利]一种用于实时交互应用的GPU流体仿真方法在审
申请号: | 202211547040.9 | 申请日: | 2022-12-05 |
公开(公告)号: | CN115906703A | 公开(公告)日: | 2023-04-04 |
发明(设计)人: | 高天寒;陈鑫 | 申请(专利权)人: | 东北大学 |
主分类号: | G06F30/28 | 分类号: | G06F30/28;G06F30/25;G06T15/55;G06T13/20;G06T1/20;G06T17/20;G06F119/14 |
代理公司: | 沈阳东大知识产权代理有限公司 21109 | 代理人: | 李珉 |
地址: | 110819 辽宁*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 实时 交互 应用 gpu 流体 仿真 方法 | ||
1.一种用于实时交互应用的GPU流体仿真方法,其特征在于:
在GPU端,使用粒子系统发射大量粒子,并使用基于位置的流体粒子模拟算法计算流体粒子位置,进行粒子运动状态的更新;
根据粒子位置通过屏幕空间处理得到光滑流体表面;
使用真实感渲染方式对流体表面进行着色,得到水体图像。
2.根据权利要求1所述的一种用于实时交互应用的GPU流体仿真方法,其特征在于:所述用于实时交互应用的GPU流体仿真方法包括以下步骤:
步骤1、使用粒子系统发射大量粒子,再使用基于位置的流体粒子模拟算法更新流体粒子位置,完成粒子运动状态的更新;
步骤2、在完成粒子运动状态的更新后采用屏幕空间进行流体表面重建;
步骤2.1、将所有流体粒子从三维世界空间映射到二维屏幕空间,得到映射到二维屏幕空间的流体表面图像;
步骤2.2、对映射到二维屏幕空间的流体表面图像进行平滑处理,得到平滑流体表面图像;
步骤3、根据平滑流体表面图像与场景的帧缓存进行流体的真实感渲染;
步骤3.1、基于深度缓冲和颜色缓冲对流体表面进行着色;
步骤3.2、渲染流体上漂浮泡沫的效果;
步骤3.3、焦散效果渲染。
3.根据权利要求2所述的一种用于实时交互应用的GPU流体仿真方法,其特征在于:所述步骤1的具体方法为:
步骤1.1、使用粒子系统在流体模拟空间发射大量粒子,并将流体模拟空间均匀的划分为若干三维网格区域,构建临近粒子查找网格;
在更新流体粒子位置时,将粒子的索引写入对应网格;在需要查询某粒子的临近粒子时,能在线性时间内根据粒子坐标求出粒子所在网格,然后只需要遍历该网格内的粒子得到一定范围内的所有粒子;
步骤1.2、计算重力和碰撞两种外力对粒子的影响;
步骤1.3、计算流体内部粒子之间的相互作用,根据不可压缩的约束计算出粒子的位移向量;
步骤1.4、将步骤1.2得到的粒子受外力影响产生的位移与步骤1.3得到的粒子间相互作用产生的位移相加,得到粒子的位置变化量;粒子的位置变化量与粒子的原始位置相加得到粒子的新位置;同时用粒子的位置变化量除以单位时间得到粒子在该时刻的速度,用于下一轮粒子位置更新时计算粒子受外力的影响。
4.根据权利要求3所述的一种用于实时交互应用的GPU流体仿真方法,其特征在于:所述步骤1.2中重力对粒子的影响如下公式所示:
其中,Δpg为重力产生的位置影响分量,v0为粒子当前速度,Δt为两次更新之间的间隔时间,g为重力加速度;
碰撞对粒子的影响通过虚拟场景的深度场确定,具体为:
使用粒子坐标对虚拟场景的深度场进行采样得到粒子到场景中最近表面的距离;如果粒子在表面内或者粒子到表面距离小于预先给定的粒子半径,表示粒子发生了碰撞,需要进行碰撞计算;在基于位置的流体粒子模拟算法中,碰撞的计算也不需要计算碰撞的受力情况,只需要针对不同情况分析:当粒子在表面内时,粒子新的位置为碰撞位置加粒子到碰撞位置的方向乘粒子半径;当粒子与表面距离小于预先给定的粒子半径时,粒子新的位置为碰撞位置加碰撞位置到粒子中心的方向乘粒子半径。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东北大学,未经东北大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211547040.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种道路桥梁工程防护装置
- 下一篇:荧光探针及其应用