안티앨리어싱이란?
Unity 툴에서 제공하는 기술로써 이미지와 렌더링에서 계단모양으로 발생되는 앨리어싱을 줄여주는 그래픽 기술입니다.
이러한 앨리어싱은 디스플레이의 제한된 해상도와 디지털 이미지의 이산 특성으로 인해 발생되는 문제로 안티앨리어싱 기술을 접목해서 가장자리를 매끄럽게 함으로써 시각적으로 품질을 향상하고 장면과 분위기를 보다 사실적이고 세련되게 보이게 만듭니다. 또한 이 기술은 CPU 성능에는 영향이 없으며 GPU와 메모리를 사용하여 작업이 진행됩니다.
계단 현상이란?
앨리어싱 현상으로 주로 3D그래픽에서 발생하는 현상입니다. 3D모델이나 텍스쳐를 렌더링 할 때 발생하는 픽셀화 또는 가장자리 모서리 경계선의 균등하지 않은 픽셀화를 의미합니다. 즉 시각적으로 부드럽지 않은 경계가 생기며 실제 물체의 곡선이나 선명한 모서리가 부자연스럽게 보일 수 있습니다.
이산특성이란?
불연속적이고 구별되는 값들로 표현되는 특성을 말합니다. 연속적인 뜻의 반대의 개념으로 사용됩니다.
기본적인 설정방법 :
Unity에서 기본적으로 Anti-Aliasing을 설정하는 방법은 화면을 렌더링 하고 있는 카메라 컴포넌트 설정에서 Post Anti-Aliasing항목에서 설정해 준다. 각 기법마다 성능과 효과는 다르기 때문에 상황에 알맞게 사용하면 된다.
Unity에서 대표적으로 사용되고 있는 다양한 안티앨리어싱 기술을 알아보겠습니다.
1. MSAA(Multi-Sample Anti-Aliasing) :
MSAA는 가장 기본적으로 사용되는 안티앨리어싱 기법 중 하나로 한 프레임을 렌더링 할 때 각 픽셀의 여러 위치에서 색상값을 지정하여 이를 기반으로 평균화하여 부드러운 결과를 추출합니다. 일반적으로 성능 저하가 가장 적고, 고품질의 안티앨리어싱 효과를 제공합니다.
설정 방법 :
1) Assets > Create > Rendering > HDRP Asset 생성
2) Rendering > Lit Shader Mode에서 Both나 Forward Only로 설정한다. (HDRP에서만 포워드 렌더링에 MSAA를 지원한다.)
3) Multisample Anti-aliasing Quality에서는 픽셀당 계산하는 샘플 양을 설정합니다.
4) MSAA를 전역으로 활성화하려면 ProjectSetting > Grapics > HDRP Global Setting > Frame Settings > Lit Shader Mode에 드롭다운을 하여 Forward를 설정해 준다. 다음 리스트에 MSAA를 활성화하여 설정합니다.
주의사항 !
1) 샘플수를 많이 늘리게 되면 MSAA 효과로 많은 리소스를 소모하게 됩니다.
2) HDRP에서 MSAA를 사용하게 되면 다음과 같은 기능은 비활성화됩니다.
[1] SSR(스크린 공간 반사)
[2] 스크린 공간 그림자
[3] TTA
[4] 왜곡
[5] 데칼의 노멀 버퍼 패치업
3) 다음과 같은 기능은 MSAA에 영향을 주지 않습니다.
[1] Post Processing
[2] 피하 산란 (오브젝트에 통과하는 빛을 처리하여 해당 오브젝트를 투명하게 만드는 기능)
[3] 저해상도 투명도
2. FXAA(Fast Approximate Anti-Aliasing) :
FXAA는 빠르고 경량화된 안티앨리어싱 기법으로, 전체 이미지에 대해 픽셀단위에서 계단현상을 감지하고 완화합니다. 높은 속도로 처리가 진행되므로 모바일 프로젝트와 같이 하드웨어 성능에 제한이 있는 경우에 흔히 사용됩니다. 가장 리소스를 적게 소모하는 안티앨리어싱 기법으로 최종 이미지를 약간 흐릿하게 하므로 상세한 텍스처 처리에서는 부정확할 수 있습니다.
설정 방법 :
Scene뷰에 카메라를 선택해서 Rendering > Post Anti-Aliasing 항목에 FXAA를 설정해 사용합니다.
3. SMAA(Subpixel Morphological Anti-Aliasing) :
SMAA는 MSAA와 FXAA의 중간 성능과 품질을 가지는 안티앨리어싱 기법으로, 좀 더 텍스쳐 분석과 객체 검출에 정교한 안티앨리어싱 결과를 추출합니다. 일반적으로 더 많은 성능을 요구하며 높은 품질의 안티앨리어싱 효과를 얻을 수 있습니다. 주로 선명한 결과물을 원할 때 사용되며 카툰 스타일, 클린 아트 스타일에 적합합니다.
설정 방법 :
Scene뷰에 카메라를 선택해서 Rendering > Post Anti-Aliasing 항목에 SMAA를 설정해 사용합니다.
4. TAA(Temporal Anti-Aliasing) :
TAA는 현재 프레임과 이전 프레임을 비교(이력 버퍼)하여 안티앨리어싱을 진행하는 기법으로, 시간에 따라 계단현상을 감지하여 부드러운 결과를 보여줍니다. 주로 움직임이 많은 물체와 함께 사용할 때 효과적이므로, 반면에 정적인 장면에서는 성능이 떨어져 보일 수 있습니다.
설정방법 :
Scene뷰에 카메라를 선택해서 Rendering > Post Anti-Aliasing 항목에 TAA를 설정해 사용합니다.
주의사항 !
에디터에서 여러 게임 뷰가 동일한 카메라를 사용하는 경우 TAA는 이력 버퍼 시스템의 제한으로 인해 예상한 대로 작동하지 않을 수 있습니다. 그러므로 각 게임 뷰에 개별 카메라를 설정해 사용해야 정상 작동이 가능합니다.