我希望编写一个着色器程序,可以将网格中的每个三角形渲染成不同的颜色(以便我可以选择其中一个三角形)。我尝试使用gl_PrimitiveID,但它总是返回0,例如:
#version 330
out uvec3 FragColor;
void main()
{
FragColor = uvec3(0.0, 0.0, gl_PrimitiveID);
}
这个着色器总是渲染黑色。
我希望编写一个着色器程序,可以将网格中的每个三角形渲染成不同的颜色(以便我可以选择其中一个三角形)。我尝试使用gl_PrimitiveID,但它总是返回0,例如:
#version 330
out uvec3 FragColor;
void main()
{
FragColor = uvec3(0.0, 0.0, gl_PrimitiveID);
}
这个着色器总是渲染黑色。
uvec3(...)
接受2个浮点组件和一个整数)。而且,你真的要绘制到整数颜色缓冲区吗?还是这只是你尝试为了让gl_PrimitiveID
工作而做的一些hack? - Andon M. Coleman