資源描述:
《計(jì)算機(jī)圖形學(xué)電子教案》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第6章真實(shí)感圖形的生成技術(shù)6.1消隱技術(shù)6.2光照技術(shù)6.3物體表面細(xì)節(jié)的模擬6.4陰影的生成6.5圖形反走樣技術(shù)6.6用OpenGL生成真實(shí)感圖形6.1消隱技術(shù)真實(shí)感圖形繪制:借助數(shù)學(xué)、物理、計(jì)算機(jī)等學(xué)科的知識在計(jì)算機(jī)二維顯示屏上產(chǎn)生三維場景的真實(shí)逼真圖像、圖形。應(yīng)用:計(jì)算機(jī)輔助設(shè)計(jì)、多媒體教育、虛擬現(xiàn)實(shí)系統(tǒng)、科學(xué)計(jì)算可視化、動(dòng)畫制作、電影特技模擬、計(jì)算機(jī)游戲等。圖6-1圖形具有二義性(a)線框圖(b)從右上往下看(c)從左下往上看)將三維場景繪制在計(jì)算機(jī)二維顯示屏上必須經(jīng)過投影變換,投影變換將三維信息變換到二維平面
2、上,這個(gè)過程中深度信息被丟失,生成的圖形往往具有二義性,早期判別可見面的算法有消除隱藏線、消除隱藏面算法?,F(xiàn)在有畫家算法、Z緩沖器算法、掃描線緩算法、光線追蹤算法等等。物空間算法是在定義、描述物體的世界坐標(biāo)系中實(shí)現(xiàn)的,以場景中的物體為處理單元:for(場景中的每一個(gè)物體){將其與場景中的其它物體比較,確定其表面的可見部分;顯示該物體表面的可見部分;}像空間算法是在觀看物體的屏幕坐標(biāo)系下實(shí)現(xiàn)的,它以窗口內(nèi)的每個(gè)像素為處理單元:for(窗口內(nèi)的每一個(gè)像素){確定與此像素對應(yīng)的距離視點(diǎn)最近的物體,以該物體表面該處的顏色來顯示
3、像素;}判別可見面算法通常按它們在實(shí)現(xiàn)時(shí)所基于的坐標(biāo)系分為兩類:物空間算法和像空間算法。理論上講,物空間算法的計(jì)算量少于像空間算法的計(jì)算量,但實(shí)際上物體到視點(diǎn)距離的排序與遮擋判別比較復(fù)雜,算法效率很大程度上取決于排序的效率。而以掃描線的方式實(shí)現(xiàn)像空間算法時(shí)容易利用連貫性質(zhì)從而使得像空間算法更具效率。(1)將線段和多邊形投影到投影平面上得到線段和多邊形。(2)計(jì)算線段和多邊形各條邊的交點(diǎn)。(3)交點(diǎn)將分成若干個(gè)子線段,特別地當(dāng)交點(diǎn)不存在時(shí),子線段只有一個(gè),即自身?,F(xiàn)在每個(gè)子線段上的所有點(diǎn)具有相同的隱藏性。(4)分別判斷各
4、個(gè)子線段的隱藏性。多面體隱藏線消除隱藏線的產(chǎn)生是因?yàn)樵诮o定的觀察方向下,某些棱(或棱的一部分)被表面多邊形的遮擋成為不可見,因此多面體隱藏線消除可以歸結(jié)為一個(gè)根本問題:在給定的觀察方向下,給定一條空間線段和一個(gè)多邊形,判斷線段是否被多邊形遮擋。如果遮擋,求出遮擋部分。步驟如下:取子線段的中點(diǎn),判斷該點(diǎn)是否在多邊形內(nèi)。如不在多邊形內(nèi),子線段與多邊形不存在隱藏關(guān)系,子線段是可見的。如在多邊形內(nèi),從子線段中點(diǎn)向視點(diǎn)引射線,如果射線與多邊形相交,則該子線段被多邊形隱藏,否則該子線段可見。消除自隱藏線、隱藏面利用多面體表面多邊形
5、的法矢判別“朝后的面”,即不可見面。深度測試在觀察坐標(biāo)系下判斷線段與多邊形的前后關(guān)系。如多邊形完全在線段之后,則線段完全可見,無需就線段和多邊形的遮擋關(guān)系進(jìn)行進(jìn)一步判斷。包圍盒測試包圍盒不相交,線段和多邊形也不相交,線段完全可見,無需就線段和多邊形的遮擋關(guān)系進(jìn)行進(jìn)一步判斷。線段和一個(gè)多邊形進(jìn)行隱藏性判斷時(shí),涉及到的運(yùn)算包括投影變換,平面上線段和多邊形的求交,判斷點(diǎn)是否在多邊形內(nèi),空間中射線和平面求交。如果將多面體的每條棱與每個(gè)多邊形都按上面的方法消除隱藏線,那么計(jì)算量將非常大。采取如下措施可以減少計(jì)算量:Z緩沖器消隱算
6、法Z緩沖器消隱算法是最簡單的消除隱藏面算法之一。在這個(gè)算法里,除了有一個(gè)幀緩沖區(qū)用來存放每個(gè)像素的亮度值,還要有一個(gè)Z緩沖區(qū)用來存放每個(gè)像素的深度值。幀緩沖區(qū)和Z緩沖區(qū)的存儲單元數(shù)目相同,并且都等于屏幕上像素的個(gè)數(shù),見圖。for(各個(gè)多邊形){掃描轉(zhuǎn)換該多邊形;for(多邊形所覆蓋的每個(gè)像素(x,y)){計(jì)算該像素所對應(yīng)多邊形上的點(diǎn)在觀察坐標(biāo)系下的z坐標(biāo)值Z(x,y);if(Z(x,y)大于Z緩沖區(qū)在(x,y)處的值){Z緩沖區(qū)中(x,y)處深度值替換為Z(x,y);幀緩沖區(qū)中(x,y)處亮度值替換為多邊形在(x,y)
7、處的亮度值;}}}幀緩沖區(qū)置成背景色;Z緩沖區(qū)置成某初始值,該值比場景在觀察坐標(biāo)系下的最小z值還??;Z緩沖區(qū)算法的流程為:6.2光照技術(shù)圖6-5(a)經(jīng)過光照計(jì)算的球(b)不經(jīng)過光照計(jì)算的球單純判別物體表面的可見性,遠(yuǎn)遠(yuǎn)不能反映物體表面的真實(shí)感。物體表面所呈現(xiàn)的顏色是由表面向視線方向輻射進(jìn)入人眼中光決定的。建立數(shù)學(xué)模型模擬物體表面的光照明物理現(xiàn)象,按照數(shù)學(xué)模型計(jì)算物體表面向視線方向輻射進(jìn)入人眼中的光亮度,即可獲得像素所對應(yīng)的物體上的可見點(diǎn)的顏色,這樣繪制出來的圖形具有較強(qiáng)的真實(shí)感,如圖6-5(a)。這些數(shù)學(xué)模型就稱為明
8、暗效應(yīng)模型或者光照明模型。當(dāng)光照射到物體表面時(shí),光可能被吸收、反射和透射,被物體吸收的部分轉(zhuǎn)化為熱,只有反射、透射的光能夠進(jìn)入人眼產(chǎn)生視覺效果,它們決定了物體所呈現(xiàn)的顏色。如果物體是不透明的,則透射光不存在,物體的顏色僅由反射光決定。這種情形正是簡單光照模型需要考慮的,簡單光照模型只考察光源直接照射下物體表面的反射情況。(d)理想