OpenGl: выяснение вашей текущей позиции - PullRequest
2 голосов
/ 12 декабря 2010

Правильно представьте, что у вас 0,1,0 или даже куб. Затем вы поворачиваете 45% (glRotatef), затем перемещаете этот объект вперед (glTranslate 0,0,10), чтобы вы перемещали этот объект 10 вперед.

Как вы можете получить положение этих объектов?

Ответы [ 2 ]

3 голосов
/ 12 декабря 2010

Похоже, вы хотите использовать функцию gluProject из библиотеки GLu (поставляется с OpenGL).

3 голосов
/ 12 декабря 2010

Вы можете объединить преобразования в одну матрицу, а затем применить это к любой точке, чтобы дать вам свое мировое положение. Вы можете сделать это, запросив текущую матрицу (после применения всех ваших вращений, сдвигов и масштабирования) и используя это для применения преобразований к произвольным точкам.

Обратите внимание, что при использовании glRotatef и glTranslatef` вы используете непосредственный режим и API старого стиля. Современное использование OpenGL заставляет вас создавать матрицы и отправлять их в шейдеры для применения преобразований от объекта к мировым координатам. Таким образом, у вас уже была бы матрица для преобразования объекта в мир.

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