《Noita》的畫素物理模擬是如何實現的

時間 2021-05-05 18:06:22

1樓:

Noita中同時存在常規Box2D物理引擎模擬,以及通過細胞自動機運算的畫素物理模擬。Box2D負責剛體物理,基於畫素的細胞自動機則負責燃燒破壞流體的演算。

遊戲執行時,畫素物體具備繫結的三角形碰撞體(具有一定精度誤差),在Box2D的物理引擎中來模擬剛體運動;所有剛體運動演算完一幀之後,再反過來去繪製成新的畫素,參與細胞自動機側的演算。

而畫素破壞發生時,對應的剛體會使用marching squares演算法重新生成三角形碰撞體,從而反應出破壞導致的剛體物理碰撞體的變化。

單個或大量畫素顆粒掉落的物理表現可以用基於Sandpile模型的並行演算法實現:

The Sandpile Model: Parallelization of Efficient Algorithms for Systems with Shared Memory

Self-organized criticality

流體模擬參考:

The game of flow - cellular automaton-based fluid simulation for realtime interaction

燃燒的話參考細胞自動機中的森林火災模型即可。

細胞自動機GPU森林火災模型

針對超大規模的畫素/體素物理場景,優化思路是只更新玩家攝像機區域內及其鄰近範圍的畫素,並將大場景劃分為多個Chunk便於查詢和流式傳輸。對於乙個過程生成的無限尺度場景而言,當玩家位置更新時,周圍的Chunk也可以結合地圖生成器對應生成新的地圖區域。

施工模擬是bim中的設計階段還是施工階段?

劉思成 如果是考試的問題,那就去考試教材上面找,這裡問出來的東西沒法保證是正確答案。原文作者都考不過出題的人,你指望通過這考過證書?在我看來,極大部分的應用都可以歸屬為設計階段的BIM應用。因為真正符合BIM概念的模式就是大量的工作前置了。如果模型真的全專業達到施工深度,為什麼不可以在開始施工前把各...

jvm是對物理計算機的抽象模擬嗎?

我覺得這個觀點應該說是不準確的。應該說物理計算機硬體條件的限制太多,物理計算機的架構是在效能 速度 成本之間互相妥協而產生的結果。反觀,jvm之類的虛擬機器則在很大程度上突破了這種限制。舉個簡單的例子,物理CPU內沒辦法用乙個幾k幾M的暫存器組,而虛擬機器申請一段記憶體用作暫存器或者堆疊原則上說是不...

戰爭雷霆裡第一次玩全真模擬是什麼樣的感覺?

WOODNESS 第一次玩連起飛都不會,不知道怎麼控制偏航,老是往一邊歪。後來網上找教程後熟悉了,戰鬥機狗鬥還是不太行,滑鼠控制搖桿太難受了,後來發現開轟炸機炸機場最穩,B 17炸幾次就有好幾萬研發點,畫面模型很真實,真的有種二戰轟炸機機組的感覺,很喜歡這種感覺,比空歷史舒服多了。然後是B29,B5...