薛山
要說Blender硬件開銷最大的功能,物理模擬系統(tǒng)基本上穩(wěn)坐第一把交椅,由于需要計算大量參數(shù),因此物理模擬,比如火焰、煙霧或液體效果都需要很長的時間來進行數(shù)據(jù)烘焙,然后還需要重新設(shè)置材質(zhì),這還沒完,最后還得經(jīng)歷漫長的渲染才能看到結(jié)果,這也是很多人更青睞EmberGen等第三方火焰煙霧模擬軟件的原因。但其實至少在Blender的渲染階段,我們可以拋棄Cycles渲染器,選擇開銷更低的EEVEE,那么問題來了,EEVEE渲染器要怎樣設(shè)置才能得到幾近真實的火焰燃燒效果呢?
準確來說,我們需要使用的是Blender里的“流體”物理模擬系統(tǒng),這套系統(tǒng)最基本的構(gòu)成就是作為發(fā)射源的“流”和控制物理效果范圍的“域”,本期教程我們就只需要用到這兩個構(gòu)件。
為了方便演示,我們使用一個經(jīng)緯球作為“流”,使用一個立方體作為“域”。經(jīng)緯球的“流”設(shè)置我們要選擇“火焰”,流動行為選擇“流入”,這個設(shè)置會讓它一直保持“燃燒”。而立方體的“域”設(shè)置要選擇為“氣體”,一旦正確設(shè)置就可以看到模擬效果出現(xiàn)在3D視圖區(qū)域了,這時候還需要繼續(xù)設(shè)置,首先,緩存默認會放在C盤,如果你C盤空間吃緊就需要自定義位置,但注意,自定義的硬盤位置目錄不能帶中文,Blender會無法識別,建議在盤符根目錄新建一個專用的“Cache”文件夾來放緩存,除此之外還要把緩存類型修改為“模塊化”并勾選“是否可恢復(fù)”。
接下來還需要調(diào)整細分精度,建議設(shè)置到128以上,這樣得到的火焰效果才更真實,同時氣體的密度浮力可以下調(diào)到0.5,可以獲得更快燃燒的效果,然后就能點擊烘焙了,具體設(shè)置可參考圖1。
完成第一步之后如果我們直接切換到材質(zhì)預(yù)覽或渲染視圖,你會發(fā)現(xiàn)啥都看不見,這是因為“域”的材質(zhì)不對。在著色器編輯器里,我們先刪掉默認的“原理化BSDF”,選擇“原理化體積”連接“材質(zhì)輸出”的體積,這時候只需要把“黑體強度”增加到5或更高,就能得到如圖2的效果了。
可以看到,這個“火焰”效果雖然出來了,但觀感其實比較一般,所以接下來我們還需要再一步進行優(yōu)化處理。
在“渲染屬性”里,我們把采樣率增加到200,然后選中“環(huán)境光遮蔽”“輝光”“屏幕空間反射”,再進入體積菜單,把平鋪尺寸降低到2個像素,接著就是最重要的,把“起始”和“結(jié)束點”與相機位置進行匹配,比如相機與“域”的距離是7米,我們就把起始設(shè)置為6米,結(jié)束點設(shè)置為8米,這樣設(shè)置是因為EEVEE的體積計算其實是一層層地貼圖,同樣的128層采樣,在我們把范圍大幅縮小后就全部用到了發(fā)光源上,效果會更有層次感,具體設(shè)置參考圖3。
這時候我們放大查看火焰效果,你會發(fā)現(xiàn)邊緣位置存在過渡生硬的問題,而發(fā)生這個問題的根源在于“原理化體積”的“黑體強度”是整體增強,而顯然火焰的邊緣亮度應(yīng)該是呈坡度下降的,而且顏色也過于統(tǒng)一,沒有燃燒中心亮、邊緣偏紅的特點。
為了解決這個問題,我們需要回到“域”的著色器修改器,把“原理化體積”的“黑體強度”調(diào)整為0,然后新建一個“屬性”,填寫“flame”,這個屬性是在流體物理模擬后自動生成的,也就是系統(tǒng)會自動把火焰屬性給抽出來,讓用戶可以單獨使用。
這時候我們只需要將“屬性”和“顏色漸變”“自發(fā)光”連接,再將“自發(fā)光”和“原理化體積”通過“相加著色器”進行混合,就能獲得如圖4的效果了。我們也制作了直接連接“原理化體積”的“黑體強度”的效果對比,無論火焰邊緣還是顏色都無疑是調(diào)整后的效果更好。
修改著色器后(左圖)效果明顯比直接使用“黑體強度”(右圖)更加出色
按照我們的設(shè)置,EEVEE渲染器的火焰效果輸出全高清分辨率的1幀只需要10秒左右,而切換到Cycles渲染器,即便把噪波閾值拉高到0.1且采樣精度只有1024,1幀也需要超過30秒,而且從視覺效果來看兩者并沒有質(zhì)的區(qū)別,所以正確的EEVEE渲染火焰效果可大幅提升工作效率,非常值得大家學(xué)習(xí)。