《線上線下混合式計算機圖形學(xué)基礎(chǔ)實驗教程》課件-第8章_第1頁
《線上線下混合式計算機圖形學(xué)基礎(chǔ)實驗教程》課件-第8章_第2頁
《線上線下混合式計算機圖形學(xué)基礎(chǔ)實驗教程》課件-第8章_第3頁
《線上線下混合式計算機圖形學(xué)基礎(chǔ)實驗教程》課件-第8章_第4頁
《線上線下混合式計算機圖形學(xué)基礎(chǔ)實驗教程》課件-第8章_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第8章幾何圖元消隱8.1實驗內(nèi)容簡述和實驗?zāi)繕?biāo)8.2

z緩沖消隱8.3背面剔除消隱8.4課外拓展性實驗

8.1實驗內(nèi)容簡述和實驗?zāi)繕?biāo)

基本實驗內(nèi)容包括:z緩沖消隱、背面剔除消隱。同時,配備了一個課外拓展性實驗。完成本實驗后,讀者能夠:

(1)熟記和描述圖像空間消隱和景物空間消隱的原理(布魯姆知識模型:記憶、理解);

(2)熟記和描述z緩沖消隱的原理和過程(布魯姆知識模型:記憶、理解);

(3)熟記和描述背面剔除消隱的原理和計算過程(布魯姆知識模型:記憶、理解);

(4)結(jié)合OpenGL能實現(xiàn)背面剔除消隱和z緩沖消隱(布魯姆知識模型:應(yīng)用)。

8.2

z緩?沖?消?隱

z緩沖算法也叫深度緩沖器算法,通常包括幀緩沖器和z緩沖兩部分(見圖8-1)。在OpenGL里分別對應(yīng)以下兩個矩陣。

(1)?Intensity(x,y):屬性矩陣(幀緩沖器),存儲每個像素的光強或顏色。

(2)?Depth(x,y):深度矩陣(z緩沖),存放每個像素對應(yīng)圖形上的點相對于視點的距離值,默認(rèn)為該點的z值。

圖8-1

z緩沖算法存儲圖示

如圖8-2所示,假定xoy坐標(biāo)軸平面為投影面,z軸負(fù)方向為觀察方向。過投影面上任意一點(x,y),對應(yīng)屏幕上的一個像素點,作平行于z軸的射線R,與圖形表面分別相交于p1和p2。p1點和p2點的z值稱為該點的深度值。z緩沖算法比較p1點和p2點的z值,將最大的z值存入z緩沖中。顯然,p1點相對于p2點更加接近視點,z值更大,因此,(x,y)這一點將取圖形p1點的顏色。

圖8-2深度判斷圖示

1.實驗過程描述

本書取一個平行于xoy坐標(biāo)軸平面作為投影面,視點放置于世界坐標(biāo)系z軸正向的某個位置上。視點坐標(biāo)系則是架設(shè)在視點上的標(biāo)準(zhǔn)右手正交坐標(biāo)系,它由三個相互垂直的單位向量u、v、n組成。其中:向量n垂直于投影面,代表視線方向;向量v平行于世界坐標(biāo)系中的y軸;向量u

=?n

×?v。

在OpenGL平臺上,通過glEnable和glDepthFunc兩個函數(shù)實現(xiàn)場景根據(jù)深度信息進行動態(tài)消隱。glEnable(GL_DEPTH_TEST)允許OpenGL開啟深度測試判圖形之間沿視線方向的遮擋關(guān)系或深度關(guān)系;glDepthFunc設(shè)置目標(biāo)像素與當(dāng)前像素顏色的替代規(guī)則,其輸入?yún)?shù)及含義如表8-1所示。

2.案例效果

如圖8-3(a)所示,球的中心在原點,半徑為30;長方體的一個頂點與原點重合,長寬高分別為80、40、50。在這里使用glDepthFunc(GL_LEQUAL),最終效果如圖8-3(b)所示。

圖8-3開啟深度緩存效果圖

圖8-3(a)中未開啟深度緩存,球和長方體之間的深度關(guān)系比較晦澀,沿視線方向未展現(xiàn)出交叉干涉效果或正確的遮擋效果。開啟深度緩存后,圖8-3(b)中球與長方體交叉干涉和遮擋清晰明確。在未開啟深度緩存時,窗口展現(xiàn)的內(nèi)容會隨著三維圖形繪制先后順序的不同而不同,即對于存在空間重疊的兩個三維圖形,先繪制的三維圖形往往會被后繪制的三維圖形所遮擋,如圖8-4所示。通過深度緩存,能避免上述情況,無論繪制順序如何,效果始終如一,如圖8-3(b)所示。

圖8-4三維圖形繪制先后順序不同效果圖

8.3背面剔除消隱

三維圖形通常由很多離散的(網(wǎng)格)面構(gòu)成。為了提高圖形的繪制效率,在背面剔除算法中,背對視點的面(即背面)會被剔除出投影操作,僅確保面向視點的面。為了判斷一個面是否需要剔除,通常依據(jù)視線方向v(vx,vy,vz)與該面的法向量n(nx,ny,nz)所成角度進行確定。如圖8-5所示,令θ為視線方向v和法向量n的夾角。當(dāng)夾角θ∈[-90°,90°]時,即兩向量的余弦值大于0,則表明面背對視點,需要被剔除。否則,當(dāng)θ∈[-180°,-90°)或θ∈(90°,180°]時,即兩向量的余弦值小于等于0,則表明是可見面,應(yīng)該被繪制。

圖8-5背面剔除算法示意圖

1.關(guān)鍵數(shù)據(jù)結(jié)構(gòu)

自定義如下數(shù)據(jù)結(jié)構(gòu)用以表示三維圖形的一個面。該數(shù)據(jù)結(jié)構(gòu)應(yīng)用于本章后續(xù)所有相關(guān)實驗。

2.關(guān)鍵代碼實現(xiàn)

3.案例效果

采用背面剔除算法繪制圖8-6(a)對應(yīng)的三維圖形(封閉),并給每個面填上顏色便于觀察,最終效果如圖8-6(b)所示。

背面剔除在一些情況下并不能正確剔除不可見面。如圖8-6(a)所示,箭頭所指的三個右側(cè)面法向量相等,根據(jù)背面剔除算法,這三個平面會同時顯示,而繪制效果則由系統(tǒng)默認(rèn)采用的深度排序算法決定。

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論