版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第8章真實感圖形學(xué)8.1顏色模型
8.2簡單光照明模型
8.3增量式光照明模型
8.4陰影的產(chǎn)生
8.5整體光照模型8.6光線跟蹤算法
習(xí)題8 8.1顏色模型
從原理上講,任何一種顏色都可以用紅、綠、藍(lán)三原色按照不同比例混合來得到。真實感圖形的光照明模型就是分別計算R、G、B三個分量的光強(qiáng)值,得到某個像素點上的顏色值,即所謂RGB顏色模型。下面分別介紹幾種常用的顏色模型。
8.1.1
CIE色度圖
根據(jù)CIE(國際照明委員會)選取的標(biāo)準(zhǔn)紅、綠、藍(lán)三種光的波長,分別為:紅光R,l1=700nm;綠光G,l1=546nm;藍(lán)光B,l1=700nm。這樣光顏色的匹配可以用式子表示為:
c=rR+gG+bB
上式被稱為CIE-RGB系統(tǒng),其中權(quán)值r、g、b為顏色匹配中所需要的R、G、B三色光的相對量,也就是三刺激的值。用等能標(biāo)準(zhǔn)三原色來匹配任意顏色的光譜三刺激值時,部分三刺激值是負(fù)數(shù),表明不可能靠混合紅、綠、藍(lán)三種光來匹配對應(yīng)的光,而只能在給定的光上疊加負(fù)值對應(yīng)的原色,來匹配另兩種原色的混合,但實際上并不存在負(fù)的光強(qiáng)。
CIE-XYZ系統(tǒng)利用三種假想的標(biāo)準(zhǔn)原色X(紅)、Y(綠)、Z(藍(lán)),得到的顏色匹配函數(shù)的三刺激值都是正值。該系統(tǒng)的光顏色匹配函數(shù)定義為如下的式子:
c=xX+yY+zZ
用R、G、B三原色(CIE-XYZ標(biāo)準(zhǔn)原色)的單位向量定義一個三維顏色空間,在這三維空間中,一個顏色刺激(C)就可以表示為一個以原點為起點的向量,該三維向量空間稱為(R、G、B)三刺激空間。該空間落在第一象限,空間中向量的方向由三刺激的值確定,因而向量的方向代表顏色。為了在二維空間中表示顏色,在三個坐標(biāo)軸上對稱地取一個截面,該截面通過R、G、B三個坐標(biāo)軸上的單位向量,因而可知截面的方程為(R)+(G)+(B)=1。該截面與三個坐標(biāo)平面的交線構(gòu)成一個等邊三角形,它被稱為色度圖。把色度圖投影到xy平面上,所得到的馬蹄形區(qū)域稱為CIE色度圖,如圖8-1所示。
圖8-1
CIE色度圖在圖8-1中,馬蹄形區(qū)域的邊界和內(nèi)部代表了所有可見光的色度值,色度圖的邊界彎曲部分代表了光譜在某種純度為100%的色光。圖中央的一點C表示標(biāo)準(zhǔn)白光。色度圖還可用于定義各種圖形設(shè)備的顏色域,這里不再詳細(xì)介紹了。雖然色度圖和三刺激值是精確描述顏色的標(biāo)準(zhǔn),但是較復(fù)雜。在計算機(jī)圖形學(xué)中,通常使用一些基于三維顏色空間的通俗易懂的顏色系統(tǒng)來描述顏色。8.1.2常用的顏色模型
顏色模型就是指三維顏色空間中包含某個顏色域的所有顏色的一個可見光子集。RGB顏色模型是三維直角坐標(biāo)顏色系中的一個單位正方體。真實感圖形學(xué)中的主要顏色模型也是RGB模型。除了RGB顏色模型,常見的還有CMY、HSV等顏色模型。
彩色陰極射線管等彩色光柵圖形顯示設(shè)備中多使用RGB顏色模型。如圖8-2所示,紅、綠、藍(lán)原色為加性原色,即不同原色混合在一起可以產(chǎn)生復(fù)合色。RGB顏色模型所覆蓋的顏色域取決于顯示設(shè)備熒光點的顏色特性,是與硬件相關(guān)的。圖8-2
RGB原色的加色效果以紅、綠、藍(lán)的補色青(Cyan)、品紅(Magenta)、黃(Yellow)為原色構(gòu)成的CMY顏色模型,常用于從白光中濾去某種顏色,又被稱為減性原色系統(tǒng),如圖8-3所示。圖8-3
CMY原色的減色效果
CMY顏色模型對應(yīng)的直角坐標(biāo)系的子空間與RGB顏色模型所對應(yīng)的子空間幾乎完全相同。差別僅僅在于前者的原點為白,而后者的原點為黑。前者是定義在白色中減去某種顏色來定義一種顏色,而后者是通過從黑色中加入顏色來定義一種顏色。RGB和CMY顏色模型都是面向硬件的。此外,還有應(yīng)用于畫家的配色方法HSV(Hue,Saturation,Value)顏色模型。該模型是面向用戶的,畫家用改變色濃和色深的方法來從某種純色中獲得不同色調(diào)的顏色。其做法是:在一種純色中加入白色以改變色濃,加入黑色以改變色深,同時加入不同比例的白色、黑色即可得到不同色調(diào)的顏色。 8.2簡單光照明模型
模擬物體表面光照明物理現(xiàn)象的數(shù)學(xué)模型被稱為光照明模型。簡單光照明模型只考慮光源對物體的直接光照。光照射到物體表面時,光線可能被吸收、反射和透射,被物體吸收的部分轉(zhuǎn)化為熱。反射、透射的光進(jìn)入人的視覺系統(tǒng),使我們能看見物體。為模擬這一現(xiàn)象,可建立一些數(shù)學(xué)模型來替代復(fù)雜的物理模型。因此,光照明模型是在已知物體物理形態(tài)和光源性質(zhì)的條件下,計算場景的光照明效果的數(shù)學(xué)模型。光照明模型最早出現(xiàn)于1967年,當(dāng)年Wylie等人第一次在對物體進(jìn)行顯示時,增加了物體的光照效果,并認(rèn)為光強(qiáng)
與距離成反比。1970年,Bouknight提出第一個光反射模型——Lambert漫反射+環(huán)境光。1971年,Gouraud提出漫反射模型加插值的思想。1975年,Phong提出圖形學(xué)中第一個有影響的光照明模型——Phong光照明模型。
所謂簡單光照模型就是只考慮反射光的作用,而反射光由環(huán)境光、漫反射光和鏡面反射光三部分組成。相對于簡單光照模型,復(fù)雜光照模型則可在平滑物體表面顯示其他物體的映像,而透過透明物體也可以看到其后的環(huán)境景象。8.2.1
Lambert模型
首先定義光源的類型。在光照模型中的光源可以分為環(huán)境光照、方向光照和點光源。其中,天空、地面、墻面可以認(rèn)為是環(huán)境光照;太陽可以認(rèn)為是方向光照;而點光源可以認(rèn)為是從有限距離內(nèi)的一點發(fā)出的光線,如燈光等。圖8-4所示為三種光源類型的示意圖。圖8-4光源的類型光照明模型就是根據(jù)光學(xué)物理有關(guān)定律,計算景物表面任一點投向觀察者眼中的光亮度的大小和色彩組成。決定光亮度的主要因素包括:
①光源的性質(zhì)(幾何分類:點、線、面、體);
②景物表面的材料;
③景物表面的朝向及景物與光源之間的相對位置。
光照明模型就是要綜合考慮上述因素,計算投射到觀察者眼中的光強(qiáng)度大小。
1.僅考慮環(huán)境光的光照明模型
模擬環(huán)境中眾多表面的光反射效果,該模型抽象為物體表面發(fā)生漫反射現(xiàn)象,環(huán)境光模型僅考慮環(huán)境光照,而不考慮有向光源,如圖8-5所示。
在圖8-5中,P點環(huán)境光的光強(qiáng)計算公式如下:
I=Ia*ka
對于不同的物體,其對環(huán)境光有不同的反射屬性。其中,Ia表示環(huán)境光強(qiáng)度,可假設(shè)為常數(shù);ka表示環(huán)境光反射系數(shù),由物體表面屬性確定,在[0,1]范圍內(nèi)取值。環(huán)境光反射可以看做是光線從周圍環(huán)境均勻照射到P點,并從P點均勻地向四周反射出去。環(huán)境光的效果圖如圖8-6所示。圖8-5環(huán)境反射圖8-6環(huán)境光照體
2.漫反射模型
漫反射是物體并不光滑形成的,這種不光滑的物體叫漫反射體。漫反射的光源類型可以是無向光或者方向光。漫反射可以模擬出入射光向各向均勻反射的效果,如較暗或不光滑表面(如粉筆或乳膠涂料)、具有微結(jié)構(gòu)的表面,如圖8-7所示。圖8-7環(huán)境反射由Lambert余弦定理可得,點P處漫反射光的強(qiáng)度為
其中,Ip為點光源的光強(qiáng)度;Kd(0<Kd<1)表示物體表面該點對漫反射光的反射屬性;θ表示入射光與P點法向的夾角。從圖8-7可以看出,當(dāng)夾角θ>90°時,光源位于物體背面,此時應(yīng)取亮度為0;當(dāng)夾角θ=0時,光源直接照射在物體表面,此時反射光最強(qiáng)。若L和n都已規(guī)格化為單位矢量,則
Id=IpKd(L·n)對于彩色可采用下面的公式進(jìn)行計算:
Ip=(IpR,IpG,IpB)
而
IdR=IpRKdR(L·N)
IdG=IpGKdG(L·N)
IdB=IpBKdB(L·N)
當(dāng)有多個點光源時,當(dāng)同時考慮環(huán)境光及光源效果的模型為
I=kaIa+kdIp(N·L)
考慮入射光的距離衰減效果,改進(jìn)模型為
I=kaIa+kdfIp(N·L)
其中:f為光源強(qiáng)度衰減因子,與距離成反比。若考慮多個點光源的疊加作用,則改進(jìn)模型為從上述公式中可以看出,漫反射光是由物體表面向各個方向等強(qiáng)度地反射而成,因而從各個視角出發(fā),物體表面呈現(xiàn)相同的亮度,所看到的物體表面某點明暗程度不隨觀測者的位置變化而變化,如圖8-8所示。
Lambert模型適用于理想漫反射物體(如石灰墻面、羊皮紙等),而不適用于諸如金屬表面的物體,不能描述其鏡面反射效果。圖8-8理想漫反射體8.2.2
Phong光照明模型
Phong模型是考慮物體鏡面反射效果的一種“高光”模型,鏡面反射光是當(dāng)光照射到光滑表面時,會發(fā)生鏡面反射光(如圖8-9所示)。鏡面反射的特點是在光滑表面會產(chǎn)生一塊高光區(qū)的特亮區(qū)域。反射光與入射光滿足光的反射定律。對一般的光滑表面,反射光集中在一個范圍內(nèi),且由反射定律決定的反射方向光強(qiáng)最大。因此,對于同一點來說,從不同位置所觀察到的鏡面反射光強(qiáng)是不同的。
圖8-9表示的是一般光滑表面的鏡面反射現(xiàn)象。而對于理想的反射面,其鏡面反射的光強(qiáng)要比環(huán)境光和漫反射光高出很多,因此,在P點的鏡面反射方向上,就會看到一個比周圍亮得多的高光點,如圖8-10所示。圖8-9一般光滑表面的鏡面反射圖8-10理想的鏡面反射計算表面鏡面反射光亮度的經(jīng)驗?zāi)P蜑?/p>
Is=KsIpcosna
其中,Ks為景物表面的鏡面反射率;Is為鏡面反射光;a為反射光與視線的夾角;n為反射指數(shù),反映了物體表面的光澤程度,一般為1~2000,n越大物體表面越光滑。在反射方向附近形成得很亮的光斑,稱為高光現(xiàn)象。鏡面反射光產(chǎn)生的高光區(qū)域只反映光源的顏色,如在紅光的照射下,一個物體的高光區(qū)域是紅光。鏡面反射系數(shù)Ks是一個與物體的顏色無關(guān)的參數(shù),在簡單光照明模型中,只能通過設(shè)置物體的反射系數(shù)來控制物體的顏色。在多點光源照射下,并考慮入射光的距離衰減效應(yīng),得到改進(jìn)后的Phong模型:
若R和V已規(guī)格化為單位矢量,則
Is=IpKs(R·V)n
于是從視點觀察到物體上任一點P處的光強(qiáng)度I,應(yīng)為環(huán)境光反射光強(qiáng)度Ie、漫反射光強(qiáng)度Id以及鏡面反射光的光強(qiáng)度Is的總和:
I=Ie+Id+Is=IaKa+IpKd(L·N)+IpKs(R·V)n
對物體表面上的每個點P,均需計算光線的反射方向。為了減少計算量,可作如下假設(shè):光源在無窮遠(yuǎn)處,L為常向量;視點在無窮遠(yuǎn)處,V為常向量;用(H·N)近似(R·V),
其中H為L與V的平分向量,則
對所有的點總共只需計算一次H的值,節(jié)省了計算時間。在多點光源照射下,并考慮入射光的距離衰減效應(yīng),得到改進(jìn)后的Phong模型:
I=Ie+Id+Is=IaKa+∑fiIpi(Kd(L·N)+Ks(H·N)n)可見,Phong模型是幾何模型,光源和顏色確定后,光亮度只與θ和α有關(guān)。Phong光照明模型是真實感圖形學(xué)中提出的第一個有影響的光照明模型,生成圖像的真實度已經(jīng)
達(dá)到可以接受的程度。
實際應(yīng)用Phong模型時,由于它是一個經(jīng)驗?zāi)P?,因此還具有以下問題:
(1)用Phong模型顯示出的物體(如塑料)沒有質(zhì)感。
(2)環(huán)境光是常量,沒有考慮物體之間相互的反射光。
(3)鏡面反射的顏色是光源的顏色,與物體的材料無關(guān)。
(4)鏡面反射的計算在入射角很大時會產(chǎn)生失真等。在后面的一些光照明模型中,對上述問題都作了一定的改進(jìn)。在Phong光照明模型中,由于光源和視點被假定為無窮遠(yuǎn),最后的光強(qiáng)計算公式就變?yōu)槲矬w表面法向量的函數(shù)。若采用通用的多邊形模型表示物體,每一個多邊形法向一致,則多邊形內(nèi)部像素的顏色都是相同的。于是在不同法向的多邊形鄰接處,不僅有光強(qiáng)突變,而且還會產(chǎn)生馬赫帶效應(yīng),即人類視覺系統(tǒng)夸大具有不同常量光強(qiáng)的兩個相鄰區(qū)域之間的光強(qiáng)不連續(xù)性。為了保證多邊形之間的光滑過渡,使連續(xù)的多邊形呈現(xiàn)勻稱的光強(qiáng),人們引進(jìn)了增量式光照明模型。 8.3增量式光照明模型
Phong光照明模型作為實用模型,其生成圖像的真實度已經(jīng)達(dá)到可以接受的程度。由于光源和視點都被假定為無窮遠(yuǎn),因此,Phong模型的光強(qiáng)計算是物體表面法向量的函數(shù),其多邊形內(nèi)部的像素的顏色都是相同的。這樣就造成了不同法向的多邊形在鄰接處因有光強(qiáng)突變而會產(chǎn)生馬赫帶效應(yīng)(馬赫帶效應(yīng)是指人類視覺系統(tǒng)夸大具有不同常量光強(qiáng)的兩個相鄰區(qū)域之間的光強(qiáng)不連續(xù)性)。圖8-11所示是采用Phong模型繪制的一頭牛的真實感圖形。圖8-11Phong模型繪制的牛的真實感圖形從圖8-11中可以看出,采用三角面片繪制的牛,在三角面片的鄰接處有明顯的馬赫帶效應(yīng),因此影響了該圖的真實感效果。
為了解決上述問題,保證多邊形之間的光滑過渡,使連續(xù)的多邊形呈現(xiàn)勻稱的光強(qiáng),可采用增量式光照明模型。增量式光照明模型是在每一個多邊形的頂點處計算出合適的光照明強(qiáng)度或參數(shù),然后在各個多邊形內(nèi)部進(jìn)行均勻插值,得到多邊形的光滑顏色分布。它包含兩個主要的算法:雙線性光強(qiáng)插值和雙線性法向插值,又被分別稱為Gouraud明暗處理和Phong明暗處理。8.3.1雙線性光強(qiáng)插值(Gouraud明暗處理)
雙線性光強(qiáng)插值是由Gouraud于1971年提出的,又被稱為Gouraud明暗處理,它先計算物體表面多邊形各頂點的光強(qiáng),然后用雙線性插值求出多邊形內(nèi)部區(qū)域中各點的光強(qiáng)。
雙線性光強(qiáng)插值的基本算法描述如下:
(1)計算多邊形頂點的平均法向。
(2)用Phong光照明模型計算頂點的平均光強(qiáng)。
(3)插值計算離散邊上的各點光強(qiáng)。
(4)插值計算多邊形內(nèi)部區(qū)域中各點的光強(qiáng)。雙線性光強(qiáng)插值需要計算多邊形頂點的法向,而在三維空間中,一個孤立點的法向是不存在的。因此,算法采用近似方法計算頂點的法向,方法是用與頂點相鄰的所有多邊形的法向的平均值近似作為該頂點的法向量。假設(shè)頂點A相鄰的多邊形有k個,各個法向量分別為N1,N2,…,Nk,則取頂點A的法向為在一般情況下,用相鄰多邊形的平均法向作為頂點的法向量,與該多邊形物體近似的曲面的切平面比較接近。
在得到頂點的法向量后,平均光強(qiáng)的計算就可以用Phong光照明模型計算在該頂點處的光亮度。求得各個頂點的光亮度后,要進(jìn)一步求出多邊形各條邊的光強(qiáng),這里進(jìn)行第一次線性光強(qiáng)度插值。然后,根據(jù)各條邊的光強(qiáng),第二次采用線性光強(qiáng)度插值,計算出多邊形內(nèi)部點的光強(qiáng)。雙線性光強(qiáng)度插值算法如圖8-12所示。圖8-12雙線性光強(qiáng)度插值算法雙線性光強(qiáng)插值的公式如下:在上式中,需要進(jìn)行乘除運算,算法的效率較低??梢圆捎迷隽克惴?,當(dāng)掃描線ys由j變成j+1時,新掃描線上的點(xa,j+1)和(xb,j+1)的光強(qiáng),可以由前一條掃描線與邊的交點的光強(qiáng)作一次加法得到:
其中,ΔIa和ΔIb可以采用下式進(jìn)行計算:由于在一條掃描線內(nèi)部,橫坐標(biāo)xs由xa到xb遞增,當(dāng)xs由i增為i+1時,多邊形內(nèi)的點(i+1,ys)的光強(qiáng)可以由同一掃描行左側(cè)的點(i,ys)的光強(qiáng)作一次加法得到,即
Ii+1,s=Ii,s+DIs
其中,DIs可以采用下式進(jìn)行計算:雙線性光強(qiáng)插值解決了相鄰多邊形之間的顏色突變問題,產(chǎn)生的真實感圖形顏色過渡均勻,圖形顯得非常光滑,這是它的優(yōu)點。但是雙線性光強(qiáng)插值仍存在明顯不足:由于
采用光強(qiáng)插值,它的鏡面反射效果不太理想,而且相鄰多邊形在邊界處的馬赫帶效應(yīng)不能完全消除。8.3.2雙線性法向插值(Phong明暗處理)
Phong提出的雙線性法向插值以時間為代價,可以部分解決雙線性光強(qiáng)插值的弊病。雙線性法向插值將鏡面反射引進(jìn)到明暗處理中,解決了高光問題。與雙線性光強(qiáng)插值相比,雙線性法向插值方法有如下特點:
(1)保留雙線性插值,對多邊形邊上的點和內(nèi)域各點采用增量法。
(2)對頂點的法向量進(jìn)行插值,該法向量通過相鄰多邊形的法向量作平均得到。
(3)通過插值計算得到法向后,再計算每個像素的光亮度。
(4)假定光源與視點均在無窮遠(yuǎn)處,光強(qiáng)只是法向量的函數(shù)。
雙線性法向插值的式子與光強(qiáng)插值的式子基本類似,只不過是把其中的光強(qiáng)項用法向量項來代替,即把I換為N,就有如下的插值公式:增量插值計算的公式也與光強(qiáng)插值公式相似,只要用法向代替光強(qiáng)即可,不必再列出詳細(xì)的公式。雙線性光強(qiáng)插值可以有效地顯示漫反射曲面,它的計算量?。欢p線性法向插值與雙線性光強(qiáng)插值相比,可以產(chǎn)生正確的高光區(qū)域,但它的計算量要大得多,如圖8-13所示。圖8-13采用增量式光照模型繪制的牛
8.4陰影的產(chǎn)生
從理論上來說,從視點以及從光源看過去都是可見的面,不會落在陰影中,只有那些從視點看過去是可見的,而從光源看過去是不可見的面,才會落在陰影之內(nèi)。通過陰影可以反映出物體之間的相互關(guān)系,增加圖形的立體效果和真實感。對于物體表面的多邊形,如果在陰影區(qū)域內(nèi)部,那么該多邊形的光強(qiáng)就只有環(huán)境光那一項,后面的那幾項光強(qiáng)都為零,否則就用正常的模型計算光強(qiáng)。陰影是由于光源被物體遮擋而在該物體后面產(chǎn)生的較暗的區(qū)域。
在真實感圖形學(xué)中,確定了物體的陰影區(qū)域后,將其結(jié)合到簡單光照模型的計算中。通過這種方法,就可以使產(chǎn)生的真實感圖形更有層次感,如圖8-14所示。圖8-14陰影的示意圖陰影可以劃分為本影及半影。本影是景物表面上那些沒有被光源直接照射的部分。半影是景物表面上那些被某些光源直接照射但并非被所有光源直接照射的部分。本節(jié)僅考慮陰影的本影部分,圖8-15是無陰影和有陰影圖形的比較。圖8-15無陰影圖形與有陰影圖形
(a)無陰影圖形(b)有陰影圖形從圖8-15中可以看出,無陰影的物體似乎浮在場景之上,陰影則增加了場景的真實感。陰影使場景給人以想象的空間并給出了景物的深度信息。同時,陰影給定了光源與物體在場景中相對位置的信息。
從陰影的產(chǎn)生原因上看,有陰影區(qū)域的物體表面都無法看見光源,只要把光源作為觀察點,那么在前面介紹的任何一種隱藏面消除算法可以用來生成陰影區(qū)域。8.4.1陰影多邊形算法
把光源設(shè)為視點,相對光源可見的多邊形被稱為陰影多邊形,而不可見面就是非陰影多邊形,這樣非陰影多邊形就處在物體多邊形的陰影區(qū)域中。
陰影多邊形算法步驟如下:
(1)采用傳統(tǒng)的隱藏面消除技術(shù)。相對于光源,把物體上的多邊形區(qū)分為陰影多邊形、非陰影多邊形和逆光多邊形,這是區(qū)分多邊形的階段。
(2)顯示階段。計算物體表面各個多邊形的光強(qiáng),對于非陰影多邊形和逆光多邊形,用某種方法來減少正常計算出來的光強(qiáng)值,使其有陰影的效果。利用這個算法可以合理地確定物體表面的陰影區(qū)域。8.4.2陰影緩存器方法
首先,以光源作視點透視全景,提取深度映射信息。然后,以普通視點透視全景,因為每個點對觀察者都是可見的,以光源作為觀察者視點計算其深度值,并與深度映射作比較,以決定是否位于陰影區(qū)內(nèi)。陰影緩存器方法可以在光滑的曲面片上生成陰影。其算法步驟如下:
(1)利用Z緩存器算法,取光源為視點對景物進(jìn)行消隱。景物均變換到光源坐標(biāo)系中,但不進(jìn)行光亮度計算。
(2)采用視點對景物進(jìn)行消隱,將每一像素的可見點坐標(biāo)變換到光源坐標(biāo)系中,與光源可見點的深度值進(jìn)行比較,若陰影緩存器的深度值小,則說明該曲面采樣點從光源方向不可見,因而位于陰影中。
8.5整體光照模型
簡單光照明模型的不足是只考慮了漫反射現(xiàn)象和鏡面反射現(xiàn)象,而對于光的透射現(xiàn)象都沒有處理。Whitted模型則考慮了漫透射和規(guī)則透射光。透射光的定義是對于透明或半透明的物體,在光線與物體表面相交時,一般會產(chǎn)生反射與折射,經(jīng)折射后的光線將穿過物體而在物體的另一個面射出,形成透射光。如果視點在折射光線的方向上,就可以看到透射光。8.5.1透明效果的簡單模擬
透明效果是透過透明材料可以看到后面的物體,由于光的折射通常會改變光的方向,要在真實感圖形學(xué)中模擬折射,需要較大的計算量。因此,可以采用簡單模型進(jìn)行模擬。簡單模型采用顏色調(diào)和法(如圖8-16所示),該方法不考慮透明體對光的折射以及透明物體本身的厚度,光通過物體表面是不會改變方向的,故可以模擬平面玻璃。前面介紹的隱藏面消除算法都可以用于實現(xiàn)模擬這種情況。圖8-16顏色調(diào)和模擬透明效果算法的基本思想是:假設(shè)t是物體的透明度,t=0表示物體是不透明體,t=1表示物體是完全透體。最終所看到的顏色,是物體表面的顏色和透過物體的背景顏色的疊加。設(shè)過像素點(x,y)的視線與物體相交處的顏色(或光強(qiáng))為Ia,視線穿過物體與另一物體相交處的顏色(或光強(qiáng))為Ib,則像素點(x,y)的顏色(或光強(qiáng))可由如下顏色調(diào)和公式計算:
I=tIb+(1-t)Ia
Ia和Ib可由簡單光照明模型計算。由于未考慮透射光的折射和透明物體的厚度,因此顏色調(diào)和法只能模擬玻璃的透明或半透明效果。8.5.2
Whitted光透射模型
在簡單光照明模型的基礎(chǔ)上,加上透射光一項,就得到Whitted光透射模型:
I=IaKa+IpKd(L·N)+IpKs(H·N)n+ItK't
其中,It為折射方向的入射光強(qiáng)度;K't為透射系數(shù),取0~1之間的一個常數(shù),其大小取決于物體的材料。如果該透明體又是一個鏡面反射體,應(yīng)再加上反射光一項,以模擬鏡面反射效果。于是較完整的Whitted光透射模型:
I=IaKa+IpKd(L·N)+IpKs(H·N)n+ItK't+IsK's其中,Is為鏡面反射方向的入射光強(qiáng)度,K's為鏡面反射系數(shù),為0~1之間的一個常數(shù)。圖8-17為Whitted光透射模型。圖8-17
Whitted光透射模型在圖8-17中,已知視線方向為V,法向向量為N,光源為L,求其反射方向S與折射方向T。根據(jù)光學(xué)幾何原理,視線V的反射方向為S,S與V滿足光的反射定律??梢圆捎孟率竭M(jìn)行計算:
S=2N(N·V)-V
其中,N是表面的法向方向;V、N、T均為單位向量。假設(shè)h1是視點所在空間的介質(zhì)折射率,h2為物體的折射率。根據(jù)折射定律:在Whitted模型中,其視線V的折射方向向量T可用下式表示:
T=kf(N-V')-N
其中
Heckbert的折射方向計算方法更簡單:
其中:
采用Heckbert方法計算出的結(jié)果T為單位向量。8.5.3
Hall光透射模型
Hall光透射模型是在Whitted光透射模型基礎(chǔ)上推廣而來的。Hall光透射模型可以處理規(guī)則透射高光以及理想的漫透射。所謂理想漫透射,是指透明體的粗糙表面對透射光的作用表現(xiàn)為漫透射,透射光的光強(qiáng)在各個方向均相等。
假設(shè)Kdt為物體的漫透射系數(shù),則用Lambert余弦定律描述點P處的漫透射光的光強(qiáng)為
Idt=Ip·Kdt·(-N·L)規(guī)則透射高光是指半透明的物體,視點在透射方向附近也能見到部分透射光。在折射方向周圍形成高光域。高光光強(qiáng)計算公式如下:
It=Ip·Kt·(T·V)n
其中,Kt為物體的透明系數(shù),n為反映物體表面光澤的常數(shù)。透射光線的區(qū)域如圖8-18所示。圖8-18透射光線的區(qū)域?qū)τ贖all光透射模型,可采用下述方法減少算法的計算量:
(1)假設(shè)光源在無窮遠(yuǎn)處,則L方向為常量。
(2)假設(shè)視點在無窮遠(yuǎn)處,則V方向為常量。
(3)用(Ht·N)代替(T·V),其中Ht為虛擬理想透射面法向向量,該法向向量使視線為光線的折射方向。
在使用Hall光透射模型時,只有視點與光源在透明體兩側(cè)時,才能透過透明體看到透射高光。這時不考慮光線射入透明體時的折射。對于折射有一個全反射臨界角現(xiàn)象:當(dāng)光線從高密介質(zhì)射向低密介質(zhì)、入射角大于臨界角時,不再發(fā)生折射,只有內(nèi)部反射。臨界角可采用下式進(jìn)行計算:
所謂的折射方向和鏡面反射方向都是相對于視線而言的,它們實際上是使視線在折射方向和反射方向的入射光方向,但方向與光轉(zhuǎn)播的方向相反。
8.6光線跟蹤算法
8.6.1算法原理
光線跟蹤算法是真實感圖形學(xué)中的主要算法之一,該算法具有原理簡單、實現(xiàn)方便和能夠生成各種逼真的視覺效果等突出的優(yōu)點。1968年AppleA研究隱藏面消除算法時,就給出了光線跟蹤算法的描述。1979年Kay和GreeNberg的研究考慮了光的折射。1980年Whitted提出了第一個整體光照Whitted模型,并給出一般性光線跟蹤算法的范例,綜合考慮了光的反射、折射、陰影等。光線跟蹤的基本原理是:由光源發(fā)出的光到達(dá)物體表面后,產(chǎn)生反射和折射,簡單光照明模型和光透射模型模擬了這兩種現(xiàn)象。在簡單光照明模型中,反射被分為理想漫反射和鏡面反射。在簡單光透射模型中,把透射光分為理想漫透射光和規(guī)則透射光。由光源發(fā)出的光稱為直接光,物體對直接光的反射或折射稱為直接反射和直接折射。相對地,把物體表面間對光的反射和折射稱為間接光、間接反射、間接折射。這些是光線在物體之間的傳播方式,是光線跟蹤算法的基礎(chǔ)。最基本的光線跟蹤算法是跟蹤鏡面反射和折射。從光源發(fā)出的光遇到物體的表面,發(fā)生反射和折射,光就改變方向,沿著反射方向和折射方向繼續(xù)前進(jìn),直到遇到新的物體。但是光源發(fā)出光線,經(jīng)反射與折射,只有很少部分可以進(jìn)入人的眼睛。因此實際光線跟蹤算法的跟蹤方向與光傳播的方向是相反的,即從視點出發(fā)對鏡面反射和折射光進(jìn)行跟蹤(視線跟蹤)。在光線跟蹤算法中,有如下四種光線:視線由視點與像素(x,y)發(fā)出的射線、陰影測試線物體表面上點與光源的連線以及反射光線與折射光線。
當(dāng)光線V與物體表面交于點P時,光在點P對光線V方向的貢獻(xiàn)分為三部分,把這三部分光強(qiáng)相加,就是該條光線V在P點處的總的光強(qiáng),這三部分光強(qiáng)分別是直接反射光強(qiáng)和
直接折射光強(qiáng)、反射方向上的間接光照光強(qiáng)、折射方向上的間接光照光強(qiáng)。下面分別計算這三種光強(qiáng)。
(1)由光源產(chǎn)生的直接光線照射光強(qiáng),是交點處的局部光強(qiáng),可以由下式計算:
(2)反射方向上由其他物體引起的間接光照光強(qiáng),由IsK's計算,Is通過對反射光線的遞歸跟蹤得到。
(3)折射方向上由其他物體引起的間接光照光強(qiáng),由ItK't計算,It通過對折射光線的遞歸跟蹤得到。
如圖8-19所示,通過介紹一個由兩個透明球和一個非透明物體組成的場景進(jìn)行光線跟蹤的例子,解釋光線跟蹤算法的基本過程。圖8-19光線跟蹤算法場景中包括一個點光源L、兩個透明的球體O1與O2以及一個不透明的物體O3。從視點出發(fā)經(jīng)過視屏一個像素點的視線E傳播到達(dá)球體O1,與其交點為P1。從P1向光源L作一條陰影測試線S1,其間沒有遮擋的物體,那么用局部光照明模型計算光源對P1在其視線E的方向上的光強(qiáng),作為該點的局部光強(qiáng)。同時跟蹤該點處反射光線R1和折射光線T1,它們也對P1點的光強(qiáng)有貢獻(xiàn)。在反射光線R1方向上,沒有再與其他物體相交,設(shè)該方向的光強(qiáng)為零,并結(jié)束此光線方向的跟蹤。然后跟蹤T1方向折射光線,計算該光線的光強(qiáng)貢獻(xiàn)。折
射光線T1在物體O1內(nèi)部傳播,與O1相交于點P2,由于該點在物體內(nèi)部,假設(shè)它的局部光強(qiáng)為零,同時,產(chǎn)生了反射光線R2和折射光線T2,在反射光線R2方向,繼續(xù)遞歸跟蹤計算它的光強(qiáng),這里不再繼續(xù)跟蹤計算。繼續(xù)對折射光線T2進(jìn)行跟蹤。T2與物體O3交于點P3,作P3與光源L的陰影測試線S3,沒有物體遮擋,計算該處的局部光強(qiáng),由于該物體是非透明的,可以繼續(xù)跟蹤反射光線R3方向的光強(qiáng),結(jié)合局部光強(qiáng),來得到P3處的光強(qiáng)。反射光線R3的跟蹤與前面的過程類似,算法可以遞歸地進(jìn)行下去。重復(fù)上面的過程,直到光線滿足跟蹤終止條件。這樣可以得到視屏上的一個像素點的光強(qiáng),也就是它相應(yīng)的顏色值。通過上面光線跟蹤算法基本過程的例子,可以看出,光線跟蹤算法實際上是光照明物理過程的近似逆過程,這一過程可以跟蹤物體間的鏡面反射光線和規(guī)則透射,模擬了理想表面的光傳播。
雖然在理想情況下,光線可以在物體之間進(jìn)行無限的反射和折射,但是在實際的算法進(jìn)行過程中,不可能進(jìn)行無窮的光線跟蹤,因而需要給出一些跟蹤的終止條件。在算法應(yīng)用的意義上,可以有以下幾種終止條件:
(1)該光線未碰到任何物體。
(2)該光線碰到了背景。
(3)光線經(jīng)過許多次反射和折射以后就會產(chǎn)生衰減,光線對于視點的光強(qiáng)貢獻(xiàn)很小(小于某個設(shè)定值)。
(4)光線反射或折射次數(shù)即跟蹤深度大于一定值。
光線跟蹤的方向與光傳播的方向相反,從視點出發(fā),對于視屏上的每一個像素點,從視點作一條到該像素點的射線,調(diào)用該算法函數(shù)就可以確定這個像素點的顏色。
光線跟蹤算法的優(yōu)點是:
(1)真實感強(qiáng)。光線跟蹤算法考慮了環(huán)境中各物體之間的反射影響,因此,其場景的真實感很強(qiáng)。
(2)在光線跟蹤過程中自然實現(xiàn)了消隱。
(3)可實現(xiàn)陰影效果。光線跟蹤從表面上一點向光源發(fā)射一條陰影探測線,如果該光線在到達(dá)光源之前與場景中的任意不透明面相交,則該點處于陰影中,反之不然。
(4)由于光線跟蹤算法中各條光線的處理過程可獨立進(jìn)行,因此,光線跟蹤算法可并行實現(xiàn)。
光線跟蹤算法的主要缺點是:
(1)算法的計算量非常大,顯示速度慢。
(2)光線跟蹤算法依賴視點,當(dāng)視點改變時需要重新計算。8.6.2光線與物體求交
光線跟蹤算法中需要用到大量的求交運算,因而求交運算的效率對于整個算法的效率影響很大。光線與物體的求交是光線跟蹤算法的核心。球是光線跟蹤算法中最常用的體素,由于很容易進(jìn)行光線與球的相交判斷,因此,球又常常用來作為復(fù)雜物體的包圍盒。
1.光線與球相交
假設(shè)(x0,y0,z0)為光線的起點坐標(biāo),(xd,yd,zd)為光線的方向,且已經(jīng)單位化。(xc,yc,zc)為球心坐標(biāo),R為球的半徑,這些是求交運算的條件。由起點發(fā)出的光線參數(shù)方程如下:
球面的隱式方程:
(x-xc)2+(y-yc)2+(z-zc)2=R2
將光線的參數(shù)代入球面的隱式方程有:解方程,得
當(dāng)B2-4C<0時,光線與球無交;
當(dāng)B2-4C=0時,光線與球相切,t=-B/2;
當(dāng)B2-4C>0時,光線與球有兩個交點。
經(jīng)上式判斷后,有交點時,計算t的值,若t<0,交點無效,否則,將解得的t代入光線的參數(shù)方程,可求得交點坐標(biāo)(xi,yi,zi),則交點處的法向量為上述通過聯(lián)立方程求交點的方法稱為代數(shù)法。代數(shù)法求交點和法向量總共需要17次加減運算、17次乘法運算、1次開方運算和3次比較操作。
除代數(shù)法求交點外,還可以采用幾何法求交點。幾何法求交示意圖如圖8-20所示。圖8-20幾何法求交示意圖幾何法求交點的基本步驟如下:
(1)計算光線起點到球心的距離平方。
由上式計算得到起點到球心的距離平方,則
當(dāng) 時,光線的起點在球內(nèi),光線與球有且僅有一個交點;
當(dāng) 時,光線的起點在球外,光線與球有兩個交點或一個切點或沒有交點。
(2)計算光線起點
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年09月江蘇張家港農(nóng)商銀行網(wǎng)絡(luò)金融總部招考筆試歷年參考題庫附帶答案詳解
- 城市規(guī)劃中的交通運輸影響分析
- 2024年09月江蘇2024年蘇州金融租賃校園招考筆試歷年參考題庫附帶答案詳解
- 2025版汽車租賃服務(wù)合同4篇
- 二零二五年度高質(zhì)量防火門采購專項合同2篇
- 焊接煙塵凈化器行業(yè)行業(yè)發(fā)展趨勢及投資戰(zhàn)略研究分析報告
- 七年級語文下冊第二單元6老山界作業(yè)課件新人教版2
- 522人體的呼吸(第二課時)(課件)八年級科學(xué)上冊(華東師大版)
- 學(xué)習(xí)計劃真的很重要
- 二零二五版貨款擔(dān)保合同風(fēng)險控制協(xié)議3篇
- 2025屆北京巿通州區(qū)英語高三上期末綜合測試試題含解析
- 公婆贈予兒媳婦的房產(chǎn)協(xié)議書(2篇)
- 煤炭行業(yè)智能化煤炭篩分與洗選方案
- 2024年機(jī)修鉗工(初級)考試題庫附答案
- Unit 5 同步練習(xí)人教版2024七年級英語上冊
- 矽塵對神經(jīng)系統(tǒng)的影響研究
- 分潤模式合同模板
- 海南省汽車租賃合同
- 2024年長春醫(yī)學(xué)高等??茖W(xué)校單招職業(yè)適應(yīng)性測試題庫必考題
- (正式版)SHT 3046-2024 石油化工立式圓筒形鋼制焊接儲罐設(shè)計規(guī)范
- 2023年山東濟(jì)南市初中學(xué)業(yè)水平考試地理試卷真題(答案詳解)
評論
0/150
提交評論