流體模擬的問題以及為什麼它很昂貴?

目標是對每秒 60 幀的特寫鏡頭進行 10 秒的高度詳細的流體模擬。

在花了大約一天的時間對 MantaFlow 與 Flip Fluis 進行實驗和比較後,我選擇了後者,因為 MantaFlow 的行為非常不可預測,這取決於解析度。

我計算出水會在 50 幀內到達水池表面 + 您需要 10 秒的 60 fps 動畫本身,這會導致模擬 650 幀,分辨率為 1.5 億體素。 Ryzen 3700x 上的模擬花了 5 天。

此外,如果 FlipFluids 中的幾何體多邊形太高,攪拌器會在渲染中崩潰。我實在不想再用更低的解析度模擬一遍,再等幾天。我花了幾天時間尋找問題的解決方案,甚至開始考慮回到 MantaFlow。

我將場景從 Cycles 重新配置為 Octane Render,問題仍然存在,所以我決定返回 Cycles。

一般來說,Blender 可以很好地處理大量多邊形,問題在於 FlipFluids 幾何體。插件開發人員在他們的 GitHub 上承認了這個問題,並寫道它是在 Blender 端,因為它不能很好地處理用 Python 或類似的東西製作的 HighPoly 幾何體。

我決定嘗試將幾何圖形匯出到 Alembic,以便隨後將其匯入回來,所以應該不會有任何問題。我嘗試以不同的方式導出,但總是以攪拌機崩潰而告終。一次出口甚至需要一天以上的時間。

然後在一個美國論壇上我找到了一個解決方案,據說在導出之前的幾何體中你只需要交換修改器並將Smooth修改器放下,之後FlipFluids幾何體就可以快速導出到Alembic。有效。我將幾何體匯出到 Alembic,在渲染和視窗中隱藏原始 FlipFluids 幾何體,但保留氣泡和泡沫,然後匯入 Alembic 幾何體。

讓我驚訝的是,Alembic 幾何體保留了速度訊息,水面上的 MotionBlur 工作正常,場景不再崩潰。更準確地說,它不是立即起飛,而是稍後了一些。

我啟動了渲染,第二天大約一百幀後它就崩潰了。很正常,你可以活下去,我剛剛從停止的地方重新啟動了渲染。

在噴射與水面的接觸點,液體看起來是黑色的。根本不是「藍色潟湖」。問題在於 PathTracing 技術的限制。這個地方有大量來自水面和氣泡的反射和折射,渲染器最多計算 12 次反射,然後繪製黑色。當然,您可以設定不是 12,而是 128、1024 等,但這樣我們將等待幾個月的渲染結果。因此,我在氣泡中添加了綠松石色自發光,並在水本身中添加了 10 倍的相同自發光。門框消失了,渲染時間沒有改變。我從頭開始渲染。同時,我決定不從第 50 幀開始,而是從第 100 幀開始,此時水面上已經可以看到振動。我還為光源添加了亮度,並為水面添加了一點霧氣。

經過一段時間的測試,我注意到在 Blender 3.5 中,場景的表現比 3.6 版本穩定得多,所以我決定繼續使用它。 Mix 卡的材質必須重新配置,因為在 3.6 版本中它的工作方式有所不同,並且必須重新渲染第一幀,因為現在某些材質看起來有點不同。

又一天后,我查看了生成的動畫的前幾秒,發現植物沒有按照我計劃的方式在風中搖擺,樹枝上沒有紋理,草也消失了。問題是我在筆記型電腦上做這個項目,在PC上進行模擬和渲染,而在3.5版本的PC上,有一個舊版本的植被插件。重新安裝植被插件,重新配置植被。重新安裝了草地插件,重新配置了草地。我將動畫設定為再次渲染。

我發現了 Batch Render Creator 程序,多虧了它,渲染過程中的崩潰次數減少了更多。

從這個角度看,在水流出的黑暗裂縫附近,自發光看起來不太好。不幸的是,攪拌機沒有距離貼圖,這在 3ds Max 和 Corona 中可用,因此您必須再次渲染沒有自發光的版本,並在 AfterEffecs 中混合它們,以便在區域中沒有自發光差距,但在其他地方也存在。

還有其他問題,例如攝影機位置,因為我將動畫的起始位置從第 50 幀移到了第 100 幀,而且我還必須重新渲染其中的一些問題。我必須修改幾何節點來切斷靠近水的底部,因為我沒有對水池的整個深度進行模擬。

為了回應那些從未做過這樣的事情但相信在Houdini 或PhoenixFD 中問題更少並且一切都可以更快完成的潛在批評者,我建議您首先進行150+ 百萬體素模擬並將其渲染在GPU上動畫植被和位移,然後寫下你花了多長時間以及你遇到了哪些細微差別和不相容之處。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *