亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        GPU的對半剖分體數(shù)據(jù)的光線投射法

        2016-12-01 05:20:30王寬全張恒貴
        關(guān)鍵詞:方法

        于 水,王寬全,夏 勇,張恒貴

        (哈爾濱工業(yè)大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,150001哈爾濱)

        ?

        GPU的對半剖分體數(shù)據(jù)的光線投射法

        于 水,王寬全,夏 勇,張恒貴

        (哈爾濱工業(yè)大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,150001哈爾濱)

        為解決傳統(tǒng)可視化方法無法有效跳過具有空腔結(jié)構(gòu)數(shù)據(jù)集的中空體素的問題,提出一種基于GPU的面向中空結(jié)構(gòu)體數(shù)據(jù)的光線投射法.在進(jìn)行光線投射之前,首先把體數(shù)據(jù)對半剖分成兩部分,對此兩部分分別使用八叉樹進(jìn)行重構(gòu),并同時剔除空塊,建立起各自新的有效數(shù)據(jù)塊的頂點集合;然后使用GPU對頂點集合進(jìn)行渲染,生成光線起點和方向等信息;最后利用CUDA對重構(gòu)后的兩部分體數(shù)據(jù)依次進(jìn)行光線投射和顏色累積,將其結(jié)果合成后得到最終圖像.實驗結(jié)果表明,這種方法生成的圖像質(zhì)量與傳統(tǒng)的可視化方法相比沒有損失,但對具有較多空腔結(jié)構(gòu)的體數(shù)據(jù),則可以快速跳過中空體素,具有非常明顯的加速效果.

        數(shù)據(jù)可視化;光線投射法;GPU渲染;八叉樹;CUDA ;中空體數(shù)據(jù)

        光線投射法是一種直接體繪制算法,最先由Levoy[1]提出,可以生成高質(zhì)量的3D圖像.早期的光線投射法大都在CPU上實現(xiàn),因其運(yùn)算量大,導(dǎo)致繪制速度慢,難以滿足實時性要求.近年來隨著GPU硬件的發(fā)展,基于GPU的并行圖形可視化技術(shù)得到迅猛發(fā)展,光線投射法的計算量瓶頸問題也得到極大的緩解.文獻(xiàn)[2]首次提出了基于GPU三線性插值能力的三維紋理體繪制方法.隨后,Cabral等[3]對此方法進(jìn)行了改進(jìn),通過三維紋理映射實現(xiàn)了交互式體繪制,從而使基于紋理映射的方法一段時間內(nèi)成為最常用的交互式體繪制方法.然而這種方法仍然存在一些很難解決的問題:在三維體數(shù)據(jù)中,通常只有5%~40%的數(shù)據(jù)是有意義或可見的,在體繪制過程中,會產(chǎn)生大量的對最終圖像沒有貢獻(xiàn)的切片,但是在計算過程中對這些切片仍然需要進(jìn)行采樣、數(shù)值計算,大大影響了繪制時間.Westermann等[4]將體數(shù)據(jù)看作三維包圍盒(bounding box),通過光線與包圍盒的求交運(yùn)算,得到每條光線與包圍盒的交點,并在GPU上實現(xiàn)了并行光線投射法,大大提高了圖像質(zhì)量.Hadwiger等[5-6]進(jìn)一步通過結(jié)合GPU渲染和數(shù)據(jù)分塊算法如KD樹[7]、八叉樹[8-9]等,實現(xiàn)快速剔除有效體數(shù)據(jù)與包圍盒邊界之間的空體素,在保證圖像質(zhì)量的前提下,極大提高了繪制速度,現(xiàn)已成為在GPU上常用的光線投射方法.但這種方法對于具有較多中空結(jié)構(gòu)的體數(shù)據(jù)則依然無能為力,仍然浪費了大量的空體素計算時間,影響可視化速度.

        康健超等[10]使用基于八叉樹編碼的方法,將原始數(shù)據(jù)剔除空體素后重新寫入三維紋理中,最后使用CUDA實現(xiàn)光線投射,提升了繪制效率,但這種方法只是簡化了部分顏色累積運(yùn)算,并沒有真正跳過空體素.自適應(yīng)采樣頻率方法[11-12]可以部分解決中空結(jié)構(gòu)體數(shù)據(jù)的空體素跳過問題,但這種方法需要對體數(shù)據(jù)進(jìn)行統(tǒng)計學(xué)預(yù)計算,如對體數(shù)據(jù)通過FFT變換進(jìn)行頻譜分析等,這個過程的計算量非常大,且由于不同的自適應(yīng)采樣規(guī)則采樣頻率不同,對圖像質(zhì)量的影響也比較明顯.葉良等[13]通過二級可變步長的方法來解決對于中空結(jié)構(gòu)數(shù)據(jù)的空體素跳過問題,但是這種方法依然不夠靈活,對于較大的中空結(jié)構(gòu),也仍然需要多次重復(fù)跳過,增加了算法運(yùn)行時間.

        目前針對具有較多中空體素的體數(shù)據(jù)的可視化問題,鮮有文獻(xiàn)專門提出此類解決方法.本文在Westermann方法和八叉樹剖分方法的基礎(chǔ)上,提出一種基于GPU的面向空腔結(jié)構(gòu)數(shù)據(jù)集的光線投射法.其主要特點是在使用GPU進(jìn)行渲染之前,先把體數(shù)據(jù)剖分成兩部分后利用八叉樹進(jìn)行重構(gòu),再分別對重構(gòu)后的兩部分進(jìn)行光線投射和顏色累積,最后將結(jié)果進(jìn)行合成,得到最終圖像.實驗結(jié)果表明本文方法對于中空結(jié)構(gòu)的體數(shù)據(jù),具有非常明顯的加速作用.

        1 基于GPU的光線投射法

        1.1 光線投射法

        光線投射法是指從圖像的每一個像素,沿視線方向發(fā)射一條光線,光線穿越整個圖像序列,并在這個過程中,對圖像序列進(jìn)行采樣獲取顏色信息,同時依據(jù)光線吸收模型將顏色值進(jìn)行累加,直至光線穿越整個圖像序列,最后得到的顏色值就是渲染圖像的顏色.如圖1所示,是一條典型的光線投射過程.

        圖1 光線投射過程

        在發(fā)射-吸收模型的光線投射法中,圖1在t=d處,由于通常體素對光線的吸收率不為常量,而是隨著位置變化而發(fā)生變化,因此在t=d處的顏色值計算公式為

        式中:c′為由于存在對光線的吸收因素而最終發(fā)出的光線顏色;c為體素本來的光線顏色;k為光線吸收率,且為一個常量;d為體素與視點間的距離.

        提取吸收率的積分公式為

        上式也叫光學(xué)深度(optical depth),基于一個點的計算方法,如果要計算沿光線所有點最終進(jìn)入人眼的顏色值,就要將所有點的發(fā)射和吸收情況計算在內(nèi),結(jié)合光學(xué)深度,則其顏色積分公式可變?yōu)?/p>

        (1)

        由于在實際的計算機(jī)處理中,只能使用離散值來計算式(1)的積分,本文采用Riemann sum近似計算積分,因此有

        (2)

        由式(1)、(2)則有

        (3)

        定義不透明度A為

        (4)

        由式(3)、(4),則有

        因此得出光線投射法的離散求值為

        (5)

        把式(5)寫成迭代形式:

        (6)

        (7)

        上述便是發(fā)射-吸收模型的光線投射法的顏色合成公式,其中:C′i為累積到第i個體素時的顏色值;A′i為累積到第i個體素時的不透明度;Ci為第i個體素的發(fā)射顏色;Ai為第i個體素的不透明度.本文使用式(6)和式(7)進(jìn)行顏色合成計算.

        1.2 基于GPU渲染的空體素跳過

        文獻(xiàn)[4]提出的光線投射算法,是將體數(shù)據(jù)保存在3D紋理中,通過渲染方法,分別得到對于3D紋理的前向和后向紋理(亦即光線投射的起點和終點),通過前后向視圖的差值得到光線方向,如圖2所示,然后在GPU中進(jìn)行光線投射的顏色累加操作.

        文獻(xiàn)[5-6]使用結(jié)合數(shù)據(jù)剖分的方法,在GPU渲染操作之前,通過層次化的數(shù)據(jù)結(jié)構(gòu),如八叉樹等將體數(shù)據(jù)進(jìn)行剖分,根據(jù)剖分后的結(jié)果進(jìn)行空體素塊的剔除,只保留活躍體素塊.然后再利用GPU的渲染功能對所有的活躍體素塊分別進(jìn)行前向和后向渲染,生成前向和后向紋理,分別表示距視點最近和最遠(yuǎn)點的集合.這種方法可以快速有效的剔除體數(shù)據(jù)包圍盒外表面與有效體素之間的空體素,如圖3所示的體數(shù)據(jù),渲染后光線r1-r6的有效起點是s1-s6,有效終點為e1-e6,而光線r0則未經(jīng)過任何有效體素,圖3中的灰色區(qū)域就可以快速跳過了.但這種方法對于具有較多中空結(jié)構(gòu)的體數(shù)據(jù)依然無效,如圖3中的白色封閉區(qū)域,即光線r2-r5所經(jīng)過的區(qū)域,以光線r3為例,其有效起點s3至終點e3之間,有大片的空白體素,由于GPU渲染方法的限制,還是無法進(jìn)行跳過.

        圖2 包圍盒渲染結(jié)果

        圖3 中空數(shù)據(jù)集的光線投射過程

        2 八叉樹

        八叉樹可以用于層次性體繪制,也可以作為一種數(shù)據(jù)分塊方法,解決可視化時由于數(shù)據(jù)規(guī)模過大而無法全部裝載進(jìn)顯存的問題[14].本文使用八叉樹除了完成對體數(shù)據(jù)的剖分,還要在此基礎(chǔ)上,按照每個子塊的活躍/不活躍性質(zhì),剔除不活躍子塊,即空體素塊,重新構(gòu)建出一個新的包含有效體素塊的頂點數(shù)組,以用于進(jìn)行GPU渲染,最終得到前向和后向紋理.

        本文所建立的八叉樹的結(jié)構(gòu)定義如圖4所示.圖4中minValue、maxValue是在八叉樹的構(gòu)建過程中,體數(shù)據(jù)包圍盒被剖分為若干個子數(shù)據(jù)塊,比較每個子塊內(nèi)所有體素的標(biāo)量值,從而得到該子塊中的所有體素標(biāo)量值的最小-最大值對,做為每個子塊的特征之一.除此之外,子塊的位置信息positionX,positionY,positionZ,結(jié)點深度nodeDepth也是特征之一,它們被用來在建立新的有效體素塊頂點數(shù)組時計算每個頂點坐標(biāo).

        八叉樹創(chuàng)建完成之后,所有相鄰的同質(zhì)子塊會被合并為一個大的子塊,從而節(jié)省更多的內(nèi)存資源.

        圖4 八叉樹的結(jié)構(gòu)定義

        3 基于體數(shù)據(jù)剖分的GPU渲染

        3.1 GPU渲染

        在使用GPU進(jìn)行渲染之前,需要建立新的體數(shù)據(jù)頂點集合,遍歷八叉樹,對每個子塊(葉子節(jié)點)進(jìn)行檢查,如果為不需要的體素值,即不活躍子塊,則將子塊從八叉樹中剔除;對于活躍子塊,則將該子塊的8個頂點的坐標(biāo)加入到新的頂點數(shù)組中,最后形成一個新的活躍子塊(包含有效體素)頂點數(shù)組.

        本文使用OPENGL對新的頂點數(shù)組進(jìn)行渲染,為節(jié)省內(nèi)存,提高OPENGL渲染效率,使用了頂點緩沖區(qū)來存儲生成的頂點數(shù)組數(shù)據(jù).OPENGL渲染時的空間關(guān)系如圖5所示.

        圖5 OPENGL渲染空間關(guān)系

        為確保渲染后生成的紋理圖像每一點的顏色值即為體數(shù)據(jù)坐標(biāo)值,從而減少渲染后進(jìn)行坐標(biāo)變換而產(chǎn)生的浮點運(yùn)算,需要將頂點集的坐標(biāo)歸一化到(0,0,0)至(1,1,1)范圍內(nèi),初始視點坐標(biāo)為(0.5,0.5,2.5).圖6是進(jìn)行八叉樹重構(gòu)后的渲染結(jié)果,可以看出,進(jìn)行八叉樹剖分重構(gòu)后的結(jié)果已經(jīng)非常接近物體的實際形狀了,因此相對于直接對包圍盒進(jìn)行渲染,重構(gòu)后的體數(shù)據(jù)可以更快速的進(jìn)行空體素跳過.

        圖6 teapot八叉樹重構(gòu)后的渲染結(jié)果

        3.2 體數(shù)據(jù)對半剖分

        GPU通常使用深度緩沖區(qū)的Z值來進(jìn)行深度檢測,對所渲染的體數(shù)據(jù)中每個體素所對應(yīng)的Z值進(jìn)行比較,以決定保留還是剔除.對于未被遮擋的空體素點,由于已經(jīng)不存在于頂點集合中,GPU不再渲染它們,而對同一視線方向上的2個有效體素點,在近點渲染中,Z值大的點被拋棄;而在遠(yuǎn)點渲染中,Z值小的被拋棄.一種常用的緩沖區(qū)Z值計算公式為

        (8)

        式中:z為視點到頂點的空間距離;f、n分別為視點到遠(yuǎn)裁剪面和近裁剪面的空間距離.

        如前所述,傳統(tǒng)的GPU渲染的方法對于具有中空結(jié)構(gòu)的體數(shù)據(jù)無能為力,正是因為GPU的深度檢測雖然可以檢測出部分空體素,但是僅限于那些未被遮擋的空體素,而那些位于中空部分的點則無法被檢測到.詳細(xì)分析此問題,如圖7所示,設(shè)在當(dāng)前視點的一條光線上有5個點,其中Sn和Sf分別表示距視點最近和最遠(yuǎn)的非空體素點,而Se1、Se2、Se3則表示3個空體素點,其中Se2和Se3位于Sn和Sf外側(cè).當(dāng)采用近點渲染時,由式(8)計算出每個點的Z值,很顯然Se2的Z值比Sn更小,但由于其為空體素,因此依然被剔除;反之同理,當(dāng)采用遠(yuǎn)點渲染時,雖然Se3的Z值比Sf更大,但也會被剔除.而Se1在兩次渲染過程中由于遮擋均未能剔除.因此可以想到,如果把Se1點也拿到Sn和Sf之外,則遮擋問題也就迎刃而解了.本文提出一種方法,即在GPU渲染前對體數(shù)據(jù)先進(jìn)行對半剖分,如圖8所示,設(shè)斷開部分為剖分部位,則對其剖分后的每一部分來說,又產(chǎn)生了新的Sn和Sf,這里記為Sn′和Sf′,可以看到,Se1位于右半部分,且位于原來的遠(yuǎn)點Sf和新的近點Sn′之外,此時,再進(jìn)行渲染操作時,Se1也可以被跳過了.再比較對半剖分前后的渲染結(jié)果,可以發(fā)現(xiàn),對半剖分前,光線的起點和終點分別是Sn和Sf′,剖分后,其在左半部分的起點和終點變?yōu)镾n和Sf,在右半部分變?yōu)镾n′和Sf,而Sf′和Sn′之間的空體素則被跳過了,因此,在光線投射過程中,光線實際經(jīng)過的距離大大縮短.

        圖7 體數(shù)據(jù)剖分前的狀態(tài)

        圖8 對半剖分后的狀態(tài)

        對于圖3中的體數(shù)據(jù),進(jìn)行對半剖分后,由一個封閉的中空結(jié)構(gòu),變成了各自開放的兩部分,這里稱為V1和V2,如圖9所示.由圖9可以看出,剖分后的光線r2-r4均跳過了大量中空體素,整個體數(shù)據(jù)的可視化速度自然就加快了.

        圖9 原始體數(shù)據(jù)剖分后的兩部分

        對于剖分后的V1和V2兩部分,由于每部分只具有原來體數(shù)據(jù)的1/2有效體素,亦即其各自的另一半被人為掏空了,在后續(xù)的光線投射與顏色累積過程中,為保證生成正確的圖像,必須保留每部分的位置關(guān)系,即保證每部分中所有有效體素的坐標(biāo)保持不變.為此,本文對被剖掉的部分用空體素來進(jìn)行填充,因此這種方法會需要增加內(nèi)存使用量,是一種以空間換時間的方法.

        剖分后的V1和V2兩部分還需要分別進(jìn)行建立八叉樹和剔除空塊、建立新的有效頂點數(shù)組的操作,才可以進(jìn)行前向和后向渲染.

        4 CUDA繪制

        CUDA核函數(shù)是由多個線程組成的多個線程塊的網(wǎng)格,同一個線程塊中的線程可以方便的進(jìn)行通信.針對本文實驗所使用的數(shù)據(jù)分辨率、生成圖像大小,以及CUDA設(shè)備的實際計算能力,在啟動CUDA核函數(shù)前,CUDA線程塊的大小設(shè)置為(16,16),網(wǎng)格大小為(16,16).

        需要注意的是,由于渲染后的前向和后向紋理是由OPENGL生成的,而OPENGL中的紋理在CUDA中無法直接使用.本文通過OPENGL和CUDA的互操作方法,使用CUDA的內(nèi)存注冊和映射機(jī)制將OPENGL紋理映射為CUDA中的數(shù)組,然后在CUDA中再綁定為CUDA紋理,這種方法可以節(jié)省很多數(shù)據(jù)在內(nèi)存中的復(fù)制時間,提高內(nèi)存使用率和算法效率.同樣的,為接收CUDA核函數(shù)返回的最終結(jié)果,并使用OPENGL進(jìn)行繪制顯示,同樣要將OPENGL中的PBO(pixelbufferobject)映射到CUDA中的數(shù)組中,這樣CUDA核函數(shù)計算的結(jié)果也就可以被OPENGL實時接收并顯示了.

        具體算法過程如下:

        1)讀入完整體數(shù)據(jù),將其從中間部位剖分成兩部分V1和V2.

        2)分別對V1和V2建立八叉樹,并進(jìn)行空體素塊剔除,建立兩個新的有效體素塊頂點集合.

        3)使用GPU分別對新建立的V1和V2的頂點集合進(jìn)行前向和后向渲染,并保存到紋理中,最后得到V1的前向和后向紋理,V2的前向和后向紋理共4個紋理.

        4)通過OPENGL和CUDA互操作,將步驟3)得到的紋理映射到CUDA中,以供CUDA使用.

        5)啟動CUDA核函數(shù),依次對V1和V2進(jìn)行光線投射,兩部分光線投射的起點和終點可以從步驟3)中得到的紋理結(jié)果中讀取.

        6)在核函數(shù)中將得到的兩個結(jié)果進(jìn)行合成,并映射到OPENGL紋理,得到最終圖像.

        其中,步驟5)中的CUDA核函數(shù)的具體算法流程如圖10所示,算法包括兩個相對獨立的子過程,分別獲取V1和V2的光線起止點和光線方向,完成各自的顏色和透明度累積過程,最后將兩個過程的結(jié)果累加,得到最終圖像.

        5 結(jié)果與分析

        實驗所用的計算機(jī)配置如下:2.6GHz雙核CPU,4G內(nèi)存,編程環(huán)境為VisualStudio2008,顯卡采用GeForceGT635M,1G顯存,擁有2個SM(streammultiprocessor),96個CUDA核心,CUDA計算能力2.1,CUDA版本5.5.

        共使用了兩組數(shù)據(jù)進(jìn)行實驗,分別為腳趾骨(foot)和茶壺(teapot),CT數(shù)據(jù)尺寸均為256×256×256,為對本文方法進(jìn)行驗證和評價,本文實現(xiàn)了文獻(xiàn)[4]的基于GPU渲染的方法以及文獻(xiàn)[10]中的八叉樹編碼方法,并將結(jié)果與本文提出的方法進(jìn)行了比較.teapot數(shù)據(jù)集的圖像對比結(jié)果如圖11(a)~(c)所示,foot數(shù)據(jù)集如圖11(d)~(f)所示.由上至下分別為Westermann方法(簡稱W方法)、八叉樹方法以及本文方法.

        圖10 CUDA核函數(shù)流程

        圖11 3種方法生成圖像對比

        3種方法的數(shù)據(jù)預(yù)處理時間見表1.文獻(xiàn)[4]方法由于無須創(chuàng)建八叉樹結(jié)構(gòu),只需要消耗體數(shù)據(jù)的裝載時間,因此所需要的預(yù)處理時間最短.本文方法的預(yù)處理時間少于八叉樹編碼方法,這是由于本文剔除空塊操作與構(gòu)造八叉樹是同時進(jìn)行的,因此可以節(jié)省更多的預(yù)處理時間.在實際可視化應(yīng)用中,圖像在繪制階段的成像時間更為重要,因此,相對于獲得更為滿意的加速效果,預(yù)處理時間的有限增加是可以接受的.

        表1 數(shù)據(jù)預(yù)處理時間比較 ms

        3種方法的核函數(shù)運(yùn)行時間對比見表2, 3.表中的加速比分別為八叉樹編碼方法和本文方法相對于文獻(xiàn)[4]方法的加速百分比.

        從成像效果看,3種方法沒有明顯差異.對于teapot數(shù)據(jù)集,由于茶壺是中空結(jié)構(gòu),其內(nèi)部具有較多的空體素,由核函數(shù)運(yùn)行時間可以看出,因此本文提出的對半剖分方法相較于另外兩種方法,均有非常顯著的加速效果,且光線投射步長越小,加速效果越明顯;而對于foot數(shù)據(jù)集,加速效果則相對不太明顯,這是因為腳趾骨的結(jié)構(gòu)不是中空的,內(nèi)部很少有空體素可以跳過.

        表2 foot數(shù)據(jù)集核函數(shù)運(yùn)行時間對比

        表3 teapot數(shù)據(jù)集核函數(shù)運(yùn)行時間對比

        6 結(jié) 論

        1)通過改進(jìn)的八叉樹層次分解方法,將體數(shù)據(jù)進(jìn)行重構(gòu),使數(shù)據(jù)表達(dá)和存儲更加高效和易于處理.

        2)提出一種將原始體數(shù)據(jù)先對半剖分成兩部分再分別進(jìn)行渲染以跳過中空部分體素的方法,使得在光線投射過程中,最大程度的減少因空體素計算導(dǎo)致的冗余計算問題.

        3)結(jié)合使用GPU硬件渲染的方法,快速跳過在體數(shù)據(jù)包圍盒外部的空體素,節(jié)省了傳統(tǒng)光線投射算法中手動計算光線與包圍盒交點而浪費的時間.

        4)實驗結(jié)果表明,本文提出的方法生成的圖像質(zhì)量和傳統(tǒng)的方法沒有明顯差別,但可以有效的跳過中空體素,對于中空結(jié)構(gòu)的體數(shù)據(jù)的可視化具有明顯的加速效果.

        [1] LEVOY M. Display of surface from volume data [J]. IEEE Computer Graphics & Application, 1988, 8(3):29-37.

        [2] CULLIP T J, NEUMANN U. Accelerating volume reconstruction with 3D texture hardware. Technical report, TR93-027 [R]. NC, USA: University of North Carolina at Chapel Hill, 1994.

        [3] CABRAL B, CAM N, FORAN J. Accelerated volume rendering and tomographic reconstruction using texture mapping hardware[C]//Proceedings of the 1994 Symposium on Volume Visualization. York, NY: ACM, 1994:91-98.

        [4] KRUGER J,WESTERMANN R. Acceleration techniques for GPU-based volume rendering [C]// Proceedings of the 14thIEEE Visualization 2003 (VIS′03). Washington, DC: IEEE Computer Society, 2003: 38.

        [5] SCHARSACH H, HADWIGER M, NEUBAUEr A, et al. Perspective isosurface and direct volume rendering for virtual endoscopy applications [C]//Proceedings of Eurographics/ IEEE-VGTC Symposium on Visualization. Lisbon, Portugal: The Eurographic Association, 2006: 315-322.[6] HADWIGER M, LJUNG P, SALAMA C R, et al. Advanced illumination techniques for GPU volume raycasting [C]//Proceedings of the ACM Special Interest Group on Computer Graphics and Interactive Techniques. New York: ACM, 2008.

        [7] QIAN Fengchen, SHAN Ning, YE Yalin. A model of point multiresolution rendering method [C]// International Conference on Structural Engineering, Vibration and Aerospace Engineering (SEVAE 2013). Zhuhai: Trans Tech Publications LTD, 2014, 482: 355-358.

        [8] 劉白林, 黃舒舒, 劉云卿. 八叉樹編碼與GPU加速結(jié)合的光線投射法 [J]. 西安工業(yè)大學(xué)學(xué)報, 2011, 31(1):65-68.[9] LIU B Q, CLAPWORTHY G J, DONG F, et al. Octree rasterization: accelerating high-quality out-of-core GPU volume rendering [J]. IEEE Transaction on Visualization and Computer Graphics, 2013, 19(10):1732-1745.

        [10]康健超, 康寶生, 馮筠, 等. 基于八叉樹編碼的CUDA光線投射算法[J]. 西北大學(xué)學(xué)報:自然科學(xué)版, 2012, 42(1):36-41

        [11]BERGNER S, MOLLER T, WEISKOPF D, et al. A spectral analysis of function composition and its implications for sampling in direct volume visualization [C]//IEEE Transactions on Visualization and Computer Graphics. Piscataway, NJ:IEEE Educational Activities,2006, 12(5):1353-1360.

        [12]SUWELACK S, HEITZ E, UNTERHINNINGHOFEN R, et al. Adaptive GPU ray casting based on spectral analysis[C]// Proceedings of the 5thInternational Conference on Medical Imaging and Augmented Reality. Berlin, Heidelberg: Springer-Verlag, 2010: 169-178.

        [13]葉良, 單桂華, 遲學(xué)斌. 基于CUDA加速的光線投射法研究 [J]. 圖像圖形技術(shù)研究與應(yīng)用, 2010: 235-240.

        [14]蘇超軾, 趙明昌, 張向文. GPU加速的八叉樹體繪制算法 [J]. 計算機(jī)應(yīng)用, 2008, 28(5):1232-1235.

        (編輯 張 紅)

        GPU-based ray casting method by half-splitting volume data

        YU Shui,WANG Kuanquan,XIA Yong,ZHANG Henggui

        (School of Computer Science and Technology, Harbin Institute of Technology, 150001 Harbin, China)

        To alleviate the inefficiency of the current visualization methods in skipping the empty voxels located in the hollow part, this paper presents a GPU-based ray casting method for hollow volume data. First, the volume is divided into two equal parts and reconstructed into two octrees before rendering. In this process, the empty blocks are culled synchronously from the original data, and two vertex arrays are generated consisting of valid voxels only. Then, the vertex arrays are rendered into textures which contain the start and direction information of the ray. The final images are obtained by calculating the color and opacity of the two parts with CUDA, respectively. The experimental results show that our method can speed up the rendering speed considerably on the volume data with large hollow structure without any quality loss compared with the traditional visualization methods.

        data visualization; ray casting; GPU rendering; octree; CUDA; hollow volume data

        10.11918/j.issn.0367-6234.2016.04.012

        2014-09-23.

        國家自然科學(xué)基金(61173086);山東省科技發(fā)展計劃資助(2012GSF12105).

        于 水(1976—),男,博士研究生;

        王寬全(1964—),男,教授,博士生導(dǎo)師;

        王寬全,wangkq@hit.edu.cn.

        TP391.41

        A

        0367-6234(2016)04-0073-06

        張恒貴(1964—),男,教授,博士生導(dǎo)師.

        猜你喜歡
        方法
        中醫(yī)特有的急救方法
        中老年保健(2021年9期)2021-08-24 03:52:04
        高中數(shù)學(xué)教學(xué)改革的方法
        河北畫報(2021年2期)2021-05-25 02:07:46
        化學(xué)反應(yīng)多變幻 “虛擬”方法幫大忙
        變快的方法
        兒童繪本(2020年5期)2020-04-07 17:46:30
        學(xué)習(xí)方法
        可能是方法不對
        用對方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        最有效的簡單方法
        山東青年(2016年1期)2016-02-28 14:25:23
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        賺錢方法
        蜜臀aⅴ国产精品久久久国产老师 国产精品久久婷婷六月丁香 | 国产国拍亚洲精品福利| 久久精品中文字幕免费| 日本久久精品视频免费| 真实国产乱子伦精品视频| 日本japanese少妇高清| 国产精品成人午夜久久| 亚洲中文字幕人妻诱惑| 无码精品色午夜| 中文字幕日韩人妻在线| 国产精品高湖呻呤久久av| 午夜精品久久久久久久久| 特级做a爰片毛片免费看108| 国产三级欧美| 抖射在线免费观看视频网站| 亚洲一区二区三区免费网站 | 国产日产高清欧美一区| 国产不卡视频一区二区在线观看| 国产在线观看女主播户外| 亚洲av无码日韩av无码网站冲| 久久精品国产第一区二区三区| 欧美成人精品三级在线观看| 天天综合色中文字幕在线视频| 99噜噜噜在线播放| 亚洲一区二区三区中文字幂| 青春草国产视频| 女同同成片av免费观看| 精品卡一卡二乱码新区| 亚洲精品网站在线观看你懂的| 亚洲色四在线视频观看| 中文字幕亚洲精品在线免费| 日产学生妹在线观看| 国产成人拍精品免费视频| 亚洲熟女av一区少妇| 又色又爽又黄的视频软件app| 国产精品 高清 尿 小便 嘘嘘| 亚洲天堂免费av在线观看| 中文字幕本久久精品一区| 一本一道久久a久久精品综合| 久久久久国产精品片区无码| 日本刺激视频一区二区|