Руководство по программированию OpenGL: Глава 3: Просмотр трансформаций: Просмотр объектов со стороны - PullRequest
0 голосов
/ 29 ноября 2011

В тексте Руководства по программированию OpenGL, в главе 3, раздел «Просмотр трансформаций», авторы предоставляют следующий код для просмотра объекта со стороны, начиная с положения камеры по умолчанию.

 glTranslatef(0.0,0.0,-5.0); 
 glRotatef(90.0,0.0,1.0,0.0); 

Когда япопробовал это с растянутым кубом, куб нарисован неправильно (я проверяю это, рисуя оси координат - код для рисования осей не включен).Однако, изменение вызова rotate на glRotatef(-90,0.0,1.0,0.0) делает правильную вещь.Есть идеи, почему это происходит?

Редактировать: Я понял это.Исходный пример рисует куб, растянутый в направлении y OpenGL в 2 раза. 'glTranslate отводит объект на 5 единиц от камеры вдоль оси z.Изображение здесь: http://i.stack.imgur.com/aHRIX.png

Наконец, glRotate поворачивает куб на 90 градусов в направлении против часовой стрелки, так что мы видим ось Z (синюю), а ось X теперь направлена ​​назадвдоль оптической оси камеры.Изображение здесь: http://i.stack.imgur.com/O74gT.png

1 Ответ

0 голосов
/ 29 ноября 2011

Поворот на 90 или -90 градусов вокруг оси Y по сути делает то же самое (единственное отличие - это направление вращения по часовой стрелке или против часовой стрелки соответственно).

Хотя преобразования аналогичны (а в случае простого куба результаты также должны быть похожими), порядок рендеринга примитивов может быть совершенно другим. Вы включили тест глубины OpenGL?

...