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