計(jì)算機(jī)圖形學(xué)真實(shí)感圖形技術(shù)_第1頁
計(jì)算機(jī)圖形學(xué)真實(shí)感圖形技術(shù)_第2頁
計(jì)算機(jī)圖形學(xué)真實(shí)感圖形技術(shù)_第3頁
計(jì)算機(jī)圖形學(xué)真實(shí)感圖形技術(shù)_第4頁
計(jì)算機(jī)圖形學(xué)真實(shí)感圖形技術(shù)_第5頁
已閱讀5頁,還剩76頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第十章 真實(shí)感圖形技術(shù) 主要內(nèi)容:10.1 終端彩色模型10.2 一個(gè)簡(jiǎn)單的光照模型10.3 多邊形表示的明暗處理10.4 紋理表示10.5 透明處理與陰影顯示10.6 整體光照模型與光線跟蹤算法10.7 顏 色 1 決定一個(gè)物體外觀首先是物體本身的幾何形狀。其次是物體外表的特征。這包括材料的粗糙度、感光度、外表顏色和紋理。第三是照射物體的光源。從光源發(fā)出的光有亮有暗、光的顏色有深有淺,我們可以用光的波長(zhǎng)即顏色和光的強(qiáng)度即亮度來描述。第四是物體與光源的相對(duì)位置。最后是物體周圍的環(huán)境。它們通過對(duì)光的反射和折射,形成環(huán)境光,在物體外表上產(chǎn)生一定的強(qiáng)度。它們還會(huì)在物體上形成陰影。2 生成真實(shí)感圖形技

2、術(shù)的關(guān)鍵在于充分考察上述影響物體外觀的因素,建立適宜的光照模型,并通過顯示算法將物體在顯示器上顯示出來。 對(duì)于光柵掃描圖形顯示器,屏幕上顯示的一幅圖形是由一個(gè)一個(gè)像素點(diǎn)組成的一個(gè)整體。每個(gè)像素點(diǎn)又是紅、綠、藍(lán)三個(gè)基色的混合表現(xiàn)。對(duì)于通常24位的彩色顯示器,其RGB三基色的取值范圍都是0255。3BRG1O11品紅青白黑黃 如下圖是RGB終端色彩模型。圖中,R、G、B三個(gè)坐標(biāo)軸分別表示紅、綠、藍(lán)三個(gè)基色,方塊表示RGB顏色空間。這樣,任何一種顏色都可以表示成RGB三基色的組合在光柵掃描顯示器上顯示出來。例如,假設(shè)B0,RG,那么得到的顏色為黃色。1O11品紅青白黑黃410.2 一個(gè)簡(jiǎn)單的光照模型

3、 當(dāng)光照射到某一物體外表上時(shí),它可能被吸收、反射或透射。而反射或透射局部的光才使物體可見。如果入射光全部被吸收,物體將不可見,該物體稱為黑體。光能被吸收、反射或透視的數(shù)量決定于光的波長(zhǎng)。假設(shè)入射光中所有波長(zhǎng)的光被吸收的量近似相等,那么在白光照射下,物體呈現(xiàn)灰色。假設(shè)幾乎所有的光均被吸收,物體呈現(xiàn)黑色。假設(shè)其中只有一小局部被吸收,那么物體呈“白色。假設(shè)某些波長(zhǎng)的光被有選擇地吸收,物體呈現(xiàn)出顏色。物體的顏色取決它所選擇吸收的那局部光的波長(zhǎng)。5 從物體外表反射出來的光決定于光源中光的成分、光線的方向、光源的幾何性質(zhì)以及物體外表的朝向和外表性質(zhì)。 這里討論的是簡(jiǎn)單的光照模型,假定光源為點(diǎn)光源,所謂點(diǎn)光

4、源是指光源尺寸小于物體的尺寸,并且離物體足夠遠(yuǎn)。我們還假定物體是非透明的,透射光可忽略不計(jì)。因此簡(jiǎn)單光照模型只考慮反射光的作用。物體外表的反射光又可分為漫反射光和鏡面反射光。此外,還要考慮環(huán)境光。61漫反射光粗糙、無光澤的物體外表呈現(xiàn)為漫反射。漫反射光可以認(rèn)為是光穿過物體外表并被吸收,然后又重新發(fā)射出來的光。漫反射光均勻地散布在各個(gè)方向,因此從任何角度去觀察這種外表都有相同的亮度。根據(jù)Lambert定律,一個(gè)完全漫反射體上反射出來的光的強(qiáng)度同入射光與物體外表法線之間夾角的余弦成正比,即Id=ItKdcos 090oId-漫反射光光強(qiáng),它是光波長(zhǎng)的函數(shù), 假定為常數(shù);Ii-點(diǎn)光源發(fā)出的入射光光強(qiáng)

5、;Kd-漫反射常數(shù)(0kd1),它取決于物體外表的材料;-入射光L與外表法線n之間的夾角。當(dāng)90o時(shí),光源位于 物體后面。72環(huán)境光 在點(diǎn)光源情況下,沒有受到點(diǎn)光源直接照射的物體會(huì)呈黑色,但是在實(shí)際場(chǎng)景中,物體還會(huì)接收到從周圍景物散射出來的光,如房間的墻壁等。這種環(huán)境光代表一種分布光源。我們?cè)谶@里把它作為常數(shù)的漫反項(xiàng),即Ie=IaKa 式中,Ie-環(huán)境光的漫反射光強(qiáng); Ia-入射的環(huán)境光光強(qiáng); Ka-環(huán)境光的漫反射常數(shù)。83鏡面反射光 光滑的物體外表呈現(xiàn)鏡面反射。鏡面反射光的光強(qiáng)決定于入射光的角度、入射光的波長(zhǎng)以及反射外表的材料性質(zhì)等。對(duì)于理想、反射外表,反射角等于入射角。只有位于此角度上的觀

6、察者才能看到反射光。對(duì)于非理想反射外表,到達(dá)觀察者的光取決于鏡面反射光的空間分布。光滑外表上反射光的空間分布會(huì)聚性較好,而粗糙外表反射光將散射開去。9 在簡(jiǎn)單光照模型中,鏡面反射光常采用 Phong提出的實(shí)驗(yàn)?zāi)P? Is=ItKscosn 式中,Is-鏡面反射光光強(qiáng);It-點(diǎn)光源發(fā)出的入射光光強(qiáng);Ks-鏡面反射常數(shù),0Ks1;-視線矢量S與反射光線矢量R的夾角;n-幕次,用以模擬反射光的空間分布,外表越光滑,n越大。10 將上述環(huán)境光照射、漫反射和鏡面反射結(jié)合在一起,得到簡(jiǎn)單的光照模型如下: 在計(jì)算機(jī)圖形學(xué)中,上式常稱為明暗函數(shù),它用來確定物體外表上的每一點(diǎn)或屏幕上每一像素處的光強(qiáng)或明暗色調(diào)。

7、要想生成一幅彩色圖像,需分別對(duì)三原色的每一分量使用明暗函數(shù)進(jìn)行計(jì)算。如果存在m個(gè)點(diǎn)光源,可將它們的效果線性疊加,此時(shí)光照模型為:114簡(jiǎn)單光照模型的計(jì)算由兩矢量的點(diǎn)積公式可得: 125程序設(shè)計(jì)凸面體真實(shí)圖形繪制的算法步驟如下:1將三維物體劃分為多個(gè)面塊。對(duì)于多面體,一個(gè)面就是一個(gè)面塊;對(duì)于參數(shù)曲面體,面塊的劃分可由參數(shù)增量確定,應(yīng)近似認(rèn)為一個(gè)面塊是一個(gè)小平面。各面塊頂點(diǎn)是或可以求出。需要注意的是,面塊的頂點(diǎn)順序符合右手規(guī)那么,大姆指指向物體內(nèi)側(cè)。132對(duì)面塊各頂點(diǎn)進(jìn)行幾何變換。主要是完成正軸測(cè)投影過程中除了正投影外的所有過程。一般是繞坐標(biāo)軸旋轉(zhuǎn)變換及平移變換。如繞y軸旋轉(zhuǎn)cy角度,再繞x軸旋轉(zhuǎn)

8、cx角度的變換公式為: x= x Cos(cy) + z Sin(cy) y=xSin(cy)Sin(cx)+yCos(cx)-zCos(cy)Sin(cx) z=-xSin(cy)Cos(cx)+y Sin(cx)+zCos(cy)Cos(cx)143計(jì)算面塊的法向量。對(duì)每個(gè)面塊,順序取出三個(gè)頂點(diǎn)的x,y,z坐標(biāo),由下式計(jì)算法向量。 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)4判斷面塊是否可見。如果aXp

9、+bYp+cZp 0,那么該面塊可見,繼續(xù)下一步。155計(jì)算面塊中的每個(gè)像素亮度值。a用掃描線填充算法計(jì)算出每個(gè)像素的x,y坐標(biāo)。b根據(jù)面塊的法向量(a,b,c)和面塊的一個(gè)頂點(diǎn)坐標(biāo)(xd,yd,zd),計(jì)算面塊方程ax+by+cz+d=0的系數(shù)d= -(axd + byd +czd)。c計(jì)算像素點(diǎn)的亮度。16I=Iaka+Ipkd(nL)+ ks(RS)n IaKa+IpKd(LN)+ IpKs(HN)2L=(g(1)-x),(g(2)-y),(g(3)-z)S=(s(1)-x),(s(2)-y),(s(3)-z)H=(L+S)2=(g(1)+s(1)/2-x,(g(2)+s(2)/2-y,

10、(g(1)+s(1)/2-x)(g(1),g(2),g(3)(s(1),s(2),s(3)(x,y,z)N(a,b,c)LSHN=Sqr(Hx2+Hy2+Hz2)*Sqr(a2+b2+b2)(Hx*a+Hy*b+Hz*c)LN=Sqr(Lx2+Ly2+Lz2)*Sqr(a2+b2+b2)(Lx*a+Ly*b+Lz*c)17正軸測(cè)投影(一個(gè)面正投影XYZ0123456750 x = Array(0, 50, 50, 0, 0)y = Array(0, 0, 50, 50, 0)z = Array(50, 50,50, 50,50)for i=0 to 3 picture1.line(x(i),y

11、(i)-(x(i+1),y(i+1)next18x = Array(0, 50, 50, 0, 0)y = Array(0, 0, 50, 50, 0)z = Array(50, 50,50, 50,50)for i=0 to 4 對(duì)平面的各頂點(diǎn)變換為xx(i),yy(i),zz(i)nextfor i=0 to 3 picture1.line(xx(i),yy(i)-(xx(i+1),yy(i+1)next一個(gè)面正軸測(cè)投影 xx(i)=x(i) * Cos(ry) + z(i) * Sin(ry) yy(i)= x(i)*Sin(ry)*Sin(rx)+y(i)*Cos(rx)-z(i)*C

12、os(ry)*Sin(rx) zz(i)= -x(i)*Sin(ry)*Cos(rx)+y(i)*Sin(rx)+z(i)*Cos(ry)*Cos(rx)19x = Array(0, 50, 50, 0, 0):y = Array(0, 0, 50, 50, 0):z = Array(50, 50,50, 50,50)for i=0 to 4 對(duì)平面的各頂點(diǎn)變換為xx(i),yy(i),zz(i)next計(jì)算平面系數(shù)a,b,c,dIf (-c) 0) Then For i = 0 To 3 Picture1.Line (xx(i), yy(i)-(xx(i + 1), yy(i + 1) Ne

13、xtEnd If一個(gè)面正軸測(cè)投影消隱20a = (yy(1) - yy(0) * (zz(2) - zz(0) - (yy(2) - yy(0) * (zz(1) - zz(0)b = (zz(1) - zz(0) * (xx(2) - xx(0) - (zz(2) - zz(0) * (xx(1) - xx(0)c = (xx(1) - xx(0) * (yy(2) - yy(0) - (xx(2) - xx(0) * (yy(1) - yy(0)d = -(a * xx(0) + b * yy(0) + c * zz(0)21x = Array(0, 50, 50, 0, 0):y = A

14、rray(0, 0, 50, 50, 0):z = Array(50, 50,50, 50,50)for i=0 to 4 對(duì)平面的各頂點(diǎn)變換為xx(i),yy(i),zz(i)next計(jì)算平面系數(shù)a,b,c,dIf (-c) 0) Then For i = 0 To 3 Picture1.Line (xx(i), yy(i)-(xx(i + 1), yy(i + 1) Next 對(duì)該平面進(jìn)行填充End If一個(gè)實(shí)面正軸測(cè)投影22確定掃描線的范圍ymin與 ymax For h = ymin To ymax k=0 for i=0 to 3 求交點(diǎn)坐標(biāo)(xd(k),h) (k=0,1) Nex

15、t i 交點(diǎn)坐標(biāo)按x排序 picture1.line(xd(0),h)-(xd(1),h) Next h 23確定掃描線的范圍ymin與 ymax For h = ymin To ymax k=0 for i=0 to 3 求交點(diǎn)坐標(biāo)(xd(k),h) (k=0,1) Next i 交點(diǎn)坐標(biāo)按x排序 picture1.line(xd(0),h)-(xd(1),h) Next h ymin=yy(0): ymax=yy(0) For i = 0 To 3 If (yy(i) ymax) Then ymax = yy(i) Next i24確定掃描線的范圍ymin與 ymax For h = ym

16、in To ymax k=0 for i=0 to 3 求交點(diǎn)坐標(biāo)(xd(k),h) ) Next i 交點(diǎn)坐標(biāo)按x排序 picture1.line(xd(0),h)-(xd(1),h) Next h If yy(i + 1) yy(i) Then If (h+0.5 - yy(i)* (h+0.5 - yy(i+1) xd(1) Then t = xd(0): xd(0) = xd(1): xd(1) = tEnd If26一個(gè)實(shí)面真實(shí)正軸測(cè)投影x = Array(0, 50, 50, 0, 0):y = Array(0, 0, 50, 50, 0):z = Array(50, 50,50,

17、 50,50)for i=0 to 4 對(duì)平面的各頂點(diǎn)變換為xx(i),yy(i),zz(i)next計(jì)算平面系數(shù)a,b,c,dIf (-c) 0) Then 繪制多邊形 確定掃描線的范圍ymin與 ymax For h = ymin To ymax k=0 for i=0 to 3 求交點(diǎn)坐標(biāo)(xd(k),h) (k=0,1) Next i 交點(diǎn)坐標(biāo)按x排序 計(jì)算xd(0)到xd(1)中每個(gè)象素的亮度 Next h End If27 For x = xd(i) To xd(i + 1) Lx = g(1) x Ly = g(2) - h Lz = g(3) + (a * x + b * h

18、+ d) / c LN= (v1x * a + v1y * b + v1z * c) / (Sqr(Lx*Lx+Ly*Ly+Lz*Lz)*Sqr(a*a+b*b+c*c) Hx = (s(1) + g(1) / 2-x Hy = (s(2) + g(2) / 2-h Hz = (s(3) + g(3) / 2+(a * x + b * h + d) / c HN=(Hx*a+Hy*b+Hz*c)/ (Sqr(Hx*Hx+Hy*Hy+Hz*Hz)*Sqr(a*a+b*b+c*c) col = 255*km*LN+255*kj*HN*HN+100 Picture1.PSet (x, h), RGB

19、(255, col, 0) Next x 程序演示2810.3 多邊形表示的明暗處理 應(yīng)用簡(jiǎn)單光照模型來對(duì)由平面多邊形組成的場(chǎng)景進(jìn)行真實(shí)感繪制是一種經(jīng)常采用的方法。如果場(chǎng)景的外表是曲面,那么必須用多個(gè)平面多邊形片來逼近。多邊形繪制常用的方法有兩種,一種是將每個(gè)多邊形用恒定光強(qiáng)來繪制,另一種那么是沿掃描線計(jì)算每一像素的光強(qiáng)進(jìn)行繪制。2910.3.1 恒定光強(qiáng)的多邊形繪制 恒定光強(qiáng)的多邊形繪制,又稱恒定光強(qiáng)的明暗處理。這是一種簡(jiǎn)單而高效的多邊形繪制方法。它只用一種光強(qiáng)值繪制整個(gè)多邊形。在每一個(gè)多邊形片上任取一點(diǎn),利用簡(jiǎn)單光照模型計(jì)算其光強(qiáng),該光強(qiáng)就是多邊形的顏色值。 這種方法雖然簡(jiǎn)單、速度快,但產(chǎn)

20、生的圖像效果欠佳。因?yàn)橄噜彾噙呅纹姆ㄊ噶坎煌?,因而?jì)算出的光強(qiáng)值也不相同,使得整個(gè)景物外表明暗過渡不光滑,尤其在邊界處產(chǎn)生不連續(xù)的變化,呈塊狀效應(yīng)。改進(jìn)的方法是把曲面離散成很小的多邊形片,但這無異增加了存儲(chǔ)量和處理時(shí)間,更有效的方法是采用Gouraud或Phong明暗處理方法。3010.3.2 Gourand明暗處理 Gouraud 明暗處理又稱亮度插值的明暗處理。在采用掃描線算法繪制物體時(shí),需根據(jù)光照模型計(jì)算每一像素的光強(qiáng)值。多邊形片內(nèi)掃描線上每一像素的光強(qiáng)值是由多邊形頂點(diǎn)光強(qiáng)進(jìn)行線性插值而得到的。因此,用Gouraud明暗處理可按如下步驟進(jìn)行:1計(jì)算每個(gè)多邊形頂點(diǎn)處的法矢量。假設(shè)多邊形片

21、的平面方程己經(jīng)建立,那么外表在頂點(diǎn)處的法矢量可取包圍該頂點(diǎn)的各多邊形的法矢量平均值。31例如,在圖所示中,包圍頂點(diǎn)V1的三個(gè)多邊形為P0,P1,P4,它們所在平面方程的系數(shù)分別為a0,b0,c0,a1,b1,c1和a4,b4,c4,那么點(diǎn)V1處的近似法線方向?yàn)?nv1=(a0+a1+a4)i+(b0+b1+b4)j+(c0+c1+c4)kV8V7V5V6V4V3V1V2P0P4P3P2P132 假設(shè)僅求法線方向,那么無需將各法矢量之和除以包圍頂點(diǎn)的多邊形個(gè)數(shù)。 假設(shè)各多邊形平面方程系數(shù)未知,頂點(diǎn)處的法線可取決于該頂點(diǎn)的各棱邊叉積的平均值。同樣考慮圖中的頂點(diǎn)V1,其近似法線的方向可取為nv1=V

22、1V2V1V4+V1V5VlV2+VlV4V1V5 注意,求平均值時(shí)只計(jì)外法線。V8V7V5V6V4V3V1V2P0P4P3P2P1332根據(jù)簡(jiǎn)單光照模型計(jì)算多邊形每個(gè)頂點(diǎn)處的光強(qiáng)。3采用雙線性插值方法確定在掃描線上每個(gè)像素處的光強(qiáng)值。例如,考慮以下圖所示的多邊形ABCD,掃描線上點(diǎn)P處光強(qiáng)的計(jì)算。首先,根據(jù)頂點(diǎn)A,B,C處的光強(qiáng)IA,IB和IC,先對(duì)頂點(diǎn)A和B處的光強(qiáng)進(jìn)行線性插值,得到點(diǎn)Q的光強(qiáng)為:DACRQBP掃描線 IQ=uIA+(1-u)IB 0u1 式中u=AQ/AB。R的光強(qiáng)為:IR =wIB+(1-w)IC 0w1 式中w=BR/BC。P處的光強(qiáng)為:Ip=tIQ+(1-t)IR

23、0t1 式中t=QP/QR. 34 掃描線上各像素的光強(qiáng)可用增量方式計(jì)算??紤]掃描線上位于t1和t2處的兩個(gè)像素P1和P2,其光強(qiáng)為: Ip2=t2IQ+(1-t2)IR 10-3 Ip1=tlIQ+(1-t1)IR 10-4將兩式相減可得到沿掃描線的增量公式為:Ip2=Ipl+(IQ-IR)(t2-t1)=Ip1+It 35 Gouraud明暗處理的優(yōu)點(diǎn)是算法簡(jiǎn)單,計(jì)算量小,解決了兩多邊形之間明暗度不連續(xù)以及多邊形片內(nèi)光強(qiáng)單一的問題,把它應(yīng)用于簡(jiǎn)單的漫反射光照模型時(shí)效果最好。這種方法缺乏之處。明暗插值法只保證在多邊形邊界兩側(cè)光強(qiáng)的連續(xù)性,不能保證其變化的連續(xù)性,在外表上會(huì)出現(xiàn)過亮或過暗的條紋

24、,存在明顯的馬赫帶效應(yīng)痕跡。處理如下圖的情況時(shí),由于按取多邊形法矢量平均的方法計(jì)算在頂點(diǎn)B,C,D處的曲面法矢量,因它們具有同一法線方向而取相同光強(qiáng)值,使得外表上出現(xiàn)一平坦區(qū)域。這種方法只考慮了漫反射,對(duì)鏡面反射效果不盡如人意。主要表現(xiàn)在高光域的形狀不規(guī)整。nAnBnCnDnEABCDE3610.3.3 Phong明暗處理 Phong明暗處理又稱法矢量插值明暗處理。Phong方法的根本步驟是:1近似地算出在多邊形頂點(diǎn)處曲面法矢量以近似表示曲面彎曲性。2應(yīng)用雙線性插值方法求得多邊形內(nèi)每個(gè)像素處的法矢量。37 例如,在圖中,先對(duì)A,B處法矢量作線性插值求出Q處法矢量;再對(duì)B,C處法矢量作線性插值求

25、出R處法矢量;最后,對(duì)Q,R處法矢量線性插值求出點(diǎn)P處的外表法矢量,即 nQ=unA+(1-u)nB 0u1 nR=wnB+(1-w)nC 0wl np=tnQ+(1-t)nR 0t1 式中u=AQ/AB,w=BR/BC,t=QP/QR。假設(shè)位于掃描線上t1和t2處的兩個(gè)像素P1和P2,其法矢量按增量公式計(jì)算np2=np1+(nQ-nR)(t2-t1)=np1+nt nAnBnCnDnEABCDE383根據(jù)所得法矢量按光照模型確定多邊形內(nèi)每一像素的光強(qiáng)。 由于Phong方法較好地在局部范圍內(nèi)模擬外表彎曲程度,因而可得到較好的曲面繪制效果,尤其是鏡面高光顯得更加真實(shí)。這種方法解決了Gouraud

26、方法所遇到的大多數(shù)問題。然而,它本質(zhì)上仍屬線性插值模式,因此光強(qiáng)函數(shù)的一階不連續(xù)仍將導(dǎo)致馬赫帶效應(yīng)。由于明暗處理是在圖像空間中進(jìn)行的,無論是Gouraud方法還是Phong方法都不具有圖形旋轉(zhuǎn)不變性,這使得當(dāng)從一幅畫面到另一幅畫面物體的朝向發(fā)生改變時(shí),其明暗跟著明顯變化。這在處理動(dòng)畫顯示時(shí)不適宜。3910.4 紋理表示 在計(jì)算機(jī)圖形學(xué)中,物體的外表細(xì)節(jié)稱為紋理。不同的材質(zhì)有不同的紋理。例如,刨光的木材外表有木紋,家具上有用油漆畫出的各種圖案等,這類在光滑的物體外表上通過顏色或明暗度變化表達(dá)出來的細(xì)節(jié)稱為顏色紋理或光滑紋理。另一類,那么是物體外表上呈現(xiàn)出凹凸不平的形狀,例如,桔子皮外表的皺紋和未

27、磨光石材外表的凹痕等,這類紋理稱為粗糙紋理、凹凸紋理或幾何紋理。物體的紋理顯示,就是用計(jì)算機(jī)來模擬物體外表的細(xì)節(jié)。4010.4.1 顏色紋理顯示 生成顏色紋理的一般方法是,預(yù)先定義紋理模式,然后建立物體外表的點(diǎn)與紋理模式的點(diǎn)之間的對(duì)應(yīng)關(guān)系。當(dāng)物體外表的可見點(diǎn)確定之后,以紋理模式的對(duì)應(yīng)點(diǎn)結(jié)合光照模型進(jìn)行計(jì)算,可將紋理模式附加到物體外表上。這種方法稱為紋理映射。 實(shí)際上在光滑外表上描繪花紋圖案是花紋圖案在外表上的映射,在數(shù)學(xué)上描繪花紋圖案可簡(jiǎn)化為從一個(gè)坐標(biāo)系到另一個(gè)坐標(biāo)系的變換。假定花紋圖案定義在紋理空間中的一個(gè)正交坐標(biāo)系(u,w)中,而外表定義在另一個(gè)正交坐標(biāo)系(,)中,這樣,我們必須在兩個(gè)空間

28、中定義一個(gè)映射函數(shù)。即=f(u,w) =g(u,w) 或u=r(,) w=s(,) 41 通常假定映射函數(shù)是一個(gè)線性函數(shù),如 =Au+B =Cw+D 式中A,B,C,D為待定系數(shù),它們可由兩個(gè)坐標(biāo)系中點(diǎn)之間的關(guān)系而獲得。 顯示在外表上的花紋圖案除了考慮由紋理空間到物體(對(duì)象)空間的坐標(biāo)變換外,還涉及到由物體空間到圖象空間的映射,此外還需進(jìn)行適當(dāng)?shù)囊晥D變換。 42 假設(shè)圖像空間對(duì)應(yīng)一個(gè)光柵設(shè)備,可應(yīng)用Catmull算法實(shí)現(xiàn)由物體空間到圖像空間的映射,其根本思想是不斷地分割曲面片和花紋圖案,直至一個(gè)子曲面片僅包含一個(gè)像素中心時(shí),取其相應(yīng)的花紋圖案子片上的平均光強(qiáng)值作為該像素的光強(qiáng)值。catmull

29、算法的實(shí)質(zhì)是首先分割物體空間中的曲面片,然后將結(jié)果分別變換到圖像空間和紋理空間,并且不需要考慮由圖像空間到物體空間的逆變換,也不需要考慮在圖像空間中各子曲面片的z值。43例:在Bezier曲面上映射圖像。Bezier曲面的參數(shù)u,v0,1,其二維坐標(biāo)數(shù)學(xué)表達(dá)式為: 設(shè)圖像的寬度為W,圖像的高度為H,圖像的坐標(biāo)x0,W,y0,H,圖像在x,y處的灰度值為pic(x,y),那么Bezier曲面坐標(biāo)與圖像坐標(biāo)的映射函數(shù)為:x(u,v)=uWy(u,v)=vH44圖像的映射效果 程序演示4510.4.2 凹凸紋理表示前面討論的顏色紋理是在光滑外表上描繪花紋圖案,當(dāng)花紋繪上后,外表仍然光滑如故。凹凸紋理

30、是為了表現(xiàn)物體外表凹凸不平的粗糙質(zhì)感。凹凸外表紋理應(yīng)具有隨機(jī)的法線方向,以產(chǎn)生隨機(jī)的反射光線方向。1978年,Blinn提出了擾動(dòng)外表法線方向的方法以獲得外表凹凸紋理的真實(shí)感效果。假定物體外表為一參數(shù)曲面P(u,w),現(xiàn)考慮其外表上任一點(diǎn)處的法矢量為:n=PuPw Pu,Pw分別為沿u和w方向的偏導(dǎo)矢量為了在外表上產(chǎn)生凹凸紋理,在外表上每一采樣點(diǎn)處沿法線方向附加一個(gè)以擾動(dòng)函數(shù)b(u,w) ,從而得到一個(gè)新的外表Q(u,w),其任一點(diǎn)的位置矢量為:Q(u,w)=P(u,w)+b(u,w)n/|n| 46例:對(duì)球面進(jìn)行凹凸紋理處理。圓心在原點(diǎn)半徑為R的球面參數(shù)方程為: x =RCos(u) Cos

31、(v) y = RCos(u) Sin(v) z =R Sin(u) u-90o,90o v0o,360o設(shè)凹凸紋理的擾動(dòng)函數(shù)為: g(u,v)= 0.2 Sin(10u) Sin(10v)設(shè)球面上任一點(diǎn)x,y,z的外法向量為a,b,c那么有凹凸紋理的球面上任一點(diǎn)的坐標(biāo)為: x =RCos(u) Cos(v)+ a g(u,v) y = RCos(u) Sin(v)+ b g(u,v) z =R Sin(u) + c g(u,v) u-90o,90o v0o,360o47凹凸映射效果 程序演示4810.5.1 透明處理在前面所介紹的光照模型和各種消隱算法都假定所考慮的物體是不透明的。然而自然界

32、中許多物體是透明的,例如,玻璃、明膠板、水等。當(dāng)光線從一種媒質(zhì)進(jìn)入另一種媒質(zhì),光線由于折射產(chǎn)生彎曲。我們知道,局部插入水中的直棍會(huì)變彎,這就是光線折射的緣故。光線彎曲程度由Snell定律決定,該定律指出:折射光與入射光位于同一平面內(nèi)且折射角和入射角之間存在以下關(guān)系: 1sin=2sin式中,為入射角,為折射角,1和2分別為光線在第一種媒質(zhì)和第二種媒質(zhì)中的折射率。 49 類似鏡面反射和漫反射,光也有規(guī)那么透射和漫透射。透明材料如玻璃會(huì)產(chǎn)生規(guī)那么透射,如透射光線是發(fā)散的,那么形成漫透射。 折射產(chǎn)生的效果既可用于對(duì)象空間算法或在對(duì)象空間和圖像空間之間作適當(dāng)變換而予以消除,也可結(jié)合到整體光照模型的光線

33、追蹤可見面算法中予以實(shí)現(xiàn)。50 最簡(jiǎn)單的透明算法不考慮折射的影響,也不考慮光線在媒質(zhì)中所經(jīng)路徑長(zhǎng)度對(duì)光強(qiáng)的影響。這種簡(jiǎn)單算法是Newell所提出的,可描述如下: 對(duì)透明的多邊形或外表注以標(biāo)記。假設(shè)可見面是透明面,那么應(yīng)取它與同它相距最近的另一外表光強(qiáng)的線性組合,并將所得如下光強(qiáng)寫入幀緩沖器。 I=tIl+(1-t)I2 0t1 式中Il為可見面的光強(qiáng) ,I2為可見面后第一個(gè)外表上的光強(qiáng),t為I1所對(duì)應(yīng)外表的透明度。t=0對(duì)應(yīng)不可見面,t =1為不透明面。假設(shè)I2所對(duì)應(yīng)外表也是透明面,那么此算法可遞歸地進(jìn)行下去直到取到一個(gè)不透明面或背景時(shí)為止。51 上述線性近似算法并不適用于曲面物體。這是因?yàn)樵?/p>

34、曲面的側(cè)影線上,介質(zhì)厚度增加,透明度降低。例如,在玻璃杯的邊緣處,透明度明顯比中間處低。為了更好地模擬這種透明效果,Kay提出了一個(gè)基于曲面法矢量的z分量的簡(jiǎn)單非線性近似方法,即取透明系數(shù)為 t=tmin+(tmax-tmin)1-(1-|nz|P) 式中tmin和tmax為物體上的最小和最大透明度,nz為外表單位法矢量的z分量,而p為透明幕指數(shù),t為任一像素或物體上任一點(diǎn)處的透明度。5210.5.2 陰影顯示 陰影是指場(chǎng)景中那些不被光源直接照射到而形成的暗區(qū)。當(dāng)觀察方向與光源方向不一致時(shí),就會(huì)觀察到場(chǎng)景中的陰影。陰影可以反映出畫面中景物的遠(yuǎn)近深淺,增強(qiáng)畫面的真實(shí)感。 陰影由兩局部組成:全陰影

35、和半陰影。全陰影是任何光線都照不到的區(qū)域,而半陰影那么為可接收到分布光源來的局部光線的區(qū)域。在計(jì)算機(jī)圖形學(xué)中通常用的點(diǎn)光源只產(chǎn)生全陰影,位于有限距離內(nèi)的分布光源那么同時(shí)形成全陰影和半陰影。53 全陰影計(jì)算的工作量與光源位置有關(guān)。對(duì)于位于無窮遠(yuǎn)處的點(diǎn)光源,陰影可由正投影決定;對(duì)于視區(qū)之外有限距離處的點(diǎn)光源,可采用透視投影技術(shù);對(duì)于位于視區(qū)之內(nèi)的點(diǎn)光源,需將空間分成假設(shè)干區(qū)域,并分別計(jì)算每一區(qū)域中的陰影。 陰影算法與消隱算法類似。在畫面中生成陰影的過程根本上相當(dāng)于兩次消隱:一次相對(duì)于光源消隱,因?yàn)閺挠^察者位置看去是可見的,而從光源位置看去又是不可見的區(qū)域才是畫面中要產(chǎn)生的陰影。54 如下圖顯示了一

36、個(gè)立方體,單一點(diǎn)光源在無窮遠(yuǎn)處,它位于立方體的前面左上方,而視點(diǎn)位于立方體的前面右上方。此時(shí),有兩類陰影產(chǎn)生,一類是立方體自身的遮擋而使光線照射不到它的某些面而形成的自身陰影,如左所示立方體的右側(cè)面P2P6P7P3;另一類是由于立方體遮擋光線,使場(chǎng)景中位于它后面的物體或區(qū)域受不到光照射而形成的投射陰影,如右圖中底平面的陰影。光源自身投影投射投影55 自身陰影可用求自隱藏面同樣的方法求出。當(dāng)視點(diǎn)和光源位于同一方向時(shí),自身陰影就是自隱藏面。投射陰影是從光源投射光線將所有非自隱藏面投影到場(chǎng)景中而得到。投影面與場(chǎng)景中其他平面的交線組成陰影多邊形。為減少陰影多邊形的數(shù)目,只需先找到物體的輪廓線并將它對(duì)場(chǎng)

37、景作投影,而不必將所有自隱藏面一一投影到場(chǎng)景中。5610.6.1 整體光照模型 光照模型是用來計(jì)算由圖像中的每一像素射到觀察者眼中的光強(qiáng)。物體的簡(jiǎn)單光照模型,只考慮光源和被照外表的朝向,以確定到達(dá)觀察者眼中的反射光的光強(qiáng),而將周圍環(huán)境對(duì)物體外表光強(qiáng)的影響簡(jiǎn)單地概括為環(huán)境光,忽略了物體間光線的相互影響。實(shí)際上,這是一種局部光照模型。然而,從整體上考慮,場(chǎng)景中其他物體反射或透射來的光以及其他光源的入射光都不能忽略。因?yàn)楣庠凑丈涞侥骋晃矬w后的反射光,以及經(jīng)由透明物體的折射光,對(duì)另一個(gè)物體而言那么成光源。為增強(qiáng)圖像的真實(shí)感,就必須考慮這些反射光與透射光的影響。57 為了精確模擬光照效果,應(yīng)考慮四種情況

38、:鏡面反射到鏡面反射、鏡面反射到漫反射,漫反射到鏡面反射,以及漫反射到漫反射。對(duì)于透射,也可分為漫透射與規(guī)那么透射鏡面透射。為了使問題簡(jiǎn)化,可分兩步進(jìn)行。首先,只考慮光線在物體外表的鏡面反射和規(guī)那么透射,這樣得到的圖像可表現(xiàn)出在光亮平滑的物體外表上呈現(xiàn)出其他物體的映像,以及通過透明物體看到其后的環(huán)境映像;其次,考慮光照從漫反射到漫反射,這樣得到的畫面較為柔和,并能模擬彩色滲透現(xiàn)象。這種考慮了整個(gè)環(huán)境的總體光照效果和各種景物之間的互相映照或透射的情形,我們稱之為整體光照模型。585 21 3光源屏幕觀察者2 假定球、三角塊和立方體均不透明,且其外表具有高度的鏡面反射能力。當(dāng)位于O的觀察者注視球面

39、上點(diǎn)1時(shí),他看到的不僅是球面,而且還有三角塊上點(diǎn)2在球面上的映像,三角塊由于被立方體遮擋,原來不可見,但經(jīng)過球面的反射,變成可見面。在球面上點(diǎn)3處映現(xiàn)出三角塊上點(diǎn)5的過程更為曲折。點(diǎn)5的像從立方體的反面點(diǎn)4處反射到球面上點(diǎn)3,再進(jìn)入觀察者的眼睛。因此在球面上可以看到三角塊的多重影像。在點(diǎn)1處由于只經(jīng)過一次反射,所見到的三角塊映像是反的。而在點(diǎn)3附近的映像那么是正常的,但由于光線從三角塊到球面時(shí)經(jīng)過兩次反射而使光線減弱。立方體的反面并不受到光源的直接照射,但由于泛光以及從場(chǎng)景中其他景物投射過來的反射光的作用,觀察者仍可在球面上看到它的反射像。 5910.6.2 Whitted整體光照模型 Whi

40、tted光照模型保存了簡(jiǎn)單光照模型中的環(huán)境光、朗伯漫反射和Phong的鏡面反射項(xiàng),增加了環(huán)境鏡面反射光和環(huán)境規(guī)那么透射光,以模擬周圍環(huán)境的光投射在景物外表上產(chǎn)生的理想鏡面反射和規(guī)那么透射現(xiàn)象。Whitted 模型的鏡面反射和透射基于以下假設(shè): 如下圖,被追蹤的入射光V到達(dá)物體外表上點(diǎn)P,觀察者位于-V方向上,光線V在點(diǎn)P處按r方向反射和按t方向折射(假定外表透明)。Is為逆鏡面反射方向到達(dá)外表點(diǎn)p并反射到觀察者眼中的光線光強(qiáng),It為逆折射方向進(jìn)入外表點(diǎn)P并投射到觀察者眼中的光強(qiáng),Lj為第j個(gè)光源所在方向。 60VPnrtIsItLjI 由上可知,到達(dá)觀察者眼中的光線光強(qiáng)I由3局部組成:一是由光

41、源直接照射產(chǎn)生的反射光強(qiáng),另外兩局部那么是我們上面剛討論的Is和It,于是到達(dá)觀察者的光線光強(qiáng)為: 式中Ka,Kd,Ks,Kt分別為環(huán)境光照射、漫反射、鏡面反射和透射系數(shù),其他系數(shù)的含義請(qǐng)見簡(jiǎn)單光照模型。6110.6.3 光線跟蹤算法 光線追蹤算法利用了光線的可逆性原理,不是從光源出發(fā),而是從視點(diǎn)出發(fā),沿視線方向進(jìn)行追蹤。我們這里討論的整體光照模型中的可見面計(jì)算,前面討論的光線追蹤算法不同之處在于,并非求出光線第一次和外表交點(diǎn)時(shí)就結(jié)束。V觀察者表面3表面2表面1屏幕et3r3t2p2r2p3t1r1p1Vp1p2p3r1t1r2t2t3r362 追蹤過程從光線樹的葉結(jié)點(diǎn)開始,累計(jì)光強(qiáng)奉獻(xiàn)以確定

42、像素e處的光強(qiáng)大小。樹中每個(gè)結(jié)點(diǎn)處的光強(qiáng)由樹中子結(jié)點(diǎn)處繼承而來,但光強(qiáng)大小隨距離長(zhǎng)短而衰減。像素光強(qiáng)是光線樹根結(jié)點(diǎn)處的衰減光強(qiáng)的總和。假設(shè)像素光線與所有物體均不相交,光線樹為空,該像素為背景光強(qiáng)。光線追蹤的最大深度可由用戶設(shè)定。 光線追蹤技術(shù)為整體光照模型提供了一種簡(jiǎn)單有效的繪制手段。它可模擬自然界中光線的傳播,可實(shí)現(xiàn)場(chǎng)景中交相輝映的景物、陰影、透明等高度真實(shí)感圖像的顯示。但它的實(shí)現(xiàn)計(jì)算量巨大,主要計(jì)算工作量消耗在求交點(diǎn)問題上。因此,提高求交計(jì)算的效率是算法的一個(gè)重要問題。光線追蹤在本質(zhì)上是一個(gè)遞歸算法,每個(gè)像素的光強(qiáng)必須綜合各層遞歸計(jì)算的結(jié)果才能獲得。6310.7 顏 色 人們能夠看到顏色(

43、簡(jiǎn)稱人眼的色感)的機(jī)理非常復(fù)雜。顏色是一種心理生理和心理物理現(xiàn)象。人對(duì)顏色的感覺決定于光的物理性質(zhì)。光是一種電磁波能并對(duì)周圍環(huán)境互相作用。同時(shí),對(duì)顏色的感覺還決定于光在人的眼腦視覺系統(tǒng)中引起的反響。這是一個(gè)龐大、復(fù)雜而又誘人的領(lǐng)域,在這里只介紹顏色的一些根本術(shù)語,顏色所涉及的物理現(xiàn)象、各種顏色描述系統(tǒng)以及它們之間的相互轉(zhuǎn)換。 人的視覺系統(tǒng)所能看到的可見光是一種電磁波信號(hào),其波長(zhǎng)在400700nm之間。光通常有兩種來源,一種是光源直接發(fā)出,另一種是經(jīng)由物體外表上反射或折射間接而來。6410.7.1 色度與三刺激理論 當(dāng)眼睛接收到的光包含所有波長(zhǎng)的可見光信號(hào),且其強(qiáng)度大致相等時(shí),那么發(fā)出光線的光源

44、或所看到的物體是非彩色的。非彩色的光源為白光,而從物體反射或透射的非彩色光可能呈現(xiàn)白色、黑色或不同層次的灰色。在光源的白光照射下,假設(shè)物體可反射80%以上的入射光,那么物體看上去是白色的;假設(shè)反射光小于3%,那么物體看去是黑色的;介于它們之間的反射率,那么形成了各種深淺不同的灰度。通常,反射光強(qiáng)取值在01之間,0對(duì)應(yīng)黑色,1對(duì)應(yīng)白色,而各中間值對(duì)應(yīng)于灰色。65 下面來說明亮度和明度這兩個(gè)難于嚴(yán)格區(qū)分的概念。通常亮度是指發(fā)光體本身所發(fā)出的光為眼睛所感知的有效數(shù)量高一低,而明度是指本身不發(fā)光而只能反射光的物體所引起的一種視覺黑一白。物體的亮度或明度決定于眼睛對(duì)不同波長(zhǎng)的光信號(hào)的相對(duì)敏感度。如下圖為

45、眼睛的相對(duì)敏感度曲線。從圖中可見,人的眼睛在白天對(duì)550nm左右波長(zhǎng)的光最為敏感。在可見光譜的兩端,眼睛的敏感程度迅速減弱。這一曲線稱為光效率曲線。 400 500 600 7001.00.50相對(duì)敏感度藍(lán)10光效率函數(shù)(白天觀察)紅綠波長(zhǎng)/nm紫66 如果眼睛感受到的光信號(hào)中各波長(zhǎng)的光占任意比例且各不相同,那么形成彩色光。實(shí)際上,一定波長(zhǎng)的電磁能本身不帶顏色,所謂顏色不過是人的眼睛、大腦結(jié)合在一起對(duì)客觀現(xiàn)象產(chǎn)生的一種感覺而已。物體呈現(xiàn)出來的顏色既決定于光源中各種光波長(zhǎng)的分布,也決定于物體本身的物理性質(zhì)。如果一個(gè)物體僅反射或透射很窄頻帶內(nèi)的光而吸收其他波長(zhǎng)的光,那么它會(huì)顯示出顏色來。具體顏色由

46、反射光或透射光的波長(zhǎng)決定。一定顏色的入射光的照射在某種具有反射或透射光譜的材料外表可能導(dǎo)致令人驚奇的結(jié)果。例如,用綠光作入射光照射在一個(gè)紅色物體上,物體呈現(xiàn)黑色,這是因?yàn)闊o反射光生成的緣故。67 顏色在心理生物學(xué)上可用色彩、色飽和度和明度3個(gè)參量來描述。色彩是某種顏色據(jù)以定義的一個(gè)名稱,如紅色、綠色、藍(lán)色等;色飽和度是單色光中摻入白光的度量。單色光的色飽和度為100%,白光參加后,其色飽和度下降,非彩色光的色飽和度為0%;明度為非彩色光的光強(qiáng)值。 同樣地,顏色在心理物理學(xué)上也有3個(gè)與色彩、色飽和度和明度相對(duì)應(yīng)的參量,它們是:主波長(zhǎng)、色純和亮度。在可見光譜上,單一波長(zhǎng)的電磁能所產(chǎn)生的顏色是單色的

47、。我們用E1表示單色光的能量分布,E2表示單色光中摻入白光的量,于是色純可由E1、E2值的相對(duì)大小來決定。顯然,當(dāng)E2降至0時(shí)色純?cè)龅?00%,當(dāng)E2增至E1時(shí),色純降至0%,此時(shí)光呈白色。 68 在實(shí)際生活中人們所看到的顏色幾乎都是混合色,純的單色光很少見。關(guān)于顏色混合有所謂三刺激理論,它是基于以下假設(shè):人的眼睛中央部位有三種類型的顏色敏感錐狀細(xì)胞,其中一種對(duì)應(yīng)于可見光譜近于中間位置的光波敏感,這種光波經(jīng)過人的眼腦視覺系統(tǒng)轉(zhuǎn)換產(chǎn)生綠色感。另兩種對(duì)應(yīng)于可見光譜的上、下端的光波敏感,它們分別識(shí)別紅色和藍(lán)色。人的眼睛對(duì)綠色光較敏感而對(duì)紅藍(lán)色光受到相同程度的輻射率,那么眼睛看到的是白光。從生理學(xué)的角

48、度看,由于眼睛只包含三種不同類型的錐狀細(xì)胞,因此只要三種顏色中任意兩種組合不生成第三種顏色,對(duì)任意三種顏色適當(dāng)混合都可產(chǎn)生白光的視覺。這三種顏色稱為三原色或三基色。6910.7.2 CIE色度圖 根據(jù)顏色的三維屬性,可沿正交坐標(biāo)軸畫出每個(gè)三刺激分量的值,以形成所謂三刺激空間,但一顏色C可由三刺激空間的一個(gè)矢量表示,其分量為rR,gG和bB。矢量C與單位平面的交點(diǎn)就是為獲得顏色C所需R,G,B的相對(duì)權(quán)因子。相對(duì)權(quán)因子又稱為色度值或色度坐標(biāo),即11bgr_RGBCgGbBrR111單位平面R+B+G=170 顯然有r+b+g。單位平面在坐標(biāo)面上的投影產(chǎn)生色度圖。色度圖直接給出了兩種原色之間的函數(shù)關(guān)系并間接給出其與第三種原色的關(guān)系。11bgr_RGBCgGbBrR111單位平面R+B+G=1 由XYZ原色所形成的三角形色度圖包括了整個(gè)可見光譜軌跡。CIE色度值為:71 且x+y+z=1,當(dāng)XYZ三角形投影在二維平面上生成CIE色度圖時(shí),色度坐標(biāo)取為x和y,表示為生成一種顏色所需的XYZ三原色的相對(duì)量,但不表示顏色的亮度(光強(qiáng))。亮度由Y表示,X和Z可根據(jù)它們對(duì)y值的比例確定。由此色度可以同時(shí)由(x,y,Y)坐標(biāo)值表示。 由色度值至XYZ三剌激值的變換為: 經(jīng)調(diào)整后,使得當(dāng)3個(gè)

溫馨提示

  • 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)論