고해상도 렌더 파이프라인의 안티앨리어싱
앨리어싱은 디지털 샘플러가 실제 정보를 샘플링하여 디지털화하려고 시도할 때 나타하는 부작용입니다. 예를 들어 오디오 또는 비디오를 샘플링할 때 앨리어싱은 디지털 신호의 모양이 원본 신호의 모양과 일치하지 않는 경우를 의미합니다.
이는 가장 높은 주파수의 오디오 소스 또는 가장 작은 세부 사항의 시각적 소스에 대한 원본 및 디지털 신호를 비교할 때 가장 분명히 알 수 있습니다. 일반 신호 처리는 나이키스트 속도를 사용하여 앨리어싱을 피하지만 리소스를 매우 많이 소모하므로 이미지 렌더링에는 적합하지 않습니다.
앨리어싱을 생성하는 래스터화 프로세스의 예입니다.
앨리어싱을 방지하기 위해 고해상도 렌더 파이프라인(HDRP)에는 안티앨리어싱에 대한 여러 메서드가 있으며 각각에는 그 효율성과 리소스 집약도가 있습니다. 사용할 수 있는 안티앨리어싱 메서드는 다음과 같습니다.
안티앨리어싱 사용
안티앨리어싱은 카메라별 효과로 다양한 안티앨리어싱 메서드를 사용하는 카메라를 가질 수 있다는 의미입니다. 리소스를 적게 소모하여 저품질 안티앨리어싱 효과를 사용할 수 있는 우선순위가 낮은 보조 카메라가 있을 때 유용합니다.
빠른 근사 안티앨리어싱(FXAA)
FXAA는 픽셀 수준에서 가장자리를 부드럽게 만듭니다. 이는 HDRP에서 가장 리소스를 적게 소모하는 안티앨리어싱이며 최종 이미지를 약간 흐릿하게 합니다. 스페큘러 조명이 많이 있는 씬에서는 잘 작동하지 않습니다.
카메라에 FXAA를 선택하려면 다음을 수행합니다.
- 씬 뷰나 계층 구조에서 카메라를 선택하여 인스펙터에서 봅니다.
- General 섹션의 안티앨리어싱 드롭다운에서 빠른 근사 안티앨리어싱(FXAA)을 선택합니다.
TAA(Temporal Anti-Aliasing)
TAA는 이력 버퍼에서 프레임을 사용하여 FXAA보다 효과적으로 가장자리를 부드럽게 처리합니다. 모션의 가장자리를 부드럽게 처리하지만 그러려면 반드시 모션 벡터를 활성화해야 합니다. HDRP에서 모션 벡터를 설정하는 방법에 대한 자세한 내용은 모션 벡터를 참조하십시오. TAA가 시간적이므로 게임 오브젝트가 그와 대비되는 표면 앞에서 빠르게 움직이는 경우와 같은 극단적인 상황에서 간혹 고스팅 결함을 생성할 수 있습니다.
참고: TAA를 활성화하면 앰비언트 오클루전이나 볼류메트릭 효과와 같은 일부 효과의 품질을 개선하는 데 도움이 됩니다.
카메라에 TAA를 선택하려면 다음을 수행합니다.
- 씬 뷰나 계층 구조에서 카메라를 선택하여 인스펙터에서 봅니다.
- General 섹션의 안티앨리어싱 드롭다운에서 시간적 TAA(Temporal Anti-Aliasing)를 선택합니다.
여러 게임 뷰에 동일한 카메라 게임 오브젝트를 사용하는 경우 TAA는 이력 버퍼 시스템의 제한으로 인해 예상대로 작동하지 않을 수 있습니다. 하지만 다른 카메라를 사용한 여러 게임 뷰는 예상대로 작동합니다.
제한 사항
에디터에서 여러 게임 뷰가 동일한 카메라를 사용하는 경우 TAA는 이력 버퍼 시스템의 제한으로 인해 예상대로 작동하지 않을 수 있습니다. 하지만 각 게임 뷰에 개별 카메라가 있는 여러 게임 뷰를 사용하는 경우 TAA는 예상대로 작동합니다.
서브픽셀 모폴로지컬 안티앨리어싱(SMAA)
SMAA는 이미지의 경계에서 패턴을 찾은 후 찾아낸 이 패턴에 따라 해당 경계의 픽셀을 블렌딩합니다. 이 안티앨리어싱 메서드는 FXAA보다 훨씬 더 선명한 결과물이 나오며 플랫하거나 카툰 스타일, 클린 아트 스타일에 적합합니다.
카메라에 SMAA를 선택하려면 다음을 수행합니다.
- 씬 뷰나 계층 구조에서 카메라를 선택하여 인스펙터에서 봅니다.
- General 섹션의 안티앨리어싱 드롭다운에서 서브픽셀 모폴로지컬 안티앨리어싱(SMAA)을 선택합니다.
멀티 샘플 안티앨리어싱(MSAA)
MSAA는 모든 픽셀 안에서 여러 위치를 샘플링하고 이러한 샘플을 결합하여 최종 픽셀을 생산합니다. 이는 다른 기술보다 앨리어싱 문제를 해결하는 데 탁월하지만 리소스를 훨씬 많이 소모합니다. 결정적으로 MSAA는 공간 앨리어싱 문제를 해결합니다. MSAA는 포스트 프로세싱 효과인 다른 메서드와 함께 사용할 수 있는 하드웨어 안티앨리어싱 메서드입니다. MSAA가 지원하지 않는 모션 벡터를 사용하므로 TAA(Temporal Anti-Aliasing)는 예외입니다.
HDRP 프로젝트에서 MSAA를 활성화하려면 다음을 수행합니다.
- HDRP Asset을 엽니다.
- Rendering 섹션에서 Lit Shader Mode를 Both나 Forward Only로 설정합니다. HDRP만 포워드 렌더링에 MSAA를 지원합니다.
- Multisample Anti-aliasing Quality 드롭다운을 사용하여 HDRP가 MSAA를 평가할 때 픽셀당 계산하는 샘플 양을 정의합니다. None을 선택하여 MSAA 지원을 비활성화합니다.
MSAA를 사용할 때는 다음 사항에 유의하십시오.
- 샘플 수를 늘리면 MSAA 효과가 더 많은 리소스를 소모합니다.
- MSAA를 활성화하면 다음 기능이 비활성화되지 않지만 대신 가장자리에 문제를 일으킬 수 있는 비 MSAA 뎁스를 사용합니다.
- MSAA는 다음 기능과 함께 작동하지 않습니다. MSAA를 활성화하면 HDRP는 다음의 기능을 비활성화합니다.
- 스크린 공간 반사(SSR)
- 스크린 공간 그림자
- TAA(Temporal Anti-Aliasing)
- 왜곡
- 데칼의 노멀 버퍼 패치 업
- MSAA는 다음 기능에 영향을 주지 않습니다. HDRP는 이러한 효과를 비활성화하는 게 아니라 이 효과에 대해 MSAA를 처리하지 않습니다.
- 레이트레이싱은 MSAA를 지원하지 않습니다. 프로젝트에서 레이트레이싱을 사용하는 경우 MSAA를 사용할 수 없습니다.
Unity 프로젝트의 MSAA를 활성화할 때 반드시 프레임 설정의 카메라에 대해서도 활성화해야 합니다. 전역으로나 개별 카메라에 수행할 수 있습니다. MSAA를 전역으로 활성화하려면 Project Settings > Frame Settings > HDRP Default Settings로 이동합니다. 카메라별로 MSAA를 활성화하려면 Forward Lit Shader Mode를 활성화한 다음 포워드 체크박스 안에서 MSAA를 활성화합니다. 전역 프레임 설정과 로컬 프레임 설정 위치에 대한 자세한 내용은 프레임 설정의 문서를 참조하십시오.
MSAA Sample Count를 증가시키면 안티앨리어싱이 부드러워지지만, 그만큼 성능을 더 많이 소모합니다. 다음은 다양한 MSAA Sample Count의 효과를 보여주는 시각적 예시입니다.
MSAA Sample Count를 None으로 설정했습니다.
MSAA Sample Count를 MSAA 2X로 설정했습니다.
MSAA Sample Count를 MSAA 4X으로 설정했습니다.
MSAA Sample Count를 MSAA 8X으로 설정했습니다.