• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            天行健 君子當自強而不息

            3D圖形數學(4)

             

            鏡面反射分量

            標準光照方程的鏡面反射分量指由光源直接經物體表面反射入眼睛的光線,如圖 15.10:

            n為表面法向量

            v指向觀察者

            l指向光源,對方向光源,l為定值

            r為鏡像向量,即ln鏡像之結果

            θ為rv的夾角,由r.v給出,描述鏡像的方向性。

            鏡面反射使物體看上去有光澤,粗糙表面因反射率不高,所以缺乏此類效果。鏡面反射的強度取決于物體、光源和觀察者。

            所有向量均為單位向量,如圖15.11所示,r由2(n.l)n - l給出。

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

            mgls為材料的光澤度,也稱作Phong指數,它控制亮斑的范圍,小的mgls帶來大而平滑的光斑,大的mgls帶來小而亮的光斑。完全的反射面,如玻璃,有非常大的mgls----只有反射光進入眼睛,不完全光反射面,如蘋果的表面,有較大的亮斑。

            另一個有關亮度的值為mspec,即材料的反射顏色,對整個材料來說一般是一個不變的灰度值。mgls控制光斑的大小,mspec控制光斑的強度。強反射面有大的mspec值,粗糙些的表面則有較小的mspec值。如果你愿意,可用一個光澤圖控制物體的反射,如同紋理控制物體顏色一樣。

            sspec是光源的鏡面反射顏色,控制光本身的色彩與強度。對于方形聚光燈,此值可能來自投影光照面。sspec常等于光的漫反射顏色sdiff

            圖15.12顯示了mglsmspec如何影響物體的鏡面反射。圖中,mspec從最左列到最右列由黑至白變化,而指數mgls在上方第一行最大,向下遞減。注意到,最左面一列的頭像看上去一樣,因為鏡面反射強度為0,對光照沒有任何貢獻。

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

            Blinn模型使用h,表示vl的中間量,由標準化vl的平均值求得:

            h = (v + l) / ||v + l||

            公式15.9   Blinn模型中間向量h的計算

            Blinn模型和Phong模型一樣,只不過θ表示nh的夾角:

            此方程便于硬件的實現,特別是當光源與觀察者均遠離物體時,此時h被視為常數僅需計算一次。我們忽略的一個細節是有時cosθ小于0,此時簡單地令鏡面反射為0即可。

             

            漫反射分量

            與鏡面反射類似,漫反射分量也刻畫直接照射物體的光線。漫反射反映的是散開的隨機方向上的反射,這是由物體表面的粗糙引起的,相反鏡面反射則反映良好的反射。圖15.14比較了良好反射表面和粗糙表面。

            漫反射不依賴于視點位置,因為它本身就是隨機,光源與物體的相對位置反而顯得更重要。例如:若假定光線射入眼睛的幾率一定,則由于垂直于光線的面在單位面積受光多于一個斜射的面,因為入射眼睛的光線更多,如圖15.15所示:

            注意上述兩種情況中,光線間的垂直距離都相等。(由于錯覺,右邊的也許顯得遠些,但量一下,你就發覺實際情況了。)然而,注意右面的圖,其命中目標時分得更開些,那么單位面積接受的光線將少些。從圖上的示點線可看出左邊受光9個單位,而右邊只有6個單位,盡管二者面積一樣。這正是赤道氣候比兩極暖和的原因,因為地球是圓的,太陽光在赤道有較直接的照射。

            漫反射光服從Lambert法則:反射光強正比于法向量與光線夾角的余弦,用點乘計算余弦,如下:

            n為表面法向量,l為指向光源的單位向量,mdiff為材料的散射色,即多數人認同的材料顏色。材質多來自紋理圖,sdiff為光源散射色,一般和光源鏡面色sspec一致。與鏡面反射類似,這里也要防止點積出現負值,免得物體從背后透光。

             

            環境光分量

            鏡面反射和漫反射都是刻畫光源經物體反射后進入眼中的光線,但現實世界中,光線也經常在經歷多于一次的反射后進入眼睛。好比你在黑暗的廚房打開冰箱,整個房間都會變得亮些,盡管箱門(或你的身體)擋住了大部分直線光。

            描述這類反射,我們可用環境光,環境光取決于材質和全局環境光,此時沒有涉及任何光源。下面的公式計算環境光:

            mamb為材質的環境光分量,它總是等于漫反射分量----由紋理圖定義,gamb為整個場景的環境光值。


            posted on 2008-03-07 09:55 lovedday 閱讀(1022) 評論(1)  編輯 收藏 引用

            評論

            # re: 3D圖形數學(4) 2008-11-30 22:26 JHWAA

            你好,我是其他編程語言的,關于3D的算法在這里看了很多遍,說的很有價值,但是在學習中對一些運算符號還是不能理解,例如:圓里帶X的符號是相乘的意思嗎?
            Blinn公式里也是霧水,它的意思是否是:COSa乘S乘M????Mgts是
            COSa的幾次方嗎? 請教一下,可以幫助做一些結實嗎?謝謝,不勝感激

              回復  更多評論   

            公告

            導航

            統計

            常用鏈接

            隨筆分類(178)

            3D游戲編程相關鏈接

            搜索

            最新評論

            亚洲精品美女久久久久99小说 | 亚洲精品国产成人99久久| 亚洲а∨天堂久久精品9966| 国产亚洲精午夜久久久久久| 久久综合中文字幕| 国产精品久久久久9999高清| 精品久久一区二区三区| 久久66热人妻偷产精品9| 东京热TOKYO综合久久精品| 97久久精品国产精品青草| 久久无码av三级| 久久久久国产精品嫩草影院| 久久久久国产成人精品亚洲午夜| 午夜精品久久久久久影视777| 久久综合亚洲鲁鲁五月天| 精品国产99久久久久久麻豆| 国产精品美女久久久久久2018| 精品久久久久久亚洲精品| 久久国产精品99精品国产987| 久久久久18| 人妻丰满AV无码久久不卡| 69久久夜色精品国产69| 久久精品一区二区三区中文字幕 | 香蕉久久av一区二区三区| 国产精品久久午夜夜伦鲁鲁| 国产激情久久久久影院老熟女免费 | 久久综合综合久久狠狠狠97色88| 久久亚洲av无码精品浪潮| 天堂无码久久综合东京热| 欧美大香线蕉线伊人久久| 国产—久久香蕉国产线看观看| 少妇人妻综合久久中文字幕| 久久久久久无码Av成人影院| 久久精品国产精品亚洲人人| 久久精品国产2020| 国产69精品久久久久9999| 午夜精品久久久久久久| 久久久久国色AV免费观看| 99久久精品午夜一区二区| 日韩精品无码久久一区二区三| 精品久久久久久中文字幕|