glUniformLocation возвращает -1

Я пытаюсь унифицировать матрицу модели в вершинный шейдер, используя

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;

-2

Решение

Решено: я случайно использовал glGetAttribLocation вместо glGetUniformLocation

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]