摘 要:分布式渲染是一種能夠把單幀圖像的渲染分布到多臺計算機(或多個CPU)上渲染的一種網絡渲染技術。有許多方法可以實現這種技術,主要的思路是把單幀劃分成不同的區域,由各個計算機或CPU各自單獨計算。常用的方法是把靜幀劃分成許多小區域(Buckets),每臺計算機都渲染一部分buckets,最后把這些buckets合并成一張大的圖像。VRay渲染器就是用的這種做法。
關鍵詞:分布式;渲染;buckets Vray;渲染器
1 VRay的實現
VRay通過TCP/IP協議實現分布式渲染的網絡聯接,不需要任何附加的程序或目錄共享。分布式渲染的管理分成兩個部分:服務端和客戶端。
2 客戶端
客戶端是指用戶現在正在使用的那臺計算機。它把單幀劃分成許多小的渲染區域(bucket)并把它傳給服務端去計算。整個渲染過程由客戶端來管理和組織。在客戶端計算機上,有一個用戶界面來管理網絡上的服務端——指定哪些服務器參與計算哪些不參與——并控制服務器端的狀態。每當一個渲染區域(bucket)計算完畢,客戶端上顯示出這塊bucket,并發送另一塊bucket給空下來的服務器計算。
3 服務端
服務端就是渲染服務器啦,顧名思義,就是網絡上提供計算服務的真正在渲圖的計算機們。它們渲染每個bucket,并計算結果送回客戶端。它們的狀態也由客戶端監控。
(1)工作環境
要向實現VRay分布式渲染,必須用戶處于局域網之內,并有多臺計算機通過路由器鏈接并且都能相互訪問。
(2)實際操作
① 在A機器新建一個文件夾,右擊把文件夾設為共享文件夾,并勾選“允許網絡用戶更改文件”。
② 打開你已經做完的3ds Max文件,然后點“工具”按鈕使用資源收集器,把你場景里面所有的貼圖和光域網連同Max文件一起導出到你剛才建立的共享文件夾內(如圖1所示)。
③ 此時導出3ds Max文件名、所有貼圖的文件名和光域網名一定要為英文,因為網絡路徑不能識別中文路徑,否則分布式渲染出來就會丟失貼圖和導致出錯?,F在我們重新打開剛才的導出的3ds Max文件。
④ 我們把剛才導出的3ds Max文件用網絡路徑打開后,現在來設置所有材質的貼圖路徑,具體方法按下Shift+T把資源追蹤器打開,刷新一下然后把原來貼圖路徑改成網絡貼圖路徑(如圖2所示)。
⑤ 接下來我們按F10打開渲染面板,把VRay渲染面板的渲染參數都設置好,最重要的是要在VRay系統子面板里面勾選分布式渲染,然后添加A、B、C、D、E機器的計算機名,或者是直接添加成每臺機器的IP地址,然后按下解析服務器按鈕檢查是否都已連接(如圖3所示)。
⑥ 接下來我們把所有的服務器(B、C、D、E機器)上的Launch VRay DR spawner打開,然后回到A機器按下渲染按鈕,你過一會就看見渲染區域分割一部分給其他機器工作了。如果每臺機器都是雙核CPU的話,那么按照我們A、B、C、D、E 5臺機器算的話,就會有10個渲染分割區在跳動,就會當一臺10CPU的機器了,依此類推如果每臺是4核的話,或者是多幾臺機器的話,可以想象的到那速度是喝口水的功夫還是一眨眼的功夫呢?可以不用再本機A機器上打開VRay DR,這樣你的機器就不會卡,不會影響其他操作。
參考文獻
[1]鄒平吉.VRay分布式渲染的實現[J].甘肅科技縱橫,2013,42(12):42-44.
[2]陳小燦,黃三發,陳福民.一種基于分布式渲染的分屏實現方法[J].網絡新媒體技術,2007,28(10):1089-1091.
(作者單位:遼寧省農業經濟學校)