Gouraud Shading和Phong Shading的異同點


Gouraud Shading和Phong Shading都是光照反射模型(Reflection Model),用來計算鏡面反射方向的光強。

注意,不要望文生義,認為是計算陰影的模型。

相同點:

1 二者都是明暗處理技術;

2 都要先應用多邊形的法線算出其公共頂點的法線(如下圖);

 

 

3 都應用Phong局部反射模型計算多邊形頂點處的光強(算式如下圖)。

即 反射光 = 環境光 + 漫反射 + 鏡面反射

其中環境光是一個常量,就好比將一條直線上移的截距值,基於這個基本光強,再加上漫反射和鏡面反射。

漫反射和鏡面反射是點光源在該點上的漫反射和鏡面反射。

4 都不考慮物體間的相互作用,即將物體的反射光、折射光(漫反射光實際上是上頭提到的環境光,我們將其看成常量處理,比較簡單)作為入射光強的一部分來考慮,這樣是相對不真實的情況,ray tracing會解決這一問題。

下圖為Phong局部反射模型中漫反射和鏡面反射的示意圖:

 

不同點:

Gouraud明暗處理只在多邊形頂點處采用Phong局部反射模型計算光強,而在多邊形內的其他點采用雙向線性插值,這樣做的優點是高效,但是無法很好的處理鏡面高光問題,依賴於其所在多面形的相對位置;

而Phong明暗處理,通過差值計算每個頂點的法向量(3次差值,在x,y,z三個方向分別進行差值計算),然后計算每個點上的光強值,這樣效果好,但計算復雜,需要付出比Gouraud 4-5 倍的時間。

通常,在一個比較復雜的場景中,當物體鏡面發射很微弱時,我們對其采用Gouraud明暗處理,而對於一些鏡面高光的物體,采用Phong明暗處理,這樣既保證質量,又保證速度。

下圖為Gouraud (a)和Phong (b)模型的示意圖:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM