Преобразование ортогональной камеры в перспективный OpenGL - PullRequest
0 голосов
/ 23 апреля 2011

У меня проблемы с преобразованием ортогональной камеры в перспективную с использованием OpenGL.В настоящее время у меня есть ортогональная камера, следующая за средней точкой двух объектов, с использованием:

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0,_winWidth,0,_winHeight,150,-150);
glTranslated(-_middlePoint[0]+_winWidth/2, -_middlePoint[1]+_winHeight/2, 0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

Приведенный выше код работает отлично, теперь я пытаюсь использовать его следующим образом:

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0, _winWidth/_winHeight, 1.0, 1000.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(0, 0, 800, _middlePoint[0], _middlePoint[1], 50, 0, 0, 1);
glLoadIdentity();

А у меня просто черный экран.Какие-нибудь мысли?Я попытался изменить вектор повышения с 0,0,1 до 0,1,0, и он остался прежним.

Любая помощь приветствуется.

1 Ответ

1 голос
/ 23 апреля 2011

Если у вас уже есть код, работающий с использованием glOrtho, вы обычно можете переключиться на перспективную проекцию, просто изменив ее на glFrustum. Если вы пишете новый код, gluPerspective и gluLookat могут быть проще, но для кода, который уже работает с использованием ортографической проекции, легко переключиться на перспективу, просто вызвав glFrustum с теми же параметрами.

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