專利名稱:基于gpu加速的體數(shù)據(jù)動態(tài)剖切方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種體數(shù)據(jù)實時剖切方法,特別是一種基于GPU加速的動態(tài)剖切方 法,屬于體數(shù)據(jù)的剖切與可視化領(lǐng)域。
背景技術(shù):
隨著當(dāng)前硬件設(shè)備的更新?lián)Q代,尤其是計算機(jī)圖形硬件性能的飛速提升,利用高 性能的圖形設(shè)備進(jìn)行交互,使得高質(zhì)量的三維體數(shù)據(jù)可視化成為可能。三維可視化技術(shù)雖 然已經(jīng)滲透到各行各業(yè),在醫(yī)學(xué)、地質(zhì)學(xué)、氣象學(xué),空間物體學(xué)、化學(xué),顯微攝影學(xué),計算流體 力學(xué)和有限元分析等諸多領(lǐng)域都有不同程度的應(yīng)用。然而,體視化技術(shù)目前還面臨著許多 問題,其中最主要的是體數(shù)據(jù)顯示速度慢,不能進(jìn)行實時動態(tài)顯示?;隗w視化技術(shù)所面臨 的這樣一個現(xiàn)實,體數(shù)據(jù)規(guī)則龐大,顯示和剖切所需的計算量都非常大。如果不從硬件角度 來解決這個問題,那么只能在犧牲速度或者顯示質(zhì)量之間做出選擇。于是,人們便求助于硬 件,利用由硬件實現(xiàn)的三維紋理映射功能來進(jìn)行三維體數(shù)據(jù)的加速體繪制。體視化的任務(wù) 和目的是把三維體數(shù)據(jù)中蘊藏的信息挖掘出來,并顯示在人們面前。如何挖掘并顯示體數(shù) 據(jù)內(nèi)部的有用信息就要涉及到體數(shù)據(jù)的剖切技術(shù)。
發(fā)明內(nèi)容
本發(fā)明目的在于克服上述現(xiàn)有技術(shù)的不足而提供一種基于GPU(GraphiCS Progressing Uint即可編程圖形處理器)加速的體數(shù)據(jù)的實時剖切方法,該實時剖切方法 可以動態(tài)地對三維體數(shù)據(jù)進(jìn)行剖切,大大提高了剖切與顯示的速度,達(dá)到實時顯示的效果, 提高圖形真實感。實現(xiàn)本發(fā)明目的所采用的技術(shù)方案是一種基于GPU加速的體數(shù)據(jù)動態(tài)剖切方法 包括以下步驟(1)首先讀取數(shù)據(jù),再對體數(shù)據(jù)進(jìn)行預(yù)處理,數(shù)據(jù)的預(yù)處理是通過一定的間隔在數(shù) 值上取平均值,對數(shù)據(jù)進(jìn)行抽稀。(2)將體數(shù)據(jù)的屬性值映射成對應(yīng)的顏色值;(3)根據(jù)視點與模型的距離確定要加載的數(shù)據(jù)塊體和數(shù)據(jù)塊的分辨率并剔除不可 見的塊體;(4)將三維體數(shù)據(jù)讀入系統(tǒng)內(nèi)存后,定義為三維紋理,然后裝入紋理內(nèi)存;(5)構(gòu)建代理幾何體;(6)紋理坐標(biāo)數(shù)據(jù)的填充;(7)利用GPU對每個采樣點進(jìn)行插值;(8)利用GPU實現(xiàn)光照計算;(9)利用GPU實現(xiàn)紋理重采樣;(10)通過交互操作或者參數(shù)設(shè)置的方法得到剖切的參數(shù);(11)由上一步得到的剖切參數(shù),根據(jù)場景中相機(jī)的位置可以獲得觀察視角,然后根據(jù)視角重新構(gòu)建待剖切模型的代理幾何體,并實時地計算紋理坐標(biāo)變換參數(shù),再利用紋 理映射進(jìn)行體繪制,完成剖切的過程。本發(fā)明對體數(shù)據(jù)剖切的方法,是利用基于GPU加速的動態(tài)剖切方法,通過對體數(shù) 據(jù)的插值預(yù)處理,將體數(shù)據(jù)屬性值以某種映射關(guān)系映射成顏色值,然后裝載到體紋理,通過 紋理坐標(biāo)變化進(jìn)行實時計算,然后通過GPU加速實現(xiàn)紋理重采樣技術(shù),最終將像素值映射 到模型上。本發(fā)明由硬件實現(xiàn)的三維紋理映射功能來進(jìn)行三維體數(shù)據(jù)的直接體繪制,這里的 硬件指的是在紋理空間中實現(xiàn)重采樣的插值運算及具有不透明度值的圖像合成等均由硬 件完成。利用三維紋理硬件的加速繪制方法,即借助紋理映射功能,通過動態(tài)地修改紋理幾 何體的紋理坐標(biāo)并進(jìn)行實時的計算,動態(tài)地呈現(xiàn)剖切后的三維圖形效果。本發(fā)明通過基于 GPU加速的體紋理繪制方法對三維體數(shù)據(jù)進(jìn)行實時剖切,使三維體數(shù)據(jù)的剖切達(dá)到實時動 態(tài)顯示的效果。本發(fā)明具有如下顯著的優(yōu)點(1)基于三維體紋理映射功能可以由硬件實現(xiàn),通過GPU插值可以大大加速數(shù)據(jù) 的處理速度,達(dá)到實時顯示的效果。(2)本發(fā)明生成代理幾何體的算法由CPU執(zhí)行,其結(jié)果是產(chǎn)生一系列多邊形代理 幾何體的頂點及各頂點相應(yīng)的紋理坐標(biāo),然后渲染所生成的代理幾何體,實現(xiàn)體繪制的目 的,該過程由GPU執(zhí)行完成。通過代理幾何體技術(shù)可以大大提高圖象的顯示效果,其它的方 法都不能達(dá)到同樣的效果。(3)對體數(shù)據(jù)的剖切過程實時快速,效果真實感強。(4)對體數(shù)據(jù)屬性值過濾也實時快速。(5)在剖切的過程中可以隨時設(shè)置顯示參數(shù)。(6)動態(tài)的剖切過程可以實時地觀察到體數(shù)據(jù)的剖面信息。
圖1為本發(fā)明方法的流程圖。
具體實施例方式下面結(jié)合附圖對本發(fā)明方法作進(jìn)一步的說明?!N基于GPU加速的體數(shù)據(jù)動態(tài)剖切方法包括以下步驟(1)數(shù)據(jù)的讀取與處理。首先讀取數(shù)據(jù),再對體數(shù)據(jù)進(jìn)行預(yù)處理。數(shù)據(jù)的預(yù)處理是 通過一定的間隔在數(shù)值上取平均值,對數(shù)據(jù)進(jìn)行抽稀的過程。(2)將體數(shù)據(jù)的屬性值映射成顏色值。通過映射關(guān)系,如c = P (X),將數(shù)據(jù)的屬 性值映射成對應(yīng)的顏色值。(3)加載數(shù)據(jù)。首先是確定加載的數(shù)據(jù)塊,根據(jù)視點與模型的距離確定要加載的數(shù) 據(jù)塊體和數(shù)據(jù)塊的分辨率;確定之后還需要剔除不可見的塊體。(4)將體數(shù)據(jù)裝入紋理內(nèi)存。將三維體數(shù)據(jù)讀入系統(tǒng)內(nèi)存后,定義為三維紋理,然 后裝入紋理內(nèi)存,由于紋理內(nèi)存有限,大型體數(shù)據(jù)被分成幾個三維紋理塊。(5)構(gòu)建代理幾何體。生成代理幾何體的目的是為了確定體數(shù)據(jù)中重采樣位置,并由GPU執(zhí)行三維空間變換、光柵化和紋理映射等操作,最后合成所有代理幾何體的顏色和 不透明度值,生成繪制圖像。獲得觀察視角后,即當(dāng)視線方向確定后,紋理空間與對象空間 的映射關(guān)系也得到確定,再根據(jù)采樣密度定義一系列相互平行的等間距采樣多邊形,即構(gòu) 建了代理幾何體。本發(fā)明基于GPU加速的體數(shù)據(jù)動態(tài)剖切方法所采用的代理幾何體垂直于 體數(shù)據(jù)的某一個坐標(biāo)軸方向,而且當(dāng)體數(shù)據(jù)空間旋轉(zhuǎn)時,代理幾何體始終保持與視口最接 近的坐標(biāo)軸垂直的方向。生成代理幾何體的具體步驟如下(5-1)根據(jù)模型視距陣將體數(shù)據(jù)轉(zhuǎn)換到視空間,并計算此時包圍盒8個頂點中ζ坐 標(biāo)的最小值和最大值;(5-2)根據(jù)某固定采樣間距計算最大最小ζ值之間的切片個數(shù),然后按照從后向 前的順序,也即是ζ值從小到大的順序依次處理每個切片;(5-3)每次視線方向發(fā)生改變時,轉(zhuǎn)到步驟(5-1)重新生成多邊形代理幾何體。由圖1可知在構(gòu)建代理幾何體時,還需要交互獲取剖切參數(shù),進(jìn)而獲取剖切視角。 這是因為本發(fā)明是基于GPU加速的體數(shù)據(jù)動態(tài)剖切方法,根據(jù)交互的過程中是否改變剖切 參數(shù),即剖切視角是否發(fā)生改變,若剖切視角改變了,則重新生成代理幾何體。也就是說,構(gòu) 建代理幾何體時首先要判斷剖切視角是否發(fā)生改變。(6)紋理坐標(biāo)數(shù)據(jù)的填充。在剛開始顯示體數(shù)據(jù)時,就直接填充體數(shù)據(jù)的紋理坐 標(biāo),在接下來的動態(tài)剖切過程中,則是實時地計算紋理坐標(biāo)變換,然后再對紋理坐標(biāo)數(shù)據(jù)進(jìn) 行填充。接下來的步驟就是利用GPU來實現(xiàn)對采樣點進(jìn)行插值、光照計算,并通過紋理映 射實現(xiàn)對體數(shù)據(jù)的重采樣。(7) GPU插值。GPU插值是利用GPU對每個采樣點進(jìn)行插值。(8)利用GPU實現(xiàn)光照計算。在將模型繪制為最終圖像之前,需要加入光照計算。 光照計算描述了光源照射到物體上的綜合表現(xiàn),與光源位置和強度、物體的材質(zhì)屬性和幾 何特征、視點位置等參數(shù)有關(guān)。體繪制中光照模型包括三個部分環(huán)境光(ambient)、漫反 射光(diffuse)和鏡面高光(specular)。Iphong = S^ambient+b*Idiffuse+c*Ispecular(a+b+c = 1)(9)利用GPU實現(xiàn)紋理重采樣。由上面構(gòu)建的代理幾何體,借助紋理映射功能,按 順序繪制代理幾何體,確定重采樣的位置,并執(zhí)行紋理映射,實現(xiàn)對體數(shù)據(jù)的重采樣。以上的所有步驟,完成了體數(shù)據(jù)的可視化過程。對體數(shù)據(jù)進(jìn)行實時剖切由以下的 步驟進(jìn)入一個循環(huán)過程,即根據(jù)交互過程中改變了剖切參數(shù),獲取新的剖切視角,再重新生 成代理幾何體,進(jìn)行體數(shù)據(jù)繪制(10)獲取剖切的參數(shù)??梢酝ㄟ^交互操作或者參數(shù)設(shè)置的方法得到剖切的參數(shù), 包括場景中相機(jī)的位置和剖切面參數(shù)等。(11)獲取觀察視角。由上一步得到的剖切參數(shù),根據(jù)場景中相機(jī)的位置可以獲得 觀察視角。然后根據(jù)視角重新構(gòu)建待剖切模型的代理幾何體,并實時地計算紋理坐標(biāo)變換 參數(shù),再利用紋理映射進(jìn)行體繪制,完成剖切的過程。以上的所有步驟即實現(xiàn)了對體數(shù)據(jù)的一個剖切過程,在交互的過程中動態(tài)地改變 剖切的參數(shù),將重新進(jìn)行剖切的過程,即實現(xiàn)了對體數(shù)據(jù)的連續(xù)、實時剖切。
權(quán)利要求
1.一種基于GPU加速的體數(shù)據(jù)動態(tài)剖切方法,其特征在于包括以下步驟(1)體數(shù)據(jù)的讀取與預(yù)處理;(2)將體數(shù)據(jù)的屬性值映射成對應(yīng)的顏色值;(3)根據(jù)視點與模型的距離確定要加載的數(shù)據(jù)塊體和數(shù)據(jù)塊的分辨率,并剔除不可見 的塊體;(4)將三維體數(shù)據(jù)讀入系統(tǒng)內(nèi)存后,定義為三維紋理,然后裝入紋理內(nèi)存;(5)構(gòu)建代理幾何體;(6)紋理坐標(biāo)數(shù)據(jù)的填充;(7)利用GPU對每個采樣點進(jìn)行插值;(8)利用GPU實現(xiàn)光照計算;(9)利用GPU實現(xiàn)紋理重采樣,由上面構(gòu)建的代理幾何體,借助紋理映射按順序繪制代 理幾何體,確定重采樣的位置,并執(zhí)行紋理映射,實現(xiàn)對體數(shù)據(jù)的重采樣;(10)通過交互操作或者參數(shù)設(shè)置的方法得到剖切的參數(shù);(11)由上一步得到的剖切參數(shù),根據(jù)場景中相機(jī)的位置獲得觀察視角,然后根據(jù)視角 重新構(gòu)建待剖切模型的代理幾何體,并實時地計算紋理坐標(biāo)變換參數(shù),再利用紋理映射進(jìn) 行體繪制,完成剖切的過程。
2.根據(jù)權(quán)利要求1所述基于GPU加速的體數(shù)據(jù)動態(tài)剖切方法,其特征在于步驟⑴中 對體數(shù)據(jù)進(jìn)行預(yù)處理是通過一定的間隔在數(shù)值上取平均值,對數(shù)據(jù)進(jìn)行抽稀。
3.根據(jù)權(quán)利要求1所述基于GPU加速的體數(shù)據(jù)動態(tài)剖切方法,其特征在于代理幾何 體是在獲得觀察視角后,即當(dāng)視線方向確定后,紋理空間與對象空間的映射關(guān)系也得到確 定,再根據(jù)采樣密度定義一系列相互平行的等間距采樣多邊形。
4.根據(jù)權(quán)利要求1所述基于GPU加速的體數(shù)據(jù)動態(tài)剖切方法,其特征在于根據(jù)交互 的過程中是否改變剖切參數(shù),即剖切視角是否發(fā)生改變,確定是否重新生成代理幾何體,若 剖切視角改變了,則重新生成代理幾何體。
5.根據(jù)權(quán)利要求1或3或4所述基于GPU加速的體數(shù)據(jù)動態(tài)剖切方法,其特征在于 生成代理幾何體的具體步驟如下(5-1)根據(jù)模型視距陣將體數(shù)據(jù)轉(zhuǎn)換到視空間,并計算此時包圍盒8個頂點中ζ坐標(biāo)的 最小值和最大值;(5-2)根據(jù)某固定采樣間距計算最大最小ζ值之間的切片個數(shù),然后按照從后向前的 順序,也即是ζ值從小到大的順序依次處理每個切片;(5-3)每次視線方向發(fā)生改變時,轉(zhuǎn)到步驟(5-1)重新生成多邊形代理幾何體。
6.根據(jù)權(quán)利要求1所述基于GPU加速的體數(shù)據(jù)動態(tài)剖切方法,其特征在于步驟(6)中 在剛開始顯示體數(shù)據(jù)時,就直接填充體數(shù)據(jù)的紋理坐標(biāo),在接下來的動態(tài)剖切過程中,則實 時地計算紋理坐標(biāo)變換,然后再對紋理坐標(biāo)數(shù)據(jù)進(jìn)行填充。
7.根據(jù)權(quán)利要求1所述基于GPU加速的體數(shù)據(jù)動態(tài)剖切方法,其特征在于步驟⑶的 體繪制中光照模型包括環(huán)境光、漫反射光和鏡面高光,則Iph。ng = a*I環(huán)境光鏡 面髙光,其中a+b+c =1。
全文摘要
本發(fā)明公開了一種基于GPU加速的體數(shù)據(jù)動態(tài)剖切方法,該方法是基于體紋理加速繪制的,即由硬件實現(xiàn)的三維紋理映射功能來進(jìn)行三維體數(shù)據(jù)的直接體繪制,這里的硬件指的是在紋理空間中實現(xiàn)重采樣的插值運算及具有不透明度值的圖像合成等均由硬件完成。利用三維紋理硬件的加速繪制方法,即借助紋理映射功能,通過動態(tài)地修改紋理幾何體的紋理坐標(biāo)并進(jìn)行實時的計算,動態(tài)地呈現(xiàn)剖切后的三維圖形效果。本發(fā)明通過基于GPU加速的體紋理繪制方法對三維體數(shù)據(jù)進(jìn)行實時剖切,使三維體數(shù)據(jù)的剖切達(dá)到實時動態(tài)顯示的效果。
文檔編號G06T15/08GK102074036SQ20101057601
公開日2011年5月25日 申請日期2010年12月7日 優(yōu)先權(quán)日2010年12月7日
發(fā)明者冉秀桃, 劉修國, 張柱, 花衛(wèi)華, 鄭坤 申請人:中國地質(zhì)大學(xué)(武漢)