有一段時間我一直試圖用我從"Real-Time Fluid Dynamics for Games"找到的算法來模擬流水。麻煩的是,我似乎沒有用這些算法去解決水樣問題。用網格進行水模擬
我自己我想我做錯了什麼,這些算法並不都適用於水狀液體。
我在做這些算法的錯誤是什麼?這些算法是否正確?
我有關聯的項目bitbucket repository。 (要求gletools和最新pyglet運行)
有一段時間我一直試圖用我從"Real-Time Fluid Dynamics for Games"找到的算法來模擬流水。麻煩的是,我似乎沒有用這些算法去解決水樣問題。用網格進行水模擬
我自己我想我做錯了什麼,這些算法並不都適用於水狀液體。
我在做這些算法的錯誤是什麼?這些算法是否正確?
我有關聯的項目bitbucket repository。 (要求gletools和最新pyglet運行)
基於體素的解決方案適用於模擬液體,並經常用於電影。 Ron Fedkiw's website給出了一些學術實例 - 所有那些都基於網格。該代碼支持皮克斯和ILM使用的許多模擬。
一個很好的來源是SIGGRAPH的Robert Bridson的Fluid Simulation course notes,他有一本書"Fluid Simulation for Computer Graphics",詳細介紹了開發液體模擬器的經過。
我可以給你的問題最具體的答案是,斯坦的遊戲實時流體是專注於煙霧,即。流體(水)和外部空氣區域之間沒有邊界。基本上煙霧和液體使用相同的底層機制,但對於液體,您還需要跟蹤液體表面的位置,並在表面上應用適當的邊界條件。
你試圖模擬什麼類型的水?波紋或流動液體的水池?
我不認爲我曾經見過流水,除了在渲染電影。漣漪水相當容易做到,這個網站通常會在這類問題中出現http://freespace.virgin.net/hugo.elias/graphics/x_water.htm
是的,這種類型的基於體素的解決方案只有在液體被限制在非常離散和靜止的邊界時才真正起作用。
爲了模擬流動液體,對粒子進行一些調查。最近在GPU上加速了很多進展,你可以得到一些驚人的結果。
看一看,http://nzone.com/object/nzone_cascades_home.html就是一個很好的例子。
Cem Yuksel在SIGGRAPH 2007上發表了一篇關於他的Wave Particles的精彩演講。他們以相當低的成本給出了非常實際的效果。他甚至能夠模擬像箱子和船隻這樣的剛體的相互作用。另一個有趣的方面是船的運動不是腳本化的,它是通過螺旋槳與流體的相互作用來模擬的。
Cem Yuksel's Wave Particles http://www.cemyuksel.com/research/waveparticles/title.jpg
在會議上,他說,他計劃發佈的源代碼,但我還沒有看到任何跡象。他的網站包含他在會議上展示的全部文章和視頻。
編輯:剛剛看到您的評論,關於想模擬流動的液體,而不是漣漪池。這不適合於此,但我會將其留在這裏以防其他人發現它有用。
流動液體,漣漪池是相當微不足道的,即使很酷,我會知道如何模擬這些已經。 :> – Cheery 2009-02-17 10:01:15