Gouraud著色法

Gouraud著色法

Gouraud著色法是計算機圖形學中的一種插值方法,可以為多邊形格線表面生成連續的明暗變化。實際使用時,通常先計算三角形每個頂點的光照,再通過雙線性插值計算三角形區域中其它像素的顏色。

簡介

Gouraud著色法的名稱來自於發明者亨利·高洛德(英語:Henri Gouraud (computer scientist))(法語:Henri Gouraud),因此又稱高洛德著色法或高氏著色法。

在頂點著色器中實現的馮氏光照模型,稱為Gouraud著色,這種著色中引入環境光(Ambient),漫射光(Diffuse)和鏡面光(Specular).物體表面的材質對這三種光的反射量以及光源本身的強度來影響最終的顏色,這種著色方式是逐個頂點的去計算著色的,計算的過程是放在了頂點著色器中的。就比如說我在頂點著色器中計算出了顏色值,傳入到片元著色器中,然後比如說我設定了三個點,三個點都設定了顏色,然後比如說我要填充為三角形。

這樣的話三角形片段的顏色然後再進行插值運算。渲染出來。這樣的效率其實是高的,因為只是針對每個頂點做一次計算。

但是這種方式在旋轉的時候回出現一些閃爍效果如圖二所示。原因就是在於三角形之間是不連續的,這種不連續則是由於顏色值在空間中進行的線性插值而導致的,也就是說會根據該像素周圍的頂點來插值計算像素的最終顏色,所以會導致三角形之間有縫隙。所以我們可以考慮Phong著色方式。

與其它著色法的比較

Gouraud著色法的效果優於平直著色法,所需的處理也比Phong著色法少,但缺點是著色後仍然可以看出一個個小平面的效果。

與Phong著色法相比,Gouraud著色法的長處和短處都在於插值。計算單點光照是相對昂貴的操作,如果格線在螢幕空間所覆蓋的像素數量比它本身的頂點數目多,那么計算插值顯然要比像Phong著色法一樣對每個像素都計算一遍光照要高效。然而,渲染一些與位置相關的光照效果(比如高光)時,得到的效果就會有問題。如果在多邊形的中心有高光,而且這個高光沒有擴散到該多邊形的任何頂點,使用Gouraud著色法就不會渲染出任何效果;而如果正好是多邊形的頂點上有高光,那么這個點上的高光是正確的,但插值會導致高光以很不自然的形式擴散到相鄰的多邊形上。

相關詞條

相關搜尋

熱門詞條

聯絡我們