흔히 계단 현상 이라고 부르는 aliasing현상을 해결하는 기법.
모니터 해상도가 낮거나 텍스쳐 해상도가 낮을 때 발생하는 현상.
초과표본화(super sampling, SSAA)
RenderTarget의 해상도를 기존의 4배 높게 생성하고 그린다.
이후 화면에 그릴때 원레 화면 해상도로 downsampling하여 그린다. (인접생상 평균)
환원(resolving)이라고 하는데, 4픽셀 블록의 네 색상의 평균을 그 블록의 최종 색상으로 사용한다.
해상도를 4배로 크게 잡기 때문에 비용이 매우 크다.
대신 정확도는 높다.
오버헤드가 무식하게 크기 때문에 사용되지 않는다.
메모리도 많이 사용하지만, 해상도가 높을수록 픽셀 하나하나에 렌더링 연산을 진행함에 있어서 연산이 배로 늘어나기 때문에 상당한 부하가 따른다.
다중표본화(multisampling, MSAA)
super sampling보다는 비용이 싸다.
super sampling이랑 방식은 비슷하지만, downsampling하는 과정에서 일부 계산 결과를 subpixel들 사이에서 공유하기 때문에 비용이 좀 더 저렴하다.
그 색상과 부분픽셀들의 가시성과 포괄도를 이용해서 최종 색상을 결정한다.
메모리 소모는 super sampling과 동일하나, 계산시 4배의 해상도에 해당하는 픽셀들을 전부 계산하는 것이 아니기 때문에 좀 더 유리하다.
디퍼드 렌더링을 사용하는 곳에서 적용하는데 구현 난이도가 있다.
*디퍼드 렌더링: 많은 조명을 적은 비용으로 그리기 위해서 렌더링을 지연시키는 기법.
다양한 정보들을 텍스쳐에 각각 렌더링한 후 그 정보를 이용해서 최종 아웃풋을 뽑는 방법
다양한 정보에는 조명, 위치, 노말맵 등등 필요에 따라 다양한 정보들이 추가된다.
그 밖의 Antialiasing들
FXAA, CSAA, TAA ... 등등
각자가 장단점이 있다. TAA같은 경우 히스토리 기반이기 때문에 고스팅 현상이 발생할 수 있는등..
최근에는 DLSS라고, 엔비디아에서 딥러닝을 이용해서 Antialiasing을 처리하는 기술들도 나오고 있다.
참고:
https://namu.wiki/w/안티에일리어싱