計(jì)算機(jī)圖形學(xué)基礎(chǔ)課件chap9_第1頁(yè)
計(jì)算機(jī)圖形學(xué)基礎(chǔ)課件chap9_第2頁(yè)
計(jì)算機(jī)圖形學(xué)基礎(chǔ)課件chap9_第3頁(yè)
計(jì)算機(jī)圖形學(xué)基礎(chǔ)課件chap9_第4頁(yè)
計(jì)算機(jī)圖形學(xué)基礎(chǔ)課件chap9_第5頁(yè)
已閱讀5頁(yè),還剩55頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1第九章消隱基本概念深度緩存器算法區(qū)間掃描線(xiàn)算法深度排序算法區(qū)域細(xì)分算法光線(xiàn)投射算法BSP樹(shù)算法多邊形區(qū)域排序算法OpenGL中的消隱1第九章消隱基本概念2

基本概念物體的消隱或隱藏線(xiàn)面的消除:在給定視點(diǎn)和視線(xiàn)方向后,決定場(chǎng)景中哪些物體的表面是可見(jiàn)的,哪些是被遮擋不可見(jiàn)的。長(zhǎng)方體線(xiàn)框投影圖的二義性2

基本概念物體的消隱或隱藏線(xiàn)面的消除:在給定視點(diǎn)和視線(xiàn)方向3

基本概念消隱算法按實(shí)現(xiàn)方式分類(lèi)圖像空間消隱算法以屏幕像素為采樣單位,確定投影于每一像素的可見(jiàn)景物表面區(qū)域,并將其顏色作為該像素的顯示顏色。如深度緩沖器算法、A緩沖器算法、區(qū)間掃描線(xiàn)算法等。3

基本概念消隱算法按實(shí)現(xiàn)方式分類(lèi)4

基本概念景物空間消隱算法直接在景物空間(觀(guān)察坐標(biāo)系)中確定視點(diǎn)不可見(jiàn)的表面區(qū)域,并將它們表達(dá)成同原表面一致的數(shù)據(jù)結(jié)構(gòu)。如BSP算法、多邊形區(qū)域排序算法等。介于二者之間的算法,如深度排序算法、區(qū)域細(xì)分算法、光線(xiàn)投射算法等。

4

基本概念景物空間消隱算法直接在景物空間(觀(guān)察坐標(biāo)系)中確5

基本概念基本的原則排序:各景物表面按照距離視點(diǎn)遠(yuǎn)近排序的結(jié)果,用于確定消隱對(duì)象之間的遮擋關(guān)系。連貫性:連貫性是指所考察的物體或視區(qū)內(nèi)的圖像局部保持不變的一種性質(zhì),用于提高排序效率。5

基本概念基本的原則6

9.1深度緩存器算法(

Z-buffer)基本原理幀緩存:保存各點(diǎn)的顏色。Z緩存:保存屏幕坐標(biāo)系上各象素點(diǎn)所對(duì)應(yīng)的深度值。6

9.1深度緩存器算法(Z-buffer)基本原理7

深度緩存器算法(

Z-buffer)圖9.1深度緩存器算法的原理7

深度緩存器算法(Z-buffer)圖9.1深度緩存器8

深度緩存器算法(

Z-buffer)算法步驟初始化:把Z緩存中各(x,y)單元置為z的最小值,而幀緩存各(x,y)單元置為背景色。在把物體表面相應(yīng)的多邊形掃描轉(zhuǎn)換成幀緩存中的信息時(shí),對(duì)于多邊形內(nèi)的每一采樣點(diǎn)(x,y)進(jìn)行處理:8

深度緩存器算法(Z-buffer)算法步驟9

深度緩存器算法(

Z-buffer)計(jì)算采樣點(diǎn)(x,y)的深度z(x,y);如z(x,y)大于Z緩存中在(x,y)處的值,則把z(x,y)存入Z緩存中的(x,y)處,再把多邊形在z(x,y)處的顏色值存入幀緩存的(x,y)地址中。9

深度緩存器算法(Z-buffer)計(jì)算采樣點(diǎn)(x,y)10

深度緩存器算法(

Z-buffer)如何計(jì)算采樣點(diǎn)(x,y)的深度z(x,y)。假定多邊形的平面方程為:Ax+By+Cz+D=0。10

深度緩存器算法(Z-buffer)如何計(jì)算采樣點(diǎn)(x11

深度緩存器算法(

Z-buffer)圖9.2利用掃描線(xiàn)的連貫性加速深度的計(jì)算11

深度緩存器算法(Z-buffer)圖9.2利用掃描12

深度緩存器算法(

Z-buffer)掃描線(xiàn)上所有后繼點(diǎn)的深度值:當(dāng)處理下一條掃描線(xiàn)y=y-1時(shí),該掃描線(xiàn)上與多邊形相交的最左邊(x最?。┙稽c(diǎn)的x值可以利用上一條掃描線(xiàn)上的最左邊的x值計(jì)算:12

深度緩存器算法(Z-buffer)掃描線(xiàn)上所有后繼點(diǎn)13

深度緩存器算法(

Z-buffer)掃描線(xiàn)深度緩存器算法13

深度緩存器算法(Z-buffer)掃描線(xiàn)深度緩存器算14

深度緩存器算法(

Z-buffer)優(yōu)點(diǎn)多邊形不用排序方法簡(jiǎn)單,與對(duì)象復(fù)雜程度無(wú)關(guān)簡(jiǎn)單在象素級(jí)上以近物取代遠(yuǎn)物,有利于硬件實(shí)現(xiàn)缺點(diǎn)占用太多的存儲(chǔ)單元在實(shí)現(xiàn)反走樣、透明和半透明等效果方面有困難14

深度緩存器算法(Z-buffer)優(yōu)點(diǎn)15

9.2區(qū)間掃描線(xiàn)算法避免對(duì)被遮擋區(qū)域的采樣是進(jìn)一步提高掃描線(xiàn)算法計(jì)算效率的關(guān)鍵。圖9.3區(qū)間掃描線(xiàn)算法原理15

9.2區(qū)間掃描線(xiàn)算法避免對(duì)被遮擋區(qū)域的采樣是進(jìn)一步提16

區(qū)間掃描線(xiàn)算法算法三張表:邊表、多邊形表、有效邊表。分割子區(qū)間,確定子區(qū)間上的唯一可見(jiàn)面。圖9.4掃描線(xiàn)子區(qū)間16

區(qū)間掃描線(xiàn)算法算法圖9.4掃描線(xiàn)子區(qū)間17

區(qū)間掃描線(xiàn)算法特殊情形貫穿情形:為了使算法能處理互相貫穿的多邊形,掃描線(xiàn)上的分割點(diǎn)不僅應(yīng)包含各多邊形的邊與掃描線(xiàn)的交點(diǎn),而且應(yīng)包含這些貫穿邊界與掃描線(xiàn)的交點(diǎn)。17

區(qū)間掃描線(xiàn)算法特殊情形18

區(qū)間掃描線(xiàn)算法循環(huán)遮擋:將多邊形進(jìn)行劃分以消除循環(huán)遮擋。圖9.5多邊形貫穿和循環(huán)遮擋的情形18

區(qū)間掃描線(xiàn)算法循環(huán)遮擋:將多邊形進(jìn)行劃分以消除循環(huán)遮擋19

9.3深度排序算法(畫(huà)家算法)算法原理:算法約定距視點(diǎn)近的優(yōu)先級(jí)高,距視點(diǎn)遠(yuǎn)的優(yōu)先級(jí)低。生成圖像時(shí),優(yōu)先級(jí)低的多邊形先畫(huà),優(yōu)先級(jí)高的多邊形后畫(huà)。這樣,后畫(huà)的多邊形就會(huì)將先畫(huà)的多邊形遮擋住,從而達(dá)到消隱的效果。算法的關(guān)鍵是多邊形排序。19

9.3深度排序算法(畫(huà)家算法)算法原理:算法約定距視20

9.4區(qū)域細(xì)分算法算法原理:考察投影平面上的一塊區(qū)域,如果可以很“容易”地判斷覆蓋該區(qū)域中的哪個(gè)或哪些多邊形是可見(jiàn)的,則可按這些多邊形的光照屬性和幾何位置計(jì)算確定子區(qū)域內(nèi)各像素的顯示顏色;否則就將這塊區(qū)域細(xì)分為若干較小的區(qū)域,并把上述推斷原則遞歸地應(yīng)用到每個(gè)較小的區(qū)域中去。20

9.4區(qū)域細(xì)分算法算法原理:考察投影平面上的一塊區(qū)域21

區(qū)域細(xì)分算法多邊形的分類(lèi)圖9.6多邊形的投影與考察區(qū)域之間的關(guān)系21

區(qū)域細(xì)分算法多邊形的分類(lèi)圖9.6多邊形的投影與考察區(qū)22

區(qū)域細(xì)分算法可見(jiàn)性測(cè)試所有多邊形均是該區(qū)域的分離多邊形,于是可直接將該區(qū)域中的所有像素點(diǎn)置為背景顏色。針對(duì)該區(qū)域,僅存在一個(gè)相交多邊形,或僅存在一個(gè)被包含多邊形,或僅存在一個(gè)圍繞多邊形。則可先將該區(qū)域中的所有像素點(diǎn)置為背景顏色,再將相應(yīng)多邊形的顏色值填入對(duì)應(yīng)像素點(diǎn)的幀緩存中。22

區(qū)域細(xì)分算法可見(jiàn)性測(cè)試23

區(qū)域細(xì)分算法針對(duì)該區(qū)域,有多于一個(gè)的相交多邊形、被包含多邊形或圍繞多邊形,則計(jì)算所有圍繞的、相交的、以及被包含的多邊形在該區(qū)域4個(gè)頂點(diǎn)處的z坐標(biāo),如果存在一個(gè)圍繞多邊性,它的4個(gè)z坐標(biāo)比其它任何多邊性的z坐標(biāo)都大(最靠近視點(diǎn)),那么,可將該區(qū)域中的所有像素點(diǎn)置為該多邊形的顏色值。23

區(qū)域細(xì)分算法針對(duì)該區(qū)域,有多于一個(gè)的相交多邊形、被包含24

區(qū)域細(xì)分算法圖9.7滿(mǎn)足測(cè)試條件3的兩個(gè)例子24

區(qū)域細(xì)分算法圖9.7滿(mǎn)足測(cè)試條件3的兩個(gè)例子25

9.5光線(xiàn)投射算法算法原理圖9.8光線(xiàn)投射算法25

9.5光線(xiàn)投射算法算法原理圖9.8光線(xiàn)投射算法26

光線(xiàn)投射算法算法步驟通過(guò)視點(diǎn)和投影平面(顯示屏幕)上的所有像素點(diǎn)作一入射線(xiàn),形成投影線(xiàn)。將任一投影線(xiàn)與場(chǎng)景中的所有多邊形求交。若有交點(diǎn),則將所有交點(diǎn)按z值的大小進(jìn)行排序,取出最近交點(diǎn)所屬多邊形的顏色;若沒(méi)有交點(diǎn),則取出背景的顏色。將該射線(xiàn)穿過(guò)的像素點(diǎn)置為取出的顏色。26

光線(xiàn)投射算法算法步驟27

9.6BSP樹(shù)算法算法原理圖9.9BSP樹(shù)算法原理27

9.6BSP樹(shù)算法算法原理圖9.9BSP樹(shù)算法原理28

9.7多邊形區(qū)域排序算法算法原理

將多邊形按深度值由小到大排序,用前面的可見(jiàn)多邊形去切割位于其后的多邊形,使得最終每一個(gè)多邊形要么是完全可見(jiàn)的,要么是完全不可見(jiàn)的。28

9.7多邊形區(qū)域排序算法算法原理29

9.8OpenGL中的消隱多邊形剔除:主要用于去除多邊形物體本身的不可見(jiàn)面,以提高圖形系統(tǒng)的性能。glEnable(GL_CULL_FACE);glCullFace(mode);29

9.8OpenGL中的消隱多邊形剔除:主要用于去除多30

OpenGL中的消隱深度測(cè)試:OpenGL中的深度測(cè)試是采用深度緩存器算法,消除場(chǎng)景中的不可見(jiàn)面。

glDepthRange(nearNormDepth,farNormalDepth);glClearDepth(maxDepth);glClear(GL_DEPTH_BUFFER_BIT);glDepthFunc(func);30

OpenGL中的消隱深度測(cè)試:OpenGL中的深度測(cè)31第九章消隱基本概念深度緩存器算法區(qū)間掃描線(xiàn)算法深度排序算法區(qū)域細(xì)分算法光線(xiàn)投射算法BSP樹(shù)算法多邊形區(qū)域排序算法OpenGL中的消隱1第九章消隱基本概念32

基本概念物體的消隱或隱藏線(xiàn)面的消除:在給定視點(diǎn)和視線(xiàn)方向后,決定場(chǎng)景中哪些物體的表面是可見(jiàn)的,哪些是被遮擋不可見(jiàn)的。長(zhǎng)方體線(xiàn)框投影圖的二義性2

基本概念物體的消隱或隱藏線(xiàn)面的消除:在給定視點(diǎn)和視線(xiàn)方向33

基本概念消隱算法按實(shí)現(xiàn)方式分類(lèi)圖像空間消隱算法以屏幕像素為采樣單位,確定投影于每一像素的可見(jiàn)景物表面區(qū)域,并將其顏色作為該像素的顯示顏色。如深度緩沖器算法、A緩沖器算法、區(qū)間掃描線(xiàn)算法等。3

基本概念消隱算法按實(shí)現(xiàn)方式分類(lèi)34

基本概念景物空間消隱算法直接在景物空間(觀(guān)察坐標(biāo)系)中確定視點(diǎn)不可見(jiàn)的表面區(qū)域,并將它們表達(dá)成同原表面一致的數(shù)據(jù)結(jié)構(gòu)。如BSP算法、多邊形區(qū)域排序算法等。介于二者之間的算法,如深度排序算法、區(qū)域細(xì)分算法、光線(xiàn)投射算法等。

4

基本概念景物空間消隱算法直接在景物空間(觀(guān)察坐標(biāo)系)中確35

基本概念基本的原則排序:各景物表面按照距離視點(diǎn)遠(yuǎn)近排序的結(jié)果,用于確定消隱對(duì)象之間的遮擋關(guān)系。連貫性:連貫性是指所考察的物體或視區(qū)內(nèi)的圖像局部保持不變的一種性質(zhì),用于提高排序效率。5

基本概念基本的原則36

9.1深度緩存器算法(

Z-buffer)基本原理幀緩存:保存各點(diǎn)的顏色。Z緩存:保存屏幕坐標(biāo)系上各象素點(diǎn)所對(duì)應(yīng)的深度值。6

9.1深度緩存器算法(Z-buffer)基本原理37

深度緩存器算法(

Z-buffer)圖9.1深度緩存器算法的原理7

深度緩存器算法(Z-buffer)圖9.1深度緩存器38

深度緩存器算法(

Z-buffer)算法步驟初始化:把Z緩存中各(x,y)單元置為z的最小值,而幀緩存各(x,y)單元置為背景色。在把物體表面相應(yīng)的多邊形掃描轉(zhuǎn)換成幀緩存中的信息時(shí),對(duì)于多邊形內(nèi)的每一采樣點(diǎn)(x,y)進(jìn)行處理:8

深度緩存器算法(Z-buffer)算法步驟39

深度緩存器算法(

Z-buffer)計(jì)算采樣點(diǎn)(x,y)的深度z(x,y);如z(x,y)大于Z緩存中在(x,y)處的值,則把z(x,y)存入Z緩存中的(x,y)處,再把多邊形在z(x,y)處的顏色值存入幀緩存的(x,y)地址中。9

深度緩存器算法(Z-buffer)計(jì)算采樣點(diǎn)(x,y)40

深度緩存器算法(

Z-buffer)如何計(jì)算采樣點(diǎn)(x,y)的深度z(x,y)。假定多邊形的平面方程為:Ax+By+Cz+D=0。10

深度緩存器算法(Z-buffer)如何計(jì)算采樣點(diǎn)(x41

深度緩存器算法(

Z-buffer)圖9.2利用掃描線(xiàn)的連貫性加速深度的計(jì)算11

深度緩存器算法(Z-buffer)圖9.2利用掃描42

深度緩存器算法(

Z-buffer)掃描線(xiàn)上所有后繼點(diǎn)的深度值:當(dāng)處理下一條掃描線(xiàn)y=y-1時(shí),該掃描線(xiàn)上與多邊形相交的最左邊(x最?。┙稽c(diǎn)的x值可以利用上一條掃描線(xiàn)上的最左邊的x值計(jì)算:12

深度緩存器算法(Z-buffer)掃描線(xiàn)上所有后繼點(diǎn)43

深度緩存器算法(

Z-buffer)掃描線(xiàn)深度緩存器算法13

深度緩存器算法(Z-buffer)掃描線(xiàn)深度緩存器算44

深度緩存器算法(

Z-buffer)優(yōu)點(diǎn)多邊形不用排序方法簡(jiǎn)單,與對(duì)象復(fù)雜程度無(wú)關(guān)簡(jiǎn)單在象素級(jí)上以近物取代遠(yuǎn)物,有利于硬件實(shí)現(xiàn)缺點(diǎn)占用太多的存儲(chǔ)單元在實(shí)現(xiàn)反走樣、透明和半透明等效果方面有困難14

深度緩存器算法(Z-buffer)優(yōu)點(diǎn)45

9.2區(qū)間掃描線(xiàn)算法避免對(duì)被遮擋區(qū)域的采樣是進(jìn)一步提高掃描線(xiàn)算法計(jì)算效率的關(guān)鍵。圖9.3區(qū)間掃描線(xiàn)算法原理15

9.2區(qū)間掃描線(xiàn)算法避免對(duì)被遮擋區(qū)域的采樣是進(jìn)一步提46

區(qū)間掃描線(xiàn)算法算法三張表:邊表、多邊形表、有效邊表。分割子區(qū)間,確定子區(qū)間上的唯一可見(jiàn)面。圖9.4掃描線(xiàn)子區(qū)間16

區(qū)間掃描線(xiàn)算法算法圖9.4掃描線(xiàn)子區(qū)間47

區(qū)間掃描線(xiàn)算法特殊情形貫穿情形:為了使算法能處理互相貫穿的多邊形,掃描線(xiàn)上的分割點(diǎn)不僅應(yīng)包含各多邊形的邊與掃描線(xiàn)的交點(diǎn),而且應(yīng)包含這些貫穿邊界與掃描線(xiàn)的交點(diǎn)。17

區(qū)間掃描線(xiàn)算法特殊情形48

區(qū)間掃描線(xiàn)算法循環(huán)遮擋:將多邊形進(jìn)行劃分以消除循環(huán)遮擋。圖9.5多邊形貫穿和循環(huán)遮擋的情形18

區(qū)間掃描線(xiàn)算法循環(huán)遮擋:將多邊形進(jìn)行劃分以消除循環(huán)遮擋49

9.3深度排序算法(畫(huà)家算法)算法原理:算法約定距視點(diǎn)近的優(yōu)先級(jí)高,距視點(diǎn)遠(yuǎn)的優(yōu)先級(jí)低。生成圖像時(shí),優(yōu)先級(jí)低的多邊形先畫(huà),優(yōu)先級(jí)高的多邊形后畫(huà)。這樣,后畫(huà)的多邊形就會(huì)將先畫(huà)的多邊形遮擋住,從而達(dá)到消隱的效果。算法的關(guān)鍵是多邊形排序。19

9.3深度排序算法(畫(huà)家算法)算法原理:算法約定距視50

9.4區(qū)域細(xì)分算法算法原理:考察投影平面上的一塊區(qū)域,如果可以很“容易”地判斷覆蓋該區(qū)域中的哪個(gè)或哪些多邊形是可見(jiàn)的,則可按這些多邊形的光照屬性和幾何位置計(jì)算確定子區(qū)域內(nèi)各像素的顯示顏色;否則就將這塊區(qū)域細(xì)分為若干較小的區(qū)域,并把上述推斷原則遞歸地應(yīng)用到每個(gè)較小的區(qū)域中去。20

9.4區(qū)域細(xì)分算法算法原理:考察投影平面上的一塊區(qū)域51

區(qū)域細(xì)分算法多邊形的分類(lèi)圖9.6多邊形的投影與考察區(qū)域之間的關(guān)系21

區(qū)域細(xì)分算法多邊形的分類(lèi)圖9.6多邊形的投影與考察區(qū)52

區(qū)域細(xì)分算法可見(jiàn)性測(cè)試所有多邊形均是該區(qū)域的分離多邊形,于是可直接將該區(qū)域中的所有像素點(diǎn)置為背景顏色。針對(duì)該區(qū)域,僅存在一個(gè)相交多邊形,或僅存在一個(gè)被包含多邊形,或僅存在一個(gè)圍繞多邊形。則可先將該區(qū)域中的所有像素點(diǎn)置為背景顏色,再將相應(yīng)多邊形的顏色值填入對(duì)應(yīng)像素點(diǎn)的幀緩存中。22

區(qū)域細(xì)分算法可見(jiàn)性測(cè)試53

區(qū)域細(xì)分算法針對(duì)該區(qū)域,有多于一個(gè)的相交多邊形、被包含多邊形或圍繞多邊形,則計(jì)算所有圍繞的、相交的、以及被包含的多邊形在該區(qū)域4個(gè)頂點(diǎn)處的z坐標(biāo),如果存在一個(gè)圍繞多邊性,它的4個(gè)z坐標(biāo)比其它任何多邊性的z坐標(biāo)都大(最靠近視點(diǎn)),那么,可將該區(qū)域中的所有像素點(diǎn)置為該多邊形的顏色值。23

區(qū)域細(xì)分算法針對(duì)該區(qū)域,有多于一個(gè)的相交多邊形、被包含54

區(qū)域細(xì)分算法圖9.7滿(mǎn)足測(cè)試條件3的兩個(gè)例子24

區(qū)域細(xì)分算法圖9.7滿(mǎn)足測(cè)試條件3的兩個(gè)例子55

9.5光線(xiàn)投射算法算法原理圖9.8光線(xiàn)投射算法25

9.5光線(xiàn)投射算法算法原理圖9.8光線(xiàn)投射算法56

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論