我想编写一个着色器程序,它将以不同的颜色渲染网格的每个三角形(这样我就可以选择一个三角形)。我尝试使用gl_PrimitiveID,但它总是返回0,例如:
#version 330
out uvec3 FragColor;
void main()
{
FragColor = uvec3(0.0, 0.0, gl_PrimitiveID);
}
此着色器始终渲染黑色。
最佳答案
为了以最简单的方式实现你想要的,我会将额外的顶点数组作为包含每个三角形颜色的颜色属性传递到顶点着色器中。然后将其作为变化的输出传递到片段着色器中。就是这样。这样你就可以准确指定颜色对于每个顶点。
关于opengl - GLSL - 片段着色器 - 每个三角形都有不同的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20929858/