如何在Gouraud-shaderscript中插入颜色值



gouraud-shader计算每个三角形角的光照,并对三角形覆盖的每个像素的结果颜色进行线性插值。

如何编程这个特定的插值(在glsl代码中)?

你甚至需要自己编码吗?或者OpenGL单独插入(内部)

?

From https://www.opengl.org/wiki/Type_Qualifier_(GLSL):

插值限定符

某些输入和输出可以使用插值限定符。这些是任何值,可以作为光栅化的结果插值。这些包括:

  • 顶点着色器输出
  • 镶嵌控制着色器输入(以匹配VS)
  • 镶嵌评估着色器输出
  • 几何着色器输入(与TES/VS的输出匹配)和输出
  • 片段着色器输入

插值限定符控制值如何跨三角形或其他原语进行插值。有三个基本的插值限定符。

不插入该值。给片段着色器的值是该原语的激发顶点的值。

noperspective

该值将在窗口空间中线性插值。这通常不是你想要的,但它也有它的用处。

光滑

该值将以透视正确的方式插入。如果没有限定符,这是默认值。


因为平滑是默认的,OpenGL为你插入它。如果你不想要插值,你可以用关键字flat在着色器中定义颜色,就像这样:

flat vec3 color;

相关内容

  • 没有找到相关文章

最新更新