2
我想写一个着色器程序,它将呈现不同颜色的网格的三角形(所以我可以选择一个三角形)。我尝试使用gl_PrimitiveID,但它总是返回0,例如:GLSL - 片段着色器 - 每个三角形都有不同的颜色
#version 330
out uvec3 FragColor;
void main()
{
FragColor = uvec3(0.0, 0.0, gl_PrimitiveID);
}
此着色器总是呈现黑色。
为什么使用浮点常量作为无符号整数vec3?你的GLSL编译器是否应该至少抱怨这种情况? (例如,采用2个浮点组件和一个整数的“uvec3(...)”没有超载)。对于这个问题,你是否诚实地绘制成一个整数颜色缓冲区?或者这是你试图做的一件事情,使'gl_PrimitiveID'工作? –
对不起,我的坏,gl_PrimitiveID工作正常,问题是与我的帧缓冲区。 – user1784182