2011/08/20

Large scale smoke with Fumefx的設定技巧



Large scale smoke直譯為大尺度的煙霧, 指的就是像這些很濃很濃的煙霧, 或是爆炸含有火焰的那種煙霧. 這種煙霧在製作上面有些技巧, 過去也是困擾筆者許久. 這裡分享一下FumeFX使用心得並作為日後使用的參數筆記.

先來回顧一下之前失敗的經驗吧!
首先看用FumFX的測試, 通常會做出來像這樣, 絲狀的煙霧感, 其實很容出來.

這是很認真要做出厚重的煙, 它可以一開始很厚重, 但是過了幾個frame後就又變回絲狀感.

拿別人調好的Large scale smoke場景來用, 如果直接用的話當然可以做出來(但是要算很久), 自己降解析度的結果也就像這樣, 不甚理想.

如果不是像像絲狀的煙, 就會變得像棉花球的樣子, 真是兩個極端阿~

如果是像這樣的話, 則是完全失敗的, 完全沒有厚重感. 這是初學者幼稚園般的程度XD. 不過話說回來, 某些狀況這種輕煙十分合適.

接著, 筆者就把希望寄託在同家公司的產品---Afterburn身上, 以下是測試效果:

Afterburn的某些參數特性, 其實可以調出相當不錯的效果, 比說說這個地雷爆炸的煙.

Afterburn的缺點是動態會比較不自然, 畢竟它的動態是靠粒子來驅動的. 用在靜態圖像有兼顧速度與品質的優勢.

細節畢竟是有, 但是還是不很自然

像這種濃煙效果, 用Afterburn頗為合適

後來ChaosGroup公司推出了新的煙霧火焰外掛Phoenix FD, 筆者跳下去給它嘗試一下:
剛開始對參數不熟悉, 請問這是發霉的香菇嗎?

失敗的核爆效果

嗯, 有那麼一點樣子了, Phoenix FD有潛力

用Phoenix FD做濃煙效果, 跟FumeFX的感覺不太一樣, 有點類似Afterburn的僵硬感.

厚重有達到, 還是很僵硬阿

如果煙弄的比較淡, 它的細節就沒有出來.


不適合用在濃煙, 用在爆破卻十分合適, 讚喔~ 而且是跟VRay同一家公司出品, 相容性很高.

跟FumeFX相比, 因為Phoenix FD 有一部分的細節要靠Displacement, 所以往往會渲染很久.

測試的後期, 效果已經相當理想了!


這樣的效果已經可以稱得上是Large scale smoke的要求了!

做一點不同的變化



最後來個橫向煙霧的效果, 細節, 寫實度都有達到了, 唯一缺點是, 這張渲染要八分鐘呀.

直到最近由友人Slayer提供做好的Large scale smoke場景檔, 經過筆者最佳化過後, 最後算出這樣的效果:


(鋼彈模型由阿德提供)

-----看完了以上艱辛的測試過程, 我們進入正題-----

怎樣做出厚重又帶有細節的濃煙?

打開3ds max首先要注意的就是尺度, 既然是大尺度一定是以公尺為範圍. 尺度不對自然就很難模擬出來想要的效果.

再來直接進入到FumeFX的設定

勾選Adaptive, 調高Sensitivity, 這樣會比較節省cache大小. Exporting Channels有Fuel與Smoke. 這樣的解析度, 600張frame總共要花約6個小時. 平均一個小時算100張. 如果算動畫要模擬的話, 大概就要晚上睡覺的時候來算吧!

說到Simulation的部份, 把Maximum iteration 降到100. Time Scale與Gravity都調整到不合平常物理的高數值. 之前的"FumeFX製作煙霧參數使用技巧"有提到, 這兩個數值要提高, 細節才比較容易表現出來. 要注意的是Gravity這邊如果我們希望煙霧往橫向移動, 要另外添加FumeFX Gravity Vector才能控制往橫向移動. Vorticity則是渦度, 數值越高的話, 會產生比較多細節與絲狀的煙, 注意數值不能為1, 否則它會變到十分的粉狀.

Fuel燃料的模擬, 這邊箭頭所指是所有設定的最關鍵的參數. 簡單的說就是不要讓發射器(emitter)一開始就發射smoke, 而是讓燃料(fuel)達到它的燃點(Ignition), 經過燃燒(Burn)後, 再產生煙霧. 這是整個Large Scale Smoke設定的最重要觀念. 而這燒燃燃料隨之產生的煙濃度是由Smoke Density密度所決定, 設為25(高一點才會有濃煙的效果).

Smoke的 擴散(Diffusion)設為0, 目的是讓煙霧在飄散的過程時不要過為分散.

FumeFX算圖的部分
煙霧的不透明度(Opacity)設定為2.48, 曲線則是如圖設定. 勾選Cast Shadow與Receive Shadow. 把煙的顏色設為灰色(

Lighting照明設定
因為我都是用Scaline來算煙霧(因為比較快), 所以如果要有間接照明的話就要用補光的方式造假出來. 主光打一盞偏橘的Direct Light, 強度設為2; 另外一盞補光是Omni light顏色為淡藍色, 強度為0.3.

主光Directional Light設定

補光Omni Light設定

如圖, 補光就是要彌補主光照不到的陰暗面.

上面的算圖設定是針對沒有火焰(fire)的狀況, 如果有渲染火的部份, 筆者可能會用Mental Ray來處理, 因為MR會根據火焰來產生全局光照(GI)效果, 效果會比較寫實.

如果要渲染火焰, 把Fire選項打溝外, Opacity設定為0.305, 漸層設定為橘色, 暗紅色, 黑色, 黑色.

火焰透過煙霧的透光效果則是可以用Multiple Scattering的參數來處理
Smoke Strength設為0.1. Falloff越小則透光越明顯.

最後, Emitter的設定可以參考以下

而是實際在用Scaline算圖, 解析度為1280X720, 450個frame耗費了多少時間算圖呢?才花了75分鐘. 換句話說一個frame平均才花10秒而已, 夠快吧!

以上, 各位可以也來試試看~

------設定解說完畢-------