1. 개요
안티에일리어싱과 안티에일리어싱의 종류에 대한 한국어 설명 |
디지털 샘플링에서 샘플링 주파수가 원본 신호의 최대 주파수의 2배 보다 낮은 경우, 인접한 스팩트럼이 겹쳐서 출력이 왜곡되는 현상을 계단 현상(에일리어싱, Aliasing)이라 하며, 이는 렌더링된 컨텐츠를 재생할 때 출력되는 이미지의 픽셀조각이 튀거나, 선이나 도형의 가장자리가 우둘투둘하고 날카로워지는 형상으로 나타난다. 안티에일리어싱은 이를 해결하기 위한(Anti-) 기술이다. 3D그래픽 뿐만 아니라 2D그래픽, 디지탈 카메라의 사진, 디지탈 음원, 촬영된 필름, 디지탈 신호 심지어는 우리 눈에서도 에일리어싱은 매우 흔하게 일어난다. 에일리어싱에 대한 보다 자세한 설명은 디지털 문서 참조. 비트맵그래픽의 경우 원본의 해상도보다 해상도가 줄어들경우 - 다운스케일링 시에 심각한 에일리어싱 현상을 볼수 있다.
안티에일리어싱이 특히 빛을 발할때는 바로 위의 사진처럼 같은 타일이 수없이 반복되는 것을 멀리서 바라볼 때.
첫 번째 경우가 안티에일리어싱이 없는 경우로 저게 대체 뭔지 알 수가 없을 정도로 일그러지며, 대충 보는 것만으로도 눈이 아프다.
다만 3D 그래픽 분야에서 위와 같은 전형적인 Aliasing 문제는 비등방성필터링으로 쉽게 해결 가능하며 아래에서 설명할 기술들은 주로 3D 그래픽에서 나타나는 계단 현상 제거에 초점을 맞추고 있다.
(가급적 전체화면으로 볼 것) 1분 13초부터 카메라가 회전할 때 멀찍이 보이는 배의 삭구(돛대를 지탱하는 밧줄들)가 계단처럼 각지게 나오는 모습에 주목하자
(가급적 전체화면으로 볼 것)
3D게임에서 필수적으로 쓰이고 있으며 콘솔, PC게임에서 유용하게 사용되고 있고, 성능한계상 제한적이지만 휴대용게임기, 모바일영역에서도 점차 영역이 확대되고 있다.
Aliasing 발생을 제거하기 위해서는 재생하는 기기 측의 샘플링 주파수가 원본의 샘플링 주파수의 2배 이상이어야 한다 - 나이퀴스트-샤논 정리(Nyquist-Shannon Sampling theorem). 허나 우리에게 문제가 되는 벡터 및 3D 그래픽에서 원본 - 즉 이상적 현실/개념 의 해상도는 무한대로 AA기술만으로는 이론상 해결이 안 된다.[1] 디스플레이의 근본적인 목적(빛을 통해 사람의 눈에 시각 정보를 전달) 상, 현실적으로 사람 눈에 보이기에만 충분하면 된다고 해도, 이를 정확히 만족하려면 '최소' 8K급 해상도가 필요한데[2][3] 이는 23년 현재에도 극소수나 써볼 수 있는 초고해상도이다. 안티에일리어싱 기술이 처음 등장하던 당시에는 HD 해상도(1280*720)도 없던 시절이라는 점을 감안할 필요가 있다.
콘솔에서의 AA는 비트맵 그래픽을 사용했던 4세대까지의 게임기들에는 당연히 없었고[4], 5세대 게임기 중 유일하게 닌텐도 64만이 최초로 AA를 지원했다.
닌텐도 64의 AA는 폴리곤 모델의 윤곽선을 따라 색깔을 섞는 방식으로 경계선의 계단 현상을 뭉개버리는 후처리 AA였고,[5] PS1, 새턴과는 차별화되는 기능이었다. 하지만 이는 오늘날의 FXAA, SMAA따위와는 비교도 안 될 만큼 원시적인 기술이었고, 치트를 통해 AA를 꺼버리는 걸 선호하는 사람들이 있을 정도로 화면을 흐릿하게 만드는 문제가 컸다. 흐릿한 텍스쳐 해상도와 더불어 닌텐도 64 그래픽 하면 떠오르는 "흐릿한 이미지"를 발생시킨 주범. 7세대 게임기부터 많은 게임에 여러 가지 AA가 적용되기 시작했다.
아래 그림은 5x5 비트맵 그래픽-붉은색 이 5x6 비트맵-파란색으로 업스케일링시 중앙부분에서 Aliasing(붉은색 직선이 파란색으로 비틀리고 있다)이 일어나는경우를 보여주고 있다.
보통 PC 그래픽 드라이버 관리 프로그램에서 손쉽게 안티를 먹일 수 있는데 무리없이 돌아가더라도 그래픽카드 온도가 꽤나 올라가는걸 볼 수 있으니 모든 환경에서 남용하지는 않도록 하자.[6]
참고로 CRT를 쓰던 시절에는 대체로 필요가 없었다. CRT 특유의 번짐 때문에 자동으로 안티에일리어싱이 일어났기 때문. 특히나 실사풍이 더욱 실감나는 그래픽을 자랑했다. 오히려 지금은 복고풍 감성을 위해[7] CRT 느낌을 내는 필터를 연구하고 있지만 아직 완벽하게 구현된 기술은 개발되지 않았다. 제일 큰 장벽은, 모션 블러의 완벽한 제거와, 명암비의 구현. 아이러니하게도 20년대 들어 사람눈으로 픽셀을 구별하기 힘들정도로 고DPI 모니터들이 대중화되면서 다시 사장되고 있는 기술이다.
(왼쪽부터 CVBS(컴포지트 단자), 컴포넌트 비디오, DE-15(VGA 단자) 연결. 게임은 록맨 X2)
CRT의 특징 중 하나인 가변 해상도를 통해 약간의 뭉개짐 효과를 얻을 수 있지만, CRT 모니터가 쓰이던 시절의 단자가 뭉개짐에 더 큰 역할을 했다. 가장 품질이 떨어지는 CVBS 단자로는 픽셀 간 경계가 부드럽게 뭉개지는 것을 볼 수 있다. 컴포넌트는 이론상 DE-15와 동급 화질을 가질 수 있지만 보통 DE-15보다는 열화가 일어난다. 화면 표현을 위해 선을 3개 쓰는 컴포넌트에 반해 DE-15는 선을 5개 쓰고, 그라운드 구성도 충실하기 때문에 화질 열화가 적어 안티에일리어싱이라고 할 만한 현상이 거의 나타나지 않는다. 사진에는 없지만 DVI, HDMI는 디지털 전송 단자다 보니 아예 픽셀 뭉개짐 자체가 일어나지 않는다.
안티에일리어싱 종류에 대한 퀘이사존 글
2. 종류
2.1. SSAA
full-scene anti-aliasing(FSAA), 또는 Super sampling anti-aliasing 라고 부르기도 한다. AA는 주변의 사물을 샘플링하는데 배수라는 개념이있는데 여기서 배수는 추출하는 샘플의 개수를 말한다.가령 1920x1080 FHD 화면에 x4 SSAA를 준다면, 기존보다 4배 많은 샘플을 추출하게 되어 결과적으로 3840x2160, 즉 4K 해상도에 해당하는 수준의 부하를 GPU에 가하는것이다.[8] 때문에 실로 무식하기 짝이 없는 연산량을 요구하는 기술이다. macOS가 OS단에서 UI에 SSAA를 걸기 때문에 자못 사양을 많이 타는 편이다. 가상 초고해상도또한 SSAA을 사용하여 시각적으로 선명한 화면을 구현하여 모니터 값은 절약되도 효과는 QHD/4K 네이티브보단 조금 못한데 글카에 가해지는 부하는 약간 더 높다.
물론 그 무식한 연산량에 걸맞게, 모든 AA중 가장 확실한 효과를 보여준다는 장점이 있다. 높은 배수에서는 비등방성필터링과 같은 텍스쳐 필터링 효과까지 겸한다. 이는 원본 데이터의 정보량 자체를 증가시키는 SSAA의 특성에서 기인하는데, 1/Root(SSAA 배수) 만큼의 거리에 있는 것과 마찬가지가 되어 버리므로 배수가 증가할수록 체감 효과 또한 확연해진다. 이러한 필터링 효과가 지나치게 적용되는 것을 막기 위해 SSAA사용시 추가적인 LOD의 조절이 권장된다.
이렇듯 현재 최고의 효과를 보여주는 AA지만 항상 최선의 결과를 가져오는 것은 아니다. 간혹 수직/수평선에서 확연하게 구별되어야 할 색이 섞이게 되어서 선명도가 저하되는 것이 눈에 띄는 경우가 존재한다. 이는 샘플링 AA의 근본적인 한계이므로, SSAA로 샘플의 개수를 추가해서 해결할 수 있는 문제가 아니다. 대표적인 사례는 글자에 미관을 위하여 SSAA를 걸었더니 글자(특히 작은 글자)가 흐리멍텅하게 번져서 가독성이 저하되는 경우. 따라서 글자체의 경우 SSAA 효과를 줄 때 가독성을 해치지 않도록 AA효과가 들어가야 하는 부분과 들어가서는 안 되는 부분을 지정하게 되며, 이를 힌팅이라고 한다.
아래는 AA 적용 시 힌팅 유무가 서체의 가독성에 미치는 영향의 예시이다. 힌팅이 적용된 아래의 텍스트가 더 선명한 것을 볼 수 있다.
2.1.1. Down-Sampling
샘플링 배수만큼 해상도를 확대 하여 화면을 만들어낸후 (x4 라면 총 4배, 가로2배/세로2배 해상도로) 만들어진 화면을 출력 해상도에 맞춰서 Down-Sampling한다(해상도를 줄여서 색을 섞는다). 이는 일정한 간격의 격자 모양으로 샘플링 하는것과 같은 원리가 되기때문에 OGSSAA 와 혼용하여 부르기도 한다.Ordered-Grid는 AA용 샘플링 방식에서 가장 원시적인 위치선정이기 때문에 샘플링방식이 비효율적이고 따라서 결과물도 샘플개수에 비해 비효율적이다. 즉 x4 MSAA에서는 제대로 AA가 걸리는 외곽선에 x4 SSAA에서는 제대로 AA가 걸리지 않을수 있다.
화면을 45도 정도 회전시켜서 Down-Sampling SSAA를 준후 이를 다시 45도 회전시켜 원래대로 돌리는 방식으로 마치 Rotate-Sampling과 같은 효과를 주자는 퀄리티 주의자들도 있으나, 일단 품질저하를 최소화하는 회전의 연산량은 제외하더라도 화면을 45도 돌렸을때 들어가는 화면의 픽셀수는 2배이다. 지금도 연산량과 소요 메모리가 터무니 없이 많아서 아무도 안쓰는 SSAA에서 저 방법으로 x4의 효과를 위해서는 지금의 x8 수준의 연산량과 메모리가 들어간다. 덕분에 아무도 그런거 안만들어주고 있다.
Nvidia에서는 드라이버 단에서 쉽게 관련 설정이 가능하도록 하고 추가로 블러링필터를 더하여 DSR (Dynamic Super Resolution) 이라는 이름으로 발표하였다. AMD는 대응 기능은 VSR (Virtual Super Resolution)을 쓰고 있다.
이후 NVIDIA는 후술할 DLSS와 연계하여 연산량을 줄인 DLDSR(Dynamic Super Resolution Technology)을 발표한다 # FHD 1080p 출력 기준 DLDSR 2.25x(렌더링 해상도 1620p)가 DSR 4x(렌더링 해상도 4K 2160p)와 동등한 화질을 보인다고 주장한다. (어느 정도는 사실이긴 하나, 포함된 샤픈 효과의 눈속임 효과를 포함한 체감 화질인 점을 주의. 세부 디테일이 중요한 부분(갓 오브 워 주인공 의상의 털가죽 부분이라던가)을 스크린샷 확대로 정밀하게 비교하면 DSR 4x보다는 디테일이 떨어지는 게 누가봐도 확 티가 난다. 문서 맨 아래서 후술할 DLSS 품질 모드(4K 모니터)도 안 쓸 정도로 디테일에 아주 민감한 사람에겐 결코 못 비빌 화질이다. 물론 그 정도로 민감하진 않은 사람이 절대 다수이니 적당히 참고만 하자.
2.1.2. SGSSAA/OGSSAA
Sparse-Grid Supersampling Anti-Aliasing.Ordered-Grid Supersampling Anti-Aliasing.
Ordered Grid란 모눈과 같이 일정한 간격을 가지는 격자를 말하며 Sparse Grid란 아래와 같이 외곽으로 갈수록 격자의 간격이 좁아지는것을 말한다.
구현방식은 샘플링 배수만큼 화면의 시점을 미묘하게 바꿔가며 미묘하게 여러 샘플화면을 만들어내고 최종적으로 이들을 모두 합쳐서 최종 결과물을 만들어낸다.
간단히 말해
x4 Down-Sampling SSAA 는 4배의 화면을 만들어서 하나로 줄이고
x4 SGSSAA / OGSSAA 는 4개의 화면을 만들어서 하나로 합친다.
문제는 구현방식을 읽어보듯 원래의 화면의 정보가 4배가 되는것이 아니라 엄밀히 말하면 서로 다른 4개의 화면을 합치는것이다. 따라서 픽셀경계선을 엄밀하게 만들어내지 못하면 옆 픽셀의 샘플이 들어오며 블러링이 발생한다. 이것을 위하여 사용되는것이 Sparse Grid와 Ordered Grid이다. 3D 상태에서는 중앙에서의 이동거리에 비하여 바깥으로 갈수록 이동거리가 길어지기에 Sparse Grid방식으로 제어할 필요가 있다. 2D 상태에서는 시점 중앙과 바깥의 이동거리가 같기에 Ordered Grid방식으로 제어할 필요가 있다. 이렇게 게임 엔진에 따라 Ordered Grid방식이 블러링이 더 심하거나 Sparse Grid방식이 블러링이 더 심할수 있다. 여기에 설상가상으로 3D 상태에 2D 상태가 부가되는경우 즉 HDR/디퍼드 렌더링과 같이 후처리가 이루어지는 경우 아예 블러링이 통제 불능상태가 될수있다. 또한 이러한 제어과정을 거치면서 프레임 버퍼처리가 호환되지 않는 엔진에서도 블러링이 통제 되지 않는다. 이에따라 블러링을 최소화 하기 위하여 게임 엔진별로 매우 복잡한 호환성과 관련된 옵션제어가 필요해진다. 시스템 사양이 넘쳐나면서 황금눈을 가진사람들은 성능을 위하여 품질을 희생한 SSAA라고 비아냥거린다.
2.1.2.1. HSAA
Hybrid Sampling Anti-Aliasing.OGSSAA에 MSAA를 결합한것이다. OGSSAA파트가 독자 작동대신 셰이더를 사용한다. 이 때문에 DX9에서는 MSAA와 같이 HDR/디퍼드와 같은 후처리 형태와 상성문제가 생긴다.
2.2. MSAA
Multi Sampling Anti-Aliasing.SSAA가 지나치게 무식한 성능과 메모리를 요구해서 만들어진 개량법. 폴리곤 외곽선이 지나가는 곳만 Sampling AA효과를 준다.
Coverage Sample-폴리곤 외곽선이 지나가는가를 테스트하는 샘플을 먼저 추출하고(추출된 샘플들이 모두 같은 면 위에 있지 않다면 이건 외곽선이 지나가는 점이다.) 외곽선이 지나갈경우 이 Coverage Sample의 위치에서 Color Sample을 추출하여 이들을 섞는다
만족할만한 화면품질과 성능저하로 오랫동안 AA기술의 표준으로 자리잡았다. 하지만 시간이 지나면서 4K 해상도가 어느 정도는 보급됨으로 인한 성능 제한(메모리와 연산량) 및 필요성의 감소[9], 디퍼드 렌더링 비중이 늘어나면서 호환성을 맞추기 위한 개발 소요 문제가 크게 다가옴에 따라 후처리AA들에게 많은 자리를 내주고 있다. 그래서 FHD 해상도 게이밍의 경우 최신 게임들이 오히려 예전 게임보다 에일리어싱 측면에서 퇴보하기도 하였다.[10]
사물로부터 정사각형 모양의 네 방향으로부터 샘플을 채취하는 기본적인 방식으로 Voodoo, GeForceFX가 대표적으로 이 방법을 사용했다.
SSAA에 비하여 훌륭한 향상(엄청난 연산량 감소와 대비되는 작은 품질저하)을 보여주지만 이론상 폴리곤 외곽선만 적용되어 텍스쳐 내부에는 전혀 대응이 안된다. 또 SSAA보다 낫다고는 하지만 사용되는 메모리와 계산량은 상당하다.
또한 그래픽이 완성된 후 후처리가 이루어지는 방식 즉 HDR이나 디퍼드 렌더링의 경우 MSAA가 걸린이후 후처리가 이루어지게 되고 이 경우 완성된 AA이후 이루어지는 후처리는 AA효과를 크게 해치게 되어 DX9에서는 HDR/디퍼드 렌더링과의 상성이 매우 안좋다. 구현은 가능하지만 실질적으로 성능요구가 지나치게 올라가는 경우가 많다. DX10 이후에서는 셰이더 자체를 손볼수 있도록 구조가 변경되면서 MSAA의 Color Sample을 추출하여 섞는 과정을 후처리 이후로 미루도록 만들 수 있기 때문에 성능문제 없이 해결할 수 있다.
Xbox 360과 PS3에 성능차가 발생하는 것도 MSAA가 쉽게 걸릴 수 있느냐에 따라 달라졌는데, 같은 작품에도 성능차가 발생하는 멀티작의 경우 360쪽은 EDRAM을 통한 공짜 AA[11]로 주어지는 반면 PS3에 있는 SPE는 개발 소요가 훨씬 높고 MSAA에 활용하기 힘들다. 따라서 프레임버퍼의 대역폭과 연산문제가 발생할 수밖에 없고 플삼쪽이 같은 장면을 표현할 때 360보다 더 많은 리소스를 필요케 하는데 다가 활용하기 쉬운 범용 코어만 쓰게 되면 PS3는 싱글코어가 되어버리므로 360의 트리플코어를 따라잡을 수 없다. 이로 인해 베요네타나 레드 데드 리뎀션과 같이 성능차이가 발생하게 되며, 소니가 후술할 MLAA에 관심을 가지는 계기가 되었다.
2.2.1. RSAA
Rotated Sampling Anti-Aliasing.기본MSAA의 격자형 대신 샘플 추출을 돌려서 하는것
샘플링 방향을 살짝 비틀었는데 화질이 더 나아진다. 일반적으로 3D 영상에서 Aliasing이 일어나는 경우는 수직/수평선이 아닌 비스듬한 선이기 때문에 이에 잘대응할수 있는형태(외곽선을 잘 판별할수 있고 Aliasing발생시 적당한 색비율로 샘플이 분포될수 있는 형태)로 Sample을 돌린것이다. 화질이 좋아지기 때문에 현재의 MSAA들은 아래에 보듯 자신들의 노하우에 따라 적당하게 샘플링 하는 위치를 일정간격의 격자모양이 아닌 형태로 비틀어 픽셀내부에 적당한 위치로 분포시켜 배치한다.(이 샘플을 배치하는 위치가 MSAA의 품질을 결정하는 핵심 기술이다.)
2.2.2. QAA
Quincunx Anti-Aliasing.MSAA와 마찬가지로 샘플을 채취한후 그것을 주변 픽셀들의 샘플들과 엮어서 블렌딩한다. 따라서 MSAA와 같은 수의 샘플을 잡더라도 주변의 샘플을 추가하므로 더 많은 샘플을 추출한것과 같은 효과를 보여줄수 있다. 문제는 주변 샘플이 들어오는 과정에서 상당한 블러링현상이 일어나게된다. 선명도가 지나치게 저하되어 대차게 까이기도 하였다. 특히 UBI에서 주로 이방식을 많이 사용했다.
2.2.3. CFAA
Custom Filter Anti-AliasingQAA와 비슷하게 추가 샘플을 잡지않고 픽셀 주변의 기존 샘플을 가져와서 AA에 추가하는 AMD의 기술.
2.2.3.1. Tent Filter
QAA로 Nvidia가 삽질을 하는동안 ATI에서 한 삽질Narrow/Wide 등과 같이 가져오는 거리를 조절할수 있어 상황에 따른 블러링을 통제할수 있다. (정확히는 아예 샘플링 개수를 크게 잡는다고 가정하고 만든 기술) 하지만 주변 샘플을 가져오지 않으면 MSAA와 다를것이 없고 주변 샘플을 가져오면 블러링이 일어난다. 삽질이기는 마찬가지
2.2.3.2. Edge-Detect
추가적인 샘플을 잡는 방식중 가장 성공한 기술.주변의 샘플을 가져올때 외곽선을 판별하여 외곽선을 넘나드는 샘플은 덜 가져오고 주로 외곽선을 따라 샘플을 주변에서 가져오는 방식.
블러링을 최소화 하면서 추가적인 샘플 추출 없이 효과를 얻을수 있다. 다만 추가연산없이 더 많은 샘플을 추출한것과 같은 효과를 낸다는 초기 이념은 이미 사라졌다. 외곽선 판단과정에서 추가 연산이 들어가고 CFAA자체가 확실한 품질 향상을 보기 위해서는 샘플의 개수 자체를 크게 잡아야 하기 때문에 훌륭하다는 평가와 동시에 잊혀졌다.
2.2.4. CSAA/EQAA
Coverage Sample Anti-Aliasing.Enhanced Quality Anti-Aliasing.
MSAA에 Coverage Sample만을 추가로 잡아서 AA에 적용하는 방법이다.
CSAA는 Nvidia의, EQAA는 AMD의 이름으로 AMD쪽은 배수뒤에 EQ를 붙여서 MSAA와 구별한다.
각각 잡는 개수는 아래와 같다.
추가 Coverage Sample | 기본 Coverage Sample+Color Sample | ||
CSAA 2x | 0 | 2 | MSAA 2x |
EQAA 2x | 2 | 2 | |
CSAA 4x | 0 | 4 | MSAA 4x |
EQAA 4x, CSAA 8x | 4 | 4 | |
CSAA 16x | 12 | 4 | |
CSAA 8xQ | 0 | 8 | MSAA 8x |
CSAA 16xQ, EQAA 8x | 8 | 8 | |
CSAA 32x | 24 | 8 | |
0 | 16 | MSAA 16x |
Coverage Sample의 수를 늘려서 퀄리티 향상을 꾀하기는 하지만 성능저하도 별로 없고 동시에 품질 향상도 별로 없다. 추가 Coverage Sample을 늘리는것보다 기본 Coverage Smaple+Color Sample의 수를 늘리는게 확실한 품질향상을 가져온다.
2.2.5. 멀티 GPU AA
SLI나 AMD CrossFire같은 멀티GPU 환경에서 생성되는 프레임수의 증가를 추구하는 대신 화면 품질향상을 추구하여 같은 화면을 생성한후 AA샘플 위치만 서로 다르게 잡아 합치고 화면 생성시 서로 빗겨가도록 만듬으로서 더 높은 효과를 달성하고자 했다. Nvidia 에서 SLI AA 를 먼저 발표하였고 이후 ATI 에서는 Super AA라는 이름으로 나왔다.멀티GPU 환경 자체가 일반적으로 FPS증가에 초점이 맞춰지기 때문에 널리 사용되고 있지 않다.
개념도
2.3. AAA/TAA
Adaptive Anti-Alising/Transparency Anti-Aliasing.AAA는 AMD에서 TAA는 Nvidia에서 부르는 이름이다. MSAA기술이 텍스쳐 내부의 Aliasing에 전혀 무력한 상황에서 가장 텍스쳐 Aliasing이 눈에 띄는 투명한 부분이 존재하는 텍스쳐에 대응하기 위하여 만들어졌다. 대표적으로 나뭇잎/철조망의 표현등에서 효과가 매우 훌륭하다.
알파 테스팅-내부에 투명부분이 존재하는 텍스쳐를 판단하여 이 텍스쳐들을 제외하고 MSAA를 건후 이 텍스쳐들만 SSAA를 걸어서 두 결과를 합쳐준다.
일반적인 상황에서는 적은 연산량 추가로 나뭇잎등에서 대단히 훌륭한 결과를 보여주지만 일부 특수한 상황에서는 SSAA수준까지 연산량이 폭증할수 있는 문제가 있다.
2.4. TAA
Temporal Anti-Aliasing.기존의 공간축선의 AA가 아닌 시간축선의 후처리 AA. Temporal Aliasing (시간축선의 에일리어싱) 자체는 실제 눈으로 현실을 볼 때도 생길 수 있는데, 대표적인게 각종 팬이나 프로펠러가 실제 방향 반대로 천천히 도는 것처럼 보이는 현상, 해당 물체의 회전속도 자체가 사람 눈의 처리능력을 훨씬 넘어가서 생기는 현상이다. 일부러 카메라 셔터 타이밍을 맞춰서 신기한 연출을 하는 경우도 있다. 원리 설명 영상(영어)
반면 3D 그래픽은 사람 눈의 성능에 비해 한참 낮은 30~60프레임 정도에서 돌아가는 경우가 많기 때문에 실제 눈보다 Temporal Aliasing에 더 취약하다.[12] 더구나 공간축선의 에일리어싱과 부정적인 시너지효과(에일리어싱 패턴이 매 프레임마다 바뀌면서 경계선이 지글거리는 듯한 효과가 난다. 에일리어싱을 더 눈에 띄게 만드는 주범)를 내서 몰입감을 망가뜨리기도 한다.
TAA는 이런 Temporal Aliasing을 극복하기 위해, 이전의 프레임버퍼를 보관해뒀다가 이번 프레임버퍼와 합쳐서 새로운 화면을 만드는 방법. 간단히 말해 이전 이미지와 이번 이미지의 중간이미지를 보여주는 방식. 즉 정지 화면에서는 AA의 연산을 하지 않지만 움직이게 되면 AA의 연산을 한다. TAA의 장점은 프레임에 가해진 MSAA를 TAA의 샘플 개수만큼 증폭시키는 효과를 추가적인 연산량이 거의 없이 가진다는 것이다. 즉 4x MSAA와 2x TAA가 합쳐질경우 8x 의 효과를 추가적인 연산이 거의 없이 가진다.
TAA를 기본적으로 게임 그래픽에서 AA의 배수 증폭효과를 위하여 사용하기 위하여는 정지된 화면에서도 효과를 얻는 것이 중요하다.
이에 과거 콘솔에서 메탈기어 솔리드 4, 헤일로 리치, 데빌 메이 크라이 4등에서 매 프레임을 반 픽셀씩 서로 빗겨가게 렌더링한 후 이 과정에서 얻어지는 동일 샘플링 패턴의 MSAA의 다른 결과를 가지는 프레임을 섞는 방식을 택했다. 하지만 항상 높은 FPS를 꾸준히 내준다고 장담할수 없는 상황에서 프레임간의 변화가 커지면 심한 고스트 현상이 생기게 되는 TAA 특성상 이를 방지하기 위하여 움직임이 크다고 판단될때는 TAA를 끄도록 설계하였다.(이것이 TAA가 정지화면에서 AA효과가 나타나고 움직이면 AA효과가 사라진다고 알려진 이유이다. 즉 정지화면에서도 AA효과가 나타나도록 꼼수를 쓰고 정작 움직일때는 AA 자체를 꺼버린것.)
PC 에서 Nvidia / ATI 양사가 각기 MFAA(2014년) / TAA(2004년) 의 이름으로 드라이버에 추가하였다. MFAA 구현 요체는 MSAA의 샘플 위치를 ROM이 아닌 RAM에 저장하여 변경가능하게 만들어 매 프레임마다 다른 샘플 위치를 잡고 ROP에 있는 전용 연산 유닛으로 2개의 결과를 섞어서 최종 결과를 만든다.[13] 그래서 상술한 QAA, Tent Filter와 같이 샘플을 섞어서 뻥튀기 하는 효과도 있다.(MFAA 8x = MSAA 8x 퀄리티 + MSAA 4x 성능이라는 것. 실제 성능 벤치에서도 입증된 효과) 다만 고스팅 효과에 의한 품질저하문제로 인하여 ATI는 60FPS 미만에서는 기능이 꺼지도록 하였고 Nvidia에서는 화이트리스트 제도로 특정게임에서만 기능이 동작하도록 만들었다.
출시 시기상 TAA(AMD) → TXAA(NVIDIA) → MFAA(NVIDIA)이며, TXAA까지는 품질 면에서 평이 안 좋아 사장되었고, MFAA는 그나마 나은 평을 받는 편이지만, 디퍼드 셰이딩 때문에 MSAA 자체가 사장되고 있는 추세라서(게임 자체에 MSAA가 아예 없으면, 지포스 제어판에서 MFAA를 강제로 켜더라도 아무 일도 일어나지 않는다) 조용히 묻히고 있는 상황이다. MFAA도 프레임 유지가 안 되면 품질 저하가 크다는 평도 있으며#, dx11 command list 최적화[14]를 무력화 시킨다는 얘기도 있다.#
하기 이미지는 각기 ATI TAA 와 Nvidia MFAA 의 개념을 보여준다.
TAA의 치명적인 단점은 서로 다른 화면을 섞는 과정에서 필연적으로 외곽선이 붕괴되고 하나의 상이 흐릿하게 분열되어 여러상이 맺히는 고스트 현상이 일어난다는 것이다. 이는 두개의 프레임이 각각 하나의 시간을 의미하는 화면이 아닌, 일정 길이의 시간동안 을 대표하는 화면으로 섞여지기 때문이다.(직관적인 형태로 단순한 알고리즘을 구현할경우 결과적으로 Linear하게 - Box필터 방식으로 구현된다.) [15] TAA가 자원을 적게 먹으면서도 계단현상을 잡는데는 최고지만 최악의 단점인 블러 현상 때문에 품질이 심각하게 떨어져보이기 때문에 이를 갈고 싫어하는 사람들도 많다. 아예 FuckTAA라는 서브레딧까지 개설되어 여러 게임에서 TAA를 강제로 끄는 법을 공유하는 시트까지 만들어서 배포하고 있다.
아래 그림에서 하나의 프레임이 시간상 어느정도의 영향을 미치는가에 따른 필터링 방식을 보여준다. 위로 올라갈수록 Temporal Aliasing에 대한 대응능력 즉 품질이 좋아진다.
각 필터링 방식에서 고스트 현상이 일어나는것을 보여준다.
a 와 같은 형태의 원본을 위, 아래로 흔든 상태이다.
a: Comb Filter
b: Box Filter
c: Triangle Filter
d: Gaussian Filter
b의 영상을 확대하여 보여준다. 아래와 같이 특정 주파수에서 흑/백이 역전되었다가 재역전되는 패턴이 나타나게 되며 이것이 외곽선 붕괴로 나타난다.
그렇다면 필터링에 따른 품질 향상이란 무엇인가를 보여주는 사진이다.
Temopral AA는 Temporal Aliasing즉 눈의 깜빡임에 의하여 자동차 바퀴나 선풍기 날개의 회전방향과 속도가 비 정상적으로 관측되거나 하는 현상을 해결하기 위하여 만들어졌다.
아래 그림에서 a~e는 Box Filter의 TAA를 준것으로 각기 속도 0,1,2,3,5로 이동한것이다. c와 비교해보면 d,e에서 Temporal Aliasing-이동속도와 방향이 비정상적으로 보이는것이 일어난것을 알수 있다. f는 d를 Gaussian Filter로 TAA한것으로 Temporal Aliasing이 해결되는것을 볼수 있다.
현재 TXAA/SMAA에서 사용되고 있는 TAA부분에서는 이 고스트 현상을 해결하기 위하여 프레임간에 물체의 위치 변화를 분석하여 움직이는 속도와 방향 즉 움직임 벡터를 계산하여 이를 기반으로 움직이는 부분에 대하여 프레임간의 가중치를 주어 다음 프레임에 이전 프레임을 투사하는 방식으로 단일상을 만들어내어 고스트 현상을 해결하였다. 이 구현방식은 사실상 Motion Blur 에 가깝게 동작하기 때문에 추가적인 블러링이 생긴다. 정지된 상에서도 AA샘플의 증폭효과를 위하여 프레임간에 Pixel을 미세하게 위상차를 주어 같은 샘플의 MSAA의 다른 결과를 만들어 내고 있다.
대부분의 게임에서는 MSAA, SMAA, FXAA를 주로 채용하고 있는데 모델링이 오밀조밀해서 계단현상이 유독 심한, MSAA나 SMAA FXAA를 어지간히 높이지 않는이상 눈이 아파서 게임하기가 힘든[16] 몇몇 게임[17] 에서는 아직도 TAA를 사용한다.
FidelityFX CAS나 RIS와 같이 AMD에서 제공하는 샤프닝 기술은 해당 AA를 적용한 화면을 후처리하는 방식으로 화면의 선명도를 높인다. AMD의 업스케일링 기법인 FSR도 TAA 적용을 가정하고 작동하는 방식이다. 그렇기 때문에 TAA를 적용하지 않은 상태에서 RIS나 FSR를 적용하면 효과가 많이 떨어진다.
또한 위에서 언급된 RDR2과 같은 게임들은 물론이며 현대 게임 엔진들이 보통 사용하고 있는 렌더링 방식과도 연관이 깊다. 보통 사용되는 디퍼드 렌더러들의 경우 투명 처리는 전통적인 포워드 렌더링에 비해 약점을 보이는데 디퍼드 렌더링을 사용하는 엔진들 중 투명 처리를 격자로 처리하는 등의 방법을 사용하는데다 투명 부분이 사용되는 식물과 같은 포울리지등은 보통 오밀조밀하게 배치되는 경우가 보통이라 TAA 없이는 자글자글하게 보이는 경우가 대부분이다. 물론 알고리즘 구현에 따라 결과에서 차이를 보이지만 대충 TAA만 얹는 방식으로는 위에서 언급된 화면 전체가 흐릿하게 보이거나 고스트 현상 등의 단점으로 인해 호불호가 심하게 갈리며, 이 때문에 DLSS가 반사이익을 얻기도 하는 상황#
2.4.1. TXAA
NVIDIA의 지포스 600 시리즈에서 새로 적용될 수 있도록 추가된 AA기술.영화와 같은 화면을 만드는 것을 목표로 하였다.
기본적으로 MSAA+TAA+블러링필터로 이루어진다.[18]
TXAA 2x = MSAA 2x + TAA 2x + 블러링필터
TXAA 4x = MSAA 4x + TAA 2x + 블러링필터
블러링 필터는 CFAA에 사용되는방법과 유사한것으로 추정되며 자신들의 그래픽카드에 전문적으로 적용되도록 만드는 과정에서 MSAA파트에 HDR등 후처리 문제를 해결할수 있도록 만들었다. 또한 TAA의 고스트 문제는 화면 물체의 움직임 벡터를 계산하여 이를 적용하여 적절한 위치에 단일상이 맺히도록 하여 해결하였다.
서브 픽셀에 강력한 대응이 가능하고, 액션 영화와 같이 움직임과정에 부드러움을 느낄수 있다고 주장하였으나 실제 결과물에 있어 FXAA를 능가하는 블러링 효과 때문에 많은 지탄을 받았다. 심한 블러링을 제거 하기 위해서는 블러링필터의 크기와 효과를 줄이면 되지만 이 경우 사실상 MSAA+TAA가 되어버려서 품질적으로 경쟁기술에 비하여 메리트가 없어진다.[19] AA효과를 위하여 블러링 필터를 키우면 블러링이 심해지고 심한 블러링을 줄이기 위해 블러링 필터를 줄이면 AA효과가 줄어드는. CFAA에서 AMD가 한 삽질을 그대로 재현한 기술이라 할수있다.
Timothy의 블로그에 의하면 이러한 문제로 인하여 블러링 필터 없이 화면 해상도를 낮추고 SSAA와의 결합하여 성능저하를 견디면서 블러링문제를 없애고자 하는 시도들을 하고있었다. 논란이 이어진 탓인지 결국 Timothy의 블로그에서 관련한 내용들이 완전히 삭제되었다. 당시 MSAA는 의미가 없으며 해상도를 낮추는 한이 있더라도 무조건 SSAA를 주는 형태로 방향을 잡아야 한다는등 논란의 여지가 큰 방향으로 흘러가고 있었다.
잠깐 떴다가 묻힌 AA라 적용된 게임도 별로 없다. 그나마 소수의 적용된 게임 중 유명한 게임으로는 GTA 5가 있는데, 엔비디아 그래픽카드를 사용중인 경우에만 활성화가 가능하다.
2.5. FAA
Fragment Anti-Aliasing.매트록스에서 발표한 AA기술. 후처리 AA기술들의 아이디어-"완성된 화면의 외곽선 만으로 충분하다" 를 처음 고안하여 이용한 기술. FAA발표당시가 2002년이었고 MLAA가 2009년에 발표되었으니 선구자라 부를만 하다.
화면의 각 픽셀을 4x4, 16개의 작은 점으로 분해 체크하여 외곽선을 검출한후 외곽선 픽셀들만을 추출하여 이 외곽선픽셀들을 적절한 삼각형 형태로 만들어 색상을 섞어서 AA효과를 준다.
MSAA와 후처리AA의 과도기적인 기술로 외곽선 검출에서는 MSAA에 가깝고 AA효과가 들어가는방식 자체로는 후처리AA에 가깝다. 제대로 AA가 들어가면 매우 훌륭한 결과물을 보여준다.
하지만 일단 외곽선 검출 방식 자체가 세련되지 못하여 비효율적이고 AA효과가 오직 외곽선으로 판별된 픽셀에만 주어지므로 효과가 매우 제한된다, 그 결과 그림자나 셰이더 효과들에 적절하게 대응하지 못하며 AA효과가 제대로 들어가지 않거나 아예 들어가지도 않는 경우가 다발하고 성능향상 또한 지금의 후처리AA만큼 좋지 못했다. 사실상 염가 MSAA x16처럼 동작한다.(MSAA x16보다 낮은 연산량 낮은 품질)
더구나 당시 기술과 동시에 발매한 카드 파헬리아512 의 가격은 일반 게이머 용도라기 너무 지나쳤고 3D가속 성능은 또한 지나치게 낮았다. 여기에 얼마 안 있어 Matrox회사 자체가 게이밍용 그래픽카드시장에서 손을 털고 일반인이 아닌 방송/비디오편집가들을 위한 전문시장에만 주력하게 됨으로써 이 아이디어는 오랫동안 잠자게 된다.
2.6. MLAA
Morphological Anti-Aliasing.PS3에서의 사용례
2009년 SIGGRAPH에서 최초로 발표된 AA기법으로 주로 PS3환경에서 주로 사용되고 있다. 인텔에서 개발하였다. PS3의 갓 오브 워 시리즈에 적용하면서 유명세를 탄 기술이다. MLAA는 x4~x16 SSAA수준의 AA효과를 x2 SSAA수준의 성능 하락으로 제공하는 것으로 명성을 올린바 있다. 하지만 이러한 성능향상 효과는 해상도 증가에 따라 급격히 줄어들기 때문에 낮은 해상도에 기반한 콘솔게임들에 특화되었다고 할 수 있다. 더구나 PS3는 그거 외에도 써먹기 힘든 SPE의 활용이라는 측면도 있어서 더더욱 이득이 컸다. 다만 SPE는 PS4부터 x86기반 AMD APU로 갈아타면서 상관 없어졌다.
이미 완성된 NO AA이미지에 후처리 형식으로 외곽선의 형태를 파악하여 원래의 형태를 예측, 거기에 적절한 중간색을 넣어 외곽선에 일어나는 계단을 완화시키는 방식이다. MLAA는 별도의 프레임버퍼용량은 잡아먹지 않지만 형태 분석을 위한 연산량이 엄청나게 된다. 대신 이 연산은 셀-브로드밴드 엔진 특유의 SPE를 사용할 수 있어, PS3의 VRAM과 범용 코어[20]가 모자라고 대신 SPE가 남아도는 환경에 적합한 AA인 것이다. AMD에서는 이 연산을 CPU대신 자사의 GPU로 가속하는 방식으로 드라이버에 추가하여 AMD의 대표적인 AA로서 알려졌다.
MLAA로 인한 이점은 다음과 같다.
- 메모리 절약
2배수 MSAA를 적용시 G버퍼(게임 화면 정보)용량은 약 14MB 정도에 달하게 되는데, MLAA 를 쓰게된다면 이 용량이 절반으로 줄어 7MB 가 절감되어 메모리 확보에 획기적이다.
- 대역폭 절약
G버퍼의 용량이 줄었다는 것은 대역폭이 그만큼 확보되는 것을 의미하고 대역이 늘어난 만큼 광원등 추가 효과를 넣어 줄수 있게 된다.
- 필레이트 절약
필레이트 가 절감된다는 것은 반투명 효과를 처리할수있는 리소스가 늘어나는 것을 의미한다.
- 텍스쳐에 대한 AA효과
기존의 MSAA가 폴리곤 외곽에 대하여만 적용되었던데 반하여 SSAA와 같이 화면 전체에 걸리게 되므로 대응하지 못하던 폴리곤 내부의 텍스쳐에서 일어나는 Aliasing에 대응할수 있게 되었다(다만 텍스쳐의 복잡도가 높아져 버릴경우 알고리즘상 문제로 인하여 텍스쳐에 원하는 형태로 AA가 걸리지 않는다. 즉 텍스쳐에 블러링이 생겨버린다.)
- 강력한 호환성
PC환경에서 강제로 AA를 줄경우 게임엔진등과의 상성문제로 인하여 AA를 강제설정하여도 AA가 적용되지 않는 경우가 매우 흔하게 발생하였으나, MLAA의 경우 최종 이미지에 후처리를 가하는 후처리AA이기 때문에 적용되지 않는 경우 없이 완벽한 적용가능 호환성을 보여주었다. 이는 하기 FXAA에서 어느엔진에나 쉽고 빠르게 포팅 가능한 장점으로 나타나게 된다.
하지만 문제점도 있다.
MLAA는 후처리로 완성된 화면을 분석할 뿐이니 렌더링 단계에서 생겨나는 왜곡은 극복할수없다. 전선등 표현되는 그래픽의 내용이 화면의 점 하나보다 적어지는 상태 - 서브픽셀 문제에 대하여 이미 완성된 화면에서 분석하기 때문에 전혀 대응이 불가능하다. 그리고 철조망등 분석하는 형태가 지나치게 복잡한 경우 - 즉 밀도가 지나치게 높아서 최종 결과물의 정보만으로 원상태를 예상하기 힘든경우 형태분석결과가 매우 안좋게 된다. 또한 반투명 오브젝트가 알파 커버로 처리된 경우, 디더링 현상(제한된 색을 이용하여 음영이나 색을 나타내는 것이며, 여러 컬러의 색을 최대한 맞추는 과정)이 일어나는 부분의 아티팩트가 심하게 증폭된다.
확대된 사각형에서 보여주듯 서브픽셀 Aliasing이 일어나고 있다. 이것은 근본적으로 샘플링 AA를 거치지 않고서는 해결되지 않는데 애초에 PS3는 MSAA에 취약한 구조를 지니고 있고 MSAA의 대안책으로 MLAA를 개발한것이다.
SSAA 16x와 비교하여 MLAA의 서브픽셀문제를 보여준다.
거기에 UI에서 뿌리는 글자를 제대로 구별 못해서 외각성을 뭉개놓아 가독성을 심하게 떨어뜨리는 문제도 있다. 공식 지원 게임들은 글자가 뿌려지는 UI는 레이어를 분리해서 MLAA가 적용 안 되도록 피해서 문제를 해결했지만, 미지원 게임에서 AMD 드라이버 인젝터를 통해 강제로 걸 경우 글자 가독성을 망치는 사례는 계속 나오고 있다. 이건 다른 후처리 AA들(FXAA나 SMAA등)도 완전히 피해갈 순 없는 후처리 AA 자체의 근본적인 한계지만(완전히 피하는 방법은 상기한 것처럼 게임 자체에서 제대로 지원하는 수 밖에 없다.), MLAA가 워낙 초기에 나와서 지원도 약하고 블러링이 심한 상태에서 이 문제를 정통으로 맞은지라, MLAA만의 문제로 인식하는 경우도 있다.
AMD에서는 자사 드라이버에 구현된 MLAA의 FXAA에 대한 상대적인 연산시간 과다를 해결하기 위하여 7xxx 카드 대응으로 MLAA 2.0을 내놓게 된다. AA를 위한 연산시간의 엄청난 감소- 연산량 대폭 절감 - FPS 증가를 이루어냈고 동시에 화질향상또한 이루었다.(후처리계의 최대 단점으로 지목된 텍스쳐왜곡-블러링 현상을 크게 완화했다.) 하지만 내부적 렌더링 과정의 정보를 이용하는 과정에서 메모리 사용량이 증가하고, 호환성 문제 - 즉 엔진에 따라 적용되지 않는 경우가 생겨버렸다. (MLAA 2.0의 경우 FXAA에 비해 약간더 시간이 걸리지만 MLAA/FXAA의 공통적인 최대 약점인 텍스쳐 블러링과 문자 왜곡현상이 크게 줄어서 FXAA보다 조금더 성능을 요구하고 품질하락이 조금 덜한 기술 이라고 인식되지만 이경우 차라리 MLAA 2.0보다 조금더 성능을 요구하면서 좀더 품질이 좋고 GPU를 가리지 않는 SMAA 1x라는 선택지가 있다.)
2.6.1. SMAA
Subpixel Morphological AntiAliasing.유로그래픽포럼2011에서 크라이엔진3로 처음 SMAA를 시연해보였다.
기존의 MLAA을 진보시킨 것으로 기본적으로는 MLAA의 엄청난 연산량을 해결하기 위하여 형태 분석을 실시간으로 연산하지 않고 적당한 형태에 맞는 필터들을 미리 생성해놓고 형태에 맞게 덮어서 효과를 주는 방식으로 연산량문제를 크게 해결하였으며, 문자에서의 문제해결및 급격히 형태가 변하는 모서리에 대한 대응, 외곽선에서 일어나는 그라데이션을 위한 외곽선 판별알고리즘의 개선등 특정상황들에 맞춰 화질 향상을 위한 상황대응기능들을 추가하였다.
또 여기에 추가적으로 후처리 AA의 최대단점으로 지적되었던 서브픽셀문제를 해결하기 위하여 TAA, MSAA와 결합하는 방식을 추가하였다.
SMAA 1x : MLAA의 개량형 후처리 AA
SMAA S2x = MSAA 2x + SMAA 1x
SMAA T2x = TAA 2x + SMAA 1x
SMAA 4x = MSAA 2x + TAA 2x + SMAA 1x
하지만 샘플링 AA들이 가지는 메모리 소요와 연산량 소요 그리고 구현을 위한 기술등의 문제로 인하여 서드파티 Injector 툴을 통한 SMAA 1x만이 유저들사이에서 후처리AA로서 널리 사용된다. (SMAA을 발표측 자료에 의하면 FXAA 3.1이 default preset에서 0.62ms 걸릴때 SMAA 1x는 1.02ms 로 경쟁 가능 범주지만 4x에서는 2.34ms에 달한다. 더구나 이때 메모리 사용량은 FXAA의 4배에 달한다.)
크라이시스3 에서 최초로 게임에서 1x이상의 SMAA 가 구현되었다. (SMAA T2x/4x)
이 후, Ryse에서 고스팅 현상 해결을 주장하는 SMAA T1x도 등장했다.
[vimeo(31247769)]
자세한것은 http://iryoku.com/smaa/ 을 참조.
2.6.2. CMAA
Conservative Morphological Anti-AliasingMLAA 의 가장 최근 발전형.
인텔에서는 후처리 AA에 있어 가장 심각하게 제기된 문제인 원본을 해친다는 점(블러링의 발생, 특히 디테일한 부분의 파괴)의 개선과 MLAA의 문제인 높은 계산량을 동시에 해결하는 방법으로서 CMAA를 발표한다.
MLAA와 같이 외곽선을 검출하되 MLAA가 외곽선 전체를 분석 예측하려는것과 달리 문제가 될만한 외곽선만을 판별하고 나머지는 손대지 않는다. 이를통하여 분석해야 하는 양을 줄이면서 제대로 예측되지 않은 AA효과가 들어감으로서 파괴되는 디테일한 부분을 상당히 보존할수 있게 된다.
같은 MLAA의 발전선에 있는 SMAA 1x과 비교하여 좀더 빠르고 외곽선에 의한 원본 예측이 극히 어려운 상황(글자나 극히 작은 디테일)에 있어서 나은 효과를 보여주지만 전체적인 이미지의 품질은 떨어진다.
인텔에서 CMAA발표에서 비교한 후처리 AA별 이미지 품질
2.7. DLAA
Directionally Localized Anti-Aliasing.파레넬 방정식을 이용한 안티에일리어싱이다. MLAA와 큰 차이가 없지만 모션블러와 같은 셰이더 효과의 퀄리티는 MLAA보다 좋다.
2.8. DEAA
Distance to Edge Anti-Aliasing.포스트 프로세스 방식이다. 그림자나 텍스처 등 가장자리 정보가 없는 경우에는 적용하기 힘들다.
2.9. GBAA
Geometry Buffer Anti-Aliasing.DEAA와 비슷한 방식이다. 렌더 타겟에 저장되어 있는 지오메트리 정보를 이용한다. 따라서 DirectX 10 이상만 지원.
2.10. SRAA
Subpixel Reconstruction Anti-Aliasing.디퍼드 렌더링 타겟을 이용한다. SSAA, MSAA, CSAA와 호환이 가능하다.
배틀필드3에 사용되었다.
2.11. FXAA
Fast Approximate Anti-Aliasing.NVIDIA의 직원 티머시 로티스(Timothy Lottes)[21]가 고안하여 공개한 후처리 AA기술.
FXAA는 전통적인 MSAA와 같은 종류의 고성능 근삿값을 제공한다. 일종의 픽셀 셰이더로서 MLAA와 마찬가지로 목표 게임의 렌더링 파이프라인 이후에 이루어지는 후처리 단계이다. 하지만 AMD의 MLAA와 같이 다이렉트 컴퓨트를 사용하는 것이 아니라 단순한 후처리 셰이더를 사용하고, 어떤 GPU 계산 API에도 의존하지 않도록 고안되었다. 따라서 FXAA는 특별히 그래픽카드를 선호하지 않으며, 어떠한 그래픽엔진에도 매우 쉽고 빠르게 적용될 수 있다.
MSAA와 비교하여 FXAA의 목표는 더 빠르고 메모리 점유율이 더 낮으며, 픽셀이 흐릿해지는 현상이 일어나지 않는다는 장점이 있다.
FXAA는 화면의 밝깃값을 분석하여 이것이 급격히 바뀌는 곳을 기반으로 외곽선을 추출하고, 이 외곽선에 90도 방향으로 AA효과를 넣는 방식으로 되어있다. 따라서 이 외곽선의 길이가 충분히 확보되지 않을 경우 효과를 특정하기 힘들어지며 이는 복잡하게 변화하는 구조, 특히 문자 등에서 심각하게 문제가 된다. 전반적으로 고해상도 텍스쳐 등 세밀한 표현이 일어나는 곳에서 심한 블러링 효과가 일어난다.
FXAA는 현재 3.11 까지 공개되어있으며 콘솔용으로 최적화된 FXAA 3.11 Console 과 PC용의 FXAA 3.11 Quality가 있다. Nvidia의 프리젠테이션에서 FXAA Quality 기본 프리셋에서 1080p화면이 GTX580 에서 0.39 ms/frame, GTX460에서 0.88 ms/frame이 걸리는 것으로 나타나고 있다. 콘솔용으로 최적화된 FXAA Coonsole의 경우 720p 화면이 XBOX360 에서 1 ms/frame, PS3에서 1.2 ms/frame이 걸리는것으로 나타나고 있다.
현재 범용적으로 사용되는 AA기술중에서 가장 성능저하가 적으면서 준수한 품질을 보여주는 기술로 인정받고 있다. (다르게 말하면 실용적인 AA기술들 중에서 속도는 가장 빠르지만 품질은 가장 낮다고도 할 수 있다.)
티머시 로티스의 실험적 진행방향은 서브픽셀문제와 충분한 외곽선 확보를 동시에 얻기 위하여 내부적으로 SSAA와 유사한 방식과 결합하는 방법을 고안중인 것으로 보였다.(화면 자체를 1.5배정도 확대 생성하여 FXAA를 걸고 다시 다운샘플링-축소 하는 방식.)
2.12. ATAA (DLSS, DLAA)
Adaptive Temporal Antialiasing자세한 내용은 DLSS 문서 참고하십시오.
3. 관련 문서
- RIS
- FSR
- XeSS
- NVIDIA Image Scaling: 496.76 드라이버에 추가된 업스케일링 기능이다. FSR 1.0과 달리 드라이버 단계에서 설정이 가능하여 때문에 사실상 모든 게임에 적용 가능하다. 또 선명도를 수동으로 설정할 수 있어 FSR 1.0에 비해 자유도가 높으며[22] FSR 1.0/RSR이랑 같은 방식인 Temporal 데이터 없이 spatial 데이터만 쓰는 방식이라 사실상 엔비디아판 RSR이라고 볼수있다. 다만 D3D 기반으로 작동하여 외부 프로그램을 사용하지 않는 한 DX11 이상의 게임 및 GPU에서만 이용할 수 있다.*
[1] 이상적인 개념으로 존재하는 직선, 원 또는 현실의 물체가 가지는 해상도는 무한대이기에 이를 모니터/TV화면의 제한된 해상도로 출력하는 순간 Aliasing이 일어난다. 무한한 해상도를 가지는 벡터 그래픽 포맷으로 출력할때는 Aliasing이 일어나지 않지만 이를 눈에 보이는 빛의 형태로 출력해야 할 디스플레이 기기는 어차피 제한된 해상도를 가지는 픽셀들의 맵 형식이기 때문에 결국 Aliasing이 일어난다.[2] 사실 이 경우 해상도 자체보다는 DPI가 더 중요하다. 다만, 해상도가 낮을수록 충분한 DPI를 맞추려면 화면 크기가 터무니 없이 작아져야하기 때문에 결국 해상도를 올려야 한다.[3] 정확히는 Retina 디스플레이 논란 중에 꿈보다 해몽식으로 제기된, 시각도나 CPD(Cycles per Degree) 등 각종 복잡한 개념을 통해서 "눈에 픽셀이 보이지 않는 수준의 고밀도 디스플레이"가 현실적인 디스플레이에서 Aliasing 발생을 제거하기 위한 기준으로 볼 수 있을 것이다.[4] 후술하겠지만, 모니터로 CRT를 사용했기 때문에 따로 처리하지 않아도 안티에일리어싱이 일어났다.[5] 2010년대에 쓰이는 SMAA의 조상님뻘이라고 할 수 있다.[6] 실제 눈으로 Aliasing을 구별할수 없게 되는 정도가 PC환경-모니터와 거리 60cm 정도에서 500~600ppi 라고한다.(스마트폰 환경 30cm 에서 1000~1200ppi) 30인치 4k 모니터가 150ppi, 우리가 사용하는 일반 모니터들이 100ppi 안밖에 불과 하다. 즉 AA를 통하여 Aliasing을 완전히 해결하려면 SSAA x16은 넘어야 한다. 일반적인 상황에서 SSAA x8을 걸 경우 FPS의 변화는 AA걸지 않은 상태 대비 1/5 수준이 된다고 본다. SSAA x16은 FPS가 10분의 1이하로 감소한다는 것. 그냥 눈에 비치는 그대로 완전한 해결따위는 포기하는 것이 속 편하다.[7] 특히 고전게임은 CRT로 출력할 것을 전제로 그래픽을 만들었기 때문에 CRT를 써야 사실적인 느낌을 낼 수 있었다.#[8] 엄밀히는 다운스케일링 과정이 추가되기 때문에 약간 더 높은 부하가 걸린다.[9] 당연하게도 해상도를 높이는 게 가장 좋은 Anti-Aliasing이므로, 성능 저하를 감수하면서까지 별도의 고품질 Anti-Aliasing 처리를 할 필요성이 급격히 줄어든다. 이런저런 이유로 4K 해상도인데 30인치도 안 되는 모니터를 쓰는 경우, DPI가 더 높아지므로 Aliasing은 더 줄어든다.[10] 특히 고프레임 환경에서 (TAA에서 후술할) MFAA를 잘 활용하면 순수 MSAA보다 성능도 높으면서 TAA중 가장 높은 퀄리티를 낼 수 있는데, 이에 익숙해진 상황에서 AA 최고 옵션이 기껏해야 FXAA, SMAA 1x거나 SW방식 TAA인 게임을 하게 되면 역체감이 엄청나다.[11] 런타임 성능 기준, 개발 소요는 당연히 늘어난다.[12] 요즘 나오고 있는 144Hz, 240Hz 게이밍 모니터 등으로 프레임을 올리면 당연히 Temporal Aliasing 현상도 줄어든다.[13] ATI TAA는 MSAA랑 상관 없다.[14] GTA 5에서 CPU오버헤드 감소를 위해 많이 사용하는 최적화라고 한다.[15] 이게 무슨 말인가 하면 레드 데드 리뎀션 2에 TAA를 켜놓고 해보면 된다. 화면을 움직일때 텍스쳐가 다운스케일링 한것마냥 엄청 뭉개져서 보인다. 4K인데 1440p같은 느낌이 들고 1080p인데 720p같은 느낌이 든다.[16] 이러한 게임들은 계단현상이 너무 심한 나머지 플리커링(물체의 경계선이 깜빡거리는 현상)까지 일어나기 때문에 안티에일리어싱을 엄청나게 높이지 않는이상(MSAA 8배 등등) 원활하게 게임하기가 힘들다. 근데 이러면 렉이 너무 심해서 정상적인 게임을 할수 없다.[17] 예를 들면 레드 데드 리뎀션 2와 사이버펑크 2077이 있다. 이 두 게임은 TAA를 쓰는데 레데리2의 경우에는 식물 모델링이 너무 오밀조밀해서 4K 해상도에 MSAA 4배(최대치)+FXAA를 먹여줘도 눈이 아플 정도로 계단현상+플리커링이 심하다. 그래서 어쩔수 없이 TAA를 사용해야 한다.[18] 헐리우드 영화에서는 액션신에서 자연스러움을 위하여 블러링 필터를 사용하는것이 당연하며 실제 정지화면의 선명도는 떨어지지만 움직임은 자연스러워진다는 것이 관계자의 설명이었다.[19] 경쟁기술 SMAA 4x 와 대비해보면 알수있다.[20] 경쟁 플래폼의 3코어 대비 1코어[21] 2013년에 에픽게임즈로 이직했고, 2015년부터는 AMD에서 일하고 있다.[22] 유저의 선택권과 별개로 기술적으로 볼 때 FSR은 업스케일링과 샤프닝이 별도로 구성되어 있는 반면 NIS는 일원화 되어 있어 자유도가 떨어진다.