Ортогональный & amp; Перспективная проекция OpenGL

Я использую фрагмент кода ниже, чтобы переключаться между ортогональной и перспективной проекциями на основе выбора пользователя. Однако независимо от выбора пользователя представленная модель всегда находится в ортогональной проекции. Не могли бы вы дать мне знать, что мне здесь не хватает.

ортогональный

перспективы

Как видно выше, перспективная проекция, полученная в настоящее время, является просто увеличенной версией ортогональной проекции.

Спасибо.

float fov = 10.0;
float Oleft = -1.0, Oright = 1.0, Obottom = -1.0, Otop = 1.0;

glMatrixMode(GL_PROJECTION);
glLoadIdentity();

if(proj_type==0)
gluPerspective(fov, 1, 0.1, 200);
else
glOrtho(Oleft, Oright, Obottom, Otop,0.1,50);

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(10, 7, 10, 0, 0, 0, 0, 1, 0);

0

Решение

Ортогональная проекция на самом деле является перспективной с FoV = 0.0f. Понижение FoV в перспективе делает его похожим на ортогональный.

Просто пододвиньте камеру ближе и увеличьте угол обзора до 45-60 градусов.
https://www.packtpub.com/graphics/9781849691727/graphics/1727_04_24.jpg
https://drive.google.com/file/d/0B2jjLSK7_nvaVE9WUGZRenJ0bVE/view?usp=sharing

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]