編譯:Hammer Chen
上圖出現像素狀,詭異的水平垂直線條,是使用FumeFX常見的錯誤。
Quality品質 定義出模擬效果的寫實度,數值越高寫實度就越高。但也表示需要更多的計算時間。有時這是必要的,對於移動快速的物件越需要提高這個數值。
越高的數值,解算器就需要越多的迭代計算(iterations)才能達到更高的精確度。 別忘了 ,使用越高的Quality數值,你必須要把Maximum Iterations的數值調的夠高,否則不會得到更高品質的效果。(譯者註: 比方說你用Quality=5, 然後你進行模擬 ,注意觀察FumeFX的log資訊 ,如果它每次的迭代(iterations)都到達它最高數值(Maximum Iterations),就表示它被最高數值給限制住了,無法發揮它最佳的表現,這時候你就要把Maximum Iterations數值提高)
你可以參考log資訊中的“CG done with nnn iterations” 看它迭代計算的數值有沒有達到上限了, 如果有的話就代表到頂了, 你應該要把上限提高。
如上圖中的log資訊,iterations只達到37而已。
Maximum Iterations最高迭代次數 解算器並不需要太多次的迭代才能得到好效果 。對於小的grid大概需要20-30次, 對於比較大的grid大概需要100次。 如果移動很快的物件, 也需要到100次。 下圖我們是用Quality=5 100 iterations做出來的效果。
CFL Condition 這個參數定義cell資料(速度、煙、火等等)的最大移動距離。 一般來說這個數值設定為4~5左右,除非你模擬出現顆粒感。 你也可以用更高的數值, 如果你把數值設的比較小, 你可能會看到模糊的結果。
Advection - Default 適用於大部分的狀況
Advanced (fields) advection
用這個會產生比較低的消散現象(dissipation)。這會影響火焰、煙霧、 溫度等參數, 但不會影響速度。
Advanced (fields and vels)
會影響到所有: 包含了速度。這個選相對於移動緩慢的流體。 具有很多不同移動速的的場(火焰、煙霧、溫度)會容易導致像素化(線條與十字的錯誤,這個錯誤譯者也常常遇到!) 這個選項能夠產生許多小細節, 所以你可以把vorticity調到0.1也沒問題!
小技巧:如果你出現像素化的錯誤,首先不要慌,你可以把grid sensitivity調低,甚至改成0.0 。這會把像素化的問題修的平滑一點, 如果沒幫助的話, 你可以切換到Advanced (fields) advection 或是增加solver Quality。
流體水平運動(Advection Stride)
這個數字越小, 對於速度與煙霧就有越小的消散 ,但會花更多時間計算
小技巧: 如果你希望煙霧有很多小卷卷細節的話, 你可以把這個數值降到0.1或是更低的數值。
以下是與是站長與網友的對話:
Q: 這篇教學超棒的!!Fumefx但我即使調了,還是會遇到一樣的問題
A: 是不是iteration不夠?
Q: 我目前Interation 是設成300,我卡在沒辦法一次就算到很細緻的spacing grid
A: 你的Quality=5 ,可以試試看把Quality提高
Q: 好! 我試試看
我改成10 在preview下用5看,變得很好!
A: 恭喜你! 你觀察log的iteration數值, 如果沒有到頂, 那就ok了
不必把quality設到太高
Q: interation上面顯示300,這是頂到我的spacing的意思嗎?
A: 當iteraion等於Maximum Iterations的數值, 就代表到頂了
Q: 目前好像都維持在300以下, 所以我應該可以保持這個數字繼續算下去?
A: 那就把Quality往下調, 調到剛剛好到頂
Q: iteration這個數值, 翻譯是交互作用, 但實際上它是甚麼意思?我不是很清楚。
跟解析度有關嗎?
A: 如圖越多次的iteration 就可以產生越多細節
iteration就是把運算結果再丟回算式中, 一直反覆計算同樣的算式
Q:原來是這樣!
[相關資訊]
Iterate 應譯為"迭代"而非常見的誤用"疊代"
ReplyDelete感謝,已修正為迭代
ReplyDelete感謝!最近案子也在研究這部份的原理!
ReplyDelete幸好有看到這篇,不然差點走錯路!!
感謝,您寫得實在很清楚易懂
ReplyDelete很久沒使用了~
ReplyDeleteSolver引擎也從CG改成QCG了
不知道該相對應的參數該怎麼看
大大會有空補上嗎(舉手)