鏡面反射分量
標(biāo)準(zhǔn)光照方程的鏡面反射分量指由光源直接經(jīng)物體表面反射入眼睛的光線,如圖 15.10:

n為表面法向量
v指向觀察者
l指向光源,對(duì)方向光源,l為定值
r為鏡像向量,即l對(duì)n鏡像之結(jié)果
θ為r和v的夾角,由r.v給出,描述鏡像的方向性。
鏡面反射使物體看上去有光澤,粗糙表面因反射率不高,所以缺乏此類效果。鏡面反射的強(qiáng)度取決于物體、光源和觀察者。
所有向量均為單位向量,如圖15.11所示,r由2(n.l)n
- l給出。

下列等式給出鏡面反射的Phong模型:

mgls為材料的光澤度,也稱作Phong指數(shù),它控制亮斑的范圍,小的mgls帶來大而平滑的光斑,大的mgls帶來小而亮的光斑。完全的反射面,如玻璃,有非常大的mgls----只有反射光進(jìn)入眼睛,不完全光反射面,如蘋果的表面,有較大的亮斑。
另一個(gè)有關(guān)亮度的值為mspec,即材料的反射顏色,對(duì)整個(gè)材料來說一般是一個(gè)不變的灰度值。mgls控制光斑的大小,mspec控制光斑的強(qiáng)度。強(qiáng)反射面有大的mspec值,粗糙些的表面則有較小的mspec值。如果你愿意,可用一個(gè)光澤圖控制物體的反射,如同紋理控制物體顏色一樣。
sspec是光源的鏡面反射顏色,控制光本身的色彩與強(qiáng)度。對(duì)于方形聚光燈,此值可能來自投影光照面。sspec常等于光的漫反射顏色sdiff。
圖15.12顯示了mgls和mspec如何影響物體的鏡面反射。圖中,mspec從最左列到最右列由黑至白變化,而指數(shù)mgls在上方第一行最大,向下遞減。注意到,最左面一列的頭像看上去一樣,因?yàn)殓R面反射強(qiáng)度為0,對(duì)光照沒有任何貢獻(xiàn)。

如果觀察者離物體的距離遠(yuǎn)大于物體的尺寸,可以僅計(jì)算v一次,然后認(rèn)為它對(duì)整個(gè)物體是一個(gè)常量,同樣道理對(duì)光源和l也適用。(其實(shí)對(duì)平行光源,l本身就是固定的。)但由于n是變化的,仍需計(jì)算r----這是一個(gè)應(yīng)該盡量避免的計(jì)算。Blinn模型通過計(jì)算一個(gè)稍微不同的角度來避免這個(gè)計(jì)算。如圖15.13所示:

Blinn模型使用h,表示v、l的中間量,由標(biāo)準(zhǔn)化v、l的平均值求得:
h = (v + l) / ||v + l||
公式15.9 Blinn模型中間向量h的計(jì)算
Blinn模型和Phong模型一樣,只不過θ表示n與h的夾角:

此方程便于硬件的實(shí)現(xiàn),特別是當(dāng)光源與觀察者均遠(yuǎn)離物體時(shí),此時(shí)h被視為常數(shù)僅需計(jì)算一次。我們忽略的一個(gè)細(xì)節(jié)是有時(shí)cosθ小于0,此時(shí)簡單地令鏡面反射為0即可。
漫反射分量
與鏡面反射類似,漫反射分量也刻畫直接照射物體的光線。漫反射反映的是散開的隨機(jī)方向上的反射,這是由物體表面的粗糙引起的,相反鏡面反射則反映良好的反射。圖15.14比較了良好反射表面和粗糙表面。

漫反射不依賴于視點(diǎn)位置,因?yàn)樗旧砭褪请S機(jī),光源與物體的相對(duì)位置反而顯得更重要。例如:若假定光線射入眼睛的幾率一定,則由于垂直于光線的面在單位面積受光多于一個(gè)斜射的面,因?yàn)槿肷溲劬Φ墓饩€更多,如圖15.15所示:

注意上述兩種情況中,光線間的垂直距離都相等。(由于錯(cuò)覺,右邊的也許顯得遠(yuǎn)些,但量一下,你就發(fā)覺實(shí)際情況了。)然而,注意右面的圖,其命中目標(biāo)時(shí)分得更開些,那么單位面積接受的光線將少些。從圖上的示點(diǎn)線可看出左邊受光9個(gè)單位,而右邊只有6個(gè)單位,盡管二者面積一樣。這正是赤道氣候比兩極暖和的原因,因?yàn)榈厍蚴菆A的,太陽光在赤道有較直接的照射。
漫反射光服從Lambert法則:反射光強(qiáng)正比于法向量與光線夾角的余弦,用點(diǎn)乘計(jì)算余弦,如下:

n為表面法向量,l為指向光源的單位向量,mdiff為材料的散射色,即多數(shù)人認(rèn)同的材料顏色。材質(zhì)多來自紋理圖,sdiff為光源散射色,一般和光源鏡面色sspec一致。與鏡面反射類似,這里也要防止點(diǎn)積出現(xiàn)負(fù)值,免得物體從背后透光。
環(huán)境光分量
鏡面反射和漫反射都是刻畫光源經(jīng)物體反射后進(jìn)入眼中的光線,但現(xiàn)實(shí)世界中,光線也經(jīng)常在經(jīng)歷多于一次的反射后進(jìn)入眼睛。好比你在黑暗的廚房打開冰箱,整個(gè)房間都會(huì)變得亮些,盡管箱門(或你的身體)擋住了大部分直線光。
描述這類反射,我們可用環(huán)境光,環(huán)境光取決于材質(zhì)和全局環(huán)境光,此時(shí)沒有涉及任何光源。下面的公式計(jì)算環(huán)境光:

mamb為材質(zhì)的環(huán)境光分量,它總是等于漫反射分量----由紋理圖定義,gamb為整個(gè)場景的環(huán)境光值。