圖形學中的高逼格物理模擬動畫是如何渲染出來的?
題主最近在做流體模擬方面的探究,很多流體模擬都是基於粒子的,所以我一直都是在opengl中顯示粒子狀態下模擬的結果。閱讀文獻時,看到文章中的渲染結果,感覺逼格賊高。所以想問下,他們是怎麼從粒子渲染出那樣酷炫的效果的?有沒有相關的教程可供大家學習的?
J. Yu G. Turk / Reconstructing Surfaces of Particle- Based Fluids Using Anisotropic Kernels
這篇文章是目前的State of the art, studio里都有自己的實現。
Houdini里一般用vdb_from_particle_fluid一類的簡單levelset重建。
之前參與了銀翼殺手2049,分享一些流體技巧:
場景大小對流體的製作方法影響很大,一般小規模的水流或者水滴是把粒子轉變成poly,其他答案已經提到了。規模較大的流體(比如瀑布,噴濺,有互動的海水)一般是許多元素混合出的效果,以下幾種方法可能混合使用(軟體Houdini) :
- particle convert to poly(particle fluid surface) : 有可能會基於vel或者density控制轉換後的形狀
- particle to vdb to poly (vdb from particle fluid) : 不同方法但原理一樣
- vex控制,根據密度拆分,低密度散濺的粒子copy stamp sphere,大密度的轉換成poly或者vdb同上兩種
然後流體本身的render pass:
- render as liquid: 以上結果正常方法渲染
- render as volume: 以上結果按volume渲染
- render as mask: 根據vel生成黑白遮罩,合成時根據這個來把水的volume合進去,給水增加體積感
-以及額外可能產生的各種pass
基於particle的結算進一步加入white water:
- particle render as volume(foam、bubble、spray): 粒子做volume渲染增加泡沫、噴濺細節
- particle render as partile: 粒子直接做粒子渲染,進一步增加流體細節
繼續加入水霧和煙霧(mist/smoke)
以及每個element設定各種AOV給合成用。
另:以上一切基於好燈光、合成和給力的機器。
不足之處歡迎大家指正,謝謝。
最近正在做fluid fx 強答一發(*′?v?)
houdini裡面一般可以轉化為levelsets然後smooth後轉化為polygon進行渲染
核心:數學公式
推薦閱讀: