国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

超大型三維場(chǎng)景分布式渲染系統(tǒng)體系結(jié)構(gòu)與技術(shù)研究

2022-06-21 04:19李昆昆于春雨盧石磊李文博
科技創(chuàng)新與應(yīng)用 2022年17期
關(guān)鍵詞:錐體體系結(jié)構(gòu)繪制

郭 陽,李昆昆,于春雨,盧石磊,李文博,劉 甜

(青島理工大學(xué) 復(fù)雜網(wǎng)絡(luò)與可視化研究所,山東 青島 266520)

分布式渲染是將分布式計(jì)算和實(shí)時(shí)渲染結(jié)合,實(shí)現(xiàn)大體量模型的繪制與渲染,利用多GPU累積能力協(xié)同處理渲染任務(wù),實(shí)現(xiàn)單PC機(jī)無法達(dá)到的快速繪制與渲染效果。實(shí)時(shí)渲染流程中最為關(guān)鍵的階段是幾何處理和光柵化。STEVEN和MICHAEL等[1]人針對(duì)三維模型實(shí)時(shí)繪制和渲染提出Sort分類策略,將分布式渲染分為了Sort-first、Sort-middle和Sort-last三種方式,Sort-first將圖元數(shù)據(jù)在幾何處理之前進(jìn)行歸屬判斷,Sort-middle將圖元數(shù)據(jù)在幾何處理和光柵化之間進(jìn)行歸屬判斷,Sort-last由于以無序狀態(tài)通過了幾何處理和光柵化,因此不再需要?dú)w屬判斷,直接在顯示系統(tǒng)上進(jìn)行圖像合成。

分布式渲染的實(shí)現(xiàn)取決于多渲染節(jié)點(diǎn)的系統(tǒng)構(gòu)建,系統(tǒng)體系結(jié)構(gòu)的設(shè)計(jì)將直接影響渲染效率[2]。本文設(shè)計(jì)一種新的體系結(jié)構(gòu)實(shí)現(xiàn)超大型三維場(chǎng)景的Sortfirst和Sort-last分布式渲染。

1 傳統(tǒng)主從體系結(jié)構(gòu)

傳統(tǒng)的分布式渲染系統(tǒng)體系結(jié)構(gòu)為主從(Master-Slave)結(jié)構(gòu),其結(jié)構(gòu)模型較為簡(jiǎn)單,整個(gè)執(zhí)行過程中任務(wù)量最大的繪制與渲染由從節(jié)點(diǎn)完成,并且根據(jù)任務(wù)量的需求大小或者用戶要求決定從節(jié)點(diǎn)的數(shù)量,實(shí)現(xiàn)系統(tǒng)的擴(kuò)展性。主從結(jié)構(gòu)的劣勢(shì)在于主節(jié)點(diǎn)職責(zé)過多,極易影響系統(tǒng)渲染效率;模型的計(jì)算渲染和圖像合成為串行關(guān)系,在從節(jié)點(diǎn)計(jì)算渲染時(shí),主節(jié)點(diǎn)處于空閑狀態(tài)。

孫昭等[3]基于主從結(jié)構(gòu)實(shí)現(xiàn)了一種按場(chǎng)景內(nèi)容分布的渲染系統(tǒng),Master節(jié)點(diǎn)負(fù)責(zé)系統(tǒng)的管理和用戶的交互結(jié)果顯示,Slave節(jié)點(diǎn)負(fù)責(zé)子場(chǎng)景的渲染,該方式提升了場(chǎng)景渲染的整體時(shí)間。彭敏峰[4]提出將多任務(wù)并行圖形繪制系統(tǒng)節(jié)點(diǎn)分為三類:負(fù)責(zé)幾何運(yùn)算的應(yīng)用節(jié)點(diǎn)、執(zhí)行OpenGL指令的服務(wù)節(jié)點(diǎn)和負(fù)責(zé)與用戶交互的控制節(jié)點(diǎn),該結(jié)構(gòu)實(shí)現(xiàn)了多節(jié)點(diǎn)的并行計(jì)算和繪制,繪制結(jié)果可以多個(gè)屏幕顯示。湯敏[5]將分布式渲染的體系結(jié)構(gòu)改進(jìn)為Master-Slave-Collector,在主從結(jié)構(gòu)中加入了Collector節(jié)點(diǎn),通過添加任務(wù)池和結(jié)果池的方法實(shí)現(xiàn)系統(tǒng)的負(fù)載均衡。路石[6]在基于高性能并行可視化服務(wù)器上實(shí)現(xiàn)了多個(gè)系統(tǒng)內(nèi)部節(jié)點(diǎn),擴(kuò)充了系統(tǒng)中的節(jié)點(diǎn)角色,使系統(tǒng)邏輯更加清晰,但容易造成多個(gè)節(jié)點(diǎn)之間數(shù)據(jù)的往復(fù)傳輸,從而增加由于網(wǎng)絡(luò)傳輸所帶來的時(shí)間消耗。

2 服務(wù)節(jié)點(diǎn)+主渲染節(jié)點(diǎn)+從渲染節(jié)點(diǎn)結(jié)構(gòu)

2.1 系統(tǒng)節(jié)點(diǎn)角色

基于主從結(jié)構(gòu),為減少主節(jié)點(diǎn)的任務(wù)壓力,并且在從節(jié)點(diǎn)渲染時(shí),主節(jié)點(diǎn)不處于空閑狀態(tài),增加第三類系統(tǒng)角色,該角色承載主節(jié)點(diǎn)中的部分任務(wù)模塊,減輕主節(jié)點(diǎn)任務(wù)量。系統(tǒng)角色為:服務(wù)節(jié)點(diǎn)、主渲染節(jié)點(diǎn)和從渲染節(jié)點(diǎn)。服務(wù)節(jié)點(diǎn)任務(wù)包含:系統(tǒng)環(huán)境部署、任務(wù)計(jì)算;主渲染節(jié)點(diǎn)任務(wù)包含:主渲染循環(huán)維護(hù)、用戶交互和事件處理(根據(jù)渲染需求,判斷系統(tǒng)是否進(jìn)行圖像合成);從渲染節(jié)點(diǎn)任務(wù)包含:被動(dòng)渲染執(zhí)行。

2.2 系統(tǒng)工作流程

本文設(shè)計(jì)的系統(tǒng)體系結(jié)構(gòu)工作流程如下:渲染任務(wù)執(zhí)行時(shí)由服務(wù)節(jié)點(diǎn)的環(huán)境資源部署開始,系統(tǒng)中的其他節(jié)點(diǎn)都會(huì)接收到來自服務(wù)節(jié)點(diǎn)的部署方案,此時(shí)實(shí)現(xiàn)所有節(jié)點(diǎn)角色的劃分。服務(wù)節(jié)點(diǎn)開始部署渲染任務(wù),首先根據(jù)渲染節(jié)點(diǎn)數(shù)量分配任務(wù)量到其他節(jié)點(diǎn)中,各渲染節(jié)點(diǎn)接受命令加載場(chǎng)景并開始渲染。渲染節(jié)點(diǎn)的工作大致相同,經(jīng)過清除、繪制、交換等,最后進(jìn)行顯示。在此期間,主節(jié)點(diǎn)還會(huì)接收新的事件命令,并提交到服務(wù)節(jié)點(diǎn),此時(shí)服務(wù)節(jié)點(diǎn)一并計(jì)算,進(jìn)行新的任務(wù)劃分,開始下一幀的渲染循環(huán)。

2.3 并行機(jī)制

在渲染中引入并行機(jī)制,在不改變單幀串行關(guān)系的情況下,使得多幀的渲染實(shí)現(xiàn)并行處理,以此實(shí)現(xiàn)多節(jié)點(diǎn)的分布式任務(wù)處理,減少單節(jié)點(diǎn)的渲染計(jì)算量,還可以實(shí)現(xiàn)流水線加速效果。

當(dāng)采用并行機(jī)制執(zhí)行任務(wù)時(shí),假設(shè)全部在理想情況下,任務(wù)分配、渲染執(zhí)行、數(shù)據(jù)傳輸和圖像合成時(shí)間相等,忽略其他操作的時(shí)間,則理論上N幀的加速比可達(dá)到4N/(N+3)。在實(shí)際執(zhí)行過程中,模型繪制與渲染和圖像合成的時(shí)間會(huì)遠(yuǎn)遠(yuǎn)大于圖像數(shù)據(jù)傳輸?shù)臅r(shí)間,因此無法達(dá)到理想效果。并且當(dāng)流水線內(nèi)部包含的模塊操作越多時(shí),其渲染執(zhí)行和圖像合成的時(shí)間差越大,當(dāng)從節(jié)點(diǎn)渲染第k幀時(shí),此時(shí)的圖像合成顯示的是k-2幀,因此在負(fù)責(zé)圖像合成的主渲染節(jié)點(diǎn)中需進(jìn)行緩存處理。

2.4 子任務(wù)劃分

在Sort-first渲染方式中,子任務(wù)根據(jù)屏幕2D圖像的物理位置進(jìn)行劃分,因此子任務(wù)劃分可通過基于視錐體的圖元分割實(shí)現(xiàn),通過視錐體計(jì)算可以得出裁剪掉外部圖元[7],還可以得到投影到二維屏幕上的矩陣。

首先選擇三維坐標(biāo)系,采用OpenGL右手坐標(biāo)系,X軸向前,Y軸向上,Z軸向右。以2個(gè)子視錐體為例,進(jìn)行坐標(biāo)和透視投影矩陣計(jì)算。視錐體切分如圖1所示。

通過設(shè)置視錐體的fovy、Width、Height、zNear、zFar參數(shù)可以得出視錐體中的l、r、t、b、n和這幾f個(gè)變量值,再推導(dǎo)出視錐體透視投影矩陣。得到透視投影矩陣之后,便可以根據(jù)用戶自定義屬性切分視錐體,得到若干個(gè)子視錐體和它們各自的透視投影矩陣。

在切分視錐體為2個(gè)子視錐體時(shí),變換相應(yīng)的變量便可獲得子視錐體的投影矩陣,例如當(dāng)r=0時(shí),即可得到左二分之一子視錐體;當(dāng)l=0時(shí),可得到右二分之一的子視錐體,當(dāng)?shù)玫蕉种蛔右曞F體后,重復(fù)上面的過程,可得到三分之一或四分之一視錐體,當(dāng)賦值為0時(shí)為均分。

在分配渲染任務(wù)時(shí),需根據(jù)模型變換和新事件處理對(duì)子任務(wù)不斷進(jìn)行劃分,需進(jìn)行負(fù)載均衡處理,通過在視錐體內(nèi)部建立包圍盒的方式判斷子視錐體內(nèi)部頂點(diǎn)的數(shù)量是否趨于平衡,若某個(gè)子視錐體存在的頂點(diǎn)過多,則重新分配,使子視錐體內(nèi)部的頂點(diǎn)數(shù)量盡量保持一致,使渲染節(jié)點(diǎn)的任務(wù)量基本一致,渲染時(shí)間保持平衡。

3 實(shí)驗(yàn)測(cè)試

實(shí)驗(yàn)采用5臺(tái)PC機(jī)組成分布式渲染系統(tǒng),其中服務(wù)節(jié)點(diǎn)和主渲染節(jié)點(diǎn)各1臺(tái),從渲染節(jié)點(diǎn)3臺(tái),因此可進(jìn)行四分模型的渲染劃分。

3.1 模型用例

本文選取500米口徑球面射電望遠(yuǎn)鏡(FAST)模型作為測(cè)試用例,課題組已完成FAST模型的建模工作[8-11],如圖2所示。

圖2 FAST模型

FAST各部件模型在經(jīng)過整合并且添加上其他體量較小的模型之后,整體模型體量已超過千萬級(jí),見表1。

表1 FAST整體模型體量

3.2 測(cè)試結(jié)果

實(shí)驗(yàn)測(cè)試中采取兩種方式驗(yàn)證本文設(shè)計(jì)的系統(tǒng)體系結(jié)構(gòu),一是Sort-first渲染及最終圖像不在主渲染節(jié)點(diǎn)合成的方式,該方式使用2.4節(jié)設(shè)計(jì)的劃分策略完成2D圖像分割;二是Sort-last渲染及最終圖像在主渲染節(jié)點(diǎn)合成的方式,該方式直接將模型數(shù)據(jù)范圍進(jìn)行劃分,各渲染節(jié)點(diǎn)占據(jù)等比例的模型數(shù)據(jù)。

3.2.1 Sort-first圖像不合成方式

根據(jù)子任務(wù)劃分方式,進(jìn)行視錐體的切分,將視錐體分為若干個(gè)不同的子視錐體,所有子視錐體渲染任務(wù)部署到不同的渲染節(jié)點(diǎn)中執(zhí)行渲染操作。如圖3所示,主渲染節(jié)點(diǎn)和3個(gè)從渲染節(jié)點(diǎn)各占1/4的模型渲染任務(wù),并通過視口的位置變換實(shí)現(xiàn)顯示拼接。

圖3 四分FAST模型圖像不合成

3.2.2 Sort-last圖像合成方式

在該渲染方式中,沒有進(jìn)行基于視錐體的劃分,按照模型比例大小實(shí)現(xiàn)任務(wù)的分配,例如在四分模型中,將模型數(shù)據(jù)大小等分為4份,4個(gè)渲染節(jié)點(diǎn)各占1/4,并且由于Sort-last渲染實(shí)現(xiàn)的是模型的部分區(qū)域,無法進(jìn)行顯示拼接,因此在主渲染節(jié)點(diǎn)進(jìn)行圖像合成,在渲染窗口中直接輸出整體模型圖案,如圖4所示。

圖4 四分FAST模型圖像合成

3.3 結(jié)果分析

在渲染節(jié)點(diǎn)數(shù)量分別是1~4的情況下,采集執(zhí)行1 000次渲染循環(huán)耗用的時(shí)間,其中包含圖像不合成和圖像合成兩種情況,如圖5所示。

圖5 渲染耗時(shí)對(duì)比

當(dāng)增加渲染節(jié)點(diǎn)時(shí),1 000幀的渲染耗時(shí)持續(xù)減少,繪制和渲染流暢度逐漸提升。當(dāng)增加到4個(gè)渲染節(jié)點(diǎn)時(shí),其渲染幀率也從22 fps分別增加到了47 fps和33 fps,能夠滿足實(shí)時(shí)渲染要求,驗(yàn)證了本文設(shè)計(jì)的分布式渲染系統(tǒng)體系結(jié)構(gòu)的有效性。

在圖像的合成中,由于增加了圖像數(shù)據(jù)的傳輸和合成,因此在渲染耗時(shí)上,高于不合成的方式,并且在渲染節(jié)點(diǎn)逐漸增加的情況下,網(wǎng)絡(luò)傳輸和合成耗時(shí)逐漸增多。

4 結(jié)束語

本文提出一種基于服務(wù)節(jié)點(diǎn)+主渲染節(jié)點(diǎn)+從渲染節(jié)點(diǎn)的分布式渲染系統(tǒng)體系結(jié)構(gòu),將任務(wù)執(zhí)行過程中與渲染工作無關(guān)的模塊分離到服務(wù)節(jié)點(diǎn)中,使其承擔(dān)系統(tǒng)管理工作,與渲染相關(guān)的模塊任務(wù)全部分配給渲染節(jié)點(diǎn),并盡量使主節(jié)點(diǎn)與從節(jié)點(diǎn)的任務(wù)量趨于一致。以中國天眼FAST三維模型作為測(cè)試用例,測(cè)試結(jié)果表明,在保證實(shí)時(shí)渲染流暢度的前提下,本系統(tǒng)能夠有效減少三維模型的整體渲染時(shí)間,提高渲染效率。

猜你喜歡
錐體體系結(jié)構(gòu)繪制
搜集凹面錐體
超萌小鹿課程表
錐體上滾實(shí)驗(yàn)的力學(xué)分析
放學(xué)后
基于粒計(jì)算的武器裝備體系結(jié)構(gòu)超網(wǎng)絡(luò)模型
作戰(zhàn)體系結(jié)構(gòu)穩(wěn)定性突變分析
進(jìn)動(dòng)錐體目標(biāo)平動(dòng)補(bǔ)償及微多普勒提取
基于DODAF的裝備體系結(jié)構(gòu)設(shè)計(jì)
基于云計(jì)算的航天器控制系統(tǒng)自組織體系結(jié)構(gòu)
在轉(zhuǎn)變中繪制新藍(lán)圖
江安县| 庆元县| 兴山县| 曲阜市| 尚义县| 綦江县| 安丘市| 乌鲁木齐市| 锦屏县| 桦甸市| 富阳市| 高要市| 梓潼县| 定日县| 靖远县| 旅游| 平定县| 原平市| 拜泉县| 金山区| 无锡市| 汾西县| 杭锦旗| 洛隆县| 连州市| 旌德县| 河东区| 名山县| 高邮市| 永寿县| 伊金霍洛旗| 松桃| 镇赉县| 宁南县| 正宁县| 乌审旗| 鹿邑县| 隆回县| 溆浦县| 长泰县| 航空|