




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、王汝傳 黃海平 林巧民 教材:計(jì)算機(jī)圖形學(xué)王汝傳等教材:計(jì)算機(jī)圖形學(xué)王汝傳等 編著編著 人民郵電出版社人民郵電出版社 計(jì)計(jì) 算算 機(jī)機(jī) 圖圖 形形 學(xué)學(xué)Computer Graphics 王汝傳王汝傳 W 第五章 目錄 第五章 三維圖形生成和變換技術(shù) 5.1 三維圖形的概念 5.2 自由曲面的生成 5.3 三維圖形的變換 5.4 三維圖形裁剪和消隱 三維圖形投影變換三維圖形投影變換 通常圖形輸出設(shè)備(顯示器、繪圖儀等)通常圖形輸出設(shè)備(顯示器、繪圖儀等)都是二維的,用這些二維設(shè)備來(lái)輸出三維圖形都是二維的,用這些二維設(shè)備來(lái)輸出三維圖形,就得把三維坐標(biāo)系下圖形上各點(diǎn)的坐標(biāo)轉(zhuǎn)化,就得把三維坐標(biāo)系下圖
2、形上各點(diǎn)的坐標(biāo)轉(zhuǎn)化為某一平面坐標(biāo)系下的二維坐標(biāo),也就是將(為某一平面坐標(biāo)系下的二維坐標(biāo),也就是將(x x,y y,z z)變換為()變換為(xx,yy)或()或(xx,zz)或()或(yy,zz)。這種把三維物體用二維圖)。這種把三維物體用二維圖形表示的過(guò)程稱(chēng)為三維投影變換。這種變換方形表示的過(guò)程稱(chēng)為三維投影變換。這種變換方式有很多種,在實(shí)際中,根據(jù)不同目的或需要式有很多種,在實(shí)際中,根據(jù)不同目的或需要而采用不同的變換方式。而采用不同的變換方式。三維投影變換大致分類(lèi)如圖所示。三維投影變換大致分類(lèi)如圖所示。 平行投影是將物體上所有點(diǎn)都沿著一組平行線投影到投影平行投影是將物體上所有點(diǎn)都沿著一組平行
3、線投影到投影平面,而透視投影是所有點(diǎn)沿著一組匯聚到一個(gè)稱(chēng)為投影中平面,而透視投影是所有點(diǎn)沿著一組匯聚到一個(gè)稱(chēng)為投影中心的位置的線進(jìn)行投影,兩種方法如圖所示。心的位置的線進(jìn)行投影,兩種方法如圖所示。 投 影 平 面 投 影 平 面 (a)平 行 投 影 (b)透 視 投 影 圖5.26 平 行 和 投 影 平 面 1 1正平行投影變換正平行投影變換 投影方向垂直于投影平面時(shí)稱(chēng)正平行投影。投影方向垂直于投影平面時(shí)稱(chēng)正平行投影。 (l l)正投影變換)正投影變換 在工程上將三維坐標(biāo)系在工程上將三維坐標(biāo)系OXYZOXYZ中的三個(gè)坐標(biāo)平面分別為中的三個(gè)坐標(biāo)平面分別為H H面(面(XOYXOY平面)、平面
4、)、V V面(面(XOZXOZ平面)和平面)和W W面(面(YOZYOZ平面)。如平面)。如圖所示。圖所示。 所謂正投影就是三維圖形上各點(diǎn)分別向某一坐標(biāo)平面作垂線所謂正投影就是三維圖形上各點(diǎn)分別向某一坐標(biāo)平面作垂線,其垂足便稱(chēng)為該三維點(diǎn)投影點(diǎn),將所有投影點(diǎn)按原三維圖形,其垂足便稱(chēng)為該三維點(diǎn)投影點(diǎn),將所有投影點(diǎn)按原三維圖形中點(diǎn)與點(diǎn)之間的對(duì)應(yīng)關(guān)系一一連起來(lái)便得到了一平面圖形,這中點(diǎn)與點(diǎn)之間的對(duì)應(yīng)關(guān)系一一連起來(lái)便得到了一平面圖形,這一平面圖形稱(chēng)為三維圖形在該平面上正投影。一平面圖形稱(chēng)為三維圖形在該平面上正投影。 如圖所示。在如圖所示。在V V面上的投影圖形稱(chēng)主視圖,在面上的投影圖形稱(chēng)主視圖,在H H
5、面上的投影圖面上的投影圖形稱(chēng)俯視圖,在形稱(chēng)俯視圖,在W W面上的投影圖形稱(chēng)側(cè)視圖。面上的投影圖形稱(chēng)側(cè)視圖。 正面(正面(V V面)投影主視圖變換面)投影主視圖變換 正面投影是物體在正面投影是物體在XOZXOZ平面上的投影,使物體的平面上的投影,使物體的y y坐標(biāo)坐標(biāo)都等于零,都等于零,x x和和z z坐標(biāo)不變,其變換矩陣是:坐標(biāo)不變,其變換矩陣是: zzyxxzyxzxTzyxTVV 0,11011000010000000001即即 水平面(水平面(H H面)投影俯視圖變換面)投影俯視圖變換 水平面投影是物體在水平面投影是物體在XOYXOY平面上投影,使物體的平面上投影,使物體的z z坐標(biāo)坐標(biāo)
6、都等于零,都等于零,x x和和y y坐標(biāo)不變,其變換矩陣是:坐標(biāo)不變,其變換矩陣是: 0,11011000000000100001 zyyxxzyxyxTzyxTHH即即 側(cè)面(側(cè)面( W W面)投影側(cè)視圖變換面)投影側(cè)視圖變換 側(cè)面投影是物體在側(cè)面投影是物體在YOZYOZ平面上投影,使物體的平面上投影,使物體的x x坐標(biāo)坐標(biāo)都等于零,都等于零,y y和和z z坐標(biāo)不變,其變換矩陣是坐標(biāo)不變,其變換矩陣是 zzyyxzyxzyTzyxTWW , 011011000010000100000即即 三視圖三視圖 上面投影后的三面投影圖仍位于空間,根據(jù)工程中上面投影后的三面投影圖仍位于空間,根據(jù)工程中
7、需要還須將需要還須將V V面,面,H H面,和面,和W W面上得到的三個(gè)正投影以一面上得到的三個(gè)正投影以一定方式展平在同一平面上而得到三個(gè)視圖,習(xí)慣上是放定方式展平在同一平面上而得到三個(gè)視圖,習(xí)慣上是放在在V V面上。面上。 為了在為了在V V面上構(gòu)成三視圖,使面上構(gòu)成三視圖,使V V面上投影保持不變,面上投影保持不變,而使而使H H面上正投影繞面上正投影繞X X軸逆轉(zhuǎn)軸逆轉(zhuǎn)9090到到V V面,為了防止與原面,為了防止與原V V面面上投影發(fā)生擁擠現(xiàn)象,再讓它向軸方向平移一段距離上投影發(fā)生擁擠現(xiàn)象,再讓它向軸方向平移一段距離n n。同樣,使。同樣,使w w面上正投影繞面上正投影繞Z Z軸正轉(zhuǎn)軸
8、正轉(zhuǎn)9090,再向軸方向移一,再向軸方向移一段距離段距離l l。以上立方體為例,以上立方體為例,V V面面上投影保持不變上投影保持不變FGEHZXYDCH H面上正投影繞面上正投影繞X X軸逆轉(zhuǎn)軸逆轉(zhuǎn)9090到到V V面面使使w w面上正投影面上正投影繞繞Z Z軸正轉(zhuǎn)軸正轉(zhuǎn)9090再向軸方向移再向軸方向移一段距離一段距離l l。為了防止與原為了防止與原V V面上投影面上投影發(fā)生擁擠現(xiàn)象,再讓它向發(fā)生擁擠現(xiàn)象,再讓它向軸方向平移一段距離軸方向平移一段距離n n。變換矩陣為:變換矩陣為: 1000010000000001VT 100000001000001100010000100001100009
9、0cos90sin0090sin90cos000011000000000100001nnTH 100010000010000100010000100001100001000090cos90sin0090sin90cos1000010000100000llTW得出三視圖除上述方法外,還可以先將立方體繞坐標(biāo)軸得出三視圖除上述方法外,還可以先將立方體繞坐標(biāo)軸X X(或(或Z Z)旋轉(zhuǎn))旋轉(zhuǎn)9090,再平移,再平移n(n(或或l)l),最后作正投影變換。,最后作正投影變換。其實(shí)兩種方法得到結(jié)果是一樣。其實(shí)兩種方法得到結(jié)果是一樣。 所以,要求得一個(gè)三維實(shí)體在所以,要求得一個(gè)三維實(shí)體在V V面上的三視圖,
10、必須將面上的三視圖,必須將三維實(shí)體上各點(diǎn)分別乘以新的變換矩陣三維實(shí)體上各點(diǎn)分別乘以新的變換矩陣TV,TH,TWTV,TH,TW即:即: 1000010000000001VT 100000001000001nTH 100010000010001lTW(2 2)正軸測(cè)投影變換)正軸測(cè)投影變換 正軸測(cè)投影變換矩陣正軸測(cè)投影變換矩陣 若將空間立體繞某個(gè)投影面所包含的兩個(gè)軸向旋轉(zhuǎn)若將空間立體繞某個(gè)投影面所包含的兩個(gè)軸向旋轉(zhuǎn),再向該投影面作正投影,即可獲得立體正軸測(cè)圖。通,再向該投影面作正投影,即可獲得立體正軸測(cè)圖。通常選用常選用V V面(面(XOZXOZ坐標(biāo)平面)為軸測(cè)投影面,所以將立體坐標(biāo)平面)為軸測(cè)
11、投影面,所以將立體繞繞Z Z軸正向旋轉(zhuǎn)軸正向旋轉(zhuǎn)角,再繞角,再繞X X軸反向旋轉(zhuǎn)軸反向旋轉(zhuǎn)角,最后向角,最后向V V面面作正投影。作正投影。 因此將繞因此將繞Z Z軸旋轉(zhuǎn)變換矩陣軸旋轉(zhuǎn)變換矩陣TZTZ,繞,繞X X軸旋轉(zhuǎn)的變換矩軸旋轉(zhuǎn)的變換矩陣陣TXTX和向和向V V面作正投影的變換矩陣面作正投影的變換矩陣TVTV連乘,即得到正軸測(cè)連乘,即得到正軸測(cè)變換矩陣:變換矩陣: 10000cos000sincos0sin0sinsin0cos100001000000000110000cossin00sincos000011000010000cossin00sincos VXZTTTT正正對(duì)于立體上任一
12、頂點(diǎn)對(duì)于立體上任一頂點(diǎn)A(x,y,z)A(x,y,z)正軸測(cè)變換投影結(jié)果為:正軸測(cè)變換投影結(jié)果為: 11cossincossinsin0sincos10000cos000sincos0sin0sinsin0cos1zyxzyxyxzyxTA 正正變換后點(diǎn)變換后點(diǎn)AA坐標(biāo)為:坐標(biāo)為: cos)sincossinsin(0,sincoszyxzyyxx 將將和和值代入正軸測(cè)變換矩陣值代入正軸測(cè)變換矩陣T T正,再將立體頂正,再將立體頂點(diǎn)位置矩陣乘此變換矩陣點(diǎn)位置矩陣乘此變換矩陣T T正,可獲得立體頂點(diǎn)正軸測(cè)正,可獲得立體頂點(diǎn)正軸測(cè)圖位置矩陣,最后依次將各頂點(diǎn)連線,即可得到立體的圖位置矩陣,最后依次
13、將各頂點(diǎn)連線,即可得到立體的正軸測(cè)圖。選用不同正軸測(cè)圖。選用不同和和值,可以產(chǎn)生不同的正軸測(cè)值,可以產(chǎn)生不同的正軸測(cè)圖。圖。 工程中常用的有正等測(cè)圖、正二測(cè)圖。工程中常用的有正等測(cè)圖、正二測(cè)圖。 對(duì)正六面體進(jìn)行正軸測(cè)投影變換如下圖所示:對(duì)正六面體進(jìn)行正軸測(cè)投影變換如下圖所示: (a)空間立體圖 (b)立體正軸測(cè)圖 圖 5.30 立體正軸測(cè)投影 如圖所示,進(jìn)行軸測(cè)投影變換后,立體上原來(lái)的坐標(biāo)軸如圖所示,進(jìn)行軸測(cè)投影變換后,立體上原來(lái)的坐標(biāo)軸OXOX,OYOY,OZOZ變換成軸測(cè)圖上軸測(cè)變換成軸測(cè)圖上軸測(cè)OXOX,OYOY,OZOZ。下面我們討論變換的軸向變形系數(shù)和軸間角。下面我們討論變換的軸向變
14、形系數(shù)和軸間角。 圖 5.31 軸向變形系數(shù)和軸間角 a a軸向變形系數(shù)軸向變形系數(shù) 取三根坐標(biāo)軸上的點(diǎn),它們的齊次坐標(biāo)分別為取三根坐標(biāo)軸上的點(diǎn),它們的齊次坐標(biāo)分別為Al 0 0 1Al 0 0 1,B B0 1 0 10 1 0 1,C C0 0 1 10 0 1 1,對(duì)它們分別進(jìn)行正軸測(cè)投影變換得:對(duì)它們分別進(jìn)行正軸測(cè)投影變換得: 11sinsin0cos10000cos000sincos0sin0sinsin0cos1001AzyxAaaa 11sincos0sin10000cos000sincos0sin0sinsin0cos1010BzyxBbbb 11cos0010000cos00
15、0sincos0sin0sinsin0cos1100CzyxCccc A,B,CA,B,C分別位于軸測(cè)軸分別位于軸測(cè)軸OX, OY, OZOX, OY, OZ上,故各軸的軸向變形系數(shù)為:上,故各軸的軸向變形系數(shù)為: cossincossin1sinsincos12222222222 czbbyaaxzOCCOzxOBBOzxOAAOb b軸間角軸間角 由上述由上述A,B,CA,B,C三點(diǎn)的變換可知,三點(diǎn)的變換可知,OZOZ軸和軸和OZOZ軸重合軸重合,設(shè),設(shè)OXOX軸,軸,OYOY軸和水平軸的夾角分別為(見(jiàn)下圖軸和水平軸的夾角分別為(見(jiàn)下圖),則:),則: 圖 5.31 軸向變形系數(shù)和軸間角
16、sinsinsincossincossinsinctgxztgtgxztgbbyaax 正等測(cè)投影變換正等測(cè)投影變換正等測(cè)投影為三根軸上變形系數(shù)相等的正軸測(cè)投影,即正等測(cè)投影為三根軸上變形系數(shù)相等的正軸測(cè)投影,即 由此可得:由此可得: 454590202cos, 0cos,9002cos2cos0sin12cos0)sin(cossin)sin(cossincossinsinsincoscossincossinsinsincos22222222222222222222 取取所所以以即即一一般般在在正正軸軸測(cè)測(cè)投投影影變變換換中中,可可得得:由由o2 10000816. 0000408. 007
17、07. 00408. 00707. 01635451635163533sin31sincossin2121cossincossin452222222正正等等正正得得正正等等測(cè)測(cè)投投影影變變換換矩矩陣陣代代入入,將將取取中中得得代代入入將將TT 30331635sin45sin30331635sin45sin8165. 01635cos yxxxzyxtgctgtgtgtgtg 軸軸間間角角:軸軸向向變變形形系系數(shù)數(shù): (a)空 間 立 體 圖 (b)正 等 測(cè) 圖 圖5.32正 等 測(cè) 投 影 如圖如圖 (b) (b)是圖(是圖(a a)的正等測(cè)圖:)的正等測(cè)圖: 正二測(cè)投影變換正二測(cè)投影變換
18、正二測(cè)投影一般取正二測(cè)投影一般取X X和和Z Z軸變形系數(shù)相等,且為軸變形系數(shù)相等,且為Y Y軸變形系軸變形系數(shù)的二倍,即數(shù)的二倍,即 zyx 2 22222222222222228194220432coscos43cos2coscos43)sin(cossin)sincoscossincos4sin4cossinsincos2 (得得:由由zyx25418819.02819sin422010712599.02819sin422047.02194.02819cos10000943.0000312.00354.00118.00935.0 yyxxxyzxctgtgtgtgTT 軸軸間間角角:軸軸
19、向向變變形形系系數(shù)數(shù):得得:代代入入和和將將正正二二正正2 2斜平行投影(斜軸測(cè)投影)變換斜平行投影(斜軸測(cè)投影)變換 投影方向不垂直于投影面的平行投影稱(chēng)為斜平行投投影方向不垂直于投影面的平行投影稱(chēng)為斜平行投影,即斜軸測(cè)投影。這種投影可以通過(guò)三維空間形體的影,即斜軸測(cè)投影。這種投影可以通過(guò)三維空間形體的錯(cuò)切變換后作正投影獲得。下面推導(dǎo)其變換矩陣。錯(cuò)切變換后作正投影獲得。下面推導(dǎo)其變換矩陣。 (1 1)斜軸測(cè)投影變換矩陣)斜軸測(cè)投影變換矩陣 斜軸測(cè)投影是先將立體沿兩個(gè)方向產(chǎn)生錯(cuò)切,再向投影斜軸測(cè)投影是先將立體沿兩個(gè)方向產(chǎn)生錯(cuò)切,再向投影面作正投影而得到的。通常先沿面作正投影而得到的。通常先沿X
20、X含含Y Y錯(cuò)切,再沿錯(cuò)切,再沿Z Z含含Y Y錯(cuò)切,最錯(cuò)切,最后向后向XOZXOZ坐標(biāo)平面投影而成,變換矩陣為:坐標(biāo)平面投影而成,變換矩陣為: 100001000000011000010000000001100001000100001100001000010001fdfdTTTTVXX錯(cuò)錯(cuò)錯(cuò)錯(cuò)斜斜變換矩陣中元素變換矩陣中元素d d,f f取不同的值,即可得到任意的斜軸取不同的值,即可得到任意的斜軸測(cè)投影。測(cè)投影。d d,f f的正負(fù)可以改變斜軸測(cè)的方向。的正負(fù)可以改變斜軸測(cè)的方向。 Z軸向變形系數(shù)軸向變形系數(shù) 用與正軸測(cè)投影同樣的方法,如圖所示,對(duì)距原點(diǎn)用與正軸測(cè)投影同樣的方法,如圖所示,對(duì)
21、距原點(diǎn)為單位長(zhǎng)度的點(diǎn)為單位長(zhǎng)度的點(diǎn) A A(1 0 0 11 0 0 1),),B B(0 1 0 10 1 0 1),C C(0 0 1 10 0 1 1)進(jìn)行斜軸測(cè)投影變換。)進(jìn)行斜軸測(cè)投影變換。 1010010000100100001110011010000100000001101011001100001000000011001CzyxfdCBzyxfdfdBzyxfdAcccbbbaaa 變換后變換后A A與與AA點(diǎn)重合,點(diǎn)重合,C C與以與以CC點(diǎn)重合,即點(diǎn)重合,即OXOX與與OXOX重合重合,OZOZ與與OZOZ重合。因此軸向變形系數(shù)為:重合。因此軸向變形系數(shù)為:1 zx 2222
22、fdzxbby 軸間角軸間角由上面對(duì)由上面對(duì)A A,B B,C C三點(diǎn)的變換可以看出,只有三點(diǎn)的變換可以看出,只有OYOY軸與水平軸軸與水平軸有一夾角有一夾角yy,如圖所示,且,如圖所示,且 dfxztgbby = (2) (2) 斜等測(cè)投影變換斜等測(cè)投影變換斜等測(cè)投影定義為:斜等測(cè)投影定義為: 即即145 zyxy 22145fddftg707.022 fd解解得得:d d和和f f的正負(fù)決定沿的正負(fù)決定沿X X軸和沿軸和沿Z Z軸錯(cuò)切方向,可視具體情況軸錯(cuò)切方向,可視具體情況而定。這樣我們得到常用斜等測(cè)變換矩陣為:而定。這樣我們得到常用斜等測(cè)變換矩陣為: 100001000707. 007
23、07. 00001斜等斜等T單位正六面體單位正六面體斜等測(cè)投影斜等測(cè)投影 (3 3)斜二測(cè)投影變換)斜二測(cè)投影變換 在斜軸測(cè)圖中,常用的還有斜二測(cè)圖,斜二測(cè)投影在斜軸測(cè)圖中,常用的還有斜二測(cè)圖,斜二測(cè)投影定義為:定義為: 即即21145 zzxy 222145fddftg354.081 fd解解得得: 在畫(huà)斜二測(cè)投影圖時(shí),為了增強(qiáng)圖形立體感,往往使立體在畫(huà)斜二測(cè)投影圖時(shí),為了增強(qiáng)圖形立體感,往往使立體沿沿Z Z方向錯(cuò)切,故方向錯(cuò)切,故f f取負(fù)值,而取負(fù)值,而d d的正負(fù)決定沿的正負(fù)決定沿X X軸錯(cuò)切方向,軸錯(cuò)切方向,可視具體情況而定。因此,斜二測(cè)投影變換矩陣為:可視具體情況而定。因此,斜二測(cè)
24、投影變換矩陣為: 100001000354. 00354. 00001斜二斜二Ty單位正六面體單位正六面體斜二測(cè)投影斜二測(cè)投影三維圖形透視投影變換三維圖形透視投影變換 透視投影屬于中心投影,透視圖也是一種將三維透視投影屬于中心投影,透視圖也是一種將三維物體用二維平面來(lái)表達(dá)的立體圖。與軸測(cè)圖不同,它物體用二維平面來(lái)表達(dá)的立體圖。與軸測(cè)圖不同,它是用中心投影法,通過(guò)空間一點(diǎn)(即投影中心)將立是用中心投影法,通過(guò)空間一點(diǎn)(即投影中心)將立體投射到投影面上所得到的投影圖。如圖所示:體投射到投影面上所得到的投影圖。如圖所示: 投影中心又稱(chēng)為投影中心又稱(chēng)為視點(diǎn),它相當(dāng)于視點(diǎn),它相當(dāng)于觀察者的眼睛。觀察者的
25、眼睛。 投影面置于視投影面置于視點(diǎn)與立體之間點(diǎn)與立體之間將立體上各點(diǎn)與視將立體上各點(diǎn)與視點(diǎn)相連所得到的投點(diǎn)相連所得到的投影線分別與投影面影線分別與投影面相交,其交點(diǎn)就是相交,其交點(diǎn)就是立體上相應(yīng)點(diǎn)的透立體上相應(yīng)點(diǎn)的透視投影,再將其依視投影,再將其依次相連,即獲得具次相連,即獲得具有真實(shí)立體感的透有真實(shí)立體感的透視圖。視圖。 透視投影可用矩陣變換方法獲得,在透視投影可用矩陣變換方法獲得,在4 4* *4 4階變換矩階變換矩陣中第四列元素陣中第四列元素p p,q q,r r稱(chēng)為透視參數(shù),若賦其非零數(shù)稱(chēng)為透視參數(shù),若賦其非零數(shù)值即形成透視變換矩陣值即形成透視變換矩陣 。 snmlrihgqfedpc
26、baT1 1點(diǎn)的透視變換點(diǎn)的透視變換 如圖所示,在如圖所示,在Y Y軸上取一點(diǎn)軸上取一點(diǎn)E E為視點(diǎn),投影面取為視點(diǎn),投影面取XOZXOZ面(面(V V面),面),A A(x x,y y,z z)與視點(diǎn))與視點(diǎn)E E 的連線的連線AEAE與與V V面的面的交點(diǎn)為交點(diǎn)為A (x A (x ,y y ,z )z ),即為,即為A A 的透視投影的透視投影,同樣,同樣B B 的透視投影為的透視投影為B B ,C C 的透視投影為的透視投影為C C ,D D 的透視投影為的透視投影為D D 圖5.38 透視投影坐標(biāo)關(guān)系根據(jù)圖可以找到空間點(diǎn)坐標(biāo)與點(diǎn)的透視投影坐標(biāo)的關(guān)系。根據(jù)圖可以找到空間點(diǎn)坐標(biāo)與點(diǎn)的透視
27、投影坐標(biāo)的關(guān)系。因?yàn)橐驗(yàn)镈EBDEB與與DEBDEB相似,所以,相似,所以, 圖5.38 透視投影坐標(biāo)關(guān)系dyxxdydxx 1即即同理可得:同理可得:qyzzqyxxdqdyzzdydzz 1111,則則設(shè)設(shè)即即若用矩陣表示上述關(guān)系式,則有:若用矩陣表示上述關(guān)系式,則有: 軸軸上上透透視視變變換換矩矩陣陣為為視視點(diǎn)點(diǎn)在在令令面面變變換換向向透透視視變變換換YqTzyxqyzqyxqyzxVqzyxqzyxq 10000100010000111101)1 (0100001000000001110000100000000011000010001000011在在Y同理,視點(diǎn)在同理,視點(diǎn)在 X X軸
28、上透視變換矩陣軸上透視變換矩陣TpTp和視點(diǎn)在和視點(diǎn)在 Z Z軸上透軸上透視變換矩陣視變換矩陣TrTr分別為:分別為: 100010000100001100001000010001rTpTrp現(xiàn)將現(xiàn)將Y Y軸上無(wú)限遠(yuǎn)點(diǎn)軸上無(wú)限遠(yuǎn)點(diǎn)0 1 0 00 1 0 0(注意無(wú)限遠(yuǎn)點(diǎn)第四維(注意無(wú)限遠(yuǎn)點(diǎn)第四維齊次坐標(biāo)為齊次坐標(biāo)為0 0)作透視變換,其結(jié)果為:)作透視變換,其結(jié)果為: 10100101000010001000010010qqq 變換結(jié)果表明:變換結(jié)果表明:Y Y軸上的無(wú)限遠(yuǎn)點(diǎn)軸上的無(wú)限遠(yuǎn)點(diǎn)0 1 0 00 1 0 0進(jìn)進(jìn)行透視變換后成為有限遠(yuǎn)點(diǎn)行透視變換后成為有限遠(yuǎn)點(diǎn)0 l0 lq 0 1q
29、 0 1。由此。由此可以證明,原來(lái)平行于可以證明,原來(lái)平行于X X軸和軸和Z Z軸直線變換后仍平行于軸直線變換后仍平行于對(duì)應(yīng)坐標(biāo)軸,但原與對(duì)應(yīng)坐標(biāo)軸,但原與Y Y軸平行直線,變換后不再與軸平行直線,變換后不再與Y Y軸軸平行,而是匯交于平行,而是匯交于Y Y軸上一點(diǎn)(軸上一點(diǎn)(0 0,1 1q q,0 0),這個(gè)點(diǎn)),這個(gè)點(diǎn)稱(chēng)為透視的滅點(diǎn)。稱(chēng)為透視的滅點(diǎn)。 同理分別用透視變換矩陣同理分別用透視變換矩陣TpTp和和TrTr對(duì)對(duì) X X軸和軸和 Z Z軸軸上無(wú)限遠(yuǎn)點(diǎn)進(jìn)行透視變換后,所有平行于上無(wú)限遠(yuǎn)點(diǎn)進(jìn)行透視變換后,所有平行于X X軸和軸和Z Z軸的軸的直線都應(yīng)分別交于滅點(diǎn)(直線都應(yīng)分別交于滅點(diǎn)(
30、l lp p,0 0,0 0)和()和(0 0,0 0,1 1r r) 2 2立體透視投影變換立體透視投影變換 和三維實(shí)體平行投影方法一樣,只要將三維實(shí)體上各個(gè)和三維實(shí)體平行投影方法一樣,只要將三維實(shí)體上各個(gè)點(diǎn)分別透視投影,再將投影后得到的各個(gè)點(diǎn)按原來(lái)點(diǎn)與點(diǎn)之點(diǎn)分別透視投影,再將投影后得到的各個(gè)點(diǎn)按原來(lái)點(diǎn)與點(diǎn)之間的關(guān)系用線段一一連接,便可得到三維實(shí)體的透視投影。間的關(guān)系用線段一一連接,便可得到三維實(shí)體的透視投影。 由前述可知,透視變換矩陣由前述可知,透視變換矩陣TpTp,TqTq和和TrTr分別改變了三維分別改變了三維實(shí)體中沿實(shí)體中沿X X方向方向Y Y方向以及方向以及Z Z方向的平行線段的平
31、行性,形成方向的平行線段的平行性,形成三個(gè)滅點(diǎn)(三個(gè)滅點(diǎn)(1/p1/p,0 0,0 0)、()、(0 0,l lq q,0 0)和()和(0 0,0 0,1 1r r)。然而,如果用)。然而,如果用Tp,TqTp,Tq和和TrTr中任意兩個(gè)矩陣去作用三維實(shí)中任意兩個(gè)矩陣去作用三維實(shí)體,那么就會(huì)改變?nèi)S實(shí)體沿兩個(gè)坐標(biāo)軸方向的平行線段的體,那么就會(huì)改變?nèi)S實(shí)體沿兩個(gè)坐標(biāo)軸方向的平行線段的平行性,并形成兩個(gè)滅點(diǎn)。同樣地,如果用三個(gè)矩陣平行性,并形成兩個(gè)滅點(diǎn)。同樣地,如果用三個(gè)矩陣TpTp,TqTq和和TrTr一同作用于三維實(shí)體,那么就會(huì)改變?nèi)S實(shí)體中沿三個(gè)一同作用于三維實(shí)體,那么就會(huì)改變?nèi)S實(shí)體中沿
32、三個(gè)坐標(biāo)軸方向的平行線段平行性,并形成三個(gè)滅點(diǎn)。所以,根坐標(biāo)軸方向的平行線段平行性,并形成三個(gè)滅點(diǎn)。所以,根據(jù)透視投影中滅點(diǎn)多少又可分為一點(diǎn)透視、二點(diǎn)透視和三點(diǎn)據(jù)透視投影中滅點(diǎn)多少又可分為一點(diǎn)透視、二點(diǎn)透視和三點(diǎn)透視。透視。(1 1)一點(diǎn)透視)一點(diǎn)透視 一點(diǎn)透視就是只有一個(gè)滅點(diǎn)的透視,一般采用透一點(diǎn)透視就是只有一個(gè)滅點(diǎn)的透視,一般采用透視變換矩陣視變換矩陣TqTq作為一點(diǎn)透視的透視變換矩陣。對(duì)于圖作為一點(diǎn)透視的透視變換矩陣。對(duì)于圖所示立方體作透視變換后,只有一個(gè)方向的棱線匯交所示立方體作透視變換后,只有一個(gè)方向的棱線匯交于滅點(diǎn),其它兩個(gè)方向的棱線仍是相互平行的。于滅點(diǎn),其它兩個(gè)方向的棱線仍是相
33、互平行的。 平行于平行于Y Y軸方向棱線軸方向棱線交于一點(diǎn),平行于交于一點(diǎn),平行于X,ZX,Z軸方向棱線平行軸方向棱線平行為了使透視投影后的圖具有立體感,我們?cè)谕敢曂队盀榱耸雇敢曂队昂蟮膱D具有立體感,我們?cè)谕敢曂队白儞Q之前,要對(duì)三維實(shí)體先作平移變換,其沿著變換之前,要對(duì)三維實(shí)體先作平移變換,其沿著X X方向方向、Y Y方向和方向和Z Z方向的平移量分別為方向的平移量分別為l l、m m、n n,然后再進(jìn)行,然后再進(jìn)行透視變換,最后再向透視變換,最后再向V V面作正投影,其一點(diǎn)透視投影變面作正投影,其一點(diǎn)透視投影變換矩陣為:換矩陣為: 100100000000110000100000000011
34、0000000010000110100001000011mqnlqVqnmlT面正投影變換面正投影變換向向透視變換透視變換平移變換平移變換(2 2)二點(diǎn)透視)二點(diǎn)透視 二點(diǎn)透視就是具有兩個(gè)滅點(diǎn)的透視,一般以二點(diǎn)透視就是具有兩個(gè)滅點(diǎn)的透視,一般以TpTp和和TqTq作為作為二點(diǎn)透視的透視變換矩陣。對(duì)立方體作透視變換后,除垂直二點(diǎn)透視的透視變換矩陣。對(duì)立方體作透視變換后,除垂直方向棱線互相平行外,另外兩個(gè)方向的棱線分別匯交于滅點(diǎn)方向棱線互相平行外,另外兩個(gè)方向的棱線分別匯交于滅點(diǎn)。 (a)空間主體 (b)二點(diǎn)透視投影 圖 5.40 二點(diǎn)透視 平行于平行于X,YX,Y軸方向棱軸方向棱線交于一點(diǎn),平行
35、于線交于一點(diǎn),平行于Z Z軸方向棱線平行軸方向棱線平行 為了使二點(diǎn)透視后的投影有一恰當(dāng)?shù)奈恢?,通常為了使二點(diǎn)透視后的投影有一恰當(dāng)?shù)奈恢茫ǔ?duì)立體進(jìn)行平移、透視、繞對(duì)立體進(jìn)行平移、透視、繞Z Z軸轉(zhuǎn)軸轉(zhuǎn)角,于是總的變換角,于是總的變換矩陣矩陣T2T2為:為: 10sincos010000sin00cosV10000100000000011000010000cossin00sincos1000010001000110100001000012mqlpnmlqpZqpnmlT 面面正正投投影影變變換換向向軸軸旋旋轉(zhuǎn)轉(zhuǎn)變變換換繞繞透透視視變變換換平平移移變變換換為了增加透視圖立體感,一般取為了增加透視
36、圖立體感,一般取p0,q0p0,q0 (3 3)三點(diǎn)透視)三點(diǎn)透視 三點(diǎn)透視就是有三個(gè)滅點(diǎn)的透視。對(duì)立方體作透三點(diǎn)透視就是有三個(gè)滅點(diǎn)的透視。對(duì)立方體作透視變換后三個(gè)方向的棱線分別交匯于三個(gè)不同的滅點(diǎn)視變換后三個(gè)方向的棱線分別交匯于三個(gè)不同的滅點(diǎn), 三點(diǎn)透視首先將對(duì)立體進(jìn)行平移,然后再進(jìn)行透三點(diǎn)透視首先將對(duì)立體進(jìn)行平移,然后再進(jìn)行透視變換,接著將變換后立體繞視變換,接著將變換后立體繞Z Z 軸和軸和X X軸分別旋轉(zhuǎn)軸分別旋轉(zhuǎn)11和和22角,最后向角,最后向V V面正投影。其變換矩陣為:面正投影。其變換矩陣為: 1cos)cossin(sin0sincoscos00sincos0sinsinsin
37、0cosXZ100001000000000100000cossin00sincos000011000010000cossin00sincos100010001000110100001000012112112211211222211113nrmplpnmlmlrqpVrqpnmlT 面面作作正正投投影影向向軸軸旋旋轉(zhuǎn)轉(zhuǎn)變變換換繞繞軸軸旋旋轉(zhuǎn)轉(zhuǎn)變變換換繞繞透透視視變變換換平平移移變變換換第五章第五章 三維圖形生成和變換技術(shù)三維圖形生成和變換技術(shù) 5.1 5.1 三維圖形的概念三維圖形的概念 5.2 5.2 自由曲面的生成自由曲面的生成 5.3 5.3 三維圖形變換三維圖形變換 5.4 5.4 三維
38、圖形剪裁和消隱技術(shù)三維圖形剪裁和消隱技術(shù) 5.4 5.4 三維圖形裁剪和消隱技術(shù)三維圖形裁剪和消隱技術(shù) 一、三維圖形裁剪一、三維圖形裁剪1 1、概述、概述 在二維圖形裁剪過(guò)程中,圖形視見(jiàn)區(qū)域是一個(gè)矩在二維圖形裁剪過(guò)程中,圖形視見(jiàn)區(qū)域是一個(gè)矩形窗口,落在此窗口內(nèi)圖形均可在屏幕視圖區(qū)中顯示輸形窗口,落在此窗口內(nèi)圖形均可在屏幕視圖區(qū)中顯示輸出;而在三維觀察空間內(nèi),物體的視見(jiàn)區(qū)域是一個(gè)三維出;而在三維觀察空間內(nèi),物體的視見(jiàn)區(qū)域是一個(gè)三維區(qū)域,和二維平面中定義窗口相類(lèi)似,我們也可以在三區(qū)域,和二維平面中定義窗口相類(lèi)似,我們也可以在三維空間中定義一個(gè)子空間,并稱(chēng)這個(gè)子空間為三維窗口維空間中定義一個(gè)子空間,
39、并稱(chēng)這個(gè)子空間為三維窗口。 常用的三維窗口有兩種形狀:一種是平行投影立方體三常用的三維窗口有兩種形狀:一種是平行投影立方體三維窗口;另一種是透視投影的棱臺(tái)。維窗口;另一種是透視投影的棱臺(tái)。 組成三維窗口的六個(gè)面,把整個(gè)三維空間分割成兩組成三維窗口的六個(gè)面,把整個(gè)三維空間分割成兩部分:窗口內(nèi)部分和窗口外部分。把落在窗口內(nèi)的立體部分:窗口內(nèi)部分和窗口外部分。把落在窗口內(nèi)的立體或部分立體從整個(gè)空間的立體群中分離出來(lái),這就是三或部分立體從整個(gè)空間的立體群中分離出來(lái),這就是三維裁剪所要做的工作。維裁剪所要做的工作。 三維裁剪的過(guò)程包含兩個(gè)基本階段,第一階段是幾三維裁剪的過(guò)程包含兩個(gè)基本階段,第一階段是幾
40、何處理階段,在這個(gè)階段中所做工作是用窗口平面去裁何處理階段,在這個(gè)階段中所做工作是用窗口平面去裁切立體。第二階段是拓?fù)涮幚黼A段,在這個(gè)階段中所要切立體。第二階段是拓?fù)涮幚黼A段,在這個(gè)階段中所要做工作是把經(jīng)截切后殘留下來(lái)的信息重新組成新的立體做工作是把經(jīng)截切后殘留下來(lái)的信息重新組成新的立體模型。模型。 在三維圖形處理中,只有經(jīng)過(guò)三維裁剪后,才能對(duì)在三維圖形處理中,只有經(jīng)過(guò)三維裁剪后,才能對(duì)經(jīng)裁剪后保留下來(lái)的立體進(jìn)行消隱處理,最后送去作二經(jīng)裁剪后保留下來(lái)的立體進(jìn)行消隱處理,最后送去作二維圖形顯示。維圖形顯示。 2 2、三維編碼裁剪法、三維編碼裁剪法 如圖所示,立方體裁剪窗口六個(gè)面的方程分別是:如圖
41、所示,立方體裁剪窗口六個(gè)面的方程分別是: -x-1=0-x-1=0 x-1=0 x-1=0-y-1=0-y-1=0y-1=0y-1=0-z-1=0-z-1=0z-1=0z-1=0 空間任意兩點(diǎn)空間任意兩點(diǎn)p1(x1,y1,z1)p1(x1,y1,z1)和和p2(x2,y2,z2)p2(x2,y2,z2)。直線段。直線段p1p2p1p2端點(diǎn)和六個(gè)面的關(guān)系可轉(zhuǎn)換為一個(gè)端點(diǎn)和六個(gè)面的關(guān)系可轉(zhuǎn)換為一個(gè)6 6位二進(jìn)制代碼表示,位二進(jìn)制代碼表示,其定義如下:其定義如下: 第第1 1位為位為1 1:點(diǎn)在裁剪窗口的上面,即:點(diǎn)在裁剪窗口的上面,即y y1 1; 第第2 2拉為拉為1 1:點(diǎn)在裁剪窗口的下面,即
42、:點(diǎn)在裁剪窗口的下面,即y y-l-l; 第第3 3位為位為1 1:點(diǎn)在裁剪窗口的右面,即:點(diǎn)在裁剪窗口的右面,即x x1 1; 第第4 4位為位為1 1:點(diǎn)在裁剪窗口的左面,即:點(diǎn)在裁剪窗口的左面,即x x-1-1; 第第5 5位為位為1 1:點(diǎn)在裁剪窗口的后面,即:點(diǎn)在裁剪窗口的后面,即z zl l; 第第6 6位為位為1 1;點(diǎn)在裁剪窗口的前面,即;點(diǎn)在裁剪窗口的前面,即z z-1-1。 如同二維線段對(duì)矩形窗口的編碼裁剪算法一樣,若一條如同二維線段對(duì)矩形窗口的編碼裁剪算法一樣,若一條線段的兩端點(diǎn)的編碼都是零,則線段落在窗口的空間內(nèi);若線段的兩端點(diǎn)的編碼都是零,則線段落在窗口的空間內(nèi);若兩
43、端點(diǎn)編碼的邏輯與(逐位進(jìn)行)為非零,則此線段在窗口兩端點(diǎn)編碼的邏輯與(逐位進(jìn)行)為非零,則此線段在窗口空間以外;否則,需對(duì)此線段作分段處理,即要計(jì)算此線段空間以外;否則,需對(duì)此線段作分段處理,即要計(jì)算此線段和窗口空間相應(yīng)平面的交點(diǎn),并取有效交點(diǎn)。和窗口空間相應(yīng)平面的交點(diǎn),并取有效交點(diǎn)。 對(duì)任意一條三維線段的參數(shù)方程可寫(xiě)成:對(duì)任意一條三維線段的參數(shù)方程可寫(xiě)成: 1 , 0)()()(1121121121 ttrztzzzztqyyyyytpxtxxxx裁剪空間六個(gè)平面方程的一般表達(dá)式為:裁剪空間六個(gè)平面方程的一般表達(dá)式為: 0 dczbyax把直線方程代入平面方程,求得:把直線方程代入平面方程,
44、求得: )()(111crdqapdzbyaxt 如求一條直線與裁剪空間上平面的交點(diǎn),即將如求一條直線與裁剪空間上平面的交點(diǎn),即將y-1=0y-1=0代入代入,得,得 :如如t t不在不在O O 到到1 1的閉區(qū)間內(nèi),則交點(diǎn)在裁剪空間以外;否的閉區(qū)間內(nèi),則交點(diǎn)在裁剪空間以外;否則將則將t t代人直線方程可求得:代人直線方程可求得:qyt)1(1 pqyxx 111rqyzz 111這時(shí)三維線段與裁剪窗口的有效點(diǎn)為這時(shí)三維線段與裁剪窗口的有效點(diǎn)為)1,1,1(1111pqyzpqyx 類(lèi)似地可求得其它五個(gè)面與直線段的有效交點(diǎn)。連接有類(lèi)似地可求得其它五個(gè)面與直線段的有效交點(diǎn)。連接有效交點(diǎn)可得到落在
45、裁剪窗口內(nèi)的有效線段。效交點(diǎn)可得到落在裁剪窗口內(nèi)的有效線段。 對(duì)于透視投影的棱臺(tái)其方法類(lèi)似,請(qǐng)自行推導(dǎo)。對(duì)于透視投影的棱臺(tái)其方法類(lèi)似,請(qǐng)自行推導(dǎo)。 3 3三維中點(diǎn)分割裁剪法三維中點(diǎn)分割裁剪法 前面討論的二維中點(diǎn)分割裁剪方法可以直接推廣到前面討論的二維中點(diǎn)分割裁剪方法可以直接推廣到三維,其原理和過(guò)程是完全相同的。對(duì)于平行投影和透三維,其原理和過(guò)程是完全相同的。對(duì)于平行投影和透視投影,僅僅是線段編碼的處理和線段與體表面的交點(diǎn)視投影,僅僅是線段編碼的處理和線段與體表面的交點(diǎn)計(jì)算不同,其它部分則完全相同。計(jì)算不同,其它部分則完全相同。三維圖形的消隱三維圖形的消隱 1 1消隱技術(shù)概述消隱技術(shù)概述 在現(xiàn)實(shí)
46、世界中,當(dāng)我們觀察空間任何一個(gè)在現(xiàn)實(shí)世界中,當(dāng)我們觀察空間任何一個(gè)不透明的物體時(shí),只能看到物體上朝向我們的不透明的物體時(shí),只能看到物體上朝向我們的那部分表面,而其余的表面(物體背面)是不那部分表面,而其余的表面(物體背面)是不可能被我們看見(jiàn)的。在用計(jì)算機(jī)生成立體圖形可能被我們看見(jiàn)的。在用計(jì)算機(jī)生成立體圖形時(shí),若將物體的所有部分都表現(xiàn)出來(lái),不管是時(shí),若將物體的所有部分都表現(xiàn)出來(lái),不管是可見(jiàn)的還是不可見(jiàn)的,這樣的圖形所表示的物可見(jiàn)的還是不可見(jiàn)的,這樣的圖形所表示的物體形狀是不清楚的,甚至是不確定的。體形狀是不清楚的,甚至是不確定的。 圖 5.43 立方體線框圖和消隱圖 是一個(gè)立方體的線條是一個(gè)立方
47、體的線條畫(huà),它的所有的邊均畫(huà),它的所有的邊均無(wú)一遺落,全部畫(huà)出無(wú)一遺落,全部畫(huà)出,可以有兩種解釋。,可以有兩種解釋。 從立方體的左從立方體的左上方向下看上方向下看 從立方體的右從立方體的右下方向上看下方向上看 為了得到一個(gè)確定的、立體感強(qiáng)的投影圖,就需要消除為了得到一個(gè)確定的、立體感強(qiáng)的投影圖,就需要消除隱藏線和隱藏面,也就是在給定的投影圖中,確定物體隱藏線和隱藏面,也就是在給定的投影圖中,確定物體哪些邊、面是可見(jiàn)的,消除那些不可見(jiàn)的棱線和表面,哪些邊、面是可見(jiàn)的,消除那些不可見(jiàn)的棱線和表面,這就是所謂消隱問(wèn)題。消隱問(wèn)題是計(jì)算機(jī)領(lǐng)域的難題之這就是所謂消隱問(wèn)題。消隱問(wèn)題是計(jì)算機(jī)領(lǐng)域的難題之一。目
48、前,雖已提出了多種算法,但仍吸引著人們探索一。目前,雖已提出了多種算法,但仍吸引著人們探索新的更有效的解決方法。而這方面研究工作又主要是尋新的更有效的解決方法。而這方面研究工作又主要是尋求正確可靠、占用存儲(chǔ)空間少、運(yùn)算速度快的消隱算法求正確可靠、占用存儲(chǔ)空間少、運(yùn)算速度快的消隱算法。 所有的隱線、隱面消除算法均和某種排序算法有關(guān)所有的隱線、隱面消除算法均和某種排序算法有關(guān)。排序的主要依據(jù)是被顯示的點(diǎn)、線、面或體與觀察點(diǎn)。排序的主要依據(jù)是被顯示的點(diǎn)、線、面或體與觀察點(diǎn)之間的幾何距離。之間的幾何距離。 一個(gè)顯示對(duì)象離觀察點(diǎn)越遠(yuǎn),那么它越是可能被一個(gè)顯示對(duì)象離觀察點(diǎn)越遠(yuǎn),那么它越是可能被其他物體所遮
49、擋,這是排序的基本前提。當(dāng)然,在確其他物體所遮擋,這是排序的基本前提。當(dāng)然,在確定了不同的對(duì)象離觀察點(diǎn)的不同距離以后,還要對(duì)它定了不同的對(duì)象離觀察點(diǎn)的不同距離以后,還要對(duì)它們?cè)趥冊(cè)趚 x方向和方向和y y方向進(jìn)行比較,以確定某個(gè)較遠(yuǎn)的對(duì)象方向進(jìn)行比較,以確定某個(gè)較遠(yuǎn)的對(duì)象實(shí)際上是否真的被較近的對(duì)象所遮擋。實(shí)際上是否真的被較近的對(duì)象所遮擋。 提高效率的主要途徑是充分利用畫(huà)面的相關(guān)性,提高效率的主要途徑是充分利用畫(huà)面的相關(guān)性,也就是畫(huà)面的某些性質(zhì)在一些相鄰的局部區(qū)域中是相也就是畫(huà)面的某些性質(zhì)在一些相鄰的局部區(qū)域中是相同的或者相差甚微這一特征。同的或者相差甚微這一特征。 消隱算法一般可以分為兩類(lèi),區(qū)
50、分的依據(jù)是消隱算消隱算法一般可以分為兩類(lèi),區(qū)分的依據(jù)是消隱算法是在哪種空間中實(shí)現(xiàn)的。法是在哪種空間中實(shí)現(xiàn)的。物體空間算法:算法是在描述要顯示對(duì)象的物理坐標(biāo)系物體空間算法:算法是在描述要顯示對(duì)象的物理坐標(biāo)系 中實(shí)現(xiàn)的中實(shí)現(xiàn)的圖像空間算法:算法是在顯示圖形的屏幕坐標(biāo)上實(shí)現(xiàn)的圖像空間算法:算法是在顯示圖形的屏幕坐標(biāo)上實(shí)現(xiàn)的 物體空間算法有比較高的精度,生成的圖形即使物體空間算法有比較高的精度,生成的圖形即使放大一定倍數(shù)后仍有令人滿(mǎn)意的觀感,因此在比較精放大一定倍數(shù)后仍有令人滿(mǎn)意的觀感,因此在比較精密的對(duì)象顯示方面有較多的應(yīng)用。密的對(duì)象顯示方面有較多的應(yīng)用。 圖像空間的算法在精度上不及前者,它最多到屏
51、幕圖像空間的算法在精度上不及前者,它最多到屏幕分辨率時(shí)就無(wú)法再提高精度,但計(jì)算效率較高,因?yàn)樵诜直媛蕰r(shí)就無(wú)法再提高精度,但計(jì)算效率較高,因?yàn)樵趫D像空間中各種相關(guān)性可以得到充分應(yīng)用,所以也有許圖像空間中各種相關(guān)性可以得到充分應(yīng)用,所以也有許多方法是在圖像空間中實(shí)現(xiàn)的。多方法是在圖像空間中實(shí)現(xiàn)的。2 2幾種消隱方法幾種消隱方法(l l)背面消除)背面消除 背面消除雖不是一個(gè)完整的隱面消除方法,但它是隱面消除算背面消除雖不是一個(gè)完整的隱面消除方法,但它是隱面消除算法中的關(guān)鍵部分。在消隱問(wèn)題中,單個(gè)凸多面體是最簡(jiǎn)單情形。法中的關(guān)鍵部分。在消隱問(wèn)題中,單個(gè)凸多面體是最簡(jiǎn)單情形。凸多面體是這樣形體:連接形
52、體上不屬于同一表面的任意兩點(diǎn)的凸多面體是這樣形體:連接形體上不屬于同一表面的任意兩點(diǎn)的線段完全位于形體的內(nèi)部。對(duì)于單個(gè)凸多面體背面消除即可達(dá)到線段完全位于形體的內(nèi)部。對(duì)于單個(gè)凸多面體背面消除即可達(dá)到隱面消除的目的。隱面消除的目的。 假設(shè)給定視點(diǎn)位置,為了決定一個(gè)面相對(duì)于視點(diǎn)為可見(jiàn)還是不假設(shè)給定視點(diǎn)位置,為了決定一個(gè)面相對(duì)于視點(diǎn)為可見(jiàn)還是不可見(jiàn),以圖為例予以說(shuō)明。可見(jiàn),以圖為例予以說(shuō)明。定義垂直于物體平面且背離物定義垂直于物體平面且背離物體的直線向量為平面法線向量體的直線向量為平面法線向量,定義從視點(diǎn)到物體表面上任,定義從視點(diǎn)到物體表面上任一點(diǎn)直線方向?yàn)橐暰€向量方向一點(diǎn)直線方向?yàn)橐暰€向量方向,那
53、么利用這兩個(gè)矢量之間夾,那么利用這兩個(gè)矢量之間夾角可以進(jìn)行背面測(cè)試,只有當(dāng)角可以進(jìn)行背面測(cè)試,只有當(dāng)兩個(gè)矢量之間夾角小于兩個(gè)矢量之間夾角小于90O90O時(shí)時(shí)面為可見(jiàn)面。面為可見(jiàn)面。如圖所示,在某一表面內(nèi)取兩個(gè)向量如圖所示,在某一表面內(nèi)取兩個(gè)向量p p(plpl,p2p2,p3p3)和)和q q(q1q1,q2q2,q3q3),它們向量積),它們向量積p p* *q q是一個(gè)與該向量所確定的平面垂是一個(gè)與該向量所確定的平面垂直的法向量直的法向量n =pn =p* *q q,n n方向由右手法則定義,食指指向方向由右手法則定義,食指指向p p的方向的方向,中指指向,中指指向q q的方向,姆指所指的
54、方向則是的方向,姆指所指的方向則是n n的方向。的方向。為了得到符合上述要求的為了得到符合上述要求的p p和和q q,對(duì)所要考慮的表面按逆時(shí)針?lè)?,?duì)所要考慮的表面按逆時(shí)針?lè)较蛉〕鱿蛉〕? 2、3 3、8 8號(hào)三個(gè)頂點(diǎn),由號(hào)三個(gè)頂點(diǎn),由2 2號(hào)點(diǎn)到號(hào)點(diǎn)到3 3號(hào)點(diǎn)決定號(hào)點(diǎn)決定p p,由,由2 2號(hào)點(diǎn)號(hào)點(diǎn)到到8 8號(hào)點(diǎn)決定號(hào)點(diǎn)決定q q,根據(jù),根據(jù)2 2、3 3、8 8號(hào)頂點(diǎn)坐標(biāo)容易算出號(hào)頂點(diǎn)坐標(biāo)容易算出p p和和q q的各分的各分向量向量p1p1、p2p2、p3p3和和q1q1、q2q2、q3q3。根據(jù)根據(jù)p p和和q q,就可算出,就可算出n n因?yàn)椋驗(yàn)椋?n = p n = p* *q q
55、 n = (n1,n2,n3) n = (n1,n2,n3)所以所以 nl = p2q3 nl = p2q3 q2p3 q2p3 n2 = p3q1 n2 = p3q1 q3p1 q3p1 n3 = p1q2 n3 = p1q2 q1p2 q1p2 視線向量視線向量v v(v1,v2,v3v1,v2,v3),由視點(diǎn)和),由視點(diǎn)和2 2號(hào)坐標(biāo)可求分向號(hào)坐標(biāo)可求分向量量v1,v2v1,v2和和v3v3 法向量法向量n n和視線向量和視線向量v v之間夾角有如下關(guān)系:之間夾角有如下關(guān)系: v v n =vncos n =vncos 由于??偸钦模詳?shù)量積由于??偸钦?,所以數(shù)量積v nv n符號(hào)
56、只取決于符號(hào)只取決于coscos。這就是說(shuō),如果能夠算得數(shù)量積。這就是說(shuō),如果能夠算得數(shù)量積v nv n,便可根據(jù)它的正負(fù),便可根據(jù)它的正負(fù)號(hào)判定號(hào)判定大小范圍,若數(shù)量積大于大小范圍,若數(shù)量積大于0 0,則,則9090。,否則。,否則9090。如前所述,。如前所述,9090。 時(shí)表示表面可見(jiàn),否則為不時(shí)表示表面可見(jiàn),否則為不可見(jiàn)。數(shù)量積的計(jì)算可按下式進(jìn)行:可見(jiàn)。數(shù)量積的計(jì)算可按下式進(jìn)行:v v n = v1n1 + v2n2 + v3n3n = v1n1 + v2n2 + v3n3 綜上所述,為了決定一個(gè)凸多面體的不可見(jiàn)面,對(duì)綜上所述,為了決定一個(gè)凸多面體的不可見(jiàn)面,對(duì)于每一個(gè)面進(jìn)行以下幾個(gè)工
57、作:于每一個(gè)面進(jìn)行以下幾個(gè)工作:求平面的法向量求平面的法向量n n ;求平面的視線向量求平面的視線向量v v ;計(jì)算計(jì)算vn vn ;根據(jù)根據(jù)vnvn符號(hào)判別該面是否可見(jiàn)。符號(hào)判別該面是否可見(jiàn)。 對(duì)于單一的凸多面體而言,背面消除完全可以消除對(duì)于單一的凸多面體而言,背面消除完全可以消除不可見(jiàn)面,而對(duì)于多個(gè)物體組成的復(fù)雜體,僅僅經(jīng)過(guò)背不可見(jiàn)面,而對(duì)于多個(gè)物體組成的復(fù)雜體,僅僅經(jīng)過(guò)背面消除是不夠的,還需作進(jìn)一步測(cè)試。但是,背面消除面消除是不夠的,還需作進(jìn)一步測(cè)試。但是,背面消除是一個(gè)關(guān)鍵的步驟,簡(jiǎn)單地經(jīng)過(guò)這個(gè)過(guò)程就可以消去大是一個(gè)關(guān)鍵的步驟,簡(jiǎn)單地經(jīng)過(guò)這個(gè)過(guò)程就可以消去大約約50%50%的隱藏面。的
58、隱藏面。(2 2)深度緩沖器法)深度緩沖器法 深度緩沖器法是圖像空間中一種常用的方法這種深度緩沖器法是圖像空間中一種常用的方法這種方法的基本思想是:對(duì)于顯示屏上的每一個(gè)像素點(diǎn)(方法的基本思想是:對(duì)于顯示屏上的每一個(gè)像素點(diǎn)(x x,y y),測(cè)試一系列平面,記錄下位于此像素投射線上),測(cè)試一系列平面,記錄下位于此像素投射線上最靠近觀察點(diǎn)的平面的深度。除了深度外,一般還需記最靠近觀察點(diǎn)的平面的深度。除了深度外,一般還需記錄下用以顯示此對(duì)象的亮度值。錄下用以顯示此對(duì)象的亮度值。 一般的深度緩沖器算法采用兩個(gè)數(shù)組,一個(gè)用來(lái)記一般的深度緩沖器算法采用兩個(gè)數(shù)組,一個(gè)用來(lái)記錄每一個(gè)像素點(diǎn)的深度值,一個(gè)用來(lái)記
59、錄此像素點(diǎn)所對(duì)錄每一個(gè)像素點(diǎn)的深度值,一個(gè)用來(lái)記錄此像素點(diǎn)所對(duì)應(yīng)的亮度值。應(yīng)的亮度值。深度緩沖器算法的過(guò)程:深度緩沖器算法的過(guò)程:1 1)對(duì)于屏幕上每一個(gè)像素點(diǎn)()對(duì)于屏幕上每一個(gè)像素點(diǎn)(x x,y y),置深度緩沖器),置深度緩沖器DepthxyDepthxy為一較大值,置亮度緩沖器為背景值;為一較大值,置亮度緩沖器為背景值; 2 2)對(duì)于景中的每個(gè)多邊形,找出多邊形投影到屏上時(shí))對(duì)于景中的每個(gè)多邊形,找出多邊形投影到屏上時(shí)位于其邊界內(nèi)的全部像素(位于其邊界內(nèi)的全部像素(x x,y y)。對(duì)于這些像素計(jì)算)。對(duì)于這些像素計(jì)算出 此 多 邊 形 在 (出 此 多 邊 形 在 ( x x , y
60、 y ) 處 的 深 度) 處 的 深 度 z z ; 如 果; 如 果 z z DepthxyDepthxy,此多邊形相對(duì)于其它多邊形在(,此多邊形相對(duì)于其它多邊形在(x x,y y)處更靠近觀察者,所以置處更靠近觀察者,所以置Depthxy=zDepthxy=z,置亮度數(shù)組,置亮度數(shù)組為該多邊形的亮度值。如果為該多邊形的亮度值。如果z zDepthxyDepthxy,說(shuō)明該多,說(shuō)明該多邊形在此像素點(diǎn)處被其它多邊形隱藏,所以不采取任何邊形在此像素點(diǎn)處被其它多邊形隱藏,所以不采取任何行動(dòng)。行動(dòng)。 當(dāng)對(duì)所有像素進(jìn)行掃描后,深度緩沖器和亮度緩沖器當(dāng)對(duì)所有像素進(jìn)行掃描后,深度緩沖器和亮度緩沖器分別包
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 許昌學(xué)院《食品包裝工藝學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 重慶資源與環(huán)境保護(hù)職業(yè)學(xué)院《企業(yè)價(jià)值評(píng)估》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣東碧桂園職業(yè)學(xué)院《對(duì)比語(yǔ)言學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津理工大學(xué)《商務(wù)禮儀實(shí)訓(xùn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津醫(yī)科大學(xué)臨床醫(yī)學(xué)院《無(wú)機(jī)非金屬材料生產(chǎn)設(shè)備》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖南網(wǎng)絡(luò)工程職業(yè)學(xué)院《建筑工程計(jì)量學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 上海農(nóng)林職業(yè)技術(shù)學(xué)院《商務(wù)溝通方法與技能》2023-2024學(xué)年第二學(xué)期期末試卷
- 濱州學(xué)院《投資理財(cái)》2023-2024學(xué)年第二學(xué)期期末試卷
- 懷化師范高等專(zhuān)科學(xué)?!吨袑W(xué)生物教育技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 建設(shè)終止合同范本
- 《血透患教》課件
- app 購(gòu)買(mǎi)合同范例
- 高二上學(xué)期物理(理科)期末試題(含答案)
- 2024年房地產(chǎn)經(jīng)紀(jì)人《房地產(chǎn)經(jīng)紀(jì)專(zhuān)業(yè)基礎(chǔ)》考前沖刺必會(huì)試題庫(kù)300題(含詳解)
- 礦山生態(tài)修復(fù)工程不穩(wěn)定斜坡治理工程設(shè)計(jì)
- 躲避球運(yùn)動(dòng)用球項(xiàng)目評(píng)價(jià)分析報(bào)告
- 風(fēng)機(jī)盤(pán)管更換施工方案
- 河道整治與生態(tài)修復(fù)工程監(jiān)理規(guī)劃
- 建設(shè)工程招標(biāo)代理合同(GF-2005-0215)(標(biāo)準(zhǔn)版)
- 剪映專(zhuān)業(yè)版教學(xué)課件
- 公司新建電源及大用戶(hù)并網(wǎng)管理辦法
評(píng)論
0/150
提交評(píng)論