(Graphics pipeline에서 넘어옴)
개요
그래픽스 파이프라인이란 래스터 그래픽스에서 그래픽을 정점으로 구현된 3차원 오브젝트에서 화면에 출력되는 2D 픽셀로 변환하기 까지의 전과정을 통합하는 파이프라인을 칭한다.
출력과 결과물
대부분 입력은 primitive라 불리는 삼각형의 배열과 그 삼각형의 성질들을 나타내는 값들이 주어지고 출력은 화면 각각 픽셀에 대응하는 RGB값들이 주어진다.
파이프라인
- Modeling Transformation: 오브젝트를 적당한 위치로 변환하는 과정이다. 오브젝트는 물체 뿐만 아니라 광원, 카메라도 포함한다.
- Illumination: 광원을 설정하여 빛 효과를 주는 것이다. 물체의 머테리얼(Material)을 이용한다.
- Viewing Transformation: 카메라위치를 원점으로 하는 좌표계로 변환하는 과정이다. World space 에서 Eye space (camera space)로 전환하는 과정.
- Clipping: 카메라가 현재 담고있는 장면 바깥의 물체를 날려버리는 과정이다.
- Projection Transformation: 3D공간에서 2D공간으로 변환하는 과정이다.
- Viewport Transformation: Canonical view volume 에서 Screen space로 변환하는 과정이다.
- Rasterization: 오브젝트를 레스터화하여 픽셀들로 표현하는 과정이다.
- Display: 픽셀들을 화면에 출력하는 과정이다.
그래픽 공간
- Object space: 선택하고 있는 물체가 원점이 되는 공간
- World space: 물체들을 포함하는 월드 좌표계가 원점이 되는 공간
- Camera space: 카메라가 원점이 되는 공간
- Canonical view volume: normalized 된 단위 공간.
- Screen space: 화면에 출력하기 위한 마지막 단계
한 좌표계 에서 다른 좌표계로 변환하기
행렬 곱을 이용하면 된다. 예를 들어 월드 공간에서 스크린 공간으로 이동하기 위해서는 [math]\displaystyle{ M = M_{viewport}M_{ortho}M_{viewing} }[/math]를 적용시키면 된다.