glUniformLocation returns -1

glUniformLocation returns -1

我正在尝试使用

将模型矩阵统一到顶点着色器中
glUniformMatrix4fv(glGetAttribLocation(shaderProgram, "modelMatrix"),
    1, GL_FALSE, glm::value_ptr(objmesh[0]->modelMatrix));

但是我用这个的时候模型不显示。我用过

int location = glGetAttribLocation(shaderProgram, "modelMatrix");

找到位置但它只有 returns -1。我还尝试在顶点着色器中使用手动制作的矩阵(作为单位矩阵),当我这样做时它起作用了。我已经对另一个着色器做了同样的事情,只是一个不同的程序。

objmesh 只是一个 std::vector,它包含一个结构,其中包含网格的顶点、uvs 等等。到目前为止,modelMatrix 只是一个单位矩阵。

我像这样在顶点着色器中统一矩阵:uniform mat4 modelMatrix;

解决了:我不小心用了 glGetAttribLocation 而不是 glGetUniformLocation