HMS Core 3D流體仿真技術(shù),打造移動端PC級流體動效

移動設(shè)備硬件的高速發(fā)展,讓游戲行業(yè)發(fā)生翻天覆地的變化,許多酷炫的游戲效果不再局限于電腦端,玩家在移動端就能享受到場景更逼真、畫質(zhì)更清晰、體驗更流暢的游戲服務(wù)。但由于移動設(shè)備算力不足,為了實現(xiàn)真實感

移動設(shè)備硬件的高速發(fā)展,讓游戲行業(yè)發(fā)生翻天覆地的變化,許多酷炫的游戲效果不再局限于電腦端,玩家在移動端就能享受到場景更逼真、畫質(zhì)更清晰、體驗更流暢的游戲服務(wù)。但由于移動設(shè)備算力不足,為了實現(xiàn)真實感的水體效果,很多游戲廠商采用預(yù)計算的方法減少實時仿真的計算開銷,但水體場景在移動端的流體效果仍然不佳。

真實感水體的模擬一直是圖形學(xué)和游戲開發(fā)領(lǐng)域的難點問題,對硬件算力要求也很高,因此大多數(shù)真實的水體模擬場景只出現(xiàn)在PC和主機游戲中。為了解決移動端水體流動真實感的問題,提升開發(fā)者應(yīng)用開發(fā)的效率,HMS Core圖形引擎服務(wù)(Scene Kit)推出了3D流體仿真技術(shù),有效解決3D流體動效在移動設(shè)備上的實時性和功耗的問題。

HMS Core 3D流體仿真技術(shù),打造移動端PC級流體動效

圖1

3D流體仿真技術(shù)

HMS Core 3D流體仿真技術(shù),打造移動端PC級流體動效

圖2 歐拉描述與拉格朗日描述

模擬真實的流體效果需要大量的粒子或者網(wǎng)格,數(shù)量可達(dá)到十萬、百萬級別,但使用CPU串行計算的方式仿真需要幾秒才能完成一幀數(shù)據(jù)的計算,無法滿足實時性要求。而GPU在高性能并行計算領(lǐng)域有著巨大優(yōu)勢,因此在HMS Core圖形引擎服務(wù)中,我們利用GPU加速技術(shù)在移動設(shè)備上實現(xiàn)流體仿真。

不過,僅通過GPU硬件加速不能完全滿足移動設(shè)備上流體實時仿真的要求,還需要提升GPU的運行效率,以及減少仿真的計算量,從而降低GPU的負(fù)載以及帶寬的使用,避免高負(fù)荷高帶寬運行導(dǎo)致的設(shè)備發(fā)燙等體驗問題。在流體運動的兩種描述方法中,拉格朗日方法由于粒子狀態(tài)受周圍其它粒子的影響,計算時需要先搜索鄰域粒子,這個過程對并行計算不夠友好,難以發(fā)揮并行計算的優(yōu)勢。而歐拉描述中的每個網(wǎng)格狀態(tài)數(shù)據(jù)的計算過程都是相同的,更適合并行計算。因此為了提升GPU的并行效率,HMS Core圖形引擎服務(wù)采用歐拉方法進行流體仿真。

采用歐拉方法構(gòu)建流體模型,先將仿真區(qū)域劃分成均勻的網(wǎng)格,構(gòu)造出流體的速度場、密度場等數(shù)據(jù)。如圖3所示。

HMS Core 3D流體仿真技術(shù),打造移動端PC級流體動效

圖3 紅點表示密度、壓強數(shù)據(jù)的存儲位置,紅色箭頭表示速度場數(shù)據(jù)

黑色網(wǎng)格是密度場網(wǎng)格,速度場網(wǎng)格在密度場網(wǎng)格基礎(chǔ)上沿x、y方向進行半個網(wǎng)格偏移(藍(lán)色網(wǎng)格),密度存儲在密度場網(wǎng)格中心點,速度場數(shù)據(jù)存儲在密度場網(wǎng)格頂點上,同時也是速度場網(wǎng)格中心點,這種形式可以很方便的實現(xiàn)中心差分計算,實際計算時需要將速度場按維度拆分。再引入有向距離場(SDF)數(shù)據(jù)描述流體的邊界,實現(xiàn)流體與邊界的碰撞效果。如圖4所示。

HMS Core 3D流體仿真技術(shù),打造移動端PC級流體動效

圖4 密度場網(wǎng)格,棕色區(qū)域表示固體邊界,藍(lán)色區(qū)域表示流體,白色區(qū)域表示空氣。

在流體模型構(gòu)建完成后,再利用前面提到的納維-斯托克斯(NS)方程進行仿真計算,計算過程包括求解重力、壓強、粘度、對流4步,分別對應(yīng)公式(1)中等號右邊的四項。

壓強和粘度求解過程復(fù)雜,通過大量優(yōu)化將求解過程簡化為線性方程組的求解,從而降低計算復(fù)雜度,減少計算量。方程組求解采用快速收斂的解法,同時進行精度取舍從而降低計算開銷。數(shù)據(jù)存儲格式的優(yōu)化,也達(dá)到降低GPU帶寬使用、提高GPU cache命中率的效果。

求解對流項時,需要考慮流體與固體邊界的碰撞,圖形引擎服務(wù)采用一種統(tǒng)一建模的方式描述空氣、流體、固體網(wǎng)格,如圖5所示。

HMS Core 3D流體仿真技術(shù),打造移動端PC級流體動效

圖5紅色表示在邊界外部,灰色區(qū)域表示邊界,綠色區(qū)域表示邊界內(nèi)部

這樣在計算時可以統(tǒng)一處理全部網(wǎng)格,無需對流體、固體區(qū)域分別計算,可以減少計算邏輯,提升GPU線程的運行效率。

通過以上多種技術(shù)方法,HMS Core圖形引擎服務(wù)實現(xiàn)了GPU運行效率的提升以及流體仿真計算量的降低,從而在移動設(shè)備上實現(xiàn)了較低功耗的3D流體實時仿真。再結(jié)合圖形渲染的其他能力,最終在移動設(shè)備上能夠?qū)崿F(xiàn)3D流體的流動、飛濺、反射、折射等效果,讓用戶手機不發(fā)燙,還能擁有實時流暢的流體體驗。

3D流體仿真技術(shù)來自華為2012實驗室,通過HMS Core圖形引擎服務(wù)向開發(fā)者開放。HMS Core圖形引擎服務(wù)致力于為開發(fā)者提供高性能、低功耗的引擎服務(wù),幫助開發(fā)者制作高品質(zhì)的3D應(yīng)用,賦能更多應(yīng)用走入數(shù)字世界。

(本內(nèi)容屬于網(wǎng)絡(luò)轉(zhuǎn)載,文中涉及圖片等內(nèi)容如有侵權(quán),請聯(lián)系編輯刪除。市場有風(fēng)險,選擇需謹(jǐn)慎!此文僅供參考,不作買賣及投資依據(jù)。)

原創(chuàng)文章,作者:陳晨,如若轉(zhuǎn)載,請注明出處:http://m.2079x.cn/article/566215.html

陳晨陳晨管理團隊

相關(guān)推薦