Я пытаюсь унифицировать матрицу модели в вершинный шейдер, используя
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;
Решено: я случайно использовал glGetAttribLocation вместо glGetUniformLocation
Других решений пока нет …