Я пытаюсь отобразить 3D-модель с использованием OpenGL. А для матриц проекции и преобразования я использую glm. У меня есть модель на экране, и она работает так же, как я намеревался; кроме одной маленькой проблемы.Z координаты перевернуты при использовании glm
Я устанавливаю матрицу перевода в модели как
glm::translate(glm::vec3(0, 0, 4)
для перемещения модели немного вперед, так что я могу видеть это. Поскольку в OpenGL по умолчанию отрицательный z выходит в сторону «камеры», а положительный z - вперед, я ожидал, что это сработает, но это не так. Он работает только тогда, когда я установил его
glm::translate(glm::vec3(0, 0, -4)
Но это кажется странным для меня, так как я устанавливаю мой zNear
до 0,01 и zFar
1000. переворачивается значения Z GLM или я делаю что-то здесь не так?
Вот мой код:
glm::mat4 rotation = glm::mat4(1.0f);
glm::mat4 translation = glm::translate(glm::vec3(0, 0, -4));
glm::mat4 scale = glm::mat4(1.0f);
glm::mat4 modelMatrix = translation * rotation * scale;
glm::mat4 projectionMatrix = glm::perspective(70.0f, aspectRatio, 0.01f, 1000.0f);
glm::mat4 transformationMatrix = projectionMatrix * modelMatrix;
Да, оказалось, что мое предположение о положительном z на экране было неправильным. Большое спасибо за ваш ответ. –