안티앨리어싱
더 많은 작업
안티앨리어싱(Anti-aliasing, 앤티앨리어싱)은 연속적인 장면을 유한한 픽셀 격자로 표본화할 때 생기는 계단 현상 같은 앨리어싱 왜곡을, 픽셀 하나에 여러 지점 또는 면적의 정보를 반영해 줄이는 그래픽 기법이다.
화면은 픽셀이라는 정해진 점의 격자이므로, 비스듬한 선이나 곡선의 경계를 그리면 픽셀 단위로 끊긴 계단 모양(jaggies)이 생긴다. 이것이 앨리어싱(aliasing)이다. 신호 처리로 보면 장면 속 경계는 주파수가 매우 높은 신호인데, 픽셀 간격이라는 표본화 주기가 이를 담기에 너무 성기기 때문에 생긴다. 나이키스트 정리에 따르면 원래 신호의 가장 높은 주파수의 두 배 이상으로 표본화해야 신호를 복원할 수 있고, 이 조건을 어기면 높은 주파수 성분이 낮은 주파수인 것처럼 잘못 나타난다.
안티앨리어싱은 표본을 더 촘촘히 뽑거나(슈퍼 샘플링), 픽셀을 점이 아닌 면적으로 보고 덮인 비율을 계산하여(영역 샘플링) 경계 픽셀에 중간 색을 넣는다. 결과적으로 경계가 부드러워 보이는 대신 약간 흐려진다.
| 유형 | 현상 | 예 |
|---|---|---|
| 계단 현상(jaggies) | 사선·곡선 경계가 계단처럼 보임 | 비스듬한 직선, 글꼴 외곽 |
| 작은 물체의 소실·깜빡임 | 픽셀보다 작은 물체가 표본점에 걸리면 보이고 아니면 사라짐 | 멀리 있는 전선, 가는 선 |
| 모아레(moiré) | 규칙적인 무늬가 표본 격자와 간섭해 엉뚱한 물결무늬 생성 | 줄무늬 옷, 벽돌 텍스처 |
| 시간적 앨리어싱 | 프레임률이 움직임을 따라가지 못해 생기는 왜곡 | 바퀴가 거꾸로 도는 것처럼 보이는 현상 |
- Super Sampling, SSAA
- 픽셀 하나당 여러 개의 표본점에서 색을 구한 뒤 그 값을 평균(필터링)해 최종 픽셀 색으로 쓰는 방법
장면을 목표 해상도보다 높은 해상도로 그린 다음 줄이는 것과 같다. 예를 들어 4배 슈퍼 샘플링은 픽셀마다 4개의 표본을 계산하고, 경계에 걸친 픽셀에서 4개 중 2개만 물체 색이면 그 픽셀은 물체 색과 배경색을 반씩 섞은 색이 된다. 표본을 먼저 뽑고 나중에 필터를 거는 후필터링(post-filtering) 방식이다.
표본점 배치에 따라 품질이 달라진다.
- 규칙 격자(ordered grid) : 픽셀을 2×2, 4×4로 고르게 나눈다. 단순하지만 수평·수직에 가까운 경계에서는 효과가 작다.
- 회전 격자(rotated grid) : 격자를 기울여 같은 표본 수로 수평·수직 근처 경계를 더 잘 처리한다.
- 확률적·지터 샘플링(stochastic, jittered) : 표본 위치를 무작위로 흔든다. 규칙적인 앨리어싱 무늬가 눈에 덜 띄는 잡음으로 바뀐다.
장면 전체에 똑같이 적용되므로 기하 경계, 텍스처, 셰이더가 만드는 앨리어싱을 모두 줄이지만, 표본 수가 n배면 계산량과 메모리도 거의 n배가 든다.
- Area Sampling
- 픽셀을 점이 아닌 일정한 면적을 가진 사각형으로 보고, 그 면적 가운데 물체가 덮은 비율만큼 물체 색을 반영하는 방법
선을 폭이 있는 가늘고 긴 사각형으로 보고, 각 픽셀과 겹치는 넓이를 계산해 밝기를 정한다. 선이 픽셀 넓이의 30%를 덮으면 그 픽셀은 선 색 30%, 배경색 70%로 칠한다. 표본화하기 전에 장면을 미리 걸러 내는 전필터링(pre-filtering) 방식이다.
- 비가중 영역 샘플링(unweighted area sampling) : 픽셀 안 어느 위치가 덮이든 같은 가중치로 본다(상자 필터). 덮인 넓이에만 비례한다.
- 가중 영역 샘플링(weighted area sampling) : 픽셀 중심에 가까운 부분을 더 무겁게 보고, 필터 범위를 이웃 픽셀까지 넓힌다(원뿔·가우스 필터). 물체가 움직일 때 밝기가 더 매끄럽게 변한다. 선 그리기에 쓰는 Gupta-Sproull 알고리즘이 대표적이다.
덮인 넓이를 해석적으로 계산하므로 정확하지만, 복잡한 장면에서는 넓이 계산이 어려워 주로 선, 다각형, 글꼴 렌더링처럼 기하가 단순한 대상에 쓴다.
| 구분 | 슈퍼 샘플링 | 영역 샘플링 |
|---|---|---|
| 픽셀을 보는 관점 | 여러 개의 점(표본) | 면적을 가진 사각형 |
| 원리 | 픽셀 안 여러 표본의 색을 평균 | 픽셀 면적 중 물체가 덮은 비율 계산 |
| 필터링 시점 | 후필터링(표본화 뒤 평균) | 전필터링(표본화 전에 걸러 냄) |
| 정확도 | 표본 수에 따른 근사. 표본이 적으면 잔여 앨리어싱 | 덮인 넓이를 직접 계산해 정확 |
| 비용 | 표본 수에 비례해 계산량·메모리 증가 | 픽셀마다 기하 계산 필요. 장면이 복잡하면 급증 |
| 적용 대상 | 장면 전체, 텍스처·셰이더 앨리어싱까지 | 선, 다각형 경계, 글꼴 |
| 구현 | 단순하고 GPU 파이프라인에 넣기 쉬움 | 기하 연산이 복잡 |
GPU에서는 슈퍼 샘플링의 비용을 줄인 변형을 주로 쓴다.
| 기법 | 원리 | 특징 |
|---|---|---|
| MSAA(Multisample AA) | 픽셀당 여러 표본으로 덮임과 깊이만 검사하고 색 계산(셰이딩)은 픽셀당 한 번 | 다각형 경계에 효과적, SSAA보다 가벼움. 텍스처·셰이더 앨리어싱은 못 줄임 |
| FXAA·SMAA(후처리) | 완성된 이미지에서 경계를 찾아 그 부분만 흐리게 섞음 | 매우 빠름. 이미지가 전체적으로 흐려지고 작은 물체 깜빡임은 남음 |
| TAA(Temporal AA) | 프레임마다 표본 위치를 조금씩 흔들고 이전 프레임 결과를 누적 | 적은 비용으로 높은 품질. 빠른 움직임에서 잔상(ghosting) |
| 딥러닝 기반 업스케일링 | 저해상도로 그리고 학습된 신경망이 여러 프레임 정보로 고해상도·경계를 복원 | 성능 향상과 안티앨리어싱을 함께 얻음 |
텍스처 앨리어싱은 미리 줄인 텍스처를 거리별로 골라 쓰는 밉맵(mipmap)과 이방성 필터링으로 따로 다룬다.
- 장점 : 경계가 부드러워 저해상도에서도 고품질로 보이고, 모아레·깜빡임이 줄어든다.
- 단점 : 계산량과 메모리가 늘고, 경계가 약간 흐려져 선명도가 떨어진다.
- 계단 현상 그 자체는 앨리어싱, 그것을 없애는 기법이 안티앨리어싱이다.
- 슈퍼 샘플링은 여러 표본을 평균, 영역 샘플링은 덮인 면적의 비율이다. 앞은 후필터링, 뒤는 전필터링이다.
- 디더링은 색 수가 적을 때 점을 섞어 중간색처럼 보이게 하는 것이고 안티앨리어싱과 다르다.