Использование glLoadMatrixf с моей собственной матрицей - PullRequest
2 голосов
/ 23 июля 2011

У меня есть простой цикл рисования, где я манипулирую камерой, используя glRotatef и glTranslatef, затем пытаюсь нарисовать объект с помощью собственной матрицы вместо использования команд gl *

, например,

* 1004.*

Матрица из mapObject выглядит следующим образом:

        float m[] = { 1.0f, 0.0f, 0.0f, 0.0f,
                0.0f, 1.0f, 0.0f, 0.0f,
                0.0f, 0.0f, 1.0f, 0.0f,
                0.0f, 0.0f, -10.0f, 1.0f };

Рисуется, как и ожидалось, с моделью 10.0f, но когда я использую glLoadMatrix, я теряю контроль над камерой, вид фиксируется вначальное состояние.Этого не происходит, когда я перемещаю объект с помощью glTranslate, все работает нормально, и камера все равно будет смотреть вокруг.Из того, что я понимаю, вызов glLoadMatrix должен применяться только к верхней матрице в стеке, поэтому он не должен влиять на матрицу камеры.

Есть идеи?: (

Спасибо за помощь

1 Ответ

7 голосов
/ 23 июля 2011

glLoadMatrix назначает вашу матрицу на вершину стека.Что вы хотите сделать, это умножить вашу матрицу на матрицу в верхней части стека.Для этого используйте glMultMatrix.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...