2016年9月8日 星期四

[Blender] 好用的 Network Renderer

上次這麼瘋狂的用Blender也是N年之前的事了,更新到最新的2.7發現新功能多了好多,以前覺得很強但是還在 Testing 的 addons 現在也都進入 Stable 版。今天就來介紹這個以前就覺得很屌的功能:
Network Renderer
用起來相當簡單,主要功能就是把另一台或多台能跑 Blender 的電腦當作 Render Farm 服務,
透過網路把要進行算繪的專案傳到其他電腦上,讓他們批次進行算繪工作。這樣一來,本機端就不需要吃到任何算繪資源,對於像我一樣繪圖配備不及專案的複雜度時,是個相當方便的解法。

架構:

原理也沒很複雜,大概就是 Client 端自己的 jobs (其實是.blend專案) 丟到 Master 開在網路上的一個類似檔案伺服器的服務,然後 Master 再自動發包給所有已註冊的 Slaves 來執行算繪任務。



操作步驟:

首先,到主選單列的 [File] → [User Preferences] 開啟設定視窗


切換到 [Add-ons] 分頁然後搜尋到 [Network Renderer] ,打勾勾把它 Enable


把 [Render Engine] 選單設定到 [Network Render],這時在 [Properties] 框架中的 [Render]分頁裡,找到 [Network Settings]


把 Client/Master/Slave 選單選定到 Master ,再來輸入你可以被存取到的 IP 和 Port 按下 [Start Service] 按鈕


光是啟動 Master 是不夠的,因為 Master 只負責一個分發的動作和建立管理介面,實際要可以算繪還需要再開一個以上的 Slave,並且在 IP 和 Port 都要輸入 Master 端的。

因為我這裡資源有限,在同一台電腦上開兩個 instance ,把它照上面的步驟設定成 Slave ,然後在 tags 勾選 Render on slave 和 Bake on slave 即可,最後也要按下 [Start Service] 按鈕


這時你可以點 [Open Master Monitor] 看看它簡易的網頁版任務管理介面


接下來 Client 端也是一樣的方式設定成 Client 。值得注意的是實際上 Network Renderer 只是幫你把你的 .blend 檔傳到伺服器上去算繪,所以依然是讀你指定的 Render Engine 設定檔 (Resolution/Frame rate/Output Format...etc),因此在 Client 端這些設定必須都設定妥當才能正確的算出所需要的影像。至於最後的 [Job Settings] 底下按鈕我就不多做介紹,基本上跟一般的操作流程差不多,我個人都是算靜態影像,所以都直接按 [Send current frame job]

當圖片算繪完成時,直接到剛剛點過的 Master Monitor 網頁介面去下載算出來的 EXR 檔回來,用 Blender 內建的 [UV/Image Editor] 開啟(或是直接拖曳檔案進去),再匯出成想要的圖片格式,就大功告成啦!




參考連結:

2 則留言: