정의
투영 변환(Projection transform)은 3D 공간의 점을 2D 화면 공간(NDC)으로 변환하는 과정이다.
보통 View 공간(View Space)에서 투영 공간(Clip Space)으로 변환할 때 적용한다.
이로 인해 원근(perspective)이나 직교(orthographic)효과가 생긴다.
종류
원근 투영(Perspective Projection) : 카메라처럼 멀리 있는 물체가 작게 보인다.(원근감)
직교 투영(Orthographic Projection) : 모든 물체가 거리와 관계없이 같은 크기로 보인다.
원근 투영 행렬 (Perspective Projection Matrix, LH)
주요 파라미터
- FOV: 수직 시야각 (보통 라디안)
- Aspect Ratio: 화면 비율 (가로 / 세로)
- Near (n): 가까운 절두체 평면
- Far (f): 먼 절두체 평면
왼손 좌표계 기준 투영 행렬
P=⎣⎢⎢⎢⎢⎡aspect⋅tan(θ/2)10000tan(θ/2)10000f−nf100−f−nn⋅f0⎦⎥⎥⎥⎥⎤
특징
- Z축이 앞으로(+) 향하는 좌표계 기준에 맞게,
z 요소는 +1 (OpenGL은 -1)
- 투영된 z값은 [0, 1] 범위로 정규화된다. (NDC z 범위)
직교 투영 행렬 (Orthographic Projection Matix, LH)
주요 파라미터
- Left (l), Right (r)
- Top (t), Bottom (b)
- Near (n), Far (f)
왼손 좌표계 기준 직교 투영 행렬
P=⎣⎢⎢⎢⎡r−l20000t−b20000f−n10−r−lr+l−t−bt+b−f−nn1⎦⎥⎥⎥⎤
특징
- Z 값이 0 (near) ~ 1 (far) 로 정규화된다.(DirectX 기준)
- 직교 투영에서는 원근감 없이 평면처럼 보인다.