当前位置: 首页 > 专利查询>东北大学专利>正文

一种用于实时交互应用的GPU流体仿真方法技术

技术编号:37148979 阅读:33 留言:0更新日期:2023-04-06 22:03
本发明专利技术提供一种用于实时交互应用的GPU流体仿真方法,涉及流体仿真技术领域。该方法首先使用粒子系统发射大量粒子,并使用基于位置的流体粒子模拟算法计算流体粒子位置,进行粒子运动状态的更新,再根据粒子位置通过屏幕空间处理得到光滑流体表面,最后使用真实感渲染方式对流体表面进行着色,得到水体图像;由于大量粒子的状态更新与屏幕空间的像素级计算均为大规模并行计算,适合GPU处理,因此本方法涉及的所有计算过程均在GPU端运行。该方法可以广泛的应用于工业仿真与电子游戏领域内的多种需求场景。多种需求场景。多种需求场景。

【技术实现步骤摘要】
一种用于实时交互应用的GPU流体仿真方法


[0001]本专利技术涉及流体仿真
,尤其涉及一种用于实时交互应用的GPU流体仿真方法。

技术介绍

[0002]随着流体仿真技术的发展,真实感实时流体动画模拟仿真已被广泛应用到商业电影、大型游戏和城市灾害预测系统当中,其中,稳定精确的数值求解模型与高计算效率一直是研究中的重要内容。
[0003]在实时应用当中,由于模拟仿真对算力消耗非常敏感,因此常用的流体模拟仿真解决方案有三种:一是使用离线烘焙的二维图像序列或者三维模型序列,通过循环播放的方式实现流体的变化效果。这种方法通常使用无网格的方法进行模拟,其中光滑粒子流体动力学(SPH)是最受欢迎的模拟流体的方法,因为它比其他方法计算简单、效率高。但是,模拟得到的粒子转换为可以用于渲染的三维模型,仍需要进行大量计算,目前主要使用屏幕空间技术从粒子数据生成多边形网格或行进立方体(Marching Cube)。由于网格生成方法无一例外在计算上非常昂贵。
[0004]二是使用粒子系统发射大量粒子,通过调节粒子的速度,大小变换与计算重力,碰撞等本文档来自技高网...

【技术保护点】

【技术特征摘要】
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中重力对粒子的影响如下公式所示:其中,Δp
g
为重力产生的位置影响分量,v0为粒子当前速度,Δt为两次更新之间的间隔时间,g为重力加速度;碰撞对粒子的影响通过虚拟场景的深度场确定,具体为:
使用粒子坐标对虚拟场景的深度场进行采样得到粒子到场景中最近表面的距离;如果粒子在表面内或者粒子到表面距离小于预先给定的粒子半径,表示粒子发生了碰撞,需要进行碰撞计算;在基于位置的流体粒子模拟算法中,碰撞的计算也不需要计算碰撞的受力情况,只需要针对不同情况分析:当粒子在表面内时,粒子新的位置为碰撞位置加粒子到碰撞位置的方向乘粒子半径;当粒子与表面距离小于预先给定的粒子半径时,粒子新的位置为碰撞位置加碰撞位置到粒子中心的方向乘粒子半径。5.根据权利要求4所述的一种用于实时交互应用的GPU流体仿真方法,其特征在于:所述步骤1.3的具体方法为:首先遍历当前计算粒子i周围h距离内的所有粒子,基于粒子间的距离计算出核函数W
Poly6
的值,如下公式所示:其中,W
Poly6
(r,h)为核函数,r为其他粒子到粒子i的距离向量,h为预设的最大查找距离;再遍历粒子i周围h距离内的所有粒子,计算出该粒子i所在位置的密度ρ

【专利技术属性】
技术研发人员:高天寒陈鑫
申请(专利权)人:东北大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1