预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共19页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)国家知识产权局(12)发明专利申请(10)申请公布号CN115906703A(43)申请公布日2023.04.04(21)申请号202211547040.9G06T17/20(2006.01)(22)申请日2022.12.05G06F119/14(2020.01)(71)申请人东北大学地址110819辽宁省沈阳市和平区文化路3号巷11号(72)发明人高天寒陈鑫(74)专利代理机构沈阳东大知识产权代理有限公司21109专利代理师李珉(51)Int.Cl.G06F30/28(2020.01)G06F30/25(2020.01)G06T15/55(2011.01)G06T13/20(2011.01)G06T1/20(2006.01)权利要求书4页说明书9页附图5页(54)发明名称一种用于实时交互应用的GPU流体仿真方法(57)摘要本发明提供一种用于实时交互应用的GPU流体仿真方法,涉及流体仿真技术领域。该方法首先使用粒子系统发射大量粒子,并使用基于位置的流体粒子模拟算法计算流体粒子位置,进行粒子运动状态的更新,再根据粒子位置通过屏幕空间处理得到光滑流体表面,最后使用真实感渲染方式对流体表面进行着色,得到水体图像;由于大量粒子的状态更新与屏幕空间的像素级计算均为大规模并行计算,适合GPU处理,因此本方法涉及的所有计算过程均在GPU端运行。该方法可以广泛的应用于工业仿真与电子游戏领域内的多种需求场景。CN115906703ACN115906703A权利要求书1/4页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为重力加速度;碰撞对粒子的影响通过虚拟场景的深度场确定,具体为:2CN115906703A权利要求书2/4页使用粒子坐标对虚拟场景的深度场进行采样得到粒子到场景中最近表面的距离;如果粒子在表面内或者粒子到表面距离小于预先给定的粒子半径,表示粒子发生了碰撞,需要进行碰撞计算;在基于位置的流体粒子模拟算法中,碰撞的计算也不需要计算碰撞的受力情况,只需要针对不同情况分析:当粒子在表面内时,粒子新的位置为碰撞位置加粒子到碰撞位置的方向乘粒子半径;当粒子与表面距离小于预先给定的粒子半径时,粒子新的位置为碰撞位置加碰撞位置到粒子中心的方向乘粒子半径。5.根据权利要求4所述的一种用于实时交互应用的GPU流体仿真方法,其特征在于:所述步骤1.3的具体方法为:首先遍历当前计算粒子i周围h距离内的所有粒子,基于粒子间的距离计算出核函数WPoly6的值,如下公式所示: