http://www.opengl.org/sdk/docs/man/xhtml/gluLookAt.xml - исходя из этого я понял, что gluLookAt домножает текущую матрицу на такую
(слева направо) координаты вектора оси x 0
(слева направо) координаты вектора оси y 0
(слева направо) координаты вектора оси z 0
0 0 0 1
и еще потом
glTranslated(-eyex, -eyey, -eyez);
Вопроса 2:
1) почему координаты векторов осей записываются в строчку (тогда как мы знаем, что в GL_MODELVIEW они записываются в столбец)?
2) почему выполняется трансляция с отрицательными координатами наблюдателя?
Примечание:
Яник,
Спасибо! Со 2м пунктом разобрались. То такое не подходит для 1) вопроса, поскольку в матрице меняется роль столбцов и строк.
Примечание:
Дополнение #1(Яник)
Вопрос в том, почему gluLookAt строит транспонированную матрицу? ведь если придерживаться правилу строения матриц в OpenGL, то должно быть так:
x_1 y_1 z_1 0
x_2 y_2 z_2 0
x_3 y_3 z_3 0
0 0 0 1
Где x_1, x_2, x_3 - координаты вектора оси x (y и z аналогично)
Примечание:
Спасибо огромное, Яник!! Теперь все стало понятно.
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.