第5講 計(jì)算機(jī)圖形學(xué)消隱算法_第1頁
第5講 計(jì)算機(jī)圖形學(xué)消隱算法_第2頁
第5講 計(jì)算機(jī)圖形學(xué)消隱算法_第3頁
第5講 計(jì)算機(jī)圖形學(xué)消隱算法_第4頁
第5講 計(jì)算機(jī)圖形學(xué)消隱算法_第5頁
已閱讀5頁,還剩56頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、消隱算法消隱算法 用計(jì)算機(jī)生成三維形體的真實(shí)圖形,是計(jì)算機(jī)圖形學(xué)研究用計(jì)算機(jī)生成三維形體的真實(shí)圖形,是計(jì)算機(jī)圖形學(xué)研究的重要內(nèi)容之一。在使用顯示設(shè)備描繪三維圖形時(shí),必須把三的重要內(nèi)容之一。在使用顯示設(shè)備描繪三維圖形時(shí),必須把三維信息作某種投影變換,在二維顯示表面上繪制出來。維信息作某種投影變換,在二維顯示表面上繪制出來。 由于投影變換失去了深度信息,往往導(dǎo)致圖形的二義性:由于投影變換失去了深度信息,往往導(dǎo)致圖形的二義性:要消除二義性,必須在繪制時(shí)消隱實(shí)際不可見得線和面,要消除二義性,必須在繪制時(shí)消隱實(shí)際不可見得線和面,即消隱。經(jīng)過消隱的投影圖稱為物體的真實(shí)圖形。即消隱。經(jīng)過消隱的投影圖稱為物體

2、的真實(shí)圖形。一、概述一、概述 消隱不僅與消隱對(duì)象有關(guān),還與觀察者消隱不僅與消隱對(duì)象有關(guān),還與觀察者的位置有關(guān)。如圖所示,由于視點(diǎn)的位的位置有關(guān)。如圖所示,由于視點(diǎn)的位置不同,物體的可見部分也不同:置不同,物體的可見部分也不同:消隱與觀察者的位置關(guān)系消隱與觀察者的位置關(guān)系按消隱的對(duì)象分類按消隱的對(duì)象分類線消隱(線消隱(Hidden-lineHidden-line)面消隱(面消隱(Hidden-surfaceHidden-surface)按消隱空間分類按消隱空間分類物體空間消隱算法物體空間消隱算法圖像空間消隱算法圖像空間消隱算法p線消隱(線消隱(Hidden-lineHidden-line) 消隱

3、對(duì)象是物體上不可見的線,一般用于消隱對(duì)象是物體上不可見的線,一般用于線框圖。當(dāng)用筆式繪圖儀或其它畫線設(shè)備繪制線框圖。當(dāng)用筆式繪圖儀或其它畫線設(shè)備繪制圖形時(shí),主要使用這種算法。圖形時(shí),主要使用這種算法。p面消隱面消隱(Hidden-surfaceHidden-surface) 消隱對(duì)象是物體上不可見的面,一般用于消隱對(duì)象是物體上不可見的面,一般用于填色圖。當(dāng)用光柵掃描顯示器繪制圖形時(shí),主填色圖。當(dāng)用光柵掃描顯示器繪制圖形時(shí),主要使用這種算法。要使用這種算法。 早期圖形顯示器是用線條表示圖形,消隱主要是消隱線早期圖形顯示器是用線條表示圖形,消隱主要是消隱線問題。使用光柵顯示器后,物體可用連續(xù)變化的

4、色調(diào)來描問題。使用光柵顯示器后,物體可用連續(xù)變化的色調(diào)來描述,消隱算法的研究漸漸轉(zhuǎn)向消隱面的問題。述,消隱算法的研究漸漸轉(zhuǎn)向消隱面的問題。 p第一種是物空間算法。第一種是物空間算法。它以三維場(chǎng)景中的物體對(duì)像作為處理單元的,在所它以三維場(chǎng)景中的物體對(duì)像作為處理單元的,在所有的對(duì)像之間進(jìn)行比較,除去完全不可見的的物體有的對(duì)像之間進(jìn)行比較,除去完全不可見的的物體和物體上不可見的部分。常用于線框表示立體的線和物體上不可見的部分。常用于線框表示立體的線隱藏,也用于面隱藏。隱藏,也用于面隱藏。for (for (場(chǎng)景中的每一個(gè)物體場(chǎng)景中的每一個(gè)物體) ) 將其與場(chǎng)景中的其它物體比較,確定其將其與場(chǎng)景中的其

5、它物體比較,確定其表面的可見部分;顯示該物體表面的可見部分;表面的可見部分;顯示該物體表面的可見部分; 隱藏線(面)的消除的兩種基本算法隱藏線(面)的消除的兩種基本算法特點(diǎn)是:算法可以達(dá)到相當(dāng)高的精度。特點(diǎn)是:算法可以達(dá)到相當(dāng)高的精度。 p第二種是像空間算法。第二種是像空間算法。 它以構(gòu)成圖形的每一個(gè)像素為處理單元的,確定場(chǎng)景它以構(gòu)成圖形的每一個(gè)像素為處理單元的,確定場(chǎng)景中哪些表面的像素相對(duì)于觀察點(diǎn)而言是可見的,用該表面中哪些表面的像素相對(duì)于觀察點(diǎn)而言是可見的,用該表面的顏色填充該像素。常用于隱藏面。的顏色填充該像素。常用于隱藏面。特點(diǎn)是:算法精度低,只能達(dá)到屏幕精度為止,但速度往特點(diǎn)是:算法

6、精度低,只能達(dá)到屏幕精度為止,但速度往往更高。往更高。 其算法是對(duì)每一個(gè)像素其算法是對(duì)每一個(gè)像素:l在和投影點(diǎn)到像素的連線相交的表面中找到離觀察點(diǎn)最近在和投影點(diǎn)到像素的連線相交的表面中找到離觀察點(diǎn)最近的表面的表面l用該表面上交點(diǎn)處的顏色填充該像素。用該表面上交點(diǎn)處的顏色填充該像素。 for (for (窗口內(nèi)的每一個(gè)像素窗口內(nèi)的每一個(gè)像素) ) 確定距視點(diǎn)最近的物體,以該物體表確定距視點(diǎn)最近的物體,以該物體表 面的顏色來顯示像素面的顏色來顯示像素 算法復(fù)雜度算法復(fù)雜度 假設(shè)場(chǎng)景中有假設(shè)場(chǎng)景中有k k個(gè)物體個(gè)物體,平均每個(gè)物體表面,平均每個(gè)物體表面由由h h個(gè)多邊形個(gè)多邊形構(gòu)成,顯示區(qū)域中有構(gòu)成

7、,顯示區(qū)域中有m x nm x n個(gè)像素個(gè)像素,則:則: 第一種算法的復(fù)雜度為:第一種算法的復(fù)雜度為: O(kh)O(kh)(kh)(kh) 第二種算法的復(fù)雜度為:第二種算法的復(fù)雜度為:O(mnkh)O(mnkh)9物空間消隱算法物空間消隱算法: : 需對(duì)物體表面的需對(duì)物體表面的h h個(gè)多邊形個(gè)多邊形中的每個(gè)面與其余中的每個(gè)面與其余h-1h-1個(gè)面進(jìn)行比較,精確地求出物體上每個(gè)棱邊或個(gè)面進(jìn)行比較,精確地求出物體上每個(gè)棱邊或每個(gè)面的遮擋關(guān)系。算法的計(jì)算量正比于每個(gè)面的遮擋關(guān)系。算法的計(jì)算量正比于h h2 2,即算即算法復(fù)雜度為:法復(fù)雜度為:O(h)O(h)2 2) ) 。 則:則:k k個(gè)物體個(gè)

8、物體的算法復(fù)雜度為:的算法復(fù)雜度為:O(kh)O(kh)2 2) ) 。10象空間消隱算法象空間消隱算法: 這類算法對(duì)屏幕上的每個(gè)象素進(jìn)行判斷,以決這類算法對(duì)屏幕上的每個(gè)象素進(jìn)行判斷,以決定物體上哪個(gè)多邊形在該象素定物體上哪個(gè)多邊形在該象素 點(diǎn)上是可見的。若屏點(diǎn)上是可見的。若屏幕上有幕上有m mn n個(gè)象素個(gè)象素點(diǎn),每個(gè)物體表面上有點(diǎn),每個(gè)物體表面上有h h個(gè)多邊形個(gè)多邊形,則該類消隱算法計(jì)算量正比于,則該類消隱算法計(jì)算量正比于mnhmnh。 則:則: k k個(gè)物體個(gè)物體的算法復(fù)雜度為:的算法復(fù)雜度為: O(mnkh)O(mnkh) 。 各種消隱算法均采用一定形式的幾何排序。通過排各種消隱算法

9、均采用一定形式的幾何排序。通過排序,可搜查出位置上靠近觀察者的幾何元素,確定幾何序,可搜查出位置上靠近觀察者的幾何元素,確定幾何元素之間在位置上的遮擋關(guān)系,解決消隱計(jì)算的主要問元素之間在位置上的遮擋關(guān)系,解決消隱計(jì)算的主要問題。各種算法都有各自的排序方法和排序次序。排序次題。各種算法都有各自的排序方法和排序次序。排序次序影響算法的效率。序影響算法的效率。 算法排序算法排序二、二、 消隱基本技術(shù)消隱基本技術(shù) 為了提高消隱算法的效率,為了提高消隱算法的效率,各種消隱算法各種消隱算法常常采用一些有效的采用一些有效的消隱消隱基本基本算法。算法。利用連貫性利用連貫性將透視投影轉(zhuǎn)換成平行投影將透視投影轉(zhuǎn)換

10、成平行投影包圍盒技術(shù)包圍盒技術(shù)背面剔除背面剔除空間分割技術(shù)空間分割技術(shù)物體分層表示物體分層表示 物體連貫性物體連貫性面的連貫性面的連貫性 區(qū)域連貫性區(qū)域連貫性 掃描線的連貫性掃描線的連貫性 深度連貫性深度連貫性p 利用連貫性利用連貫性 連貫性是指從一個(gè)事物到另一個(gè)事物,其連貫性是指從一個(gè)事物到另一個(gè)事物,其屬性值屬性值( (如顏色值、空間位置如顏色值、空間位置) )通常是平緩過渡通常是平緩過渡的性質(zhì)。的性質(zhì)。例如:例如: 棱邊的連貫性棱邊的連貫性是指:是指:棱邊的可見性在它與其他棱邊相交棱邊的可見性在它與其他棱邊相交時(shí)才發(fā)生變換時(shí)才發(fā)生變換; 面的連貫性面的連貫性是指:是指:如果面的一部分是可

11、見的,則一般情如果面的一部分是可見的,則一般情況下整個(gè)面都是可見的況下整個(gè)面都是可見的。 物體連貫性 若物體A與物體B是完全分離的,消隱時(shí)只需要比較兩物體之間的遮擋關(guān)系即可,不需要對(duì)它們的表面多邊形逐一進(jìn)行測(cè)試; 面的連貫性一張面內(nèi)的各種屬性值一般是緩慢變化的,可采用增量的形式對(duì)其進(jìn)行計(jì)算; 區(qū)域連貫性一個(gè)區(qū)域一般指屏幕上一組相鄰的象素,他們通常為同一個(gè)可見面所占據(jù),可見性相同; 掃描線的連貫性在相鄰兩條掃描線上,可見面的分布情況相似; 深度連貫性同一表面上的相鄰部分深度是相近的,而占據(jù)屏幕上同一區(qū)域的不同表面的深度不同,這樣只需取其上一點(diǎn)計(jì)算出深度值,比較該深度值便能得出結(jié)果; p 包圍盒技

12、術(shù)包圍盒技術(shù) 一個(gè)形體的包圍盒指的是包圍它的簡單形體。一個(gè)形體的包圍盒指的是包圍它的簡單形體。比如,比如,2 2D D的矩形,的矩形,3 3D D的的立方塊、長方體、球等。立方塊、長方體、球等。目的:目的: 避免盲目的求交測(cè)試;避免盲目的求交測(cè)試; 各物體間的比較等。各物體間的比較等。一個(gè)好的包圍盒要具有兩個(gè)條件:一個(gè)好的包圍盒要具有兩個(gè)條件:包圍和充分緊密包圍著形體;包圍和充分緊密包圍著形體;對(duì)其的測(cè)試比較簡單。對(duì)其的測(cè)試比較簡單。例:例:矩形包圍盒及長方體包圍矩形包圍盒及長方體包圍盒提高算法效率盒提高算法效率 包圍盒不相交,線段和多邊形也不相交,線段完全可見,無需就線段和多邊形的遮擋關(guān)系進(jìn)

13、行進(jìn)一步判斷。可推廣到面與面的遮擋快速判斷。 例如:兩個(gè)空間多邊形A、B在投影平面上的投影分別為A,B ,因?yàn)锳 、B的矩形包圍盒不相交,則A、B不相交,無須進(jìn)行遮擋測(cè)試。右圖:包圍盒相交,投影也相交;包圍盒相交,投影不相交。AABBp 背面剔除背面剔除 外法向外法向 外法向與投影方向(觀察方向)的夾角判斷:外法向與投影方向(觀察方向)的夾角判斷:前向面與后向面(背面)前向面與后向面(背面)剔除依據(jù):剔除依據(jù): 物體表面是封閉的,背面總是被前物體表面是封閉的,背面總是被前向面所遮擋,從而始終是向面所遮擋,從而始終是 不可見的。不可見的。法向向量法向向量N 視線向量視線向量V法向向量法向向量N

14、法向向量法向向量N 90 90V VN N cos 視線視線- -法線夾角法法線夾角法N N 面的法向量面的法向量V V 面上一點(diǎn)指向觀察點(diǎn)的向量面上一點(diǎn)指向觀察點(diǎn)的向量 = = coscos-1-1( )( )0= 0= 時(shí)時(shí) 可見可見 = = = 00N N . . V V00 2 2p、空間分割技術(shù)、空間分割技術(shù)依據(jù):依據(jù):場(chǎng)景中的物體,它們的投影在投影平面上場(chǎng)景中的物體,它們的投影在投影平面上 是否有相互遮擋的重疊部分?是否有相互遮擋的重疊部分? 對(duì)于根本不存在相互遮擋關(guān)系的物體,應(yīng)對(duì)于根本不存在相互遮擋關(guān)系的物體,應(yīng) 避免這種不必要的測(cè)試。避免這種不必要的測(cè)試。方法:方法:將投影平面

15、上的窗口分成若干小區(qū)域;為將投影平面上的窗口分成若干小區(qū)域;為每個(gè)小區(qū)域建立相關(guān)物體表,表中物體的投影于每個(gè)小區(qū)域建立相關(guān)物體表,表中物體的投影于該區(qū)域有相交部分;則在小區(qū)域中判斷哪個(gè)物體該區(qū)域有相交部分;則在小區(qū)域中判斷哪個(gè)物體可見時(shí),可見時(shí),只要對(duì)本區(qū)域的相關(guān)物體表中的物體進(jìn)只要對(duì)本區(qū)域的相關(guān)物體表中的物體進(jìn)行比較即可行比較即可。復(fù)雜度比較:復(fù)雜度比較: 假定每個(gè)小區(qū)域的相關(guān)物體表中平均假定每個(gè)小區(qū)域的相關(guān)物體表中平均有有h h個(gè)個(gè)物體,場(chǎng)景中有物體,場(chǎng)景中有k k個(gè)物體,由于物體在場(chǎng)景中的分個(gè)物體,由于物體在場(chǎng)景中的分布是分散的,顯然布是分散的,顯然h h遠(yuǎn)小于遠(yuǎn)小于k k。 根據(jù)物空間

16、消隱方法所述,其算法復(fù)雜根據(jù)物空間消隱方法所述,其算法復(fù)雜度為度為O(hO(h2 2),),遠(yuǎn)小于遠(yuǎn)小于O(kO(k2 2) )。p 物體分層表示物體分層表示表示形式表示形式:模型變換中的樹形表示方式:模型變換中的樹形表示方式原理:原理:減少場(chǎng)景中物體的個(gè)數(shù),降低算法復(fù)雜度減少場(chǎng)景中物體的個(gè)數(shù),降低算法復(fù)雜度。方法方法: 將父節(jié)點(diǎn)所代表的物體看成子節(jié)點(diǎn)物體的將父節(jié)點(diǎn)所代表的物體看成子節(jié)點(diǎn)物體的包圍盒,當(dāng)兩個(gè)父節(jié)點(diǎn)之間不存在遮擋關(guān)系時(shí),包圍盒,當(dāng)兩個(gè)父節(jié)點(diǎn)之間不存在遮擋關(guān)系時(shí),就勿對(duì)兩者的子節(jié)點(diǎn)做進(jìn)一步測(cè)試。就勿對(duì)兩者的子節(jié)點(diǎn)做進(jìn)一步測(cè)試。 父節(jié)點(diǎn)之間的遮擋關(guān)系可以用它們之間的包父節(jié)點(diǎn)之間的遮擋

17、關(guān)系可以用它們之間的包圍盒進(jìn)行預(yù)測(cè)試。圍盒進(jìn)行預(yù)測(cè)試。p 將透視投影轉(zhuǎn)換成平行投影將透視投影轉(zhuǎn)換成平行投影 消隱與透視關(guān)系較密切,體現(xiàn)在消隱與透視關(guān)系較密切,體現(xiàn)在: 1 1)消隱必須在投影之前完成;)消隱必須在投影之前完成;因?yàn)橄[需要物體三維信息,投影后只有二維信息; 2 2)物體之間的遮擋關(guān)系與投影中心(視點(diǎn))物體之間的遮擋關(guān)系與投影中心(視點(diǎn)) 的選取有關(guān);的選取有關(guān); 3 3)物體之間的遮擋關(guān)系與投影方式有關(guān),)物體之間的遮擋關(guān)系與投影方式有關(guān),在平行投影時(shí),其遮擋關(guān)系可通過深度值來確定。l 凸多面體的每個(gè)面要么可見,要么凸多面體的每個(gè)面要么可見,要么不可見;不可能出現(xiàn)一個(gè)面部分可不

18、可見;不可能出現(xiàn)一個(gè)面部分可見,部分不可見。見,部分不可見。xyz三、凸多面體隱藏線的消除三、凸多面體隱藏線的消除l 凸多面體是由若干個(gè)平面圍成的物體。凸多面體是由若干個(gè)平面圍成的物體。假設(shè)這些平面方程為:假設(shè)這些平面方程為: ai x+bi y+ci z+di=0 (i=1,2,n)調(diào)整系數(shù)的符號(hào),使每個(gè)平面的法向調(diào)整系數(shù)的符號(hào),使每個(gè)平面的法向量(量(ai,bi,ci)指向多面體內(nèi)部。指向多面體內(nèi)部。l 如果投影方向?yàn)椋ㄈ绻队胺较驗(yàn)椋╔p,Yp,Zp),那么那么(ai,bi,ci)( (Xp,Yp,Zp)0時(shí),時(shí),此平面為不可見面,在作圖時(shí),此平面為不可見面,在作圖時(shí),此面不繪制。此面不

19、繪制。 凸多面體消隱的基本原理凸多面體消隱的基本原理 表面外法線與其可見性的關(guān)系表面外法線與其可見性的關(guān)系 設(shè)平面設(shè)平面Pi上任一點(diǎn)的外法矢上任一點(diǎn)的外法矢ni與該點(diǎn)的視線矢量與該點(diǎn)的視線矢量vi的數(shù)的數(shù)量積:量積: 從而有從而有 其中其中i為為ni與與vi之間的夾角,之間的夾角,i=1,2,m,這里,這里m為平面數(shù)。為平面數(shù)。iiiiivnvncos 當(dāng)當(dāng) cos i i0 0 ,即,即 0 i i /2 時(shí),時(shí),Pi為朝前面,為可見的,應(yīng)為朝前面,為可見的,應(yīng)該畫出;該畫出; 當(dāng)當(dāng) cos i i00 ,即,即 /2 face_zmax(i) Then face_zmax(i) = zz(

20、line_p(j) Next jNext i 求各面最大求各面最大Z坐標(biāo)坐標(biāo) XYZ012345675050 For i = 0 To 5 L = i For m = i + 1 To 5 If (face_zmax(m) face_zmax(L) Then L = m Next m If (L i) Then k = face_s(i): face_s(i) = face_s(L): face_s(L) = k k = face_e(i): face_e(i) = face_e(L): face_e(L) = k k = face_zmax(i): face_zmax(i) = face_z

21、max(L): face_zmax(L) = k End If Next i 對(duì)面表根據(jù)最大對(duì)面表根據(jù)最大Z坐標(biāo)從小到大排序坐標(biāo)從小到大排序 face_s = Array(0, 5, 10, 15, 20, 25) face_e = Array(4, 9, 14, 19, 24, 29) face_zmax=Array(68,90,54,90,90,22) face_s = Array(25, 10, 0, 5, 15, 20) face_e = Array(29, 14, 4, 9, 19, 24) face_zmax=Array(22,54,68,90,90,90)For i = 0 To

22、 5 多邊形面多邊形面循環(huán)循環(huán) ymin = 10000: ymax = 0 For j = face_s(i) To face_e(i) - 1 If (yy(line_p(j) ymax) Then ymax = yy(line_p(j) Next 計(jì)算面多邊形頂點(diǎn)的最大最小值計(jì)算面多邊形頂點(diǎn)的最大最小值 For h = ymin To ymax 掃描線循環(huán)掃描線循環(huán) k = 0 For j = face_s(i) To face_e(i) - 1 面多邊形的邊循環(huán)面多邊形的邊循環(huán) If Int(yy(line_p(j + 1) Int(yy(line_p(j) Then t = (h -

23、 yy(line_p(j) - 0.5) / (yy(line_p(j + 1) - yy(line_p(j) If (t = 0 And t 0)then for i=fs(j) to fe(j)-1 picture1.line(xx(i),yy(i)-(xx(i+1),yy(i+1) next endifendif兩個(gè)面正軸測(cè)投影兩個(gè)面正軸測(cè)投影-消隱消隱 a=(y2- y1)(z3 - z1)- (y3- y1)(z2 - z1) b=(z2- z1)(x3 - x1)- (z3- z1)(x2 - x1) c=(x2- x1)(y3 - y1)- (x3- x1)(y2 - y1)2.

24、 深度緩沖器算法深度緩沖器算法(Z-buffer算法)算法) Z緩沖器算法的基本思想是緩沖器算法的基本思想是: 將投影平面每個(gè)像素所對(duì)應(yīng)的所有面片(平面或曲面)將投影平面每個(gè)像素所對(duì)應(yīng)的所有面片(平面或曲面)的深度進(jìn)行比較,然后取離視線最近面片的屬性值作為該像的深度進(jìn)行比較,然后取離視線最近面片的屬性值作為該像素的屬性值。見圖。素的屬性值。見圖。 Z緩沖器算法基本思想緩沖器算法基本思想S3S2S1(x,y)XvZvYv一種典型的、也是最簡單的像空間消隱算法一種典型的、也是最簡單的像空間消隱算法Z緩緩沖器沖器每個(gè)單元存放對(duì)應(yīng)象素每個(gè)單元存放對(duì)應(yīng)象素當(dāng)前最近面的深度值當(dāng)前最近面的深度值幀緩幀緩沖器

25、沖器每個(gè)單元存放對(duì)應(yīng)象素每個(gè)單元存放對(duì)應(yīng)象素的顏色值的顏色值深度緩沖器算法深度緩沖器算法 算法描述算法描述深度緩沖器所有單元均置為最小深度緩沖器所有單元均置為最小z值,幀緩沖值,幀緩沖器各單元均置為背景色,然后逐個(gè)處理多邊形器各單元均置為背景色,然后逐個(gè)處理多邊形表中的各面片。表中的各面片。每掃描一行,計(jì)算該行各像素點(diǎn)(每掃描一行,計(jì)算該行各像素點(diǎn)(x,y)所對(duì))所對(duì)應(yīng)的深度值應(yīng)的深度值z(mì)(x,y),并將結(jié)果與深度緩沖),并將結(jié)果與深度緩沖器中該像素單元所存儲(chǔ)的深度值器中該像素單元所存儲(chǔ)的深度值ZB(x,y)進(jìn)行比較。進(jìn)行比較。若若zZB(x,y),則則ZB(x,y)= z,同時(shí)將,同時(shí)將該像

26、素的屬性值該像素的屬性值I(x,y)寫入幀緩沖器,即)寫入幀緩沖器,即FB(x,y)= I(x,y);否則不變。);否則不變。算法描述:算法描述:for ( v= 0;vvmax;v+) for (u= 0; u Z緩沖器的第緩沖器的第(u,v)單元的值單元的值) 置幀緩沖器的第置幀緩沖器的第(u,v)單元值為當(dāng)前多邊形顏色;單元值為當(dāng)前多邊形顏色; 置置Z緩沖器的第緩沖器的第(u,v)單元值為單元值為d; 深度緩沖器算法深度緩沖器算法 深度值的計(jì)算深度值的計(jì)算若已知多邊形的方程,則可用增量法計(jì)若已知多邊形的方程,則可用增量法計(jì)算掃描線每一個(gè)像素的深度。設(shè)平面方算掃描線每一個(gè)像素的深度。設(shè)平面

27、方程為:程為:則多邊形面上的點(diǎn)(則多邊形面上的點(diǎn)(x,y)所對(duì)應(yīng)的深)所對(duì)應(yīng)的深度值為:度值為: CDByAxz)(C0C0 0DCzByAx 由于所有掃描線上相鄰點(diǎn)間的水平間距由于所有掃描線上相鄰點(diǎn)間的水平間距為為1個(gè)像素單位,掃描線行與行之間的垂個(gè)像素單位,掃描線行與行之間的垂直間距也為直間距也為1。因此可以利用這種連貫性。因此可以利用這種連貫性來簡化計(jì)算過程,如圖所示。來簡化計(jì)算過程,如圖所示。 深度計(jì)算深度計(jì)算 若已計(jì)算出(若已計(jì)算出(x,y)點(diǎn)的深度值為)點(diǎn)的深度值為zi,沿,沿x方向相鄰連貫點(diǎn)(方向相鄰連貫點(diǎn)(x+1,y)的深度值)的深度值z(mì)i+1可可由下式計(jì)算:由下式計(jì)算: 沿多邊形左邊界遞歸計(jì)算邊界上各點(diǎn)的坐標(biāo):沿多邊形左邊界遞歸計(jì)算邊界上各點(diǎn)的坐標(biāo): m為該邊的斜率,沿該邊的

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論