GLSL - 片段着色器 - 每个三角形都有不同的颜色

时间:2014-01-05 03:53:44

标签: opengl glsl fragment-shader mouse-picking

我想写一个着色器程序,它会以不同的颜色渲染网格的每个三角形(所以我可以选择一个三角形)。我尝试使用gl_PrimitiveID,但它总是返回0,例如:

#version 330

out uvec3 FragColor;

void main()
{
    FragColor = uvec3(0.0, 0.0, gl_PrimitiveID);
}

此着色器始终呈现黑色。

1 个答案:

答案 0 :(得分:4)

为了以最简单的方式实现您想要的效果,我会将其他顶点数组作为包含每个三角形颜色的颜色属性传递到顶点着色器中。然后将其作为变量输出传递到您的片段着色器中。就是这样。这样您就可以准确指定颜色对于每个顶点。