В перспективной проекции матрица проекции описывает отображение из трехмерных точек в мире, которые они видят из камеры-обскуры, в двумерные точки видового экрана.
Координаты пространства глаза в усечении камеры (усеченная пирамида)) отображаются в куб (нормализованные координаты устройства).
Область просмотра перспективной проекции может быть определена с помощью 6 расстояний.
На следующих расстояниях left
, right
, bottom
и top
- расстояния от центра вида до боковых граней усеченного конуса, наближний самолет. near
и far
задают расстояния до ближней и дальней плоскостей усеченного конуса.
r = right, l = left, b = bottom, t = top, n = near, f = far
x: 2*n/(r-l) 0 0 0
y: 0 2*n/(t-b) 0 0
z: (r+l)/(r-l) (t+b)/(t-b) -(f+n)/(f-n) -1
t: 0 0 -2*f*n/(f-n) 0
Если проекция симметрична, где линия визирования является осью симметрии усеченного вида, томатрица может быть упрощена и может быть задана углом поля зрения (fov_y
), соотношением сторон (w / h
) и двумя расстояниями до ближней и дальней плоскости
a = w / h
ta = tan( fov_y / 2 );
2 * n / (r-l) = 1 / (ta * a)
2 * n / (t-b) = 1 / ta
(r+l)/(r-l) = 0
(t+b)/(t-b) = 0
. Таким образом,Симметрично перспективная проекция:
x: 1/(ta*a) 0 0 0
y: 0 1/ta 0 0
z: 0 0 -(f+n)/(f-n) -1
t: 0 0 -2*f*n/(f-n) 0