Rasterization(래스터화)은 3차원 프리미티브(삼각형, 선, 점)의 벡터 설명을 화면에 표시하기 위한 픽셀(프래그먼트) 집합으로 변환하는 프로세스입니다. Khronos Group, 2025에 따르면, 래스터화는 그래픽 파이프라인의 자동(비프로그래밍 가능) 단계로, Vertex Shader와 Fragment Shader 사이에 위치합니다. Rasterization은 화면의 어떤 픽셀이 어떤 삼각형에 속하는지 결정하고 각 프래그먼트에 대한 보간된 속성을 계산합니다.
핵심 사항
Rasterization은 기하학적 프리미티브(삼각형, 선)를 Fragment Shader에서 추가 처리하기 위한 프래그먼트 집합으로 변환하는 그래픽 파이프라인의 단계입니다. 입력 데이터는 화면 좌표의 삼각형 꼭짓점과 해당 속성(색상, 법선, UV)입니다. 출력은 보간된 속성이 있는 프래그먼트 집합입니다.
프로그래밍 가능한 셰이더(Vertex Shader 및 Fragment Shader)와 달리 래스터화는 고정(비프로그래밍 가능) 단계입니다. 개발자는 래스터화 알고리즘을 변경할 수 없지만 매개변수(컬링 모드, 선 두께, 폴리곤 오프셋, 멀티샘플링)를 제어할 수 있습니다.
거의 모든 최신 실시간 그래픽 — 게임, UI, AR/VR — 은 래스터화를 사용합니다. 이것은 가장 성능이 뛰어난 렌더링 방법으로, 60 FPS에서 프레임당 수백만 개의 삼각형을 처리할 수 있습니다. GPU 래스터라이저는 특수 ROP(렌더 출력 장치) 블록을 통해 동시에 수천 개의 삼각형을 병렬 처리하도록 최적화되어 있습니다.
삼각형 래스터화는 Vertex Shader가 꼭짓점을 화면 좌표로 변환한 후 시작됩니다. GPU는 삼각형의 세 꼭짓점을 가져와 해당 삼각형 내부에 있는 화면 픽셀을 결정합니다.
프로세스는 세 가지 순차적 단계로 구성됩니다: 픽셀 단위의 삼각형 경계 상자 결정 — 경계 상자 내 각 픽셀의 삼각형 포함 여부 확인(에지 함수) — 각 적용 픽셀에 대한 보간 속성(무게 중심 좌표) 계산. 에지 함수는 점이 삼각형 모서리의 어느 쪽에 있는지 결정하는 선형 방정식입니다.
| 단계 | 설명 | 결과 |
|---|---|---|
| 클리핑 | 뷰포트 경계 밖의 삼각형 자르기 | 가시 프리미티브 |
| 뷰포트 변환 | 화면 좌표로 변환 | 픽셀 좌표 |
| 삼각형 설정 | 에지 함수 및 경계 상자 계산 | 래스터화 매개변수 |
| 프래그먼트 생성 | 적용 범위 테스트 및 보간 | 프래그먼트 + 속성 |
Rasterization은 다양한 알고리즘으로 구현할 수 있으며, 각각 성능과 품질 간의 절충점이 있습니다. 최신 GPU는 여러 접근 방식을 조합하여 사용합니다.
초기 GPU용으로 개발된 클래식 래스터화 알고리즘입니다. 삼각형은 라인별(스캔라인)로 처리됩니다: 화면의 각 라인에 대해 삼각형의 진입 및 종료 지점이 결정되고 그 사이의 모든 픽셀이 채워집니다. 스캔라인 변환은 큰 삼각형에 효율적이지만 임의 모양의 삼각형에는 복잡한 로직이 필요합니다.
최신 GPU는 하프 스페이스 래스터화 방법을 사용합니다: 삼각형의 각 변에 대해 에지 함수가 계산됩니다 — 한쪽은 양수, 반대쪽은 음수인 선형 방정식입니다. 세 에지 함수가 모두 양수이면 픽셀이 삼각형에 속합니다. 하프 스페이스 래스터화는 쉽게 병렬화할 수 있으며 SIMD GPU 아키텍처에 적합합니다.
모바일 GPU(Qualcomm Adreno, ARM Mali)는 타일 기반 렌더링(TBR)을 사용합니다. 화면은 작은 타일(16x16 또는 32x32 픽셀)로 분할되고 각 타일에 대해 별도로 래스터화가 수행됩니다. 이렇게 하면 프레임버퍼를 빠른 로컬 메모리(타일 메모리)에 저장하여 메모리 액세스를 최소화합니다. TBR은 배터리로 작동하는 모바일 장치에 중요한 전력 소비를 줄입니다.
Rasterization과 레이 트레이싱은 3D 그래픽 렌더링에 대한 두 가지 근본적으로 다른 접근 방식입니다. 래스터화는 실시간 애플리케이션에서 지배적이며, 레이 트레이싱은 오프라인 렌더링에서 사용되며 점차 실시간(RTX 호환 GPU)으로 진입하고 있습니다.
| 매개변수 | Rasterization | Ray Tracing |
|---|---|---|
| 원리 | 삼각형 → 프래그먼트 | 광선 → 장면 교차 |
| 속도 | 매우 빠름(수백만 삼각형/프레임) | 느림(수천 광선/프레임) |
| 품질 | 추가 기술 필요(그림자, 반사) | 물리적으로 정확한 그림자 및 반사 |
| 모바일 GPU | 표준 방법 | 제한적 지원(A17 Pro, Snapdragon Gen 3) |
| 전력 소비 | 낮음 | 높음 |
래스터화는 에일리어싱 문제를 유발합니다 — 삼각형 경계에서의 톱니 모서리(계단 현상). 이는 픽셀이 이산적이며 삼각형에 의해 부분적으로 덮일 수 없기 때문에 발생합니다. 에일리어싱을 방지하기 위해 멀티샘플링(MSAA)이 사용됩니다.
MSAA(멀티샘플 안티에일리어싱)는 증가된 샘플링 속도(2x, 4x, 8x)로 래스터화를 수행합니다. 픽셀당 하나의 샘플 대신 여러 서브 샘플이 사용되며 각각 삼각형 적용 범위에 대해 테스트됩니다. MSAA 4x는 픽셀당 4개의 서브 샘플을 처리하여 렌더링 해상도를 완전히 높이지 않으면서 눈에 띄는 모서리 부드러움을 제공합니다.
MSAA와 달리 포스트 프로세스 안티에일리어싱 방법(FXAA, SMAA, TAA)은 최종 이미지를 분석하여 래스터화 후에 작동합니다. FXAA(고속 근사 안티에일리어싱)는 이미지 모서리를 감지하고 부드럽게 하기 위해 흐림 효과를 적용하며 MSAA보다 훨씬 빠르지만 품질이 낮습니다.
Rasterization은 최신 GPU에서 특수 하드웨어 블록인 ROP(렌더 출력 장치)에 의해 수행됩니다. ROP 수는 GPU가 초당 처리할 수 있는 픽셀 수인 필 레이트에 직접 영향을 미칩니다.
모바일 GPU(타일 기반 렌더링)의 중요한 요소: 얼리-Z 리젝션을 통한 오버드로 최소화, 백페이스 컬링을 사용한 보이지 않는 삼각형 제거, 다른 객체에 완전히 가려진 삼각형을 거부하는 오클루전 컬링.
자주 묻는 질문
래스터화는 삼각형을 화면의 픽셀로 변환하는 프로세스입니다. GPU는 3차원 삼각형을 가져와 화면의 어떤 픽셀이 이를 덮는지 결정하고 Fragment Shader에 전달하여 색을 입힙니다.
래스터화는 삼각형을 화면에 투영하고 픽셀 적용 범위를 결정합니다(매우 빠름). 레이 트레이싱은 카메라에서 광선을 발사하여 지오메트리와의 교차점을 확인합니다(물리적으로 더 정확하지만 상당히 느림).
래스터화 중에 픽셀은 삼각형에 완전히 속하거나 그렇지 않습니다 — 따라서 톱니 모서리(에일리어싱)가 발생합니다. MSAA는 픽셀당 여러 서브 샘플을 사용하여 모서리를 부드럽게 하고, FXAA는 최종 이미지에 필터를 적용합니다.
아니요, 래스터화는 그래픽 파이프라인의 고정 단계입니다. 개발자는 알고리즘을 변경할 수 없지만 설정(컬링, 폴리곤 오프셋, 래스터화 모드(점, 선, 삼각형) 및 MSAA 매개변수)을 제어할 수 있습니다.
타일 기반 렌더링(TBR)은 화면을 타일로 분할하고 전역 VRAM 대신 빠른 로컬 메모리에서 처리합니다. 이렇게 하면 전력 소비와 대역폭이 획기적으로 줄어들어 배터리로 작동하는 모바일 장치에 매우 중요합니다.
요약
턴키 방식의 모바일 애플리케이션을 개발해 드립니다
IT Sectr는 2017년부터 스타트업과 기업을 위한 iOS 및 Android 애플리케이션을 만듭니다. 저희가 상담해 드리고 최적의 솔루션을 제안하겠습니다.