1. 程式人生 > >海水虛擬模擬技術(完整版)

海水虛擬模擬技術(完整版)

**由於頭條號連結出現問題,現將內容遷移過來**

虛擬海水模擬技術一直是虛擬領域研究的難題,海水模擬在遊戲開發、虛擬海戰、航海模擬等應用的非常廣泛。許多科研機構也投入了大量的資金和人員去研發。筆者自己研發了一個關於海水實時模擬的引擎,基於GPGPU實現的,效果可以達到CG的水平。在其中運用了大量的數學運算,如何更逼真的實現海水的模擬,重點需要解決幾個重點問題:
第一、是模擬真實海水在不同氣候下的海浪效果;
第二、是要模擬真實海水的高光、反射以及折射效果;
第三、是要模擬船在海中航行的軌跡效果;
第四、是海水中的物體隨海浪滾動自由上下浮動
第五、是解決海水靠近岸邊有層次的滾動
筆者實現的海水引擎也是圍繞這五方面的技術實現的,在給讀者說原理之前先展示一下海水的效果圖片,圖片對應的也是上面五個技術點。
圖片描述


模擬海浪效果圖
圖片描述
船在海水中航行軌跡效果圖
圖片描述
海水的反射折射效果圖
圖片描述
隨海水上下浮動效果圖
圖片描述
海水靠近岸邊呈現效果圖
該海水模擬實現的步驟如下所示:
1、在CPU中進行初始化工作,申請記憶體,動態的生成海水網格。
2、在GPGPU中計算海浪的生成,採用的是平行計算。該演算法是基於FFT的改進演算法Gerstner waves實現的。
3、接下來利用傅立葉變換和統計波模型計算海浪產生的高度場。
4、生成波濤洶湧的海浪效果,這個主要是實時模擬浪花,泡沫,飛濺等效果,求解雅可比矩陣公式計算得到。
5、最後使用GPGPU對海水的高光、反射以及折射效果進行渲染。

最後歡迎訪問IT小屋:姜雪偉個人主頁