2011/10/31

VRay動畫算圖最佳化


原文:Vray animation optimisation
作者:James Cutler
翻譯:Hammer Chen

當用Vray算動畫的時候如果算圖時間很長, 往往會讓人很挫折. 原本用在單張靜態算圖的反射模糊的材質, displacements, 如果直接用在動畫上面的話,會讓整個算圖時間無限延長!

Displacement
渲染單張圖片若是用到displacement, 算圖時間就會變得很長. 若是用在動畫上面會變得更複雜, 需要很小心地規劃, 特別是你想要做出寫實的地毯的時候.
小技巧:若是用在表現草地, 地毯時, 建議使用3d mapping. 如果你用2d mapping算圖, Vray會載入每個frame. 如果texture很大的話, 這個動作會花很久時間. 關於地毯與草地3d mapping的邊長(edge length)可以設的高一點, 效果也不差; 若是用比較小的邊長, Vray越是細分(subdivides )mesh, 算圖時間就會越長. 邊長這個參數跟解析度有關, 越高的解析度, 邊長就應該越大. 同時應該要確認view dependent的選項有打勾, 這樣會減少閃爍問題, 因為displacement會更平均地分散計算.


反鋸齒濾鏡
為了要減少算圖時間, 通常會犧牲燈光的細分數值(subdivisions) 或是材質的細分, 可是如果這樣做的話會增加雜訊.
小技巧:若是用像Mitchell-Netravali這種的銳利化濾鏡, 你會讓原本的雜訊變得更加明顯, 這時候請改用模糊化的濾鏡, 例如area 這種濾鏡, 可以讓原本就存在的雜訊模糊化.

反射模糊(Glossy reflections)
會讓算圖時間增長影響最大的材質參數是反射模糊(glossy reflections), 可是如果你想要讓材質看起來很寫實, 無可避免地, 還是得用反射模糊.
小技巧: 讓反射模糊的數值介於0.7-1之間, 並隨之調整細分(subdivisions)的強度, 在算動畫的時候 你把反射模糊的數值(glossy values)降低, 也看不太出來差異. 如果效果你滿意的話, 你可以用light cache來計算反射模糊的光線(glossy rays), 然後再計算反射模糊, 速度就會變得快多了.

反射/折射的深度 (Reflection/refraction depth)
物件周遭的物體對於反射與折射的計算很重要, 最大深度(max depth)決定了 距離多遠物件件周遭的物體會被計算.
小技巧:把最大深度降低到3-4之間, 當反射或是折射不在被追蹤計算的時候, 他會顯示出離開顏色(exit colour) . 這時候, 你可以把離開顏色, 這個顏色設定的很接近反射或是折射的顏色. 你可以對個別的物件材質設定, 也可以全局控制(global settings ).

全局照明(Global illumination)
當在計算GI的時候, 有越多的物件在場景, VRay算圖就會變慢.
小技巧: 如果背景物件是樹木的話, 把樹木排除(exclude)在全局照明或是陰影之外.

計算GI
不是所有的東西都需要預先計算GI效果.
小技巧:當預先計算irradiance map與light cache時, Displacement可以先關掉, 在最終算圖時再開啟.

排除物件
場景中可能有些物件, 在動畫一開始的時候看不到, 可是在動畫後半段才會出現在畫面裡面. 如果你從頭到尾都讓這些物件參與計算, 你的算圖時間就會很長.
小技巧:對場景做規劃, 使用圖層, 群組管理. 如果建築物的上層不會出現在畫面中, 那就把它整個隱藏起來. 上層物件對下層的反射與折射的影響機會很小, 把動畫切割成好幾個分鏡, 每個分鏡都計算小片段的動畫.

細分(Subdivisions)
陰影與反射模糊材質都是靠細分(Subdivisions)所控制. 低的細分會產生明顯的雜訊, 高的細分會讓算圖時間變長.
小技巧:對於動畫, 細分的數值跟靜態效果無相比, 細分可以設小一點, 因為動畫場景有很多元件會讓視覺分心, 增加的微小雜訊不太容易被察覺到.

管理可用的記憶體
大型的, 複雜的場景需要大量的系統記憶體, 儲存所有算圖需要的資訊.
小技巧: 若是採用VRay proxy可以讓你釋放某些計算需要的記憶體, 如果採用proxy的時候, 還是沒有在記憶體限制的範圍內, 那就無法因為用proxy就讓算圖速度便快, 一旦記憶體用光了3ds Max 與Vray就會使用系統的分頁檔案, 就在此時算圖速度開始變慢了!

[相關文章]

No comments: