移动设备硬件的高速开展,让游戏职业发生翻天覆地的改变,许多酷炫的游戏作用不再局限于电脑端,玩家在移动端就能享受到场景更逼真、画质更明晰、体会更流通的游戏服务。但由于移动设备算力缺乏,为了完成实在感的水体作用,许多游戏厂商选用预核算的办法削减实时仿真的核算开支,但水体场景在移动端的流体作用依然不佳。

实在感水体的模仿一直是图形学和游戏开发范畴的难点问题,对硬件算力要求也很高,因而大多数实在的水体模仿场景只出现在PC和主机游戏中。为了处理移动端水体活动实在感的问题,进步开发者使用开发的功率,HMS Core图形引擎服务(Scene Kit)推出了3D流体仿真技术,有效处理3D流体动效在移动设备上的实时性和功耗的问题。

图1

3D流体仿真技术

HMS Core 3D流体仿真技术,打造移动端PC级流体动效

图2 欧拉描绘与拉格朗日描绘

模仿实在的流体作用需求很多的粒子或者网格,数量可到达十万、百万等级,但运用CPU串行核算的办法仿真需求几秒才干完成一帧数据的核算,无法满意实时性要求。而GPU在高性能并行核算范畴有着巨大优势,因而在HMS Core图形引擎服务中,我们利用GPU加快技术在移动设备上完成流体仿真。

不过,仅经过GPU硬件加快不能完全满意移动设备上流体实时仿真的要求,还需求进步GPU的运转功率,以及削减仿真的核算量,然后下降GPU的负载以及带宽的运用,防止高负荷高带宽运转导致的设备发烫等体会问题。在流体运动的两种描绘办法中,拉格朗日办法由于粒子状况受周围其它粒子的影响,核算时需求先查找邻域粒子,这个进程对并行核算不够友好,难以发挥并行核算的优势。而欧拉描绘中的每个网格状况数据的核算进程都是相同的,更适合并行核算。因而为了进步GPU的并行功率,HMS Core图形引擎服务选用欧拉办法进行流体仿真。

选用欧拉办法构建流体模型,先将仿真区域划分成均匀的网格,构造出流体的速度场、密度场等数据。如图3所示。

HMS Core 3D流体仿真技术,打造移动端PC级流体动效

图3 红点表明密度、压强数据的存储位置,赤色箭头表明速度场数据

黑色网格是密度场网格,速度场网格在密度场网格基础上沿x、y方向进行半个网格偏移(蓝色网格),密度存储在密度场网格中心点,速度场数据存储在密度场网格极点上,一起也是速度场网格中心点,这种办法可以很方便的完成中心差分核算,实践核算时需求将速度场按维度拆分。再引入有向距离场(SDF)数据描绘流体的鸿沟,完成流体与鸿沟的磕碰作用。如图4所示。

HMS Core 3D流体仿真技术,打造移动端PC级流体动效

图4 密度场网格,棕色区域表明固体鸿沟,蓝色区域表明流体,白色区域表明空气。

在流体模型构建完成后,再利用前面说到的纳维-斯托克斯(NS)方程进行仿真核算,核算进程包括求解重力、压强、粘度、对流4步,别离对应公式(1)中等号右边的四项。

压强和粘度求解进程杂乱,经过很多优化将求解进程简化为线性方程组的求解,然后下降核算杂乱度,削减核算量。方程组求解选用快速收敛的解法,一起进行精度取舍然后下降核算开支。数据存储格式的优化,也到达下降GPU带宽运用、进步GPU cache命中率的作用。

求解对流项时,需求考虑流体与固体鸿沟的磕碰,图形引擎服务选用一种一致建模的办法描绘空气、流体、固体网格,如图5所示。

HMS Core 3D流体仿真技术,打造移动端PC级流体动效

图5赤色表明在鸿沟外部,灰色区域表明鸿沟,绿色区域表明鸿沟内部

这样在核算时可以一致处理悉数网格,无需对流体、固体区域别离核算,可以削减核算逻辑,进步GPU线程的运转功率。

经过以上多种技术办法,HMS Core图形引擎服务完成了GPU运转功率的进步以及流体仿真核算量的下降,然后在移动设备上完成了较低功耗的3D流体实时仿真。再结合图形渲染的其他才能,最终在移动设备上可以完成3D流体的活动、飞溅、反射、折射等作用,让用户手机不发烫,还能拥有实时流通的流体体会。

3D流体仿真技术来自华为2012实验室,经过HMS Core图形引擎服务向开发者开放。HMS Core图形引擎服务致力于为开发者提供高性能、低功耗的引擎服务,帮助开发者制作高品质的3D使用,赋能更多使用走入数字世界。

其他更多关于HMS Core图形引擎服务的信息,请拜访developer.huawei.com/consumer/cn/hms/huawei-scenekit/?ha_source=hmswm