【发布时间】:2011-07-08 17:17:04
【问题描述】:
当我尝试将属性绑定到索引 0 时,着色器程序无法链接,信息日志提供的唯一信息是:
顶点着色器链接失败,片段着色器链接。
根据 opengl 文档
此命令使顶点着色器可以为属性变量使用描述性名称,而不是从 0 到 GL_MAX_VERTEX_ATTRIBS -1 编号的通用变量。
所以将属性绑定到索引 0 应该可以工作。虽然它不是很重要,但我很好奇为什么我不能将属性绑定到索引 0。欢迎任何建议。
【问题讨论】:
-
您是在 before 还是 after 将顶点着色器附加到程序对象上调用
glBindAttribLocation?另外,您是否在glBindAttribLocation之后立即检查了glGetError? -
我在之后调用它。 glGetError 不返回错误。 glBindAttribLocation 适用于其他索引。 (编辑:附加后,链接前)
-
嗯听起来应该可以工作:(
-
我在另一台装有 nVidia 显卡的电脑上试了试。结果相同。这可能与我的着色器有关。如果它不是并且给您带来不便,您可以自己尝试一下,看看您是否得到相同的结果。
-
我发现了问题(这导致了其他问题):在我的顶点着色器中,我已经从使用 gl_Vertex 切换到使用我自己的属性“顶点”,但在我的着色器中的一个地方我忘记了更改变量名称,并且由于 gl_Vertex 使用 0 索引...
标签: opengl