如何在遊戲中模擬一片沙漠?

據說水面和沙漠的模擬是遊戲設計對技術要求比較高的工作。

像《神秘海域》或是《風之旅人》里的很真實的沙漠是如何模擬出來的呢?

這兩個遊戲裡面的沙漠似乎是基於物理模擬的,因為玩家踩在沙子上會凹陷等等,就和現實中的沙漠一樣。

模擬一片沙漠需要用到什麼樣的技術或是演算法?


這兩個遊戲裡面的沙漠似乎是基於物理模擬的,因為玩家踩在沙子上會凹陷等等,就和現實中的沙漠一樣。

不是的,只能算是一種視覺特效。

沙漠和其他地表不同的地方在於它的形狀會受風動態地改變,以我所知現時沒有遊戲做到這樣變化。一般遊戲里的沙漠都是採用一般地形的方式建模(通常是高度場)。在渲染效果上需要特別設計的著色器(見 錢康來的回答)。

對於用程序生成沙漠地形的方法,我找到一個 terragen2 的教程 Dunes sandwaves tutorial。


我倒是看過Journey里關於沙子效果的一個slides,渲染效果上可以參考下 http://advances.realtimerendering.com/s2012/thatgamecompany/SandRenderingInJourney_thatgamecompany.pptx

至於你說的踩上去會凹這種交互,我用Bump Map做過一個unity的demo玩過 Unity下帶法向的Bump Mapping

發散思維...還想起一篇是蝙蝠俠里模擬雪地的也挺有名,貌似是關於mipmap來著,等我再找找- -

update: 感謝評論區 @Claire的錢包 Deformable Snow Rendering in Batman?: Arkham Origins


Journey 的 sand rendering

http://www.gdcvault.com/play/1017742/Sand-Rendering-in

不過並沒有說物理


推薦閱讀:

如何從零開始寫一個簡單的遊戲引擎?
為什麼遊戲裡面人物的動作那麼的僵硬?
使一個3D引擎實現基於物理渲染(PBR)的材質的流程是怎樣的?
MOBA類遊戲是如何解決網路延遲同步的?
怎麼做硬核用戶方向的單機遊戲媒體?

TAG:遊戲 | 遊戲開發 | 計算機圖形學 | shader |