Недавно я подумал, что было бы неплохо перейти от старой (устаревшей) функциональности, которую предоставляет OpenGL, например, для операций с матрицами и конвейера с фиксированной функцией.
Я использую GLM как свою матричную библиотеку, чтобы немного упростить вещи. Проблема в том, что это могло вызвать больше проблем, чем упростить...
Перспективные прогнозы отлично работали с моими шейдерами и настройками, но когда я попытался переключиться на ортогональное, все сломалось. Мои баллы и простые квадратики не отображались. Когда я использовал старые матрицы OpenGL, все снова начало работать.
Я сузил все это до матрицы проекции. Вот как я его назвал:
glm::mat4 projMat = glm::ortho( 0, 400, 0, 400, -1, 1 );
Я сравнил это с тем, который был предоставлен opengl, как только это называется "
glOrtho( 0, 400, 0, 400, -1, 1 );
Единственными отличиями являются элемент [0] [0] и [1] [1] (который, насколько я знаю, равен "2/ширина" и "2/высота" соответственно). Из матрицы OpenGL значения были именно такими! Однако на матрице glm значения были равны 0.
Как только я вручную переключил значения из матрицы glm после вызова glm:: ortho, все снова работало!
Итак, мой вопрос: действительно ли функция glm:: ortho() нарушена, или я просто неправильно ее использую?