在GLSL中编译着色器时出错

时间:2012-10-10 16:04:50

标签: glsl

除了代码之外,我想知道这个错误是什么:

two vertex attribute variables (named a and n) were assigned to the same generic vertex attribute

我在USLntu上使用Nsight在GLSL(转换反馈的实验)中编译顶点着色器时遇到的。我的意思是,这个错误的所有可能原因都是什么?

1 个答案:

答案 0 :(得分:1)

看起来您将两个不同的顶点属性绑定到OpenGL代码中的相同位置。

例如,绑定属性时通常会这样做:

glBindAttribLocation(program, 0, "AttributeName");

您必须做的是为两个属性使用相同的索引:

glBindAttribLocation(program, 0, "AttributeNameOne");
glBindAttribLocation(program, 0, "AttributeNameTwo");

生成另一个通用顶点属性位置,这应该会消失。 你可以使用你喜欢的任何非负数(在很小的范围内)。

还要记住,在链接程序之前必须调用glBindAttribLocation。