2011-11-08 19 views
-1

我想陰影球體。我計算了球體每個頂點的法線,但我不明白這些方面上的其他像素是如何着色的。對此有何幫助?我正在使用OpenGL 3+。使用高羅德陰影爲球體着色

+2

向我們展示您的代碼和您的問題。基本上,角落處計算的顏色將簡單地插值在曲面上。 – Bart

+0

「我不明白小平面上的其他像素是如何着色的。」你想如何遮蔽他們? –

回答

2

對於Gouraud着色,照明模型以三角形的每個頂點計算(作爲顏色),然後在三角形像素上進行線性插值。

在OpenGL中,您可以簡單地計算頂點着色器中每個頂點的ligthting模型,作爲變化傳遞給片段着色器的顏色矢量,然後線性插值將自動「免費」完成。

如果您想要Phong着色,您可以直接將頂點法線傳遞給片段着色器,該着色器也將自動線性插值,然後使用此插值法線計算片段着色器中的光照模型。

+0

這就是我不知道>>「線性插值自動完成」免費「。」所以基本上爲了陰影,我不會惹上主代碼,我只需要編輯* .vert和* .frag文件? –

+0

禁用此插值的唯一方法是使用較舊的OpenGL兼容性配置文件啓用glShadeModel(GL_FLAT)。不,你可以在除了上面的着色器中做所有的事情。 – Blackhex