2011-01-03 5 views
0

Недавно мой босс сказал мне изменить приложение opengl. Он использует gluLookAt для установки положения камеры. Мне нужно было бы нарисовать панель относительно этой позиции, чтобы пользователь всегда мог ее видеть.отрисовать относительно позиции камеры

Я почти полный новичок в openGL, поэтому я не знаю, что было бы проще, делая все переводы и вращения самостоятельно, чтобы я мог нарисовать объект в объективе камеры или использовать матрицы проекции и представления ? Мне удалось получить проекцию и просмотреть матрицы с помощью команды glGetFloatv, но, честно говоря, я понятия не имею, как использовать их для создания желаемых преобразований. Я мог бы просто использовать основные команды перевода и вращения, но я думаю, что использование этих матриц было бы проще.

Я бы благодарен за любой ответ :)

+0

BTW- technicaly, вы не хотите, чтобы сделать «относительно положения камеры». Вы хотите сделать наоборот: рисовать на том же месте экрана, независимо от того, где находится камера. – Kos

ответ

4

Что может быть проще, вместо того, чтобы это изменить проекцию и видовые матрицы после нанесения 3D сцены. Измените матрицу проекции на glOrtho2D и модельное представление, чтобы оно масштабировалось, чтобы соответствовать экрану, а затем нарисовать панель инструментов. Смотрите ответы здесь конкретики:

Opengl drawing a 2d overlay on a 3d scene problem

+1

Thx :), вот что мне нужно. У меня также был некоторый успех с помощью команды glLoadIdentity. Все, что мне нужно было сделать, - это нажать текущую матрицу в стек, загрузить идентификационную матрицу, выполнить некоторые преобразования, нарисовать что-нибудь и затем загрузить исходную матрицу из стека. Я не знаю, будет ли это хорошим решением, продолжит поиск. – itd

Смежные вопросы