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