在 Blender 裡模擬煙霧與火焰的步驟如下:
- 建立模擬範圍(domain object)
- 設置冒煙(起火)物件(flow object)
- 設定煙霧(火焰)材質
- 模擬
- 著色
在物件模式中新增一立方體(或使用現有的立方體),將其縮放為適當的大小。選取立方體,到 Properties 視窗裡的 Physics 分頁,啟用 Smoke 模擬,在新出現的 Smoke 面板裡按 [Domain] 鈕,將立方體定義為模擬範圍。
注意在調整 domain 大小時要在物件模式中用縮放的方式,不能進入編輯模式調整,否則著色時會出問題。
下圖為頁首圖的 domain 物件設定。
Smoke 面板
- Resolution:模擬的細緻程度,Divisions 值愈高愈細緻,運算時間也愈久。
- Dissolve:啟用此選項煙霧會隨時間消失。
- Time:多久會消失,似乎是以影格為單位。
- Slow:Time 的倒數,啟用此選項煙霧會愈慢消失。
- Resolution:模擬的細緻程度再強化,Divisions 值愈高愈細緻,運算時間也愈久。
設置冒煙(火源)物件(flow object)
在物件模式中新增一網面物件,將其縮放為適當的大小。選取網面物件,將其移動到 Domain 中,再到 Properties 視窗裡的 Physics 分頁,啟用 Smoke 模擬,在新出現的 Smoke 面板裡按 [Flow] 鈕,將網面定義為冒煙物件,如下圖。
當網面模型被定義為 flow 物件,Blender 2.63 版會自動將該物件指定一組煙霧粒子(SmokeParticles)設定,這個動作在先前的版本必須要使用者自行完成。
下圖為頁首圖的煙霧粒子設定。
Emission 面板
- Number:發射總粒子數。
- Start:開始發射影格。
- End:結束發射影格。
- Lifetime:粒子壽命,以影格為單位。
- Random:亂數調節粒子壽命。
- Normal:粒子初始速度。
- Random:亂數調節粒子初始速度。
設定煙霧(火焰)材質
煙霧(火焰)的顏色由設定 domain 物件的材質來達成。選取 domain,為其新增一材質,材質類型選 Volume,並到 Density 面板將 Density 值設為 0,如下圖。
Shading 面板
- Scattering:數值愈大煙霧遮蔽的效果愈明顯,火光看起來愈暗。
- Emission:大於 0 才看得到煙霧及火焰。
- Step Size:數值愈小著色的結果愈細緻。
火焰紋理:再為 domain 材質新增第二個紋理,紋理類型選 Voxel Data。到 Voxel Data 面板裡的 Domain Object 欄位輸入 domain 物件的名稱。到 Influence 面板勾選 Emission 和 Emission Color,Blend 模式選 Multiply,如下圖。提高 Emission 值可增加火焰的亮度。
到 Colors 面板,啟用 Ramp,如下圖設定火焰顏色。。
模擬
將場景存檔,到 Timeline 視窗按 Play 鍵開始模擬;或選取 domain 物件,到 Properties 視窗裡的 Physics 分頁裡的 Smoke Cache 面板按 [Bake All Dynamics] 將模擬數據儲存到硬碟中,如下圖。Play 是把模擬數據暫存在記憶體中,離開 Blender 後數據就會消失;Bake 則以後還可取用。Start:模擬開始影格;End:模擬結束影格。
注意,若場景未曾存檔,Smoke Cache 面板會以淺灰色顯示,表示無法使用其功能。此外,模擬時只會看到煙霧粒子,火焰要經過著色才看得到。
著色
可選取單幅影格或動畫著色。改變材質設定不須重新模擬,但改變 particles 和 smoke 設定則需要重新計算。
References:
- Doc:2.6/Manual/Physics/Smoke - BlenderWiki
- MiikaHweb - Tutorial: Creating realistic fire in Blender 2.5
- Blender 2.60 Guide to Smoke & Fire Simulation
- Creating Realistic Fire in Blender 2.5 | Blender Guru
“此外,模擬時只會看到煙霧粒子,火焰要經過著色才看得到”按照您的指导做了,但是确实是烟雾粒子,怎么让火焰显色呢???
回覆刪除這有一點 tricky,關鍵是要設定 domain 物件(模擬範圍)的材質和紋理,發射煙霧粒子的網面物件反而不須有材質。
刪除