共享不同着色器的着色器位置

时间:2013-12-25 01:39:59

标签: opengl

我有两个不同的着色器:

in vert;

in vert;
in text;

当我致电glGetAttribLocation(program, "vert")时,我会从两个着色器获得相同的位置吗? 每当我可以使用第二个着色器时,我可以使用第一个着色器吗?

1 个答案:

答案 0 :(得分:3)

如果您没有明确指定属性位置,GL将使用任意映射。 (我在至少一个实现中看到了字母排序,但规范并不能保证任何内容。)

如果您需要可靠的属性位置,则可以明确指定它们。使用glBindAttribLocation(必须在链接之前完成,因为属性位置是在链接时确定的),或者直接在着色器源(GL_ARB_explicit_attrib_location)中通过layout(location=...)限定符指定位置在声明输入时。后一条路径可用于GLSL 3.30。