Перспективная матрица, не показывающая мой объект

Обычно вы никогда не хотите явно вызвать деструктор. Просто используйте delete.

1
задан Nicol Bolas 13 July 2018 в 13:38
поделиться

1 ответ

Следуя документации glm::perspective , угол обзора должен быть в радианах не в градусах (поскольку glm версия 0.9.4 ).

Преобразовать угол от градусов к радианам:

glm::perspective(glm::radians(70.0f), aspect, 0.01f, 1000.0f);

С кодом

tmat = pmat * vmat * tmat;
glUniformMatrix4fv(uTransform, 1, GL_FALSE, glm::value_ptr(tmat));

вы постоянно соединяете матрицу вида и проекции с окончательной проекцией представления модели матрица в каждом кадре.

Измените ее на:

glm::mat4 mvp = pmat * vmat * tmat;
glUniformMatrix4fv(uTransform, 1, GL_FALSE, glm::value_ptr(mvp));
2
ответ дан Rabbid76 17 August 2018 в 12:42
поделиться
  • 1
    Я изменил строку кода на: glm :: mat4 pmat = glm :: перспектива (70.0f * 3.14159f / 180.0f, aspect, 0.01f, 1000.0f); (он указал, что M_PI не определено), однако объект все еще не отображается. – William 13 July 2018 в 13:53
  • 2
    Ключевым битом является то, что вы применяете матрицы проекции и просмотра каждого кадра. Вам нужно отделить преобразование модели от проекции и просмотра. – Julian Goldsmith 13 July 2018 в 14:11
Другие вопросы по тегам:

Похожие вопросы: