Unity Anti-aliasing 기법에 대하여

Anti-aliasing(안티에일리어싱)이란?

 

안티에일리어싱 기술은 계단 현상(에일리어싱, Aliasing)(디지털 샘플링에서 샘플링 주파수가 원본 신호의 최대 주파수의 2배 보다 낮은 경우, 인접한 스펙트럼이 겹쳐서 출력이 왜곡되는 현상)이 생길 때 사용하는 기술입니다.

 

계단 현상이란 렌더링된 컨텐츠를 재생할 때 출력되는 이미지의 픽셀조각이 튀거나, 선이나 도형의 가장자리가 울퉁불퉁해지고 날카로워지는 형상으로 나타나는 것을 뜻합니다.

 

안티에일리어싱기술은 계단 현상을 해결하기 위한 Anti 기술입니다.

 

출처 - https://namu.wiki/w/%EC%95%88%ED%8B%B0%EC%97%90%EC%9D%BC%EB%A6%AC%EC%96%B4%EC%8B%B1 / (좌) 안티 X / (중) 안티 O / (우) 안티 O

 

안티에일리어싱 기술이 특히 빛을 발할 때는 같은 타일이 수 없이 반복되는 것을 멀리서 바라볼 때 좋습니다.

Unity Camera - Anti - aliasing / 출처 - https://docs.unity3d.com/kr/2017.4/Manual/BestPracticeMakingBelievableVisuals8.html

 

Unity에서는 2가지 안티에일리어싱 기술을 기본적으로 제공하는데 첫 번째로 FXAA, 두 번째로 SMAA 기술을 지원합니다.

(그 외에도 더 있는 걸로 아는데 직접해보길!  TXAA?)

 


FXAA

 

첫 번째 FXAA는 NVIDIA의 직원이 고안하여 공개한 후처리 AA기술입니다.

MSAA는 각 픽셀의 여러 샘플을 평균내어 이미지의 경계선을 부드럽게 만드는 방법입니다.

 

다이렉트 컴퓨트를 사용하는 것이 아닌 단순한 후처리 셰이더를 사용하고, 어떤 GPU 계산 API에도 의존하지 않도록 고안되었습니다. 따라서 FXAA는 그래픽카드를 선호하지 않으며, 어떠한 그래픽엔진에도 쉽고 빠르게 적용될 수 있습니다.

 

현재 범용적으로 사용되는 AA기술 중에서 가장 성능저하가 적으며 준수한 품질을 보여주는 기술로 인정받고 있습니다.

 


SMAA

 

 

SMAA는 기존의 MLAA (Morphological Anti-aliasing)를 발전시킨 형태입니다. MLAA는 이미지의 엣지를 감지하고 해당 영역에 필터를 적용하여 계단 현상을 줄이는 후처리 기법입니다.

 

SMAA는 MLAA의 방식에서 더 나아가, 형태 분석을 실시간으로 연산하지 않고, 적당한 형태에 맞는 필터들을 미리 생성해놓고 형태에 맞게 덮어씌우는 방식으로 연산량 문제를 크게 해결했습니다. (이로 인해 성능 효율성이 높아졌습니다)

 

SMAA는 Subpixel 레벨에서 작업하여, 작은 디테일을 더욱 정밀하게 처리합니다. Subpixel  레벨에서 작업하기에 일반적인 MLAA보다 더 높은 품질의 안티에일리어싱을 제공합니다.

 

🔽Subpixel 이란?

 

더보기

Subpixel 레벨이란 디스플레이의 픽셀을 구성하는 개별 색상 요소들을 의미합니다. 일반적으로 디스플레이의 각 픽셀은 빨강(Red), 녹색(Green), 파랑(Blue) 서브픽셀로 구성됩니다. 서브픽셀 레벨에서 작업한다는 것은 각각의 서브픽셀을 독립적으로 처리하여 더 정밀한 그래픽 표현을 가능하게 하는 것을 말합니다.