2016/04/19

教學: 用PhoenixFD 2.2製作燒香煙霧


文 / Hammer Chen

有FumeFX用戶問我,FumeFX在市場這麼久了,火焰煙霧爆破這些都可做,為何要用PhoenixFD呢? 這裡我們就介紹一個範例,只有PhoenixFD做得到 (至少用FumeFX很難達到同樣的細節控制)。 這個教學我將說明製作燒香的煙,適用於香菸或是熱咖啡上的細煙效果。 這個範例強調了PhoenixFD 2.2的一個強處,就是能直接渲染粒子(類似於Krakatoa這樣的particle算圖器)。


整體設置:
首先看場景的整體配置,主要的模擬範圍是PhoenixFD Simulator,一個粒子來源(PHXSource),一個PHXFoam(用來處理粒子的shader),一個風Wind將將煙吹到左邊,一個背光。

1. 單位設置:

所有的物理模擬最重要的步驟都是單位設置,因為單位會明顯地影響物理運算結果。因為一把香的大小是在公分的範圍內,因此我們到Customize / Unit Setups 將單位與尺寸設定為公分。

2. 放置物件
我們需要一個3d 物件作為煙霧粒子的發射來源,如圖中的小環約為2公分見方大小。

3. 設定PhoenixFD Simulator
至Create Panel / PhoenixFD / PHXSimulator,在場景中拖拉出PHXSimulator,恰恰好包含住香的幾何體(如步驟2圖示),然後如上圖設置參數。由於PhoenixFD支援真正的自適應grid,我們不需要把grid設定到超大的範圍。將Adaptive Grid設定為偵測Speed。Cell size 決定模擬的解析度,可根據你的需求調整大小。Time Scale 設定為0.6讓煙霧稍微慢動作。Quality調高至50,Method改為Multi-Pass。建議可嘗試變換一下Material transfer的method,在本例中Symmetric配合Multi-Pass可獲得不錯的模擬結果。Output中勾選Velocity是方便日後做Resimulation用(類似於FumeFX中的wavelet的概念)。

4. 設置粒子來源
到Helper / PhoenixFD 在場景中創建PHXSource物件 (長的像汽油桶)。然後在選單中用Add添加場景你想要產生粒子的mesh。將Discharge 設定為5,這個參數控制發射的速率。Temerat. 設定為500 (室溫為300K) 我們設置高一點點讓煙會自然像上飄。勾選Particles設定為1200 (這控制粒子數量,建議由數字小的慢慢往上加)。,這時候你可以到PHXSimulator,按下Start開始模擬,看一下效果。

5. 設置Particle shader
在PhoenixFD中,粒子的渲染是透過PHXFoam helper所控制的。我們到Create panel / PhoenixFD  在場景中拖拉出PHXFoam helper。這時候你要手動加進PHXSimulator,請到General底下的None按鈕添加場景中的PHXSimulator,這樣我們就手動地讓PHXSimulator - PHXFoam helper彼此能夠溝通資訊。這裡最重要的參數是Size multiplier。控制了粒子的大小。我們希望粒子越小,可是當粒子變小,就越不容易看到煙,就需要再調高粒子的數量。因此,粒子大小 - 粒子數量 這兩個參數是我們調校的重點。本例中筆者最後決定的尺寸為0.01,數量為1200。

如圖,粒子越大,效果越明顯,當然顆粒感也越明顯,有用過Krakatoa的應該有這樣的經驗。

motion blur也可以消除粒子的顆粒感,因此我們在選單中刻意選取motion blur / force on強制動太模糊,這樣在算圖時就會產生效果。

Mode模是我們選取point,這樣就只會渲染點,如果你切換成bubbles就會算出泡泡,當然這要看你的需求而定了。

5.燈光
場景中我們放置一盞Direct light,勾選Shadow,且務必勾選Atmosphere Shadows。

5. Wind 可依照你需求在場景中放置風力。與FumeFX不同的,你不需要將風加入PhoenixFD Simulator中,預設就會產生作用了。

6. 模擬後增加粒子 (本步驟可省略)
如果你希望像FumeFX透過wavelet事後增加細節的話,PhoenixFD也提供稱之為Resimulation。只需要勾選Enable,設定放大倍率Amp. Resolution。本例用的方法是內插法Intepolate (無須wavelet channel資料),然後再按一次Start模擬一次就可以了。與FumeFX不同的是,一旦你勾選了Enable,PhoenixFD就會自動讀取Resimulation的cache,你不需要額外進行切換cache的動作,相當方便。

7. 好的模擬需要反覆地測試抓到最佳的數值,本例中粒子數目要夠多,但是太多算圖又會變慢,花時間抓到motion blur - particle size - particle number這三個鐵三角,是最大的重點。(完)


[相關資訊 ]
Phoenix FD 與 FumeFX 比較表

PhoenixFD 2.2 for 3dsMax實測報告

No comments: