劉 堯,葛水英,李志超
(1.天津工業(yè)大學(xué) 電氣工程與自動(dòng)化學(xué)院,天津 300387;2.中國科學(xué)院 文獻(xiàn)情報(bào)中心,北京 100190;3.北京中科視維科技有限公司,北京 100190)
?
基于嵌入式Linux平臺(tái)的集群渲染系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)
劉堯1,葛水英2,李志超3
(1.天津工業(yè)大學(xué) 電氣工程與自動(dòng)化學(xué)院,天津300387;2.中國科學(xué)院 文獻(xiàn)情報(bào)中心,北京100190;3.北京中科視維科技有限公司,北京100190)
摘要在計(jì)算機(jī)圖形學(xué)的影視動(dòng)漫產(chǎn)業(yè)中,3D圖形渲染始終是影響制作周期和成本的主要因素。對(duì)于小型工作室或動(dòng)漫企業(yè)而言,自行構(gòu)建一個(gè)具有商業(yè)渲染能力的集群渲染系統(tǒng),需要大量的成本投入和高端的技術(shù)支持。針對(duì)以上問題,采用常用智能設(shè)備和開源軟硬件,提出了一種基于嵌入式Linux平臺(tái)的集群渲染系統(tǒng)構(gòu)建方案。主要包括軟硬件選擇、操作系統(tǒng)移植安裝和配置、硬件架構(gòu)搭建、制作3D場景文件進(jìn)行渲染測(cè)試。測(cè)試結(jié)果驗(yàn)證了該系統(tǒng)的可行性,且其運(yùn)行良好,不影響渲染質(zhì)量。
關(guān)鍵詞3D圖形渲染;分布式集群;嵌入式;Linux
Design and Implementation of Cluster Rendering System Based on Embedded Linux Platform
LIU Yao1,GE Shuiying2,LI Zhichao3
(1.School of Electrical Engineering and Automation,Tianjin Polytechnic University,Tianjin 300387,China;2.Centre for Documentation and Information,Chinese Academy of Sciences,Beijing 100190,China;3.Beijing Zhongke ASD Technology Co.,LTD,Beijing 100190,China)
Abstract3D graphics rendering has been the main factor affecting the production cycle and cost in the CG (Computer Graphics) movie and animation industry.For small studio or animation enterprises,lots of cost investment and high-end technical support are needed to build a cluster rendering system with commercial rendering capabilities.In view of the above problems,a distributed cluster rendering system based on embedded Linux platform is proposed using common smart devices and open source software and hardware.The choice of hardware and software,operating system transplant and configuration,hardware architecture building,and 3D scene rendering are covered.The test results show the feasibility of the system,which works well without affecting the rendering quality.
Keywords3D graphics rendering;distributed cluster;embedded;Linux
渲染是3D影視動(dòng)漫等三維圖形制作領(lǐng)域的關(guān)鍵技術(shù),屬于計(jì)算和數(shù)據(jù)密集型應(yīng)用。由于復(fù)雜的場景和特效,著色渲染需要花費(fèi)大量時(shí)間,成為CG動(dòng)畫產(chǎn)業(yè)中的瓶頸。為提高渲染速度,出現(xiàn)了渲染技術(shù)與集群系統(tǒng)結(jié)合的分布式集群渲染系統(tǒng),其是利用集群管理軟件將數(shù)量不等的運(yùn)行著渲染軟件的計(jì)算機(jī),通過高速網(wǎng)絡(luò)構(gòu)建起來的一個(gè)計(jì)算機(jī)群,各計(jì)算節(jié)點(diǎn)以并行方式完成分配的渲染任務(wù)[1-2]。目前,國內(nèi)外的集群渲染系統(tǒng)主要由Enfuzion、Qube、Deadline等商業(yè)集群管理軟件,MentalRay、RenderMan等商業(yè)渲染引擎,Inter等主流商業(yè)計(jì)算機(jī)硬件設(shè)備,以及Windows Server或Linux系統(tǒng)軟件構(gòu)建而成[3]。本文設(shè)計(jì)的分布式集群渲染系統(tǒng)則選擇基于高性能、廉價(jià)、耗能低的ARM架構(gòu)處理器的嵌入式設(shè)備為渲染硬件,渲染節(jié)點(diǎn)的操作系統(tǒng)選擇Linux的一個(gè)發(fā)行版—Debian,渲染軟件采用開源跨平臺(tái)的Blender。在提升渲染效率的基礎(chǔ)上,降低渲染系統(tǒng)搭建的成本。
1集群渲染系統(tǒng)整體構(gòu)建
1.1系統(tǒng)基本工作原理
集群渲染系統(tǒng)一般由客戶端、管理節(jié)點(diǎn)、存儲(chǔ)節(jié)點(diǎn)及計(jì)算節(jié)點(diǎn)4部分構(gòu)成[4]。一個(gè)典型的集群渲染系統(tǒng)工作流程如圖1所示,客戶端使用Maya、3DMax等三維制作軟件完成場景文件的創(chuàng)作,并上傳至存儲(chǔ)節(jié)點(diǎn),通過管理軟件接口將渲染任務(wù)提交給管理軟件;管理節(jié)點(diǎn)通過Enfuzion等渲染管理軟件進(jìn)行渲染作業(yè)的調(diào)度和管理、任務(wù)的分發(fā)以及渲染狀態(tài)的實(shí)時(shí)監(jiān)控等;計(jì)算節(jié)點(diǎn)是執(zhí)行渲染的核心,從管理節(jié)點(diǎn)讀取任務(wù)腳本、啟動(dòng)渲染引擎進(jìn)行渲染;存儲(chǔ)節(jié)點(diǎn)主要負(fù)責(zé)集群渲染系統(tǒng)的數(shù)據(jù)共享和文件存儲(chǔ)管理。
圖1 典型的集群渲染系統(tǒng)工作流程
1.2集群渲染系統(tǒng)軟硬件簡介
(1)渲染軟件。Blender是由GNU GPL(通用公共許可證)授權(quán)發(fā)布的開源跨平臺(tái)的三維建模、渲染和動(dòng)畫制作軟件。其提供了一種強(qiáng)大且足夠勝任渲染集群的解決方案,可方便地搭建一套網(wǎng)絡(luò)渲染農(nóng)場,而無需購買第三方軟件配置和管理渲染平臺(tái)[5];
(2)操作系統(tǒng)。Debian是一款自由的Linux發(fā)行版操作系統(tǒng),其具有低成本、安裝方便、穩(wěn)定性高等優(yōu)點(diǎn)。尤其是,對(duì)ARM架構(gòu)的硬件有較好地支持,且擁有包括Blender在內(nèi)的超過43 000個(gè)預(yù)先編譯好的軟件包;
(3)集群硬件。本集群渲染系統(tǒng)選用5個(gè)不同配置的ARM架構(gòu)的嵌入式設(shè)備作為渲染計(jì)算節(jié)點(diǎn):珠海Cubietech團(tuán)隊(duì)推出的開源開發(fā)板,Cubietruck(Cubieboard3)和Cubieboard4各一塊,小米公司的小米手機(jī)Mi3和小米盒子Mibox2各一部,以及谷歌平板電腦Nexus7一部。渲染集群管理服務(wù)器端和客戶端運(yùn)行在同一PC上。
1.3集群渲染系統(tǒng)硬件架構(gòu)搭建
Blender內(nèi)置了一個(gè)集群渲染架構(gòu),通過加載并配置其中的Network Render(網(wǎng)絡(luò)渲染)引擎將本機(jī)設(shè)置為Master(服務(wù)器端)、Client(客戶端)或Slave(負(fù)載端)。集群渲染系統(tǒng)硬件架構(gòu)如圖2所示,Master服務(wù)器端相當(dāng)于圖1中的管理節(jié)點(diǎn),從Client客戶端接受任務(wù),并調(diào)度分配任務(wù)給Slave渲染節(jié)點(diǎn);Client客戶端制作三維模型場景文件、提交任務(wù)給Master,待渲染結(jié)束回收?qǐng)D形序列結(jié)果;Slave負(fù)載端即為渲染計(jì)算節(jié)點(diǎn),執(zhí)行實(shí)際的渲染工作。由于網(wǎng)絡(luò)節(jié)點(diǎn)少,且Master和Client不參與實(shí)際的渲染任務(wù),因此將服務(wù)器端與客戶端設(shè)置在同一PC上。為更多地節(jié)省系統(tǒng)資源,只有客戶端采用GUI啟動(dòng)Blender進(jìn)行模型制作以及渲染狀態(tài)監(jiān)視,而服務(wù)器端和計(jì)算節(jié)點(diǎn)只需命令行啟動(dòng)分別進(jìn)行任務(wù)調(diào)度和渲染。因此,計(jì)算節(jié)點(diǎn)的操作系統(tǒng)選擇不帶桌面系統(tǒng)的Debian系統(tǒng)以節(jié)省硬件的內(nèi)存。手機(jī)等智能設(shè)備沒有有線網(wǎng)口,故網(wǎng)絡(luò)環(huán)境采用無線路由器TP-Link組建的無線局域網(wǎng)。
圖2 集群渲染系統(tǒng)硬件架構(gòu)
2計(jì)算節(jié)點(diǎn)操作系統(tǒng)與軟件安裝
2.1系統(tǒng)移植安裝
2.1.1Cubietruck和Cubieboard4開發(fā)板
除了U-Boot和內(nèi)核裁剪編譯不同外,Cubietruck和Cubieboard4的Debian系統(tǒng)制作過程類似,主要步驟如下:
(1)在PC(Ubuntu14.04系統(tǒng))端下載安裝必需的工具軟件,搭建交叉編譯環(huán)境。從Cubieboard的GitHub倉庫下載相應(yīng)的sunxi工具包、U-Boot和內(nèi)核源碼等;
(2)編譯配置文件、U-Boot、裁剪和編譯內(nèi)核。Cubieboard默認(rèn)的內(nèi)核配置了眾多支持的外設(shè)驅(qū)動(dòng)、網(wǎng)絡(luò)協(xié)議、文件系統(tǒng)以及多媒體功能等,這不僅會(huì)占用系統(tǒng)的存儲(chǔ)資源,而且影響系統(tǒng)對(duì)事件的響應(yīng)速度和執(zhí)行效率[6]。針對(duì)集群渲染的實(shí)際需要,使用make menuconfig在默認(rèn)配置文件基礎(chǔ)上,對(duì)內(nèi)核進(jìn)行裁剪配置:裁剪掉不用的驅(qū)動(dòng)程序(藍(lán)牙Bluetooth、紅外IR、傳感器Sensor、LCD和VGA輸出顯示等)、IPV6網(wǎng)絡(luò)協(xié)議相關(guān)內(nèi)容、CD-ROM/DVD和DOS/FAT/NT等文件系統(tǒng)部分、Video和Audio多媒體相關(guān)部分。另外,無線網(wǎng)卡部分默認(rèn)只編譯不安裝,將其改成默認(rèn)安裝進(jìn)內(nèi)核;Cubietruck默認(rèn)提供mali-GPU支持,裁去相關(guān)部分能節(jié)省較大內(nèi)存;
(3)使用debootstrap和chroot命令工具網(wǎng)絡(luò)下載配置Debian基礎(chǔ)系統(tǒng),制作成根文件系統(tǒng)ROOTFS,并對(duì)其進(jìn)行配置。
2.1.2Mi3、Mibox2和Nexus7智能設(shè)備
由于Mi3、Mibox2和Nexus7出廠操作系統(tǒng)為Android,為了能在這些設(shè)備上安裝和運(yùn)行Blender,并不影響正常使用,使用一個(gè)開源軟件—Linux Deploy在Android系統(tǒng)上快速地部署安裝Debian系統(tǒng)。
Linux Deploy也是利用Chroot原理在Android系統(tǒng)的某個(gè)目錄下構(gòu)建一個(gè)Linux系統(tǒng)。部署過程大致如下:
(1)分別獲得3個(gè)Android智能設(shè)備的超級(jí)用戶權(quán)限;
(2)下載安裝最新的Linux Deploy,設(shè)置要安裝的系統(tǒng)版本(Debian Jessie)、鏡像文件安裝路徑。取消安裝系統(tǒng)桌面環(huán)境、VNC Server和X Server圖形界面訪問服務(wù),只需選擇SSH Server安全訪問協(xié)議服務(wù),然后進(jìn)行網(wǎng)絡(luò)安裝系統(tǒng)。
2.2系統(tǒng)配置與渲染軟件安裝
在PC端使用SSH命令行分別遠(yuǎn)程登錄訪問計(jì)算節(jié)點(diǎn)設(shè)備上的Debian系統(tǒng),設(shè)置SSH無密碼登錄和配置網(wǎng)絡(luò)為靜態(tài)IP,以便下次啟動(dòng)。更新軟件源,并使用apt-get命令快速下載安裝Blender(版本為2.72.b)。
3渲染測(cè)試與結(jié)果分析
為對(duì)比效果,渲染測(cè)試分別在臺(tái)式機(jī)PC、筆記本PC以及嵌入式設(shè)備集群上進(jìn)行,并采用相同的場景文件。渲染測(cè)試的場景文件描述為:文件大小為244 MB;畫數(shù)為220萬面;動(dòng)畫為攝像機(jī)動(dòng)畫;效果為運(yùn)動(dòng)模糊、半透明;渲染質(zhì)量為中高;圖像尺寸為1 280×1 080;渲染總幀數(shù)為100幀。
3.1PC單機(jī)渲染測(cè)試
為節(jié)約計(jì)算機(jī)的系統(tǒng)資源、將CPU時(shí)間更多地分配給渲染器,PC端的測(cè)試采用命令行渲染,并且不啟動(dòng)其他并行運(yùn)行應(yīng)用軟件。
打開命令行終端(Windows7系統(tǒng)的臺(tái)式機(jī)PC在運(yùn)行框輸入cmd即可,Ubuntu14.04系統(tǒng)的筆記本PC打開Terminal終端模擬器),啟動(dòng)Blender,加載設(shè)置好輸出格式、輸出路徑、渲染起始幀等.blend格式的場景文件進(jìn)行渲染。
3.2集群渲染測(cè)試
(1)PC端命令行啟動(dòng)加載預(yù)先設(shè)置為Master節(jié)點(diǎn)的Blend工程文件,等待接入Slave節(jié)點(diǎn)和Client端提交的任務(wù);
(2)將預(yù)先配置為Slave節(jié)點(diǎn)的Blend工程文件上傳到各個(gè)計(jì)算節(jié)點(diǎn),命令行下SSH登錄并啟動(dòng),等待渲染任務(wù);
(3)打開Blender客戶端,制作三維模型場景文件,保存為.blend文件。刷新獲取服務(wù)器地址,并提交渲染任務(wù),等待任務(wù)完成返回結(jié)果;
(4)Blender集成了網(wǎng)絡(luò)監(jiān)視器,可通過Client端的Open Master Monitor啟動(dòng)。在渲染過程中對(duì)渲染進(jìn)度、Slave狀態(tài)、當(dāng)前渲染幀、每個(gè)結(jié)點(diǎn)的渲染時(shí)間等狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)視,并可重置錯(cuò)誤幀[7]。監(jiān)視界面如圖3所示。
圖3 服務(wù)器渲染監(jiān)視瀏覽器界面
3.3渲染結(jié)果及其分析
嵌入式設(shè)備集群與兩種PC渲染生成的100幅圖片序列完全相同,渲染過程中也沒有丟失打包的數(shù)據(jù)。其中,渲染結(jié)果的一幀畫面如圖4所示,而表1為PC單機(jī)渲染與集群渲染對(duì)比情況。
圖4 渲染測(cè)試結(jié)果
對(duì)比項(xiàng)目臺(tái)式機(jī)PC筆記本PC集群配置CPU:InterCorei73770kHz(3.5GHz)RAM:16GBOS:Windows7CPU:InterCorei52430MHz(2.4GHz)RAM:2GBOS:Ubuntu14.04CPU:ARMCortex-A系列(1~2GHz)RAM:1GB或2GBOS:Debian8.0(Jessie)功耗/W3509251總價(jià)/元850045004430渲染時(shí)間/min/100幀120336342
渲染結(jié)果分析如下:(1)集群與筆記本PC對(duì)比:兩者渲染能力及成本相當(dāng),但該集群的功耗較之明顯減小;(2)集群與臺(tái)式機(jī)PC對(duì)比:若按照線性的投入產(chǎn)出比,該集群更是體現(xiàn)其低功耗的優(yōu)點(diǎn),但渲染性能不及臺(tái)式機(jī)PC。
可知,該集群的渲染效率并不理想,主要由以下原因造成:(1)該集群網(wǎng)絡(luò)環(huán)境為無線局域網(wǎng),嚴(yán)重限制了調(diào)度和傳輸場景文件數(shù)據(jù)的速度,而PC采用本地渲染無需網(wǎng)絡(luò)傳輸;(2)集群采用不同類型的設(shè)備平臺(tái),性能配置差異較大,使得性能最差的節(jié)點(diǎn)Cubietruck拖慢整個(gè)系統(tǒng)渲染速度,而性能最佳的Cubieboard4單機(jī)渲染速度能達(dá)到臺(tái)式機(jī)PC的20%,集群渲染約能完成全部任務(wù)的40%;(3)Blender任務(wù)分配是以幀為單位,且調(diào)度算法為非搶占式,對(duì)于復(fù)雜場景文件的渲染不利于負(fù)載均衡。
因此,可從以下幾個(gè)方面優(yōu)化和提高集群渲染系統(tǒng)性能:采用同等的高性能嵌入式硬件、采用千兆以太網(wǎng)并改善其網(wǎng)絡(luò)性能、通過使用專門的集群渲染管理軟件和對(duì)Blender自身的任務(wù)調(diào)度算法進(jìn)行優(yōu)化來解決負(fù)載均衡問題[8-9]。
4結(jié)束語
基于嵌入式Linux的集群渲染系統(tǒng)采用了低成本、低功耗的ARM架構(gòu)硬件以及開源軟件。表明嵌入式設(shè)備同樣能進(jìn)行三維圖形渲染,不同類型的嵌入式硬件平臺(tái)能進(jìn)行集群計(jì)算,且與PC服務(wù)器搭建的集群渲染系統(tǒng)相比,具有低成本、占用空間小、低能耗等優(yōu)點(diǎn)。本文搭建并測(cè)試了一個(gè)較小的采用不同硬件平臺(tái)的集群渲染系統(tǒng),由于系統(tǒng)具有良好的可擴(kuò)展性,可根據(jù)現(xiàn)用條件和需要來擴(kuò)展規(guī)模。而對(duì)于系統(tǒng)的優(yōu)化有待進(jìn)一步研究。
參考文獻(xiàn)
[1]王永濱,石民勇,洪志國.網(wǎng)絡(luò)環(huán)境下集群渲染技術(shù)綜述[J].微電子學(xué)與計(jì)算機(jī),2008,25(9):81-83.
[2]梁驥.基于分布式集群運(yùn)算的渲染農(nóng)場的研究與構(gòu)建[J].實(shí)驗(yàn)室研究與探索,2014,33(2):126-129.
[3]李謙,伍衛(wèi)國,黃艦航,等.渲染農(nóng)場研究進(jìn)展綜述[J].計(jì)算機(jī)應(yīng)用研究,2015,32(3):652-657.
[4]劉煥敏,王華,段慧芳.集群渲染在航天仿真中的研究與實(shí)現(xiàn)[J].飛行器測(cè)控學(xué)報(bào),2010,29(4):75-78.
[5]Patoli Z,Gkion M,Albarakati A,et al.An open source grid based render farm for blender 3D[C].Sydney:Proc of IEEE Power Systems Conference and Exposition,2009.
[6]張國峰.基于Linux的三維圖形渲染平臺(tái)的構(gòu)建和優(yōu)化研究[J].系統(tǒng)仿真學(xué)報(bào),2006,18(2):466-469.
[7]羅聰翼.Blender權(quán)威指南[M].北京:機(jī)械工業(yè)出版社,2011.
[8]仝伯兵,楊昕吉,謝振平,等.集群渲染系統(tǒng)構(gòu)建與優(yōu)化[J].軟件導(dǎo)刊,2015,14(1):89-91.
[9]彭帥,李冬梅,陳朝暉.基于PC集群的三維圖形并行渲染性能分析[J].計(jì)算機(jī)應(yīng)用,2010,30(2):547-550.
中圖分類號(hào)TP391.41
文獻(xiàn)標(biāo)識(shí)碼A
文章編號(hào)1007-7820(2016)03-079-04
doi:10.16180/j.cnki.issn1007-7820.2016.03.020
作者簡介:劉堯(1990—),男,碩士研究生。研究方向:嵌入式系統(tǒng)。葛水英(1975—),女,研究員。研究方向:視覺虛擬。
基金項(xiàng)目:國家科技支撐計(jì)劃課題資助項(xiàng)目(2012BAH42F02)
收稿日期:2015- 07- 27