兩款全新 GameWorks 技術如何以真實物理效果為基礎打造出模擬畫面

作者 Rev Lebaredian

我們在本週的遊戲開發者大會將發表兩項新技術,讓我們創作出的模擬畫面能達到更完全符合真實物理效果的夢想。

truck-one
我們在2002年推出的物理引擎展示畫面。

各位可透過我們的開發人員專區下載全新的 GameWorks 3.1 SDK,便能立即開始使用 GPU Rigid Bodies 與 NVIDIA Flow 這兩項新技術。

這項集合工程師們多年開發心血的產品,使得遊戲和應用項目裡創作出的模擬畫面能更接近真實世界裡的情形。

 

 

介紹 GPU Rigid Bodies

在2002年《戰慄時空2》(Half-life 2)這款遊戲的展示片裡,便可見到主流遊戲開始採用剛體動力學模擬技術的痕跡,而自此之後剛體動力學也出現長足進展,不過 CPU 的運算能力限制了應用這些模擬技術的程度和範圍。

在電玩裡運用模擬技術是很常見的事(至少像是摧毀建築物),這需要運算上萬件大小不同剛體碎片間的互動情況。
在電玩裡運用模擬技術是很常見的事(至少像
是摧毀建築物),這需要運算上萬件大小不同
剛體碎片間的互動情況。

在電玩裡運用模擬技術是很常見的事(至少像是摧毀建築物),這需要運算上萬件大小不同剛體碎片間的互動情況,CPU 在運算能力方面的缺點使得遊戲開發人員要不避免使用這類的效果,使得破壞畫面成為罐頭動畫效果,不然就是只模擬少量碎片,在效果展開後隨即消失不見,以限制破壞效果的程度。

我們讓 GPU 來處理大量模擬剛體的工作量,後來覺得剛體模擬器難以對映到 GPU 這一類大量平行運算的機器上,花費很長一段時間逐步改善這個問題。

我們最後解決了這個情況。現在各位可以在不影響真實度的情況下,於 GPU 上運行與目前數百款遊戲在 CPU 上運行的同一個模擬器,且 CPU 與 GPU 版本的演算法在動作上並無二異,只要一個開關便可在兩者間切換工作量。

我們新的剛體模擬器演示支援完整的軟體PhysX特色,例如移動生物的脚關節
我們新的剛體模擬器演示支援完整的軟體PhysX特色,例如移動生物的脚關節

採用(NVIDIAFlow 技術

流體力學是另一項令人頭痛的問題,不過我們也對它著手研究了一段時間,推出 NVIDIA Flow 這項最新的計算流體力學解決方案,能即時模擬可燃性液體、火熖和煙霧等流體的動作。

 按照火球穿越世界,從盒子的束縛中釋放的結果,來分配模擬網格。
按照火球穿越世界,從盒子的束縛中
釋放的結果,來分配模擬網格。

近年來我們在多款遊戲裡加入 NVIDIA Turbulence 技術,促進在遊戲裡即時呈現出精彩的流動畫面。Turbulence 就跟許多其它 CFD 模擬器一樣,解決了在侷限空間內模擬流體動作的難題。這個箱子拆解成多個更小的方塊(體積像素),每個方塊內有該範圍中流體的密度、速度和溫度等資訊。

流體擴散到箱子範圍外時,這類辦法便派不上用場,你得在多個效果不佳的方案中加以選擇,像是可以假裝箱外沒有流體,讓它看起來像是在玻璃箱中流動;可以擴大箱體空間,但要不是維持相同數量的方塊而犧牲掉流體的解析度,要不就是增加方塊數,消耗掉更多記憶體和運算資源。

NVIDIA 推出全新的 NVIDIA Flow 解決方案,只分配接近有著流體的方塊來解決這個問題。當流體擴大時,會分配擴大到的新方塊,並且取消分配流體消散的方塊,將方塊控制在一致的數量,如此不管流體的形狀和位置為何,都能維持解析度和真實度。

結果:藝術家不再花費寶貴時間去調整解析度的參數和放置邊界方塊,在藝術創作和可用資源之間來回取捨。NVIDIA Flow 技術將神奇地發揮它的長才,讓藝術家們能專心在創作美麗的流體畫面這件重責大任上。