3

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

#version 330

out uvec3 FragColor;

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

此着色器始终呈现黑色。

4

1 回答 1

4

为了以最简单的方式实现你想要的,我会将额外的顶点数组作为包含每个三角形颜色的颜色属性传递给顶点着色器。然后将它作为不同的输出传递给你的片段着色器。就是这样。这样你就可以准确地为每个顶点指定颜色.

于 2014-01-05T13:05:38.390 回答