我想写一个着色器程序,它会以不同的颜色渲染网格的每个三角形(所以我可以选择一个三角形)。我尝试使用gl_PrimitiveID,但它总是返回0,例如:
#version 330
out uvec3 FragColor;
void main()
{
FragColor = uvec3(0.0, 0.0, gl_PrimitiveID);
}
此着色器始终呈现黑色。
答案 0 :(得分:4)
为了以最简单的方式实现您想要的效果,我会将其他顶点数组作为包含每个三角形颜色的颜色属性传递到顶点着色器中。然后将其作为变量输出传递到您的片段着色器中。就是这样。这样您就可以准确指定颜色对于每个顶点。