Я пытался обрезать изображение на своем экране, ограничив громкость просмотра с помощью glFrustum
. В официальной документации для Glfrustum
упоминается, что left, right, top, bottom, near, far
— это координаты отсечения. Я думал, что это координаты экрана, и пытался сделать:
glFrustum(100, 924, 100, 668, 3, 1000);
Вышеупомянутое ничего не показывало мне на экране. Итак, я только что посмотрел где-то и увидел следующий код (но почему эти координаты отрицательные?):
glFrustum(-1, 1, -1, 1, 0.5, 1000);
Я использовал то же самое и начал получать часть изображения на экране. В последствии я трижды возился с координатами для near
и заметил, как меняется громкость просмотра.
glFrustum(-10,10,-10,10,10,1000);
glFrustum(-100,100,-100,100,100,1000);
glFrustum(-0.5,0.5,-0.5,0.5,0.5,1000);
Все вышеперечисленное давало мне одинаковый вывод изображений на экран. Но в большинстве мест, где я наблюдал использование glFrustum, я заметил, что значения использовались где-то из [-1,1]
(например, здесь) и люди говорят о расчетах в нормализованном диапазоне. Почему важно делать расчет для left, right, bottom, top, near, far
(ближний и дальний также включены в нормализованные значения?) с точки зрения нормализованных значений? Можно ли выполнять те же операции, используя значения в экранных координатах?