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
我正在尝试使用
将模型矩阵统一到顶点着色器中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