Home 래스터라이저
Post
Cancel

래스터라이저

래스터라이저 (Rasterizer)

정점 데이터의 프래그먼트(Fragment)구성하는 단계로 3D 도형을 픽셀로 변환하는 단계이다. (픽셀화 작업)
그래픽 하드웨어의 자체 알고리즘으로 동작한다. → 프로그래밍이 불가능한 고정 파이프라인 단계로 직접적으로 개임할 수 없다.
레스터라이저 단계를 거쳐 기본도형은 픽셀로 변환되며, 각 정점을 기준으로 보간이 진행된다.

1. 클리핑 (Clipping)

절두체 영역에 포함되지 않는 기본 도형을 처리하여 화면을 벗어나는 영역은 그리지 않도록 하는 단계이다.

절두체 경계에 걸쳐 있는 기본도형의 경계를 잘라내어 새로운 기본도형을 구성하고,
절두체 내부와 외부 영역을 분리하여 절두체 외부 영역은 버린다.

2. 원근 분할 (Perspective Division)

원근법을 구현하는 단계로, 투영 공간좌표의 모든 요소를 w값으로 나누어 원근법을 구현한다.
원근 분할을 마친 좌표계를 NDC(Normalized Device Coordinates)라고 한다.

NDC(Normalized Device Coordinates) 정규화된 자표계로, 3D 물체가 투영 변환을 통해 2D 공간에 변환되면서 가지는 좌표계이다. NDC 좌표계의 x, y 좌표는 모두 -1~1, z 좌표는 0~1에 위치한다.

3. 후면 컬링 (Back-face culling)

렌더링이 되지 않은 후면을 찾아내어 제거하는 단계이다.
(클리핑이 카메라에 안 보이는 부분을 자르는 과정이라면, 후면 컬링은 카메라에 보이는 영역 중 그려지지 않는 후면을 찾아 제거 하는 단계임)
View 백터와 기본도형의 Normal 백터의 내적을 계산하여 후면을 확인

4. 뷰포트 변환 (Viewport Transformation)

3D NDC 공간 상의 좌표를 2D 스크린 좌표로 변환하는 단계이다.
-1~1 범위였던 (x, y) 좌표를 화면 해상도 범위로 변환한다. → 화면상에서 점이 어느 위치에 그려져야하는지가 좌표계로 나오게 됨.

5. 스캔 변환 (Scan Transformation)

기본 도형을 통해 프래그먼트를 생성하고 프래그먼트를 채우는 픽셀들을 찾아내는 단계이다.
이 단계에서 좌표 중 어디 픽셀에 그려질지 정한다.
각 픽셀마다 정점 데이터(위치, 색상, 법선, UV)들을 보간하여 할당한다.

This post is licensed under CC BY 4.0 by the author.