本文節譯evermotion最近轉發的一篇文章,內文是在說明怎樣的設定可以讓你的3D檔案減肥,不會吃掉太多的記憶體,以及更重要的,可以縮減跑圖時間。這是本人第一次翻譯3D文章,若翻譯不好請見諒;我不會原文照翻,大概會抓作者想要講的事情做些篩選,然後再依前後文潤飾一下(老外講話很喜歡一直重複相同的事情啊…),但原則上翻譯是順著原文走的。這篇文章不論你是新手還是老鳥,都可以看看。

原文網址:Optimizing 3d scenes for faster rendering


在跑圖的時候,記憶體過高的使用可能會造成你的3d當機,甚至會產生跑圖過久的問題。原因很簡單,因為運算的過程中,電腦必須不斷地在硬碟裡複寫資料,然而硬碟複寫速度很明顯地慢於記憶體,即使你是用SSD也是如此,如此的緩慢。
過於龐大的場景造成的高面數,以及跑圖所設定高品質參數,乃至於採樣數,都會加重算圖時間,這些都會帶來交稿的壓力,或者在交付給算圖農場(譯註:網際網路上提供的商業線上跑圖公司)時,必須付出更多的成本。
當你的檔案需求越高,意味著也需要越多的硬碟空間,同時,3ds Max在載入這些檔案的時間也會越久。在個人電腦裡處理這樣的檔案或許不會有太大的問題,但若是在網路跑圖時,就可能會耗費更多的時間;除此之外,在使用跑圖農場時,檔案載入過久亦會提高成本。

本指南目標很簡單,就是縮減跑圖時間與記憶體使用量,如此一來你的案子中就可以投入更多時間來創作,節省時間與金錢的同時也滿足業主的需求。
part 1.幾何物件
越多的幾何物件(面數)在場景之中,意味著檔案會越來越大,而在跑圖的時候所吃的記憶體也會越多,乃至於會花更長的時間在算圖。

1.1檢查面數
按快速鍵「7」就會在工作室窗顯示統計
或按工作室窗左上角的「+」,進入選單中選取「show statistics」,當進入「configure viewports…」裡,可以獲得更多有關統計的選項
total-顯示檔案之總面數
selection-顯示你所選取的物件之面數
total+selection-所有面數與選取物件之面數

1.2找尋高面數模型
打開「select by name(快速鍵H)」並加入「faces」欄目在清單中,此欄目會顯示每個物件的面數。

1.3刪除不需要的物件
刪除掉你攝影機看不到的,以及在最終跑圖時被隱藏,或是被覆蓋遮住的物件。另外,有時候物件會藏在已關閉的圖層中,包含你當時建模所用的CAD檔物件。
如何找尋被隱藏的物件?
可以在前述提到的「select by name」視窗中加入隱藏欄目,就可以知道有哪些物件已被隱藏。
在作業或是匯入的過程中,有些物件可能在場景之外,你可以按滑鼠右鍵打開快速選單,並選擇「unhide all(顯示全部物件)」選項,此時會跳出一個對話框,詢問是否也要將關閉圖層中的物件一併顯示?按yes;接者,按快速鍵Z,將工作室窗縮放至所有物件尺度,然後再按快速鍵ctrl+a,選取全部物件,就會顯示出一些平常不易發覺但卻又真實存在的物件。

1.4善用instances來取代拷貝
在3ds Max裡,你可以選擇用copy(拷貝)或instance來複製物件(reference則是另一形式的instance,譯註:可以不用管它,instance比較重要)。當你用拷貝來複製物件時,等於是另外再創造一個全新的物件,其物件會被存在硬碟與記憶體之中,同時也會產生更多的面數。
然而,若你是用instance來複製物件,3ds Max只會儲存該物件的資訊(譬如它所處的位置),但仍然是以最初物件的記憶體使用量與檔案大小(譯註:換言之,用instance複製一百個物件,檔案大小與記憶使用量幾乎是不變的,但若你是用拷貝的方式來複製,那麼就會大大地增加檔案容量),這可以使得鉅額複製數量的模型得以出現在你場景中,而該場景的憶體使用量與檔案大小幾乎不變。

1.5優化(面數)你的模型
試著就攝影機所看到的距離來決定該物件的細部,離攝影機越近的模型其面數就需要多一點,越遠則反之。若無需要,不要隨便加入Turbosmooth或meshsmooth修改器,且盡可能地讓「iterations」數值越小越好(譯註:每增加一個數值,其面數會以平方倍增)。

1.6使用optimizing(優化)修改器
optimizing修改器可以讓模型快速地降低面數,但要小心,若降低面數過多可能會造成模型變形。由於會犧牲細節,故比較適用於距離攝影機較遠,或是面數過高的物件(譬如已從turbosmooth轉換成edit poly的模型)只有在需要細節時才有必要增加面數,較為平坦之處卻有高密度的面數的物件就很適合使用optimizing修改器來達成減面數效果。optimizing修改器可以降低物件的面數與節點數量,有效的降低面數物件除了可確保跑圖的品質之外亦可降低跑圖時間。
另外,不規則造型的模型(譬如石頭),則不需為了好看而保留精確的造型,這類型的模型也很適合使optimizing修改器。
在跑圖之前最好將模型轉換成editable poly,尤其當你想要用網路跑圖。記住,在轉換之前最好另存新檔,以避免轉換後產生問題卻無原始檔案可以修改。
MultiRes修改器則提供更進階優化面數之工具,它是透過百分比的方式同樣降低不必要的節點與面。
類似的優化面數的工具還有ProOptimizer修改器,以及位在工具標籤裡的Batch ProOptimizer(譯註:這就是3ds Max麻煩的地方啊…優化工具也可以弄這麼多個,嘆~)。

1.7創造平面物件來替代真實模型(Use pre-rendered planes with textures instead of models + shaders)
作者建議可以先跑一張圖然後貼在平面,並取代既有的模型,進而達成減面效果,尤其是離攝影機越遠的物件越適合這樣做,但前提是你的攝影機看的角度必須是固定的,否則一改變畫面就很容易露出破綻,在這裡先暫不翻譯該小節內容。

1.8 當模型轉換成可編輯的多邊體(When to collapse models)
當模型有使用optimizing修改器時,應該要轉換成可編輯的多邊體;但是,若你模型有使用Meshsmooth 與 Turbosmooth修改器時,應仍保持該模型修改時的堆疊,不要轉換成可編輯的多邊體;同樣地,若你有使用Lathe等工具,也不建議轉換成可編輯的多邊體,這兩者都會增加檔案大小與跑圖時間。

小結:
當你使用幾何物件優化,其規則很簡單-少一點,更好!
●工作視窗的面數統計與選取清單視窗裡的面數顯示可以幫助你找尋需要優化的物件。通常,你並沒有足夠的時間來一一處理優化,反之,你應該要做的事是找到最多面數的物件並且去優化它。
●用instance來複製物件是最有效降低面數的方法,且又簡單、快速。有些跑圖引擎,如VRay或Mental Ray有提供Proxy(代理物件)工具,若同時結合instance複製物件的運用,可以讓你的場景優化更多。
●使用optimizing修改器,一開始可能會花掉你一些時間,但多做幾次之後就會發現甚麼樣的設定是你所想要的。如果你是從事的是高重複性的創作,譬如像建築可視化的專案,應該就要做一個屬於你自己的優化模型庫。
●平面貼圖是一個縮短跑圖時間很好的方法,從攝影機中,較遠的物件仍有不錯的反射表現,但受限於攝影機看的角度,且在某些情況下仍然會花不少的時間在製作與跑圖,並可能會產生不少錯誤,尤其當你在跑動畫,這些平面物件產生的效果可能造成很大的差異。
●可編輯的造型線可以輔助你創造出幾何物件,且不會讓你的檔案變得更大,尤其你是在做建築或室內的時候。而該物件之細部仍然可以依據你所需要進行修改。
●這些都是很好用的優化技巧,建議在創作的過程中將它列入考慮,這樣的工作流程會更節省你的時間金錢,而不是等到場景已經完成並且要開始跑圖才開始想要去優化它們。

arrow
arrow

    DDD3VIZ 發表在 痞客邦 留言(0) 人氣()