計算機圖形學chap9_第1頁
計算機圖形學chap9_第2頁
計算機圖形學chap9_第3頁
計算機圖形學chap9_第4頁
計算機圖形學chap9_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、1第九章第九章 消隱消隱o 基本概念基本概念o 深度緩存器算法深度緩存器算法o 區(qū)間掃描線算法區(qū)間掃描線算法o 深度排序算法深度排序算法o 區(qū)域細分算法區(qū)域細分算法o 光線投射算法光線投射算法o BSP樹算法樹算法o 多邊形區(qū)域排序算法多邊形區(qū)域排序算法o OpenGL中的消隱中的消隱2基本概念基本概念o 物體的消隱或隱藏線面的消除物體的消隱或隱藏線面的消除:在給定視點和:在給定視點和視線方向后,決定場景中哪些物體的表面是可視線方向后,決定場景中哪些物體的表面是可見的,哪些是被遮擋不可見的。見的,哪些是被遮擋不可見的。3基本概念基本概念o 消隱算法按實現(xiàn)方式分類消隱算法按實現(xiàn)方式分類n 圖像空

2、間消隱算法以屏幕像素為采樣單位,圖像空間消隱算法以屏幕像素為采樣單位,確定投影于每一像素的可見景物表面區(qū)域,確定投影于每一像素的可見景物表面區(qū)域,并將其顏色作為該像素的顯示顏色。如深度并將其顏色作為該像素的顯示顏色。如深度緩沖器算法、緩沖器算法、A緩沖器算法、區(qū)間掃描線算緩沖器算法、區(qū)間掃描線算法等。法等。4基本概念基本概念n 景物空間消隱算法直接在景物空間(觀察坐景物空間消隱算法直接在景物空間(觀察坐標系)中確定視點不可見的表面區(qū)域,并將標系)中確定視點不可見的表面區(qū)域,并將它們表達成同原表面一致的數(shù)據(jù)結(jié)構(gòu)。如它們表達成同原表面一致的數(shù)據(jù)結(jié)構(gòu)。如BSP算法、多邊形區(qū)域排序算法等。算法、多邊形

3、區(qū)域排序算法等。n 介于二者之間的算法,如深度排序算法、區(qū)介于二者之間的算法,如深度排序算法、區(qū)域細分算法、光線投射算法等。域細分算法、光線投射算法等。5基本概念基本概念o 基本的原則基本的原則n 排序:各景物表面按照距離視點遠近排序的排序:各景物表面按照距離視點遠近排序的結(jié)果,用于確定消隱對象之間的遮擋關(guān)系。結(jié)果,用于確定消隱對象之間的遮擋關(guān)系。n 連貫性:連貫性是指所考察的物體或視區(qū)內(nèi)連貫性:連貫性是指所考察的物體或視區(qū)內(nèi)的圖像局部保持不變的一種性質(zhì),用于提高的圖像局部保持不變的一種性質(zhì),用于提高排序效率。排序效率。69.1深度緩存器算法(深度緩存器算法(Z-buffer)o 基本原理基本

4、原理n 幀緩存:保存各點的顏色。幀緩存:保存各點的顏色。n Z緩存:保存屏幕坐標系上各象素點所對應緩存:保存屏幕坐標系上各象素點所對應的深度值的深度值。7深度緩存器算法(深度緩存器算法(Z-buffer)圖圖9.1深度緩存器算法的原理深度緩存器算法的原理8深度緩存器算法(深度緩存器算法(Z-buffer)o 算法步驟算法步驟n 初始化:把初始化:把Z緩存中各緩存中各(x,y)單元置為單元置為z的最的最小值,而幀緩存各小值,而幀緩存各(x,y)單元置為背景色。單元置為背景色。n 在把物體表面相應的多邊形掃描轉(zhuǎn)換成幀緩在把物體表面相應的多邊形掃描轉(zhuǎn)換成幀緩存中的信息時,對于多邊形內(nèi)的每一采樣點存中

5、的信息時,對于多邊形內(nèi)的每一采樣點(x,y)進行處理:進行處理:9深度緩存器算法(深度緩存器算法(Z-buffer)l 計算采樣點計算采樣點(x,y)的深度的深度z(x,y);l 如如z(x,y)大于大于Z緩存中在緩存中在(x,y)處的值,處的值,則把則把z(x,y)存入存入Z緩存中的緩存中的(x,y)處,再處,再把多邊形在把多邊形在z(x,y)處的顏色值存入幀緩處的顏色值存入幀緩存的存的(x,y)地址中。地址中。10深度緩存器算法(深度緩存器算法(Z-buffer)o 如何計算采樣點如何計算采樣點(x,y)的深度的深度z(x,y)。n 假定多邊形的平面方程為:假定多邊形的平面方程為:Ax+B

6、y+Cz+D=0。CDByAxyxz),(11深度緩存器算法(深度緩存器算法(Z-buffer)圖圖9.2利用掃描線的連貫性加速深度的計算利用掃描線的連貫性加速深度的計算12深度緩存器算法(深度緩存器算法(Z-buffer)n 掃描線上所有后繼點的深度值:掃描線上所有后繼點的深度值:n 當處理下一條掃描線當處理下一條掃描線y=y-1時,該掃描線上時,該掃描線上與多邊形相交的最左邊(與多邊形相交的最左邊(x最?。┙稽c的最小)交點的x值值可以利用上一條掃描線上的最左邊的可以利用上一條掃描線上的最左邊的x值計值計算:算: ),() 1(), 1(CAyxzCDByxAyxz 1min,min, 1k

7、xxyy13深度緩存器算法(深度緩存器算法(Z-buffer)n 掃描線深度緩存器算法掃描線深度緩存器算法 ),( ) 1()1( ) 1() 1,(min,min,min, 1min, 1CBkAyxzCDyBkxACDyBAxyxzyyyy14深度緩存器算法(深度緩存器算法(Z-buffer)o 優(yōu)點優(yōu)點n 簡單簡單n 便于硬件實現(xiàn)便于硬件實現(xiàn)o 缺點缺點n 占用太多的存儲單元占用太多的存儲單元n 在實現(xiàn)反走樣、透明和半透明等效果方面有在實現(xiàn)反走樣、透明和半透明等效果方面有困難困難159.2區(qū)間掃描線算法區(qū)間掃描線算法o 避免對被遮擋區(qū)域的采樣是進一步提高掃描線避免對被遮擋區(qū)域的采樣是進一

8、步提高掃描線算法計算效率的關(guān)鍵。算法計算效率的關(guān)鍵。圖圖9.3區(qū)間掃描線算法原理區(qū)間掃描線算法原理16區(qū)間掃描線算法區(qū)間掃描線算法o 算法算法n 三張表:邊表、多邊形表、有效邊表。三張表:邊表、多邊形表、有效邊表。n 分割子區(qū)間,確定子區(qū)間上的唯一可見面。分割子區(qū)間,確定子區(qū)間上的唯一可見面。圖圖9.4掃描線子區(qū)間掃描線子區(qū)間17區(qū)間掃描線算法區(qū)間掃描線算法o 特殊情形特殊情形n 貫穿情形:為了使算法能處理貫穿情形:為了使算法能處理互相貫穿的多互相貫穿的多邊形邊形,掃描線上的分割點不僅應包含各多邊,掃描線上的分割點不僅應包含各多邊形的邊與掃描線的交點,而且應包含這些貫形的邊與掃描線的交點,而且

9、應包含這些貫穿邊界與掃描線的交點。穿邊界與掃描線的交點。18區(qū)間掃描線算法區(qū)間掃描線算法n 循環(huán)遮擋:將多邊形進行劃分以消除循環(huán)遮循環(huán)遮擋:將多邊形進行劃分以消除循環(huán)遮擋。擋。圖圖9.5多邊形貫穿和循環(huán)遮擋的情形多邊形貫穿和循環(huán)遮擋的情形199.3深度排序算法(畫家算法)深度排序算法(畫家算法)o 算法原理:算法約定距視點近的優(yōu)先級高,距算法原理:算法約定距視點近的優(yōu)先級高,距視點遠的優(yōu)先級低。生成圖像時,優(yōu)先級低的視點遠的優(yōu)先級低。生成圖像時,優(yōu)先級低的多邊形先畫,優(yōu)先級高的多邊形后畫。這樣,多邊形先畫,優(yōu)先級高的多邊形后畫。這樣,后畫的多邊形就會將先畫的多邊形遮擋住,從后畫的多邊形就會將先

10、畫的多邊形遮擋住,從而達到消隱的效果。而達到消隱的效果。o 算法的關(guān)鍵是多邊形排序。算法的關(guān)鍵是多邊形排序。209.4區(qū)域細分算法區(qū)域細分算法o 算法原理:考察投影平面上的一塊區(qū)域,如果算法原理:考察投影平面上的一塊區(qū)域,如果可以很可以很“容易容易”地判斷覆蓋該區(qū)域中的哪個或地判斷覆蓋該區(qū)域中的哪個或哪些多邊形是可見的,則可按這些多邊形的光哪些多邊形是可見的,則可按這些多邊形的光照屬性和幾何位置計算確定子區(qū)域內(nèi)各像素的照屬性和幾何位置計算確定子區(qū)域內(nèi)各像素的顯示顏色;否則就將這塊區(qū)域細分為若干較小顯示顏色;否則就將這塊區(qū)域細分為若干較小的區(qū)域,并把上述推斷原則遞歸地應用到每個的區(qū)域,并把上述推

11、斷原則遞歸地應用到每個較小的區(qū)域中去。較小的區(qū)域中去。21區(qū)域細分算法區(qū)域細分算法o 多邊形的分類多邊形的分類圖圖9.6多邊形的投影與考察區(qū)域之間的關(guān)系多邊形的投影與考察區(qū)域之間的關(guān)系22區(qū)域細分算法區(qū)域細分算法o 可見性測試可見性測試n 所有多邊形均是該區(qū)域的分離多邊形,于是所有多邊形均是該區(qū)域的分離多邊形,于是可直接將該區(qū)域中的所有像素點置為背景顏可直接將該區(qū)域中的所有像素點置為背景顏色。色。n 針對該區(qū)域,僅存在一個相交多邊形,或僅針對該區(qū)域,僅存在一個相交多邊形,或僅存在一個被包含多邊形,或僅存在一個圍繞存在一個被包含多邊形,或僅存在一個圍繞多邊形。則可先將該區(qū)域中的所有像素點置多邊形

12、。則可先將該區(qū)域中的所有像素點置為背景顏色,再將相應多邊形的顏色值填入為背景顏色,再將相應多邊形的顏色值填入對應像素點的幀緩存中。對應像素點的幀緩存中。23區(qū)域細分算法區(qū)域細分算法n 針對該區(qū)域,有多于一個的相交多邊形、被針對該區(qū)域,有多于一個的相交多邊形、被包含多邊形或圍繞多邊形,則計算所有圍繞包含多邊形或圍繞多邊形,則計算所有圍繞的、相交的、以及被包含的多邊形在該區(qū)域的、相交的、以及被包含的多邊形在該區(qū)域4個頂點處的個頂點處的z坐標,如果存在一個圍繞多邊坐標,如果存在一個圍繞多邊性,它的性,它的4個個z坐標比其它任何多邊性的坐標比其它任何多邊性的z坐坐標都大(最靠近視點),那么,可將該區(qū)域

13、標都大(最靠近視點),那么,可將該區(qū)域中的所有像素點置為該多邊形的顏色值。中的所有像素點置為該多邊形的顏色值。24區(qū)域細分算法區(qū)域細分算法圖圖9.7滿足測試條件滿足測試條件3的兩個例子的兩個例子259.5光線投射算法光線投射算法o 算法原理算法原理圖圖9.8光線投射算法光線投射算法26光線投射算法光線投射算法o 算法步驟算法步驟n 通過視點和投影平面(顯示屏幕)上的所有通過視點和投影平面(顯示屏幕)上的所有像素點作一入射線,形成投影線。像素點作一入射線,形成投影線。n 將任一投影線與場景中的所有多邊形求交。將任一投影線與場景中的所有多邊形求交。n 若有交點,則將所有交點按若有交點,則將所有交點

14、按z值的大小進行值的大小進行排序,取出最近交點所屬多邊形的顏色;若排序,取出最近交點所屬多邊形的顏色;若沒有交點,則取出背景的顏色。沒有交點,則取出背景的顏色。n 將該射線穿過的像素點置為取出的顏色。將該射線穿過的像素點置為取出的顏色。279.6BSP樹算法樹算法o 算法原理算法原理圖圖9.9BSP樹算法原理樹算法原理289.7多邊形區(qū)域排序算法多邊形區(qū)域排序算法o 算法原理算法原理將多邊形按深度值由小到大排序,用前面將多邊形按深度值由小到大排序,用前面的可見多邊形去切割位于其后的多邊形,使得的可見多邊形去切割位于其后的多邊形,使得最終每一個多邊形要么是完全可見的,要么是最終每一個多邊形要么是完全可見的,要么是完全不可見的。完全不可見的。299.8OpenGL中的消隱中的消隱o 多邊形剔除:主要用于去除多邊形物體本身的多邊形剔除:主要用于去除多邊形物體本身的不可見面,以提高圖形系統(tǒng)的性能。不可見面,以提高圖形系統(tǒng)的性能。glEnable(GL_CULL

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論