ГлюСферы выглядят продолговатыми - PullRequest
0 голосов
/ 21 декабря 2011

Мне кажется, что та же самая проблема упомянута здесь (поиск "why are my spheres distorted when they get near the edge of the window?", поскольку здесь много неуместного обсуждения). Решением в этой ссылке было резкое уменьшение FOV до 10, что, кажется, делает мою сцену довольно мелкой в ​​направлении z. Кто-то еще упомянул, что соотношение сторон может быть отключено, но я не совсем уверен в этом:

gluPerspective(60, (GLfloat)width / (GLfloat)height, 1, -200);

В любом случае, в поле зрения 60 моя сцена выглядит так:

boo

Изменение на 45 помогает, но сферы по-прежнему выглядят искаженными по краям. Почему это? Это искажение неизбежно?

1 Ответ

2 голосов
/ 21 декабря 2011

Почему это?

Так работает аффинная перспективная проекция.

Это искажение неизбежно?

В случае аффинной проекции да.

Однако, используя вершинный шейдер, вы можете реализовать проекции на основе углов. Однако те требуют, чтобы геометрия была достаточно тесселяльной. Длинные прямые края (как у вашего фона) должны быть разбиты. Шейдер тесселяции может помочь. Другим способом является рендеринг в карту куба 5 квадратичных изображений с углом обзора 90 °, а затем нарисуйте из этой карты куба угловую проекцию.

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