版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、上一節(jié)課內(nèi)容回顧第七講 三維標(biāo)量場等值面可視化7.1 Cuberille表示和顯示方法7.2 Marching Cube算法7.3 有限元等值面7.4 VTK中三維標(biāo)量場的等值面可視化等值面是指空間中的一張曲面,在該曲面上函數(shù)F(x,y,z)的值等于某一給定值準(zhǔn)確地講,是在一網(wǎng)格空間中,其中每一結(jié)點(diǎn)保存著連續(xù)三變量函數(shù)F(x,y,z)在網(wǎng)格單元(xi,yj,zk)上的采樣值F(xi,yj,zk),對于某一給定值Ft,等值面是由所有點(diǎn)SFt(x,y,z):F(x,y,z) Ft 組成的一張曲面。7.1 Cuberille表示和顯示方法Cuberille表示是一種適合于正交密集數(shù)據(jù)場的表示方法,主
2、要適用在醫(yī)學(xué)圖像、無損探傷等三維圖像的等值面抽取該表示將三維圖像中的每一象素看成是空間中的一個(gè)小立方體,在該小立方體內(nèi),數(shù)據(jù)場具有相同的值,整個(gè)空間及其對象就由這類小立方體組成這類小立方體被稱作Cuberille表示中的體素。Cuberille表示和顯示方法就是基于這種簡單的體素表示。圖7.1 Cuberille中的體素7.2 Marching Cube算法 Marching Cube算法是三維數(shù)據(jù)場等值面生成的經(jīng)典算法,是體素單元內(nèi)等值面抽取技術(shù)的代表。這一類算法所處理的數(shù)據(jù)一般是三維正交的數(shù)據(jù)場。Marching Cube算法中的立方體體素與Cuberille表示中的立方體體素不同,后者僅
3、以一個(gè)等值立方體表示一個(gè)體素值,等值面由體素的六個(gè)表面面元組成而在Marching Cube算法中,體素是一邏輯上的立方體,由相鄰層上的各四個(gè)象素組成立方體上的八個(gè)頂點(diǎn),如圖7.2所示算法以掃描線方式逐個(gè)處理數(shù)據(jù)場中每一立方體體素,求出每一體素內(nèi)包含的等值面,由此生成整個(gè)數(shù)據(jù)場的等值面圖7.2 Marching Cube中的體素15種模式 :012345678910141312117.2.2二義性解決方法 Marching Cube算法提供了一種較精確的等值面生成方法,但在它所提出的15種體素內(nèi)等值面連接模式中存在著許多二義性的連接,如圖7.5所示圖7.5二義性立方體 另一種消除二義性的方法是
4、將立方體剖分成四面體處理,在四面體中生成等值面就不存在二義性問題。 可假設(shè)在四面體邊上數(shù)據(jù)場呈線性變化,對于每個(gè)四面體,等值面模式只有三種情況,如圖7.11所示如果頂點(diǎn)數(shù)據(jù)值全大于或小于等值面值,等值面與單元無交,如一點(diǎn)大于另三點(diǎn)小于等值面值,則四面體中等值面是一三角片,如二點(diǎn)大于二點(diǎn)小于等值面值,則等值面是一四邊形,可由兩個(gè)三角片構(gòu)造圖7.11 四面體中的等值面7.3 有限元中的等值面 在有限元分析的后置處理中,等值面抽取和顯示是一個(gè)主要手段,與前述的立方體體素相比較,盡管基本思路相同,但由于有限元數(shù)據(jù)的特點(diǎn),有限元中的等值面生成又有其不同之處與正規(guī)化體素相比,有限元數(shù)據(jù)有以下特點(diǎn): 1)單
5、元類型不一樣,常見的有限元單元類型有4結(jié)點(diǎn)、6結(jié)點(diǎn)、8結(jié)點(diǎn)等,且每一單元比體素要大得多,單元邊也往往非直線(見圖7.12); 2)輸入數(shù)據(jù)不一樣,其幾何連通性不是隱含的,而是顯式說明的,數(shù)據(jù)中包含了每一單元每一頂點(diǎn)的幾何數(shù)據(jù)圖7.12常見的有限元單元類型 小結(jié) 等值面是三維標(biāo)量場最基本的表示方法。 Cuberille表示將整個(gè)場空間劃分成等值立方體體素,其中等值面由體素的外表面組成。 為了提高等值面生成的精度,體素被認(rèn)為是由相鄰層對應(yīng)八個(gè)采樣點(diǎn)組成。針對這種體素表示,出現(xiàn)了以Marching Cube算法為代表的單元內(nèi)的等值面抽取方法。 兩種二義性解決方法:基于線性插值假設(shè)下的漸近線交點(diǎn)判定方
6、法和四面體剖分后插值及等值面構(gòu)造。 本節(jié)課內(nèi)容第八講 三維標(biāo)量場體可視化 體繪制與面繪制的比較 體光照模型 體光線跟蹤法 體單元投影法 三維掃描變換 VTK中的體繪制技術(shù)81 體繪制與面繪制的比較 在自然環(huán)境和計(jì)算模型中,許多對象和現(xiàn)象只能用三維體數(shù)據(jù)場表示,和傳統(tǒng)的計(jì)算機(jī)圖形學(xué)相比,對象體不再是用幾何曲面或曲線表示的三維實(shí)體,而是以體素(voxel)作為基本造型單元對于每一體素,不僅其表面而且其內(nèi)部都包含了對象信息,這是僅用曲線或曲面等幾何造型方法所無法表示的 體繪制的目的就在于提供一種基于體素的繪制技術(shù),它有別于傳統(tǒng)的基于面的繪制,能顯示出對象體的豐富的內(nèi)部細(xì)節(jié) 體繪制技術(shù)包括體數(shù)據(jù)的表示
7、、操作和繪制三部分內(nèi)容 體數(shù)據(jù)的來源有兩類:一類是通過采樣設(shè)備,如CT,MR等儀器,獲得的實(shí)驗(yàn)數(shù)據(jù),如斷層掃描數(shù)據(jù)集;另一類是通過計(jì)算模型獲得的計(jì)算數(shù)據(jù),得到的通常是有限元計(jì)算數(shù)據(jù)集. 兩類數(shù)據(jù)集統(tǒng)稱為三維體數(shù)據(jù)集 在前一類正規(guī)化斷層掃描數(shù)據(jù)集中,體素一般表示為中心在網(wǎng)格點(diǎn)的單位立方體(如采用Cuberille表示),或各頂點(diǎn)在網(wǎng)格點(diǎn)的單位立方體(如Marching Cube算法) 在后一類有限元計(jì)算數(shù)據(jù)集中,體素一般指有限元單元且其網(wǎng)格空間是非正規(guī)化的采用三維掃描變換可以將非正規(guī)化的有限元單元數(shù)據(jù)集轉(zhuǎn)換成正規(guī)化斷層掃描數(shù)據(jù)集. 體素是指網(wǎng)格空間中的單位立方體,每一體素都有一個(gè)相應(yīng)的數(shù)值表示某
8、些可測量的屬性或獨(dú)立變量(如顏色、不透明度、污染物濃度、密度、材料、比率、折射率、速度、強(qiáng)度、變形、時(shí)間等) 圖81表示了體繪制的一個(gè)數(shù)據(jù)流過程,描述了體繪制和面繪制兩種繪制方法的各自過程。雖然兩種繪制方法都是對三維數(shù)據(jù)場的顯示,但由于基本方法的不同,因而在繪制效果,算法時(shí)間,交互性能等多方面都存在著很大的差別圖81 兩種繪制方法的各自過程 體繪制的一個(gè)特點(diǎn)就在于放棄了傳統(tǒng)圖形學(xué)中體由面構(gòu)造的這一約束,采用體繪制光照模型直接從三維數(shù)據(jù)場中繪制出各類物理量的分布情況 等值面、等勢面等數(shù)據(jù)場的幾何面表示方法,是研究者們?yōu)榱诉m應(yīng)圖形顯示,人為地提出的一種數(shù)據(jù)場表示形式體繪制的根本點(diǎn)就在于放棄了這一做
9、法,直接研究光線穿過三維體數(shù)據(jù)場時(shí)的變化,得到最終的繪制結(jié)果 體繪制由于直接研究光線通過體數(shù)據(jù)場時(shí)與體素的相互關(guān)系,無需構(gòu)造中間面,體素中的許多細(xì)節(jié)信息得以保留,結(jié)果的保真性大為提高 從結(jié)果圖像的質(zhì)量上講,體繪制要優(yōu)于面繪制但從交互性能和算法效率上講,至少在目前的硬件平臺上,面繪制還是要優(yōu)于體繪制的8.2 體光照模型 體光照模型是進(jìn)行體繪制的基礎(chǔ)當(dāng)光線穿過體素與光線遇到一曲面時(shí),會發(fā)生不同的光學(xué)現(xiàn)象前者如光線穿過云層會發(fā)生吸收、散射等現(xiàn)象,后者如光線射到桌面上,有漫射、反射、透射等現(xiàn)象不同的物理背景決定了體光照強(qiáng)度的計(jì)算與面光照強(qiáng)度的計(jì)算有著不同的模型和方法 體光照模型就是研究光線穿過體素時(shí)的
10、光強(qiáng)變化,將光線穿過體素時(shí)的物理現(xiàn)象用數(shù)學(xué)模型來描述在目前的體繪制中,采用得較多的有源-衰減模型、變密度發(fā)射模型和材料分類及組合模型821 源衰減模型 源衰減模型為體數(shù)據(jù)場中的每一體素分配一個(gè)源強(qiáng)度和一個(gè)衰減系數(shù),每一體素作為一個(gè)質(zhì)點(diǎn)光源,發(fā)出的光線在數(shù)據(jù)場中沿距離衰減后被投影到視平面上,形成結(jié)果圖像822 變密度發(fā)射模型 變密度發(fā)射模型認(rèn)為任一對象都是一個(gè)質(zhì)點(diǎn)光源系統(tǒng)。整個(gè)對象空間中都充滿著粒子云,每一粒子均可發(fā)光模型處理的是宏觀的質(zhì)點(diǎn)密度,而非質(zhì)點(diǎn)粒子本身該模型認(rèn)為質(zhì)點(diǎn)足夠小,以致可以認(rèn)為質(zhì)點(diǎn)是連續(xù)分布的823 材料分類及混合模型 材料分類及混合模型認(rèn)為每一體素是由若干種材料組合而成,如在
11、CT圖像中每一體素由骨路、軟組織、脂肪和空氣等組成,其中每種材料的組成由該種材料在體素中所占的百分比來描述每一體素中每種材料的百分比的確定采用的是概率分類而非二值分類對不同材料分別計(jì)算其密度分布以及光照強(qiáng)度和不透明度,在分類的基礎(chǔ)上,再通過組合公式,將各種材料的光照強(qiáng)度和不透明度以所占的百分比為權(quán)混合成該體素的亮度和不透明度與前兩種模型相比最根本的區(qū)別在于材料分類及混合模型是一種基于分割的光強(qiáng)組合計(jì)算方法,它著眼于分割,而非討論體數(shù)據(jù)中的各類物理現(xiàn)象 83 體繪制方法分類和比較 體光照模型提供了體數(shù)據(jù)中各數(shù)據(jù)點(diǎn)光照強(qiáng)度的計(jì)算方法,體繪制方法提供的是二維結(jié)果圖像的生成方法 首先根據(jù)數(shù)據(jù)點(diǎn)值對每一
12、數(shù)據(jù)點(diǎn)賦以不透明度值和顏色值;再根據(jù)各數(shù)據(jù)點(diǎn)所在點(diǎn)的梯度及光照模型計(jì)算出各數(shù)據(jù)點(diǎn)的光照強(qiáng)度,然后將投射到圖像平面中同一象素點(diǎn)的各數(shù)據(jù)點(diǎn)的半透明度和顏色值綜合在一起,形成最終的結(jié)果圖像 根據(jù)不同的繪制次序,體繪制方法目前主要分兩類:以圖像空間為序的體繪制算法以對象空間為序的體繪制方法(1)以圖像空間為序的體繪制算法光線跟蹤 以圖像空間為序的繪制算法是從屏幕上的每一象素點(diǎn)出發(fā),根據(jù)設(shè)定的視點(diǎn)方向,發(fā)出一條射線,這條射線穿過三維數(shù)據(jù)場的體素矩陣,沿這條射線選擇K個(gè)等距采樣點(diǎn),由距離某一采樣點(diǎn)最近的8個(gè)體素的顏色值及不透明度值做三維線性插值,求出該采樣點(diǎn)的不透明度值及顏色值在求出該條射線上所有采樣點(diǎn)的
13、顏色值及不透明度值以后,可以采用由后到前或由前到后的兩種不同的方法將每一采樣點(diǎn)的顏色及不透明度進(jìn)行組合,從而計(jì)算出屏幕上該象素點(diǎn)處的顏色值 光線跟蹤的主要步驟: For 每條光線 Do For 每個(gè)與光線相交的體素 Do 計(jì)算該體素對圖像空間對應(yīng)象素的貢獻(xiàn)(2)以對象空間為序的體繪制算法單元投影法 該類算法首先根據(jù)每個(gè)數(shù)據(jù)點(diǎn)的函數(shù)值計(jì)算該點(diǎn)的不透明度及顏色值,然后根據(jù)給定的視平面和觀察方向,將每個(gè)數(shù)據(jù)點(diǎn)的坐標(biāo)由對象空間變換到圖像空間再根據(jù)選定的光照模型,計(jì)算出每個(gè)數(shù)據(jù)點(diǎn)處的光照強(qiáng)度然后根據(jù)選定的重構(gòu)核函數(shù)計(jì)算出從三維數(shù)據(jù)點(diǎn)光照強(qiáng)度到二維圖像空間的映射關(guān)系,得出每個(gè)數(shù)據(jù)點(diǎn)所影響的二維象素的范圍及
14、對其中每個(gè)象素點(diǎn)的光照強(qiáng)度的貢獻(xiàn)最后將不同的數(shù)據(jù)點(diǎn)對同一象素點(diǎn)的貢獻(xiàn)加以合成 單元投影法的主要步驟: For 每一體素或單元 Do For 該體素在視平面投影區(qū)域內(nèi)的每一象素 Do 計(jì)算象素點(diǎn)獲得的光照強(qiáng)度 兩種方法各有特點(diǎn),光線跟蹤要將當(dāng)前所有體數(shù)據(jù)放入內(nèi)存,內(nèi)存要求高而單元投影只需當(dāng)前單元的體數(shù)據(jù) 從走樣的情況分析,由于光線跟蹤采用點(diǎn)采樣,走樣情況只有通過分布式光線跟蹤才能消除相對地講,單元投影可達(dá)到解析解的程度實(shí)質(zhì)上,圖象質(zhì)量高低的關(guān)鍵在于所采用的重構(gòu)核函數(shù)的精度高精度的再采樣同樣能較大地提高光線跟蹤的質(zhì)量 對象空間往往比圖像空間要大得多,單元投影法的計(jì)算時(shí)間相對要大得多 光線跟蹤難以并
15、行化,而單元投影的并行處理要相對容易得多.8.4體光線跟蹤法 光線跟蹤是三維場景繪制的一個(gè)很有效的方法,與傳統(tǒng)的基于三維場景幾何表示的光線跟蹤相比,體繪制光線跟蹤有其許多自身的特點(diǎn):首先,對象空間的表示不同傳統(tǒng)的對象空間是用造型技術(shù)建立起來的幾何表示;而體繪制的對象空間是由被稱為體素的單位立方體排列而成也可以看成是由一系列斷層數(shù)據(jù)組合而成,稱為體緩沖區(qū)其次,求交方式的不同傳統(tǒng)的光線跟蹤是與對象表中的對象求交,求出最近的相交點(diǎn);而體繪制光線跟蹤是遍歷整個(gè)體緩沖區(qū),求出第一個(gè)與光線相交的非透明的體素,由該體素中所存的數(shù)據(jù)值計(jì)算其光照強(qiáng)度第三,計(jì)算復(fù)雜度的不同,傳統(tǒng)光線跟蹤算法其計(jì)算時(shí)間隨著對象的增
16、加,組成場景對象的復(fù)雜度增加而大大增加,主要是由于求交的開銷影響著整個(gè)算法的效率;而體繪制免去了大量費(fèi)時(shí)的求交計(jì)算,只需計(jì)算與立方體素的交和一個(gè)體素的遍歷機(jī)制因而體繪制光線跟蹤的復(fù)雜度與組成場景的對象數(shù)目和類型無關(guān)其復(fù)雜度主要和體緩沖區(qū)的分辨率有關(guān)在給定分辨率的情況下,體繪制光線跟蹤的時(shí)間幾乎是一常數(shù) 最后,任何與視點(diǎn)相關(guān)參數(shù)的改變,都會引起光線跟蹤算法的完全重計(jì)算對傳統(tǒng)光線跟蹤而言,這些重計(jì)算包括紋理顏色的計(jì)算,光源可見性的檢測,光照強(qiáng)度的計(jì)算等等;而對于體繪制而言,許多與視點(diǎn)相關(guān)的計(jì)算在三維離散采樣生成體數(shù)據(jù)時(shí)已經(jīng)存在于體數(shù)據(jù)中,如對象的紋理等,其繪制參數(shù)的改變主要是視點(diǎn)、光源和光照明模型
17、,相對而言。計(jì)算量要小一些841 三維對象的直接二維顯示 該算法從屏幕向?qū)ο罂臻g發(fā)射光線,假設(shè)屏幕上的每一點(diǎn)都是一光源,該光源以重直于屏幕的方向發(fā)射平行光對于屏幕上的每一點(diǎn),首先計(jì)算出對象空間中與該點(diǎn)光線相交的第一點(diǎn),然后再根據(jù)交點(diǎn)處的信息計(jì)算屏幕點(diǎn)最終的顏色值圖811 計(jì)算光線與對象邊界的交點(diǎn)圖812 算法對象框架當(dāng)對象空間是離散數(shù)據(jù)場時(shí),用對象邊界計(jì)算光線與對象的第一交點(diǎn),如圖811所示,交點(diǎn)必定位于沿光線兩點(diǎn)I1和I2之間,其中I1和I2滿足: 1)沿光線從屏幕到I1每點(diǎn)都位于對象之外; 2) I2位于對象之內(nèi) 為方便算法的敘述,對算法作下列假設(shè): 1)對象放入一矩形盒中,由若干斷層組成
18、; 2)給定一點(diǎn),能確定該點(diǎn)位于哪一斷層上; 3)屏幕是一正方形或矩形,被分割成象素,每一象素由一點(diǎn)表示; 4)屏幕垂直于光線方向,光線方向由連接屏幕中心點(diǎn)和包圍盒的直線確定 采用離散方式計(jì)算交點(diǎn)位置選擇一足夠小的步長d,對屏幕上每一點(diǎn)P,沿光線找出滿足條件的一點(diǎn)Q,如圖813所示,Q點(diǎn)可以通過以d為步長沿光線采樣測試條件來尋找如果步長d太大,可能會丟失一些對象的交點(diǎn),如圖814所示,但如果d太小,采樣過密,速度會很慢 圖813 沿光線求交點(diǎn)圖814 步長d太大丟失交點(diǎn)三維對象直接二維顯示算法的主要過程: For il to L Do PE十(i一1)U; For i1 to L Do 計(jì)算K
19、0和K1KK0十1QP十KtWhile(Q在對象外)and(K K1) Do KK十1QQ十1End WhileIF Q在對象內(nèi) Then計(jì)算第一個(gè)交點(diǎn)I與P點(diǎn)的距離計(jì)算I點(diǎn)法向量;計(jì)算P點(diǎn)顏色值;Else 置P點(diǎn)為背景值 End IfEnd ForPPVEnd For8.4.2 光線投射法 光線投射的體繪制算法是目前使用最廣泛的一種體繪制方法,如圖815所示,對于圖像平面上的每一象素,從視點(diǎn)投射出一穿過該象素的視線,該視線穿過體數(shù)據(jù)空間,算法直接利用該視線上的采樣值計(jì)算該象素的光強(qiáng) 整個(gè)算法分為光線生成、光強(qiáng)計(jì)算與組合、圖像顯示三部分。圖815 光線投射法設(shè)體數(shù)據(jù)中每一位于(i,j,k)的體
20、素值為f(x)(x=(i,j,k),位于視平面(u,v)處象素的光線為R(u,v),其強(qiáng)度值為C(u,v) 首先由f(x),根據(jù)光照明模型計(jì)算出對應(yīng)的光強(qiáng)值C(x)和不透明度值a(x)沿光線R,進(jìn)入圖像空間與體數(shù)據(jù)包圍盒相交,在兩相交點(diǎn)之間設(shè)置一系列采樣點(diǎn)S1,S2,Sm。根據(jù)C(x)和a(x) ,通過再采樣計(jì)算出對應(yīng)的C(Si)和a(Si),將C(Si)和a(Si)沿光線組合在一起就是當(dāng)前象素點(diǎn)處的光強(qiáng)度值,如圖816所示過程圖816 光線投射流程根據(jù)光線的方向,組合可分為從后到前和從前到后兩種組合方式。設(shè)光線穿過體素前顏色和不透明度為Cin和Ain,穿過體素后為Cout和Aout (見圖8
21、17),光線從后到前的組合為: CoutCin(1-Ain) + C(Si)* A(Si)光線從前到后的組合為: CoutCin+C(Si) (1-Ain)兩種組合前者直接計(jì)算,后者要計(jì)算Aout,但后者可利用Aout優(yōu)化累加過程,故一般還是多采用后者 圖817 光線組合方式光線投射體繪制算法:C(R)0a(R)0X1First(R) 求出在對象空間中光線進(jìn)入和離開的位置X2Last(R)UlImage(X1)轉(zhuǎn)換到圖像空間中的位置U2Image(X2) 對所有在該對象空間的采樣點(diǎn)SFor SU1 to U2 DoSx=Object(S) 轉(zhuǎn)換到對象空間他置 求出Sx處的不透明度值a(Sx)
22、If a(Sx)0 Then C(Sx)采樣點(diǎn)處的顏色(c*a) C(R)C(R)十C(Sx)(1 - a(R) a(R)a(R)十a(chǎn)(Sx)(1-a(R) End IfEnd For85 體單元投影法 體單元投影法是以對象空間為序的一種體繪制方法,它從對象空間的三維數(shù)據(jù)場出發(fā),依次計(jì)算每個(gè)數(shù)據(jù)點(diǎn)對屏幕上各象素點(diǎn)的貢獻(xiàn),將同一平面和不同平面上各數(shù)據(jù)點(diǎn)對各象素點(diǎn)光亮度的貢獻(xiàn)合成起來得到最后的圖像,其過程如圖820所示圖820 體單元投影851 V-Buffer算法 該算法是基于正交網(wǎng)格點(diǎn)上計(jì)算單元的投影繪制方法算法掃描整個(gè)對象空間,依次逐個(gè)處理每一單元,由視點(diǎn)和單元的相對位置來決定單元的掃描次序
23、,為每一單元定義一個(gè)包圍盒,用掃描線裁剪生成單元投影貢獻(xiàn)的象素區(qū)域?qū)γ織l掃描線上的象素點(diǎn)計(jì)算出光照強(qiáng)度和不透明度,然后進(jìn)行累加,可見性由不透明度所決定該方法類似于消隱中的Z-Buffer算法,故稱為V-Buffer算法。(1) 掃描次序的決定 由于在VBuffer中保存的是每一象素不透明度的累加值,后續(xù)單元對該象素的貢獻(xiàn)受該累加不透明度的影響,因而單元掃描次序的決定是決定算法正確組合的基礎(chǔ) 單元的處理,由接近視點(diǎn)的平面開始,逐個(gè)平面處理,直至最遠(yuǎn)的平面在每個(gè)平面內(nèi)的單元處理次序是根據(jù)單元與視點(diǎn)距離,從最近的單元開始,然后處理相鄰單元,這樣就形成了一個(gè)類似同心圓式的掃描過程 由于是正交網(wǎng)格單元,
24、單元之間不會相互重疊,從而保證了上述處理次序的正確性,同時(shí)該算法也更易實(shí)現(xiàn)并行 圖821顯示了算法單元的處理次序,在同一平面內(nèi)由l9決定了掃描次序,同一次序號的單元可并行處理 (2)單元的處理 在逐個(gè)單元的處理中,首先為每一單元決定一個(gè)包圍盒由該包圍盒在圖像平面上的投影,決定該單元投影的掃描線范圍對于包圍盒內(nèi)的每條掃描線,計(jì)算由掃描線所確定的掃描平面與單元的交多邊形,該交多邊形是一凸多邊形,投影到掃描線上形成至多五段區(qū)間(見圖822)(3)光亮度貢獻(xiàn)的累加 對于與單元有交多邊形的各條掃描線上的每一象素,要計(jì)算單元對它的光亮度貢獻(xiàn)和不透明度的貢獻(xiàn),其中各象素點(diǎn)不透明度的值作為V-Buffer的內(nèi)
25、容保留在V-Buffer中光亮度和不透明度的計(jì)算在每個(gè)象素的四個(gè)頂點(diǎn)上進(jìn)行首先求出當(dāng)前象素上的投影線與交多邊形的交點(diǎn),如圖8.22中P點(diǎn)的投影線與交多邊形有兩個(gè)交點(diǎn)A和B,由交點(diǎn)可求出交線長,由交線長可計(jì)算出當(dāng)前單元對該象素的貢獻(xiàn),再將貢獻(xiàn)累加到圖像平面上.圖82l 單元掃描次序圖822 單元的投影823 象素頂點(diǎn)的累加由四個(gè)象素頂點(diǎn)形成一四邊形,所有空間函數(shù)如不透明度、光照強(qiáng)度和紋理在單元內(nèi)都作為三次變量函數(shù),插值可采用三維線性插值 當(dāng)前象素的四個(gè)頂點(diǎn)的累加光亮度和不透明度(見圖823) Cacc(1Oacc)C十Cacc Oacc(1Oacc)O十Oacc這是一種從前到后的累加,累加過程在
26、 1)單元處理完; 2)對應(yīng)象素的V-Buffer中的值Oacc到達(dá)1;會停止對應(yīng)象素點(diǎn)的光亮度累加當(dāng)所有象素都停止累加,則整個(gè)算法停止運(yùn)行,完成繪制過程852 Footprint算法 Footprint算法的過程和紋理映射的過程是一對相反的過程紋理映射是要計(jì)算出圖像平面上每一象素在紋理空間中的取值范圍,將該范圍內(nèi)值加權(quán)求和作為象素的紋理值而Footprint算法的過程是對每一數(shù)據(jù)采樣點(diǎn)計(jì)算出它在圖像平面內(nèi)的影響的象素范圍(Footprint范圍),通過把各采樣點(diǎn)的能量擴(kuò)展到圖像空間,逐步重構(gòu)原始信號該算法要計(jì)算的是每一采樣點(diǎn)對最終圖像的貢獻(xiàn)和每一采樣點(diǎn)對每一象素的重構(gòu)核心圖824比較了這兩者
27、的各自過程。圖824 紋理映射與Footprint計(jì)算過程 整個(gè)Footprint算法由四步組成:變換、光強(qiáng)計(jì)算、重構(gòu)和可見性組合.頁是通過數(shù)據(jù)空間平行于圖像平面的一個(gè)平面, Footprint算法是對頁內(nèi)的所有體素同時(shí)進(jìn)行的 首先將頁內(nèi)采樣點(diǎn)從數(shù)據(jù)空間(i,j,k)變換到屏幕圖像空間(x,y,z)應(yīng)用光照模型計(jì)算出光照強(qiáng)度(x,y,z,r,g,b,a). 然后選用Footprint函數(shù)計(jì)算采樣貢獻(xiàn)所能影響的圖像空間的范圍,將其貢獻(xiàn)累加到圖像空間的頁累加器中,其中Footprint函數(shù)的決定、函數(shù)的采樣和采樣貢獻(xiàn)的擴(kuò)展,被形象地稱為Splatting過程比喻為確定一滴水從對象空間落到圖像平面上
28、濺開的范圍 當(dāng)一個(gè)頁內(nèi)的采樣處理完后,用一組合操作將頁累加器內(nèi)的值組合到工作圖像中; 當(dāng)所有采樣處理都完成后,工作圖像將成為最后的圖像86 三維掃描變換 以有限元計(jì)算數(shù)據(jù)為代表的非正規(guī)化網(wǎng)格空間的數(shù)據(jù)集無法直接使用前幾節(jié)介紹的體繪制方法,必須通過三維掃描變換將其轉(zhuǎn)換成正規(guī)化網(wǎng)格空間數(shù)據(jù)集 所謂將面數(shù)據(jù)轉(zhuǎn)換成體數(shù)據(jù),也就是把多邊形表示的幾何形體轉(zhuǎn)換成體素表示,這一過程被稱為體素化(voxelization)通過體素化把三維空間中表示連續(xù)曲面的幾何數(shù)據(jù)轉(zhuǎn)化為三維空間中表示對象的離散體素,這實(shí)際上就是一個(gè)三維掃描變換過程87 VTK中的體繪制技術(shù):1 體元道具:vtkVolume -幾何表面可視化中
29、vtkActorvolume = vtkVolume()volume.SetMapper(volumeMapper)volume.SetProperty(volumeProperty)2 體元特性:vtkVolumeProperty (顏色和透明度)灰度: SetColor (vtkPiecewiseFunction )彩色: SetColor (vtkColorTransferFunction)標(biāo)量的透明度:SetScalarOpacity (vtkPiecewiseFunction )梯度的透明度: SetGradientOpacity (vtkPiecewiseFunction )vol
30、umeProperty = vtkVolumeProperty()volumeProperty.SetColor(colorTransferFunction)volumeProperty.SetScalarOpacity(opacityTransferFunction)opacityTransferFunction = vtkPiecewiseFunction()opacityTransferFunction.AddPoint(20,0.0)opacityTransferFunction.AddPoint(255,0.2)3 體元Mapper: vtkVolumeMappervtkVolume
31、RayCastMapper:設(shè)置射線合成函數(shù): SetVolumeRayCastFunction(vtkVolumeRayCastFunction)設(shè)置梯度計(jì)算函數(shù): SetGradientEstimator(vtkEncodedGradientEstimator)volumeMapper = vtkVolumeRayCastMapper()compositeFunction = vtkVolumeRayCastCompositeFunction()volumeMapper.SetVolumeRayCastFunction(compositeFunction)volumeMapper.SetI
32、nput(reader.GetOutput()(2) vtkVolumeProMapper用于VolumePro卡(3) vtkVolumeTextureMapper2D colorTransferFunction = vtkColorTransferFunction()colorTransferFunction.AddRGBPoint(0.0,0.0,0.0,0.0)colorTransferFunction.AddRGBPoint(64.0,1.0,0.0,0.0)colorTransferFunction.AddRGBPoint(128.0,0.0,0.0,1.0)colorTransf
33、erFunction.AddRGBPoint(192.0,0.0,1.0,0.0)colorTransferFunction.AddRGBPoint(255.0,0.0,0.2,0.0)reader = vtkStructuredPointsReader()reader.SetFileName(./ironProt.vtk)# Create transfer mapping scalar value to opacityopacityTransferFunction = vtkPiecewiseFunction()opacityTransferFunction.AddPoint(20,0.0)
34、opacityTransferFunction.AddPoint(255,0.2)# Create transfer mapping scalar value to colorcolorTransferFunction = vtkColorTransferFunction()colorTransferFunction.AddRGBPoint(0.0,0.0,0.0,0.0)colorTransferFunction.AddRGBPoint(64.0,1.0,0.0,0.0)colorTransferFunction.AddRGBPoint(128.0,0.0,0.0,1.0)colorTran
35、sferFunction.AddRGBPoint(192.0,0.0,1.0,0.0)colorTransferFunction.AddRGBPoint(255.0,0.0,0.2,0.0)# The property describes how the data will lookvolumeProperty = vtkVolumeProperty()volumeProperty.SetColor(colorTransferFunction)volumeProperty.SetScalarOpacity(opacityTransferFunction)# The mapper / ray cast function know how to render the dat
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電力設(shè)施拆除施工方案流程
- 建筑工程質(zhì)量月專項(xiàng)方案
- 醫(yī)用泥漿產(chǎn)業(yè)規(guī)劃專項(xiàng)研究報(bào)告
- 夾鼻眼鏡產(chǎn)業(yè)規(guī)劃專項(xiàng)研究報(bào)告
- 家用拋光設(shè)備和機(jī)器非電動產(chǎn)業(yè)規(guī)劃專項(xiàng)研究報(bào)告
- 外匯交易行業(yè)營銷策略方案
- 新能源汽車充電網(wǎng)絡(luò)安全管理制度
- 醫(yī)用激素產(chǎn)業(yè)運(yùn)行及前景預(yù)測報(bào)告
- 彩色粉筆蠟筆產(chǎn)業(yè)規(guī)劃專項(xiàng)研究報(bào)告
- 人造毛皮產(chǎn)業(yè)運(yùn)行及前景預(yù)測報(bào)告
- 小學(xué)紀(jì)念孫中山誕辰日班會PPT
- KAQCLS-120立式超聲波洗瓶機(jī)說明書
- 第14課《背影》課件(共24張PPT) 部編版語文八年級上冊
- 浙江心理健康C證-面試資料大全(高中組)
- 2022年盤錦北方瀝青股份有限公司招聘筆試試題及答案解析
- 小學(xué)作文思維導(dǎo)圖-課件(完美版)
- 小學(xué)經(jīng)典誦讀社團(tuán)活動計(jì)劃、安排、記錄匯編
- 土木工程結(jié)構(gòu)試驗(yàn)與檢測課件
- 倍的認(rèn)識(劉松)
- C++語言基礎(chǔ)知識
- 潰瘍性結(jié)腸炎的中西結(jié)合治療
評論
0/150
提交評論