殷智慧,李朝奎,楊 武,張 強(qiáng),嚴(yán)雯英
(湖南科技大學(xué) 地理空間信息湖南省工程實(shí)驗(yàn)室,湖南 湘潭 411201;
湖南科技大學(xué) 地理空間信息技術(shù)國(guó)家地方聯(lián)合工程實(shí)驗(yàn)室,湖南 湘潭 411201)
基于三維標(biāo)量場(chǎng)的光線投射并行體繪制算法
殷智慧,李朝奎,楊 武,張 強(qiáng),嚴(yán)雯英
(湖南科技大學(xué) 地理空間信息湖南省工程實(shí)驗(yàn)室,湖南 湘潭 411201;
湖南科技大學(xué) 地理空間信息技術(shù)國(guó)家地方聯(lián)合工程實(shí)驗(yàn)室,湖南 湘潭 411201)
針對(duì)大規(guī)模三維標(biāo)量場(chǎng)相關(guān)算法計(jì)算量大且數(shù)據(jù)繪制速度慢、不能滿足用戶實(shí)時(shí)需求的問(wèn)題,在研究和總結(jié)三維標(biāo)量場(chǎng)和體繪制關(guān)鍵技術(shù)的基礎(chǔ)上,對(duì)體繪制的原理進(jìn)行了深入探討,重點(diǎn)研究了體繪制中的光線投射算法。利用集群多節(jié)點(diǎn)的并行優(yōu)勢(shì),對(duì)體繪制的光線投射算法進(jìn)行了改進(jìn),采用MPI并行編程模式,成功地將該算法運(yùn)行于PC集群環(huán)境中,并應(yīng)用于三維城市建模,充分發(fā)揮了集群的高性能計(jì)算,大大提高了繪制效率。實(shí)驗(yàn)結(jié)果表明,該算法具有良好的并行效率和可視化效果。
三維標(biāo)量場(chǎng);光線投射算法;體繪制;MPI
三維標(biāo)量場(chǎng)是用來(lái)研究科學(xué)計(jì)算可視化的一種場(chǎng),是指場(chǎng)中每一個(gè)點(diǎn)的屬性值都可以以一個(gè)標(biāo)量來(lái)表示的空間場(chǎng)[1]。隨著時(shí)間的變化,標(biāo)量場(chǎng)值也發(fā)生相應(yīng)的變化。自然界中的三維標(biāo)量場(chǎng)一般都是空間連續(xù)的[2],但是為了方便存儲(chǔ),通常以離散點(diǎn)云數(shù)據(jù)進(jìn)行存儲(chǔ),在物理結(jié)構(gòu)中,采取笛卡爾坐標(biāo)來(lái)表示大規(guī)模三維場(chǎng)景數(shù)據(jù),本文從三維標(biāo)量場(chǎng)角度出發(fā),研究并行繪制技術(shù),既是三維標(biāo)量場(chǎng)可視化研究的內(nèi)容,也是并行繪制技術(shù)研究的創(chuàng)新點(diǎn)。
現(xiàn)實(shí)中的大規(guī)模三維場(chǎng)景數(shù)據(jù)是連續(xù)的,而研究組在研究過(guò)程中獲取的數(shù)據(jù),是通過(guò)各種包括低空測(cè)量、高空遙感形式獲得的離散數(shù)據(jù),而將這些三維離散數(shù)據(jù)點(diǎn)轉(zhuǎn)換為二維屏幕圖像數(shù)據(jù)點(diǎn)也是離散的?;谶@些,三維標(biāo)量場(chǎng)體繪制技術(shù)可以定義為:將離散分布的三維數(shù)據(jù)場(chǎng),按照一定的規(guī)則轉(zhuǎn)換為圖行設(shè)備屏幕上的二維圖像,從而繪制出各類地物的分布情況[3]。圖1為某一區(qū)域在三個(gè)坐標(biāo)方向均勻取樣得到的標(biāo)量場(chǎng)。
圖1 規(guī)則三維標(biāo)量場(chǎng)Fig.1 Rules of 3D Scalar Fields
三維標(biāo)量場(chǎng)可視化包含兩種繪制方法,分別是面繪制和直接體繪制。由于面繪制方法首先需要建立中間幾何模型,并且只能描述場(chǎng)景的局部信息,而體繪制卻能表現(xiàn)地物空間的細(xì)節(jié)信息,且不需要建中間模型。鑒于體繪制這種優(yōu)勢(shì),本文對(duì)體繪制算法展開(kāi)深入研究。
在體繪制過(guò)程中,將大規(guī)模三維場(chǎng)景數(shù)據(jù)投射到二維平面形成繪制圖像,主要有兩種方法:一種是基于圖像空間劃分的體繪制算法,另一種是基于物體空間內(nèi)容劃分的體繪制算法[4]。典型的以圖像空間為序的體繪制算法為光線投射算法;以物體空間為序的體繪制算法有錯(cuò)切變形體繪制算法、體元投射法、Splating體繪制算法、足跡表法等[5]。
基于物體空間內(nèi)容劃分的前提是采取合理的方法對(duì)數(shù)據(jù)場(chǎng)進(jìn)行剖分,得到若干個(gè)數(shù)據(jù)子塊,再將這些數(shù)據(jù)子塊分發(fā)到每一個(gè)計(jì)算節(jié)點(diǎn)。在以物理空間為序的體繪制算法中,每一條射線的計(jì)算都與所劃分的數(shù)據(jù)子塊相關(guān),因此,每條射線的計(jì)算都需要幾個(gè)節(jié)點(diǎn)進(jìn)行數(shù)據(jù)存儲(chǔ),增加了節(jié)點(diǎn)的負(fù)擔(dān),限制了通信的效率。加之投影屏幕圖像的形成,不單單涉及簡(jiǎn)單的數(shù)據(jù)子塊,它與整個(gè)數(shù)據(jù)相關(guān),因而在存儲(chǔ)過(guò)程中一般在每個(gè)節(jié)點(diǎn)重復(fù)拷貝整個(gè)數(shù)據(jù)場(chǎng)。這種方法的優(yōu)點(diǎn)是任務(wù)間的數(shù)據(jù)相關(guān)性小,通訊性能比較高。但是,冗余存儲(chǔ)數(shù)據(jù)會(huì)要求每個(gè)節(jié)點(diǎn)需要有較大的存儲(chǔ)空間,旋轉(zhuǎn)視線的不同加大了編程的難度,大大降低了繪制速率。
而基于圖像空間的劃分則是通過(guò)對(duì)投影屏幕進(jìn)行劃分,將屏幕劃分成包含多個(gè)三維標(biāo)量場(chǎng)體數(shù)據(jù)投影像素點(diǎn)的圖像子塊,并將形成這些圖像子塊所對(duì)應(yīng)的標(biāo)量場(chǎng)數(shù)據(jù)存儲(chǔ)在計(jì)算節(jié)點(diǎn)上,作為本地訪問(wèn)數(shù)據(jù)。每個(gè)節(jié)點(diǎn)對(duì)應(yīng)于一個(gè)圖像子塊,將全部的數(shù)據(jù)場(chǎng)數(shù)據(jù)存儲(chǔ)在遠(yuǎn)程服務(wù)器上。在節(jié)點(diǎn)需要時(shí),通過(guò)管理節(jié)點(diǎn)分發(fā)數(shù)據(jù)給所需要的繪制節(jié)點(diǎn)。節(jié)點(diǎn)間具有很高的獨(dú)立性,但是考慮到觀察視點(diǎn)的不同,在實(shí)際繪制過(guò)程中需要重采樣,可能因光線問(wèn)題引起實(shí)際操作則需要訪問(wèn)三維數(shù)據(jù)場(chǎng)中的每一個(gè)數(shù)據(jù),從而使得節(jié)點(diǎn)間必須進(jìn)行頻繁通信。這種方法的優(yōu)點(diǎn)是存儲(chǔ)消耗小,缺點(diǎn)是通訊量比較大,降低了繪制效率。鑒于以上分析,本文主要探討基于圖像空間劃分的光線投射體繪制算法。
體繪制可以追溯到上個(gè)世紀(jì)70年代,最早用在醫(yī)學(xué)領(lǐng)域,而眾多的體繪制算法中,比較常用的光線投射體繪制,又叫后投影(back-ward projection)[6],是在1987年由Marc Levoy[7]提出的,它是以圖像空間為序的體繪制算法。光線投射體繪制算法過(guò)程如圖2所示。
圖2 基于光線投射的體繪制過(guò)程Fig.2 Volume rendering process based on ray casting
算法基本思想可以描述為:從視點(diǎn)出發(fā),沿視線方向發(fā)射光線,光線穿過(guò)投影成像平面和三維場(chǎng)空間,且光線與三維數(shù)據(jù)場(chǎng)相交,沿著交線進(jìn)行采樣。采樣點(diǎn)的選取要遵循一定的規(guī)則,必須以同樣的間隔進(jìn)行采樣。然后分別對(duì)這些采樣點(diǎn)進(jìn)行內(nèi)插計(jì)算(最常用的是三線性插值方式),從而計(jì)算出每個(gè)采樣點(diǎn)數(shù)據(jù)的采樣值(它包含每個(gè)采樣點(diǎn)的顏色值和不透明度值)。最終二維屏幕上圖像的形成,是將這些采樣點(diǎn)采取由前至后的方式或由后至前的方式,進(jìn)行顏色值和不透明度值的累積而形成的。正是由于光線投射算法的這一特點(diǎn),使得對(duì)三維場(chǎng)景數(shù)據(jù)進(jìn)行繪制時(shí),能夠保留更多的地物細(xì)節(jié),并獲得較高質(zhì)量的信息,且計(jì)算過(guò)程最明確[8]。
以上是從光學(xué)知識(shí)角度分析體繪制合成過(guò)程,下面對(duì)光線投射算法的實(shí)現(xiàn)進(jìn)行進(jìn)一步分析,光線投射算法的具體實(shí)現(xiàn)過(guò)程如下。
1)對(duì)三維標(biāo)量場(chǎng)體數(shù)據(jù)進(jìn)行讀取和預(yù)處理。
其目的是判斷三維場(chǎng)景所在的立方體的可見(jiàn)性,并確定三維場(chǎng)在平面上的投影區(qū)域。為了區(qū)分三維場(chǎng)的數(shù)據(jù)類別,或者找出同類物質(zhì)不同屬性值,通常采取兩種方法進(jìn)行分類:閾值法和概率法。本文采用閾值法,即對(duì)數(shù)據(jù)灰度值的變化范圍進(jìn)行等級(jí)劃分進(jìn)而分類。在存儲(chǔ)的時(shí)候,以頭文件形式存儲(chǔ)分類信息,這種分類存儲(chǔ)辦法能夠很好地表示多種物質(zhì)的不同分布和同一物質(zhì)的不同屬性[9]。閾值法可描述為:根據(jù)對(duì)全部采樣點(diǎn)的取值進(jìn)行統(tǒng)計(jì)后,設(shè)定若干閾值di(i=1,2,…,n),如果各采樣點(diǎn)的數(shù)值以(xi, yj, zk)表示,則將滿足下列條件的采樣點(diǎn)歸入同一類中:di≤f(xi, yj, zk)≤dj[10]。
2)通過(guò)主節(jié)點(diǎn)把投影屏幕圖像進(jìn)行劃分,依次分配給各個(gè)計(jì)算節(jié)點(diǎn)。
3)設(shè)置三維場(chǎng)景參數(shù)和繪制屬性值,對(duì)投影屏幕上的每個(gè)像素進(jìn)行繪制,具體步驟如下。
a)在投影成像平面選擇一個(gè)像素點(diǎn)P(i, j),并將該點(diǎn)二維坐標(biāo)轉(zhuǎn)換為三維坐標(biāo),從視點(diǎn)出發(fā),使視線方向穿過(guò)成像屏幕像素點(diǎn),獲得視線與三維場(chǎng)景相交。
b)按特定的步長(zhǎng)進(jìn)行重采樣,得到采樣點(diǎn)顏色值(R, G, B)和不透明度值(Alpha)。在體繪制中,三維標(biāo)量場(chǎng)數(shù)據(jù)的重采樣是關(guān)鍵步驟。一般情況下,從光線穿過(guò)標(biāo)量場(chǎng)投影到屏幕成像的過(guò)程中,從某個(gè)角度發(fā)出的光線可能產(chǎn)生兩個(gè)問(wèn)題:第一,標(biāo)量場(chǎng)中被遮擋的體素可以透過(guò)縫隙投影到投影平面而造成屏幕顯示錯(cuò)誤;第二,屏幕上的某些區(qū)塊可能沒(méi)有體素投影到屏幕而造成該塊顯示背景色。重采樣的目的就是為了避免由于以上兩個(gè)問(wèn)題導(dǎo)致錯(cuò)誤繪制成像。
c)合成采樣點(diǎn)和不透明度值,得到最終的顏色值和不透明度值。在給采樣點(diǎn)賦值時(shí),為獲得具有內(nèi)部詳細(xì)結(jié)構(gòu)的三維數(shù)據(jù)場(chǎng),需要對(duì)采樣點(diǎn)的分類結(jié)果賦予不同的顏色值和不透明度值。通常,在不失圖像顏色的前提下,遵循用戶的需求來(lái)賦值,一般地,Alpha的取值在0~1之間:0≤Alpha≤1,Alpha=1表示所要計(jì)算的體素是完全不透明的,Alpha=0表示該體素是完全透明的。值得注意的是,最終得到的圖像中的顏色并不是物體的真正顏色,而是合成的,將其概括為偽色彩。
d)重復(fù)步驟a), b), c),計(jì)算投影成像平面的所有像素點(diǎn)合成后的顏色值和不透明度值;
e)判斷步驟d是否將所有像素點(diǎn)進(jìn)行投影,如果沒(méi)有,則繼續(xù)步驟2;否則,進(jìn)行下一步的操作。
4)最終圖像合成顯示。
在最終圖像合成過(guò)程中,按照一定的規(guī)則進(jìn)行圖像合成。常用的合成算法主要有兩種:一種是由后向前對(duì)圖像進(jìn)行合成,也就是沿發(fā)射光線從后往前合成發(fā)射光線上的多個(gè)采樣點(diǎn)的顏色值和不透明度值,以求得最后的圖像;另一種是由前向后對(duì)圖像進(jìn)行合成[11]。本文采用第一種圖像合成算法,其具體實(shí)現(xiàn)可描述為:按照采樣點(diǎn)從后往前的順序,設(shè)采樣點(diǎn)從初始顏色值到最終顏色值依次為:c0,…, ci,…,cn,不透明度值依次為:1,…,ai,…,0,則透明度值為1- ai,最終合成的顏色值C用公式描述為:
C=c0(1-a1)(1-a2)…(1-an) + c1a1(1-a2)(1-a3)…(1-an)+ c2a2(1-a3)(1-a4)…(1-an)+…+cn-1an-1(1-an)+cnan。
光線投射體繪制實(shí)現(xiàn)思路如圖3所示。
圖3 光線投射體繪制實(shí)現(xiàn)思路Fig.3 The implementation idea of algorithm in ray casting volume rendering
光線投射算法繪制的可視化圖像精度最高,但缺點(diǎn)是存儲(chǔ)容量較大,多年來(lái),許多科研工作者通過(guò)存儲(chǔ)壓縮和數(shù)據(jù)分塊的辦法來(lái)解決這一瓶頸,但往往不可避免地帶來(lái)一些其它問(wèn)題,比如有損圖像質(zhì)量等。針對(duì)以上問(wèn)題,考慮到光線投射過(guò)程中的每一條投射光線都是彼此獨(dú)立的,可采用并行計(jì)算的辦法解決以上瓶頸。本文在深入分析光線投射算法的基礎(chǔ)上,對(duì)算法進(jìn)行了改進(jìn),在執(zhí)行重采樣前引入包圍盒概念,并在此基礎(chǔ)上探討集群環(huán)境下基于圖像空間劃分的光線投射并行體繪制算法。所謂的包圍盒,就是一個(gè)標(biāo)準(zhǔn)的長(zhǎng)方體[11]。假設(shè)該包圍盒存在于三維標(biāo)量場(chǎng)中,首先判斷穿過(guò)屏幕像素點(diǎn)的入射光線與該包圍盒的6個(gè)面是否有交點(diǎn)。如果有交點(diǎn),分別計(jì)算入射點(diǎn)和出射點(diǎn),然后根據(jù)采樣點(diǎn)存儲(chǔ)的顏色值和不透明度值,利用三線性差值方法計(jì)算貢獻(xiàn)值;如果沒(méi)有交點(diǎn),則表明標(biāo)量場(chǎng)中的數(shù)據(jù)對(duì)屏幕所對(duì)應(yīng)的像素點(diǎn)無(wú)貢獻(xiàn)值,則可略去此步驟的計(jì)算,由此可簡(jiǎn)化算法實(shí)現(xiàn)。
除此之外,考慮到圖像空間劃分后的數(shù)據(jù)結(jié)構(gòu)相關(guān)性較小,可以將每一個(gè)屏幕圖像子塊分配到計(jì)算節(jié)點(diǎn),也就是采用集群并行的方式,將屏幕圖像子塊作為計(jì)算節(jié)點(diǎn)的任務(wù),然后對(duì)分配到每個(gè)節(jié)點(diǎn)的圖像空間子塊所對(duì)應(yīng)的三維標(biāo)量場(chǎng)數(shù)據(jù)進(jìn)行插值計(jì)算。整個(gè)并行計(jì)算過(guò)程采用Master-Slaver的并行編程模式,頭結(jié)點(diǎn)(Master進(jìn)程)負(fù)責(zé)任務(wù)劃分和分配,計(jì)算節(jié)點(diǎn)(Slaver進(jìn)程)進(jìn)行屏幕圖像的像素繪制,各節(jié)點(diǎn)繪制的圖像最后交給頭節(jié)點(diǎn)進(jìn)行圖像合成。圖4為光線投射并行體繪制算法實(shí)現(xiàn)流程圖。
圖4 光線投射并行體繪制算法的流程Fig.4 The flow chart of parallel ray casting volume rendering algorithm
1)屏幕圖像劃分及節(jié)點(diǎn)間數(shù)據(jù)分發(fā)的步驟
Step 1 MPI初始化。通過(guò)MPI_Init函數(shù)進(jìn)入MPI環(huán)境,并完成所有的初始化工作。
Step 2 首先,頭節(jié)點(diǎn)為每個(gè)計(jì)算節(jié)點(diǎn)分配數(shù)據(jù),然后各個(gè)計(jì)算節(jié)點(diǎn)進(jìn)行圖像繪制,并將繪制好的圖像數(shù)據(jù)傳送給頭結(jié)點(diǎn)。
Step 3 獲取進(jìn)程編號(hào)。調(diào)用MPI_Comm_rank函數(shù),獲得當(dāng)前進(jìn)程在指定通信域中的編號(hào),將自身與其他程序區(qū)分。
Step 4 獲取指定通信域的進(jìn)程總數(shù)。調(diào)用MPI_Comm_size函數(shù)獲取指定通信域的進(jìn)程個(gè)數(shù),確定自身完成任務(wù)比例。
Step5 獲取機(jī)器名。調(diào)用MPI_Get_processor_name函數(shù)獲取相應(yīng)的機(jī)器名。
Step 6 消息發(fā)送和接收。通過(guò)MPI_Send函數(shù)發(fā)送一個(gè)消息到目標(biāo)程,通過(guò)MPI_Recv函數(shù)用于從指定進(jìn)程接收一個(gè)消息。
Step 7 頭節(jié)點(diǎn)接收各計(jì)算節(jié)點(diǎn)傳來(lái)的數(shù)據(jù),并合成最終繪制圖形。
2)每一個(gè)節(jié)點(diǎn)所對(duì)應(yīng)的光線投射體繪制算法實(shí)現(xiàn)步驟
Step 1 設(shè)置不透明度值為0,像素初始顏色值設(shè)為背景色,計(jì)算像素點(diǎn)p(x, y)對(duì)應(yīng)的物體空間坐標(biāo)P(x, y, z);
Step 2 從像素點(diǎn)發(fā)射光線,并判斷視線與體數(shù)據(jù)是否相交。如果相交,跳轉(zhuǎn)到步驟3;如果不相交,則剔除空體素;
Step 3 根據(jù)當(dāng)前射線上采樣點(diǎn)坐標(biāo),用三線性插值法求出當(dāng)前采樣點(diǎn)的顏色值,通過(guò)循環(huán)遞歸的方法,計(jì)算所有采樣點(diǎn)坐標(biāo)的顏色值和不透明度;
Step 4 累計(jì)不透明度值和顏色值,并不斷更新灰度值和顏色值;
Step 5 重復(fù)以上步驟2~4,直到完成整個(gè)圖像的繪制。
5.1 并行環(huán)境
實(shí)驗(yàn)的并行計(jì)算環(huán)境是Window HPC Server 2008高性能計(jì)算集群系統(tǒng),配置了符合MPI(multipoint interface)標(biāo)準(zhǔn)的消息傳遞庫(kù),即將MPICH2庫(kù)集成到Visual Studio 2010環(huán)境中,使用MPI來(lái)實(shí)現(xiàn)各節(jié)點(diǎn)之間的通信。采用4個(gè)計(jì)算節(jié)點(diǎn)。每個(gè)節(jié)點(diǎn)的配置為:16個(gè)Intel (R)Xeon 2.4GHz CPU;512kB L2 Cache;2GB DDR RAM,節(jié)點(diǎn)間采用KVM進(jìn)行多電腦切換。
5.2 實(shí)驗(yàn)結(jié)果與分析
本實(shí)驗(yàn)選擇建筑模型數(shù)據(jù)為數(shù)據(jù)源,選擇Windows HPC Server集群環(huán)境為實(shí)驗(yàn)環(huán)境,對(duì)不同規(guī)模的建筑物數(shù)據(jù)進(jìn)行體繪制。其算法基本思路是:各計(jì)算節(jié)點(diǎn)可獨(dú)立計(jì)算穿過(guò)屏幕該像素點(diǎn)和子數(shù)據(jù)的光線段的繪制,節(jié)點(diǎn)間不存在通訊消耗,各節(jié)點(diǎn)可生成部分圖像,且合成部分也可并行進(jìn)行。為驗(yàn)證本文算法的效率,將本文算法與傳統(tǒng)的體光線投射算法進(jìn)行了對(duì)比,所得實(shí)驗(yàn)結(jié)果如表1所示。
表1 算法運(yùn)行時(shí)間對(duì)比Table1 The comparison of algorithm running time
由表1不難看出,當(dāng)數(shù)據(jù)規(guī)模為512*512*160時(shí),使用傳統(tǒng)光線投射算法耗時(shí)10.3s,使用本文算法用時(shí)3.8s。改進(jìn)后的算法除了能夠運(yùn)行在并行環(huán)境中,而且增加了無(wú)效光線的判斷和空體素的剔除,且各子任務(wù)間相互獨(dú)立計(jì)算,這樣通過(guò)減少圖像合并時(shí)間,進(jìn)而縮短了繪制時(shí)間,同時(shí)也提高了繪制效率。對(duì)于建筑物模型數(shù)據(jù)2,兩種算法的繪制效果如圖5所示。
圖5 建筑物數(shù)據(jù)的體繪制對(duì)比效果圖Fig.5 The contrast diagrams of volume rendering effect about building data
對(duì)比效果圖不難看出,采用本文提出的算法對(duì)相同的體數(shù)據(jù)進(jìn)行繪制,繪制圖像結(jié)果的質(zhì)量有明顯差別,繪制幀率提高到27幀/s,得到的效果圖更加細(xì)膩逼真,同時(shí)繪制時(shí)間也有所降低。對(duì)比傳統(tǒng)的光線投射算法,本文所提出的算法具有良好的效率和可視化效果。
本文在HPC集群環(huán)境下討論了基于光線投射的并行體繪制算法,算法采用Master-Slave計(jì)算模型,由頭節(jié)點(diǎn)(Master進(jìn)程)負(fù)責(zé)屏幕圖像的分配、接收和合并顯示,計(jì)算節(jié)點(diǎn)(Slave 子進(jìn)程)負(fù)責(zé)相應(yīng)的子圖像的體繪制計(jì)算。算法采用MPI并行編程模式,選擇3臺(tái)PC節(jié)點(diǎn)對(duì)改進(jìn)的算法進(jìn)行實(shí)驗(yàn)驗(yàn)證,實(shí)現(xiàn)了對(duì)圖像的并行數(shù)據(jù)劃分,解決了單機(jī)耗時(shí)長(zhǎng)的問(wèn)題,在一定程度上提高了繪制速度,但是實(shí)時(shí)性并不是很高。此外,本文的研究?jī)H僅局限于規(guī)則數(shù)據(jù)場(chǎng),而沒(méi)有考慮不規(guī)則數(shù)據(jù)場(chǎng)的劃分與任務(wù)分配以及并行繪制。對(duì)算法的進(jìn)一步改進(jìn)將是今后研究的重點(diǎn)。
[1] 于榮歡,鄧寶松,吳玲達(dá),等. 時(shí)變?nèi)S標(biāo)量場(chǎng)并行計(jì)算與繪制框架研究[J]. 計(jì)算機(jī)科學(xué),2012,39(3):244-251. Yu Ronghuan,Deng Baosong,Wu Lingda,et al. Parallel Computing and Rendering Framework of Time Variable 3D Scalar Fields[J]. Computer Science,2012,39(3):244-251.
[2] 于榮歡,鄧寶松,吳玲達(dá),等. 三維標(biāo)量場(chǎng)并行等值面提取與繪制技術(shù)[J]. 計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2012,39 (3) :183-186. Yu Ronghuan,Deng Baosong,Wu Lingda,et al. Parallel Isosurface Extracting and Rendering of 3D Scalar Fields[J]. Journal of Computer-Aided Design & Computer Graphics,2012,39(3):183-186.
[3] 姚麗嬌. 科學(xué)計(jì)算中的標(biāo)量場(chǎng)可視化技術(shù)[D]. 沈陽(yáng):東北大學(xué),2009. Yao Lijiao. The Scalar Fields Visualization Technology in Scientific Computing[D]. Shenyang:Northeastern University,2009.
[4] 洪振剛,羅省賢. 多層次并行體繪制算法的研究與應(yīng)用[J]. 計(jì)算機(jī)工程與科學(xué),2009,31(增刊1) :221-224. Hong Zhengang,Luo Shengxian. Research and Application on Hierarchical Parallel Volume Rendering Algorithm[J]. Computer Engineering & Science,2009,31(S1) :221-224.
[5] 朱金亮. 基于足跡法的三維地震數(shù)據(jù)并行可視化方法研究[D]. 南京:南京理工大學(xué),2008. Zhu Jinliang. A Method of Parallel Visualization in 3D Seismic Data Based on Footprint Method[D].Nanjing:Nanjing University of Science and Technology,2008.
[6]劉如娟. 基于體繪制的三維數(shù)據(jù)場(chǎng)可視化技術(shù)研究[D]. 太原:太原理工大學(xué),2003. Liu Rujuan. The Visualization of the 3D Sets Based on Volume Rendering Technology[D]. Taiyuan:Taiyuan University of Technology,2003.
[7]Levoy M. Display of Surface From Volume Data[J]. IEEE Computer Graphics and Application,1988,8(3):29-37.
[8]徐賽花,張二華. 基于CUDA的三維數(shù)據(jù)并行可視化[J]. CT理論與應(yīng)用研究,2011,20(1):47-54. Xu Saihua,Zhang Erhua. CUDA-Based Parallel Visualization of 3D Data[J]. CT Theory and Applications,2011,20(1) :47-54.
[9] 張薇薇,張 樺. 光線投射體繪制算法關(guān)鍵技術(shù)研究[D].天津:天津理工大學(xué),2006. Zhang Weiwei,Zhang Hua. Research on Key Technique of Ray Casting Volume Rendering Algorithm[D]. Tianjin:Tianjin University of Technology,2006.
[10]唐澤圣,陳 莉,鄧俊輝. 三維數(shù)據(jù)場(chǎng)可視化[M]. 北京:清華大學(xué)出版社,1999:1-253. Tang Zesheng,Chen Li,Deng Junhui. Visualization in 3D Data Fields[M]. Beijing:Tsinghua University Press,1999:1-253.
[11]葉 良,單桂華,遲學(xué)斌. 基于CUDA加速的光線投射法研究[C]//圖像圖形技術(shù)研究與應(yīng)用學(xué)術(shù)會(huì)議論文集.北京:北京交通大學(xué)出版社,2010:235-240. Ye Liang,Shan Guihua,Chi Xuebin. CUDA-Accelerated Ray-Casting Volume Rendering[C]//IGTA2010. Beijing:Beijing Jiaotong University Press,2010:235-240.
[12]朱 奭,顧耀林. 基于體元投影的一種非規(guī)則數(shù)據(jù)場(chǎng)體繪制方法[J]. 計(jì)算機(jī)工程與應(yīng)用,2008,44(15):68-70.Zhu Shi,Gu Yaolin. Volume Rendering Algorithm of Irregular Volume Based on Cell Projection[J]. Computer Engineering and Applications,2008,44(15):68-70.
[13]諶海新,繆 琳,馬丙辰. 基于直接體繪制的三維數(shù)據(jù)場(chǎng)交互可視化系統(tǒng)SinoVis[J].計(jì)算機(jī)應(yīng)用,2004,24(4):67-69. Chen Haixin,Miao Lin,Ma Bingchen. SinoVis: An Interactive Direct Volume Rendering-Based 3D Data Visualization System[J]. Computer Application,2004,24 (4):67-69.
[14]彭 偉,李建新,閆 鑌,等. 基于改進(jìn)空體素跳躍法的光線投射算法[J]. 計(jì)算機(jī)工程,2012,38(2):264-266. Peng Wei,Li Jianxin,Ran Bin,et al. Ray Casting Algorithm Based on Improved Empty Voxel Skipping Method[J]. Computer Engineering,2012,38(2):264-266.
(責(zé)任編輯:申 劍)
The Parallel Ray Casting Volume Rendering Algorithm Based on 3D Scalar Fields
Yin Zhihui,Li Chaokui,Yang Wu,Zhang Qiang,Yan Wenying
(Hunan Province Engineering Laboratory of Geospatial Information,Hunan University of Science and Technology,Xiangtan Hunan 411201,China;National & Local United Engineering laboratory of Geospatial Information Technology,Hunan University of Science and Technology,Xiangtan Hunan 411201,China)
In view of mass computation of large-scale 3D scalar field correlation algorithm and slow data rendering, and on the basis of research and summary of key technologies of 3D scalar fields and volume rendering, the principle of volume rendering is discussed, focusing on the ray casting algorithm of volume rendering. The ray casting algorithm of volume rendering is improved with the parallel advantages of multi-node cluster. And by means of MPI parallel programming mode, the algorithm is run on the PC cluster environment and applied to 3D city modeling. It fully develops the high performance computing of cluster and greatly improves the rendering efficiency. The experimental results show that the algorithm makes good parallel efficiency and visual effects.
3D scalar fields;ray casting algorithms;volume rendering;MPI
TP391
:A
:1673-9833(2014)01-0081-06
2013-12-25
國(guó)家自然科學(xué)基金資助項(xiàng)目(41271390),湖南科技大學(xué)研究生優(yōu)秀學(xué)位論文培育基金資助項(xiàng)目(S120036),湖南省研究生科研創(chuàng)新基金資助項(xiàng)目(CX2013B405)
殷智慧(1987-),女,河北張家口人,湖南科技大學(xué)碩士生,主要研究方向?yàn)椴⑿欣L制,空間數(shù)據(jù)調(diào)度,
E-mail:zhihui61993@126.com
李朝奎(1967-),男,湖南漢壽人,博士,湖南科技大學(xué)教授,博士生導(dǎo)師,主要從事3DGIS空間定量分析及輔助決策應(yīng)用的研究,E-mail: chkl_hn@163.com
10.3969/j.issn.1673-9833.2014.01.017