Настройка системы координат для просмотра в перспективе?
Я понимаю концепцию системы просмотра Frustrum; он имеет форму пирамиды, и когда объекты приближаются к центру, они уменьшаются до тех пор, пока, наконец, не обрезаются. Однако при использовании проекционного просмотра, скажем, OpenGL (заголовок: я не использую устаревшие функции), вы настраиваете свою систему координат следующим образом:
orthoExample (слева, справа, снизу, сверху, близко, далеко);
Это все хорошо, но когда дело доходит до перспективы, вещи становятся немного странными.
перспективный пример (field_of_view_y, аспект, ближний, дальний);
Как мне настроить систему координат с помощью такой функции?!? Это не позволяет мне указывать левую, правую, нижнюю, верхнюю части и т. Д. Я знаю, что перспектива - это всего лишь разновидность проекции с усечением...
1 ответ
Код, найденный здесь, должен прояснить для вас.
Ось Z принимается за центр проекции. tan(fov_y)*near дает вам верх (и минус, низ). аспект - это отношение ширины к высоте, поэтому умножение сверху на аспект дает вам право, а отрицание - слева.