복대가리의 개발

Unity

안티앨리어싱

복대가리 2023. 2. 1. 10:55
728x90

안티앨리어싱(Antialiasing)이란

그래픽의 계단현상을 제거하기 위한 용도로 활용되는 기술입니다.

앨리어싱은 계단현상을 말하고 안티는 제거를 말하여 안티앨리어싱이라 표현합니다.

 

안티앨리어싱은 보통 게임에서 많이 사용하고 있으며 Unity에서는 어떻게 사용하는지 확인해보았습니다.

 

Unity에서는 여러방법으로 안티앨리어싱을 할 수 있는데, 샘플링할 때와 카메라의 포스트 프로세싱에서 처리할 수가 있습니다. (제가 알기로는 그렇습니닷.. )

 

 

MSAA (멀티 샘플 안티앨리어싱)

널리 사용되어지는 안티앨리어싱이며, 개별 폴리곤의 모서리를 다듬는 기술이고 포워드 렌더링에서만 작동합니다.

요즘 최신 GPU에서는 2x, 4x, 8x MSAA 샘플을 지원하며 숫자가 높아질 수록 앨리어싱이 개선되지만 처리속도가 느려집니다.

출처 : Unity의 HDRP eBook에서 가지고온 이미지 입니다.

MSAA 사용 시 주의할점 이 있습니다.

  • MSAA는 디퍼드 셰이딩의 G버퍼와 호환되지 않습니다. 
  • MSAA는 선명한 스페큘러 조명을 받는 특정 텍스처와 머터리얼에서 발생하는 앨리어싱을 안티할 수 없습니다.

 

위과 같은 문제로 인하여 포스트 프로세싱 안티앨리어싱을 같이 사용하여야합니다.

 

포스트 프로세싱 안티앨리어싱

프소트 프로세싱 안티앨리어싱으로는 TAA, FXAA, SMAA가 있습니다.

FXAA(Fast Approximate Anti-aliasing)

스크린 공간 안티앨리어싱 알고리즘을 사용하였습니다. ( Spatial anti-aliasing - Wikipedia )

많은 컴퓨팅 성능을 요구하지는 않고 빠른 기술이지만, 이미지의 선명도를 낮출 수 있습니다.

 

TAA(Temporal Anti-aliasing)

지난 프레임과 현재 프레임을 결합하여 앨리어싱을 제거하는 알고리즘 입니다.

TAA 사용 시 모션 벡터를 활성화해야 합니다. 

하지만 한가지 문제가 있는데, 대비를 이루는 표면 앞에서 오브젝트가 빠르게 이동할 경우 고스팅 결함이 나타날 수 있습니다. 

TAA ghosting ( https://forums.cdprojektred.com/index.php?threads/taa-ghosting-fix-how.11038280/ )

고스팅 결함의 경우 HDRP10에서 많은 개선이 이루어졌다고 합니다.

 

SMAA(Subpixel Morphological Anti aliasing)

이미지의 테투디를 찾은 다음 블렌딩할 특정 패턴을 찾습니다.

FXAA보다 더 선명한 결과를 얻을 수 있으며, 카툰풍 아트 스타일이나 깔끔한 아트 스타일에 적합

 

포스트 프로세싱 안티앨리어싱과 MSAA를 함께 사용할 수 있습니다.

하지만 렌더링 비용이 많이 들기 때문에 화질과 성능이 밸런스있게 사용할 수 있도록 최적화를 해야합니다.

 

 

 

Unity HDRP eBook을 공부하며 정리한 내용입니다.

 

728x90