Blender 3D:從新手到高手/理解流體模擬器
當我第一次接觸流體模擬器時,我很難理解它的行為,尤其是開始時間和結束時間似乎毫無意義。在 Google 上搜索後,我發現許多人難以弄清楚流體模擬背後的秘密,而且我沒有找到任何真正有用的指南。在這個簡短的指南中,我將嘗試以新手友好的方式解釋它。它可能並不完全正確,但它可能有助於新手理解它的工作原理。
開始時間和結束時間是以秒為單位的。不要忘記這一點。即使你的模擬在你將開始時間設定為 0,結束時間設定為 10 並在你的動畫中設定了 250 幀,每秒 25 幀時看起來非常快,也有一定的原因。現在,只需記住這一點,不要讓你的思緒飄忽不定,認為這些值是毫秒,或者你必須進行一些關於幀的乘除運算。
還要注意,域是整個流體計算的包圍盒。所有內容都在這個盒子裡面完成。它充當所有流體的底面、頂面和牆壁。這一點非常重要,因為這是我無法獲得良好流體模擬的最主要原因。如果我有時間,我會做一個關於 Fluid > Control 的章節,但現在,我會說它會增加大量的計算時間。在我使用 I7、ATI Radeon 8970 影片卡、Asus P6X58D Premium 主機板、64 位 Windows 7 和 64 位 Blender 的情況下,我在使用最低質量設定時崩潰了我的電腦。所以請記住,域必須包圍你進行計算的區域。還要注意,在你設定好模擬之後,域會變成實際的液體,所以請賦予它適當的材質,並嘗試不要在確信模擬之前進行烘焙。
我們將以實踐的方式學習流體的工作原理。平面
- 從預設的盒子開始,這個模擬將非常簡單。
- 讓我們線上框模式下工作,按Z 鍵關閉實體模式。
- 透過按數字鍵 0進入相機檢視。
- 選中盒子後,按S 鍵,然後按2,再按回車鍵,將其放大兩倍。這樣可以很好地匹配相機。
- 按數字鍵 7檢視俯檢視。
- 選中盒子後,按Shift-D(不要移動滑鼠,否則複製的盒子會移動),然後按回車鍵確認複製的盒子的位置。如果你確實移動了盒子,只需按Esc 鍵,新盒子就會保留,但移動操作會被取消。
- 在選中新盒子(並且它與另一個盒子處於完全相同的位置)時,按S 鍵,然後按.5,再按回車鍵將其縮放到一半大小。
- 遠離滑鼠,這裡準確性很重要,稍後我會解釋原因。
- 現在我們要將新盒子移動到其中一個上角。按G 鍵,然後按X 鍵,輸入-1,按回車鍵,盒子應該移動到我們較大盒子的左側牆壁。
- 我們要將盒子放在角落,所以按G 鍵 Y 1 回車鍵,盒子現在應該從我們當前的檢視中位於左上角。
- 然而,我們處於三維空間,而不是二維空間,所以點選數字鍵 1檢視側檢視。這次我們將沿著 Z 軸向上移動盒子:G Z 1 回車鍵。
- 很好,我們的設定已經完成。
- 確保你處於物體模式,並且你精確地按照上述步驟操作。
- 選中較小的盒子並點選F7 兩次。你應該會看到一個面板,其中最右邊的窗格顯示“流體模擬”。點選啟用。
- 我們的一個小盒子將是流體,所以只需點選流體按鈕。這就是關於小盒子你需要做的所有事情。
- 現在選中大盒子。物理面板應該仍然可見,點選流體模擬窗格中的啟用,然後選擇域。
- 預設情況下,你的動畫應該有 250 幀。渲染也應該預設設定為每秒 25 幀,本教程假設這種設定。
- 由於我們有 250 幀,每秒 25 幀,這意味著我們的動畫時長為 10 秒。所以現在進入棘手的部分,但實際上並不難。
- 開始時間預設設定為 0 秒。這意味著在第一幀時,模擬剛剛開始。你可以將該值增加到 1 秒,這意味著在第一幀時,流體模擬已經運行了 1 秒。我們不想這樣做,所以將其保留在 0 秒。
- 結束時間預設設定為 0.3 秒。這意味著什麼?這意味著在第 250 幀時,模擬已經運行了 0.3 秒。然而,預設情況下,我們的動畫有 250 幀,每秒 25 幀,這使得這 0.3 秒在 10 秒內被拉伸。基本上這意味著我們正在慢動作觀看節目,或者略小於即時速度的 1/33。所以現在你可能會想“看起來很即時”,是的,確實如此,但它為什麼這樣做?好吧,很難解釋。考慮一下:在一個沒有摩擦力的世界中,一滴水在 1 秒後會下降多遠?答案大約是 4.9 米。因此,如果一滴水從 4.9 米的高度落下,它需要 1 秒才能落到地面。如果水滴從 3 釐米的高度落下,它需要多長時間才能落到地面?大約 0.078 秒。那麼我為什麼要提到 3 釐米?因為預設情況下,我們域的大小是 3x3x3 釐米,或者說非常小。如果你像我一樣,你可能一直認為流體是在浴缸或桶中流動,而不是在蛋糕包裝中流動。將結束時間設定為 10 秒。
- 由於我們的想象力喜歡大的事物,讓我們將這個蛋糕升級到,比如,一個游泳池。確保在物體模式中選中大盒子,並檢視流體模擬窗格。在“烘焙”按鈕的左側應該有另外 3 個按鈕,可能分別命名為“St”、“A”、“B”。點選A 檢視高階選項。
- 應該會顯示一些新框,重力(應該在 Z 軸上為 -9.81,其他為 0),水,以及我們正在尋找的選項“真實世界大小”。還有網格級別和壓縮性,但現在我們不必關心它們。
- "真實世界大小"的值表示我們的域以米為單位有多大,如你所見,預設情況下它是 0.03 米,即 3 釐米。我們想要它很大,所以將其提高到 10,這是 Blender 2.45 的限制。現在我們的游泳池是 10x10x10 米(不要淹死!),記住這一點,因為流體的尺度很重要。不要以為我們又開始玩蛋糕了:)
- 現在點選烘焙,並在電腦處理 0 和 1 的同時繼續閱讀。
- 還記得我告訴你關於放置第二個盒子要非常準確嗎?我還談到了重力、落下的水滴等等?好吧,現在你將看到原因。
- 如前所述,我們的“游泳池”是 10x10x10 米。我們新增的較小盒子大小正好是一半(嗯,在長度/寬度/高度方面,不是體積),即 5x5x5 米。還記得一滴水在 1 秒內會落下 4.9 米嗎?我們的動畫每秒 25 幀?這意味著我們水滴的底部將恰好位於“地面”上方 5 米,並且在 25 幀後,我們的水應該非常接近地面。
- 如果你有一臺速度快的電腦,Blender 現在應該已經完成烘焙。轉到第 25 幀,例如使用箭頭鍵(向上/向下移動 10 幀,向左/向右移動 1 幀)。仔細觀察水滴,然後向前移動 1 幀。注意到水滴如何撞擊地面了嗎?想起來了吧?:)
- 雖然我們還沒有完成!我們必須渲染我們的游泳池。這很簡單,但需要時間,按Ctrl-F12 然後去做飯。
- 渲染完成後,按Ctrl-F11,並想象一個 10x10 米大的游泳池。如果你當地的游泳池也像這樣,你可能想照看一下你的孩子。
比例很重要。在非常小的尺度上理解流體動力學非常困難,尤其是在你不知道使用什麼尺度的情況下。許多指南似乎都省略了“真實世界尺寸”的值,我建議你將其設定為你可以理解的值,否則你最終會得到看起來非常慢/快或具有結束時間值的模擬,這些值似乎毫無意義。此外,我不是數學天才,據我所知,我的解釋可能完全錯誤,雖然這種方式使這些值對我來說有意義,而且我能夠進行流體模擬而不必對結束時間的值進行“猜測”。
這個關於流體的 YouTube 教程可能也有幫助: 連結 和這個 逼真的水紋理
- Youtube: 不同解析度和真實世界尺寸值的比較