資源描述:
《計(jì)算機(jī)圖形學(xué)第5講圖形消隱.ppt》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、1圖形消隱2圖形消隱基本概念提高消隱算法效率的常用方法畫家算法Z緩沖器算法掃描線Z緩沖器算法OpenGL相關(guān)函數(shù)3問題投影變換失去了深度信息,往往導(dǎo)致圖形的二義性及失去遮擋關(guān)系失去遮擋關(guān)系基本概念基本概念要消除二義性和保持遮擋關(guān)系,就必須在繪制(投影)時消除被遮擋的不可見的線或面,習(xí)慣上稱作消除隱藏線(HiddenLineRemoval)消除隱藏面(HiddenSurfaceRemoval)簡稱為消隱45消隱的對象三維物體三維體的表示主要采用邊界(多邊形)表示消隱結(jié)果與觀察物體有關(guān),也與視點(diǎn)位置和方向有關(guān)線框圖消隱圖真實(shí)感圖形
2、基本概念6消隱分類消除隱藏線:消除不可見線——線框表示物體消除隱藏面:確定可見面(消除不可見面)——表面表示物體基本概念7基本概念世界坐標(biāo)系用戶用來定義圖形的坐標(biāo)系,主要用于計(jì)算機(jī)圖形場景中所有圖形對象的空間定位和定義。觀察坐標(biāo)系可以在世界坐標(biāo)系的任何位置、任何方向定義,通常以視點(diǎn)的位置為原點(diǎn),通過用戶指定的一個向上的觀察向量來定義整個坐標(biāo)系統(tǒng)。unvP0(x0,y0,z0)xyz8基本概念將世界坐標(biāo)系中的三個坐標(biāo)軸轉(zhuǎn)換為與觀察坐標(biāo)系的三個坐標(biāo)軸對應(yīng)重合的逆變換平移變換,將觀察參考點(diǎn)移到世界坐標(biāo)系的原點(diǎn)處旋轉(zhuǎn)變換,將u,v,n
3、分別對應(yīng)到x,y,z即繞x軸旋轉(zhuǎn)角,繞y軸旋轉(zhuǎn)角,繞z軸旋轉(zhuǎn)角消除隱藏線體=n個面基本運(yùn)算線線間求交運(yùn)算線面間求交運(yùn)算9消除隱藏線平面對直線段的遮擋判斷算法思路:先做簡單判斷,將計(jì)算量較大的判斷留到后面做10消除隱藏線(1)若線段的兩端點(diǎn)及視點(diǎn)在給定平面的同側(cè),線段不被給定平面遮擋(2)若線段的投影與平面投影的包圍盒無交,線段不被給定平面遮擋,轉(zhuǎn)711消除隱藏線(3)求直線與相應(yīng)無窮平面的交。若無交點(diǎn),轉(zhuǎn)4。否則,交點(diǎn)在線段內(nèi)部或外部。若交點(diǎn)在線段內(nèi)部,交點(diǎn)將線段分成兩段,與視點(diǎn)同側(cè)的一段不被遮擋,另一段在視點(diǎn)異側(cè),轉(zhuǎn)4再判;
4、若交點(diǎn)在線段外部,轉(zhuǎn)4。12P0(4)求所剩線段的投影與平面邊界投影的所有交點(diǎn)。若無交點(diǎn),轉(zhuǎn)513P0P1P2P3P4P5(5)以上所求得的各交點(diǎn)將線段的投影分成若干段,求出第一段中點(diǎn)。(6)若第一段中點(diǎn)在平面的投影內(nèi),則相應(yīng)的段被遮擋,否則不被遮擋;其他段的遮擋關(guān)系可依次交替取值進(jìn)行判斷。14P0P1P2P3P4P5消除隱藏線HiddenLineRemove(){坐標(biāo)變換;for(對每個面Fj)for(Fj的每一條邊Ei)將二元組壓入堆棧While(棧不空){=棧頂;for(j!=j0的每一個面Fj
5、){if(Ei被Fj全部遮擋){將Ei清空;break;}if(Ei被Fj部分遮擋){從Ei中將被遮擋的部分裁掉;if(Ei被分成若干段){取其中的一段作為當(dāng)前Ei段;將其它段及相應(yīng)的j壓棧;}}}if(Ei段不為空)顯示Ei;}}While(棧不空){=棧頂;for(j!=j0的每一個面Fj){if(Ei被Fj全部遮擋){將Ei清空;break;}if(Ei被Fj部分遮擋){從Ei中將被遮擋的部分裁掉;if(Ei被分成若干段){取其中的一段作為當(dāng)前Ei段;將其它段及相應(yīng)的j壓棧;}}}if(Ei段不為空)顯示E
6、i;}15分治策略簡單的剔除求每條邊上的遮擋16面消隱算法分類投影窗口內(nèi)的像素為處理單元——確定最近點(diǎn)for(窗口內(nèi)的每一個像素){確定距視點(diǎn)最近的物體,以該物體表面的顏色來顯示像素}圖像空間-image-space基本概念17面消隱算法分類(續(xù))場景中的物體為處理單元——物體上的面是否最近for(場景中的每一個物體){將其與場景中的其它物體比較,確定其表面的可見部分;顯示該物體表面的可見部分;}物體空間-object-space基本概念18提高消隱算法效率的常用方法主要技術(shù)1.利用連貫性(SpatialCoherence)相
7、鄰物體的屬性之間有一定的連貫性,其屬性值通常是平緩過渡的,如顏色值、空間位置關(guān)系等包括:物體連貫性面的連貫性區(qū)域連貫性掃描線連貫性深度連貫性19提高消隱算法效率的常用方法包圍盒技術(shù)定義:一個形體的包圍盒指的是包圍它的簡單形體兩個條件包圍盒充分緊密包圍著形體對其的測試比較簡單主要包圍盒長方體正方體球20提高消隱算法效率的常用方法作用—避免盲目求交兩個空間多邊形A、B在投影平面上的投影分別為A’,B’,因?yàn)锳’、B’的矩形包圍盒不相交,則A’、B’不相交,無須進(jìn)行遮擋測試一般情況下,判斷兩物體是否遮擋時,前一種情況大量存在,避免了
8、物體間的復(fù)雜相交測試21提高消隱算法效率的常用方法背面剔除外法向:規(guī)定每個多邊形的外法向都是指向物體外部的前向面:若多邊形的外法向與投影方向(觀察方向)的夾角為鈍角,稱為前向面后向面:若多邊形的外法向與投影方向(觀察方向)的夾角為銳角,稱為后向面(背面)夾角為180-u投影方