glUniformLocation 返回 -1 [关闭]
Posted
技术标签:
【中文标题】glUniformLocation 返回 -1 [关闭]【英文标题】:glUniformLocation returns -1 [closed] 【发布时间】:2017-07-01 15:31:29 【问题描述】:我正在尝试使用
将模型矩阵统一为顶点着色器glUniformMatrix4fv(glGetAttribLocation(shaderProgram, "modelMatrix"),
1, GL_FALSE, glm::value_ptr(objmesh[0]->modelMatrix));
但是当我使用它时,模型不显示。我用过
int location = glGetAttribLocation(shaderProgram, "modelMatrix");
找到位置,但它只返回-1。我还尝试在顶点着色器中使用手动制作的矩阵(作为单位矩阵),当我这样做时它会起作用。我已经对另一个着色器做了同样的事情,只是一个不同的程序。
objmesh 只是一个 std::vector ,它包含一个带有网格顶点的结构,uvs 等等。到目前为止,modelMatrix 只是一个单位矩阵。
我像这样在顶点着色器中统一矩阵:uniform mat4 modelMatrix;
【问题讨论】:
贴出完整的顶点着色器源代码。 我发现了问题。将其发布在答案部分:) 【参考方案1】:已解决:我不小心使用了 glGetAttribLocation 而不是 glGetUniformLocation
【讨论】:
以上是关于glUniformLocation 返回 -1 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章