안티 에일리어싱-AA의 종류는 상당히 다양합니다. 이번에 볼 것은 NVIDIA가 올해 발표한 FXAA입니다. FXAA는 AMD의 MLAA와 비슷한 점이 있긴 하지만 그리 많이 알려지진 않았습니다. 듀크 뉴켐 포에버니 F.3.A.R을 해봤다면 들어봤을 수는 있겠지요.

 

FXAA는 Fast Approximate Anti-Aliasing의 줄임말입니다. 전통적인 MSAA(멀티 샘플링)와 같은 종류의 고성능 근사값을 제공합니다. 일종의 픽셀 쉐이더로서 MLAA와 마찬가지로 목표 게임의 랜더링 파이프라인 이후에 이루어지는 후처리 단계입니다. 하지만 다이렉트 컴퓨트를 사용하는 것이 아니라 단순한 후처리 쉐이더를 사용하고, 어떤 GPU 계산 API에도 의존하지 않습니다. 그런 이유로 해서 FXAA는 특별히 그래픽카드를 가리지 않으며, NVIDIA와 AMD의 모든 그래픽카드와 호환되고(MLAA는 라데온만 지원), 다이렉트 X 9, 10, 11에서 모두 사용할 수 있습니다.

 

MSAA와 비교하여 FXAA의 목표는 더 빠르고 메모리 점유율이 더 낮으며, 픽셀히 흐릿해지는 현상이 일어나지 않는다는 장점이 있습니다. 그 댓가는 정확도와 품질의 손실이지요.

 

FXAA의 개발자인 Timothy Lottes의 이야기에 따르면 지포스 GTX 480에서 FXAA 프리셋2를 사용했을때 1920x1200 해상도의 1프레임을 처리하는데 필요한 시간은 1밀리초가 안된다고 합니다.

 

FXAA는 3가지 종류가 있습니다. FXAA1은 제일 기초적인 것으로서 PC 게임에서 널리 사용되고 있습니다. F.3.A.R, 듀크 뉴캠 포에버, 에이지 오브 코난, 크라이시스 2, 보더랜드 등에서 사용하였습니다. FXAA2는 XBOX 360 게임을 위해 만든 것이며, FXAA3은 PC용인 퀄리티 버전과 XBOX 360, PS3용이 있습니다.

 

FXAA 3은 FXAA 1과 비교하여 뛰어난 성능이 특징입니다. 지포스 GTX 480 다이렉트 X 11 기본값에서 FXAA 3 퀄리티는 720p 해상도를 그려낼때 0.21밀리초 정도가 걸립니다. 다이렉트 X 9와 11 모드에서는 성능 차이가 꽤 큰데, 다이렉트 X 11이 더 빠릅니다.

 

FXAA의 공식 문서: http://developer.download.nvidia.com/assets/gamedev/files/sdk/11/FXAA_WhitePaper.pdf

 

1.png

 

왼쪽에서 오른쪽으로, AA 없음, 4x MSAA, FXAA.

 

2.png

 

FXAA의 연산 과정.

 

3.png

 

FXAA 연산

 

 

테스트 환경입니다.

 

CPU:코어 i7-920을 3.6GHz로 오버클럭
메인보드:아수스 P6T6 WS 레볼루션
메모리:커세어 DDR3-1600 6GB
하드디스크:웨스턴 디지털 500GB SATA
파워:쿨러마스터 리얼 파워 프로 1250W
모니터:델 3007WFP (DVI)
운영체제:윈도우즈 7 울티메이트 SP1 x64

 

그래픽카드:

지포스 GTX 580 772/1544/4008MHz
지포스 GTX 570 732/1464/3800MHz
지포스 GTX 560 Ti 822/1645/4000MHz
라데온 HD 6970 880/5500MHz
라데온 HD 6950 800/5000MHz
라데온 HD 6870 900/4200MHz

 

드라이버:

지포스 275.50 베타
카탈리스트 11.6 WHQL

 

 

테스트할 게임으로는 F.3.A.R를 골랐습니다. 버전은 16.0.20.1060. 게임 중에서 화질이 높은 Intervals 07로 설정했고, 헬리콥터가 나오는 부분까지 15~18분의 프레임을 기록했습니다. 다이렉트 X 11, 16x AF, 해상도는 그래픽카드에 따라 3종류로 측정했습니다.

 

몇번의 테스트 결과 평균 프레임이 37fps는 되야 게임이 끊기지 않고 원활히 플레이할 수 있다는 것을 발견했습니다.

 

4.gif

 

지포스 GTX 580에서 FXAA를 사용하지 AA를 사용하지 않았을 때와 비교하여 11.7%의 성능 손실이 있었습니다. 평균 프레임은 56.7fps.

 

5.gif

 

지포스 GTX 580에서 2xAA를 사용할 때는 43.1fps로 줄어들어 FXAA보다 13.6% 낮은 성능이 나왔습니다. 4xAA는 2xAA보다 38% 낮은 성능이었고(이때 프레임은 원활한 게임이 힘든 수준), FXAA와 4xAA의 성능 차이는 52.8%였습니다.

 

6.gif

 

라데온 HD 6970에서 FXAA는 55.6fps입니다. AA를 사용하지 않았을 때보다 14.7%의 성능 손실이 있었습니다.

 

7.gif

 

라데온 HD 6970에서 2xAA, 4xAA는 FXAA보다 각각 17.4%와 50.9%의 성능 손실이 있습니다.

 

8.gif

 

지포스 GTX 570의 FXAA는 2xAA, 4xAA보다 24.8%, 35% 더 빨랐습니다. 하지만 해상도가 1920x1200으로 낮기 때문에 4xAA도 40fps 가까운 성능이 나왔습니다.

 

9.gif

 

라데온 HD 6950은 동일 조건에서 16.1%, 30.9% 느린 결과가 나왔습니다. 그래도 4xAA가 44fps는 나옵니다.

 

10.gif

 

지포스 GTX 560 Ti는 2xAA, 4xAA가 FXAA보다 23.1%, 50% 더 느린 성능이 나왔습니다.

 

11.gif

 

라데온 HD 6870은 15.8%와 37.8%의 차이가 있었습니다.

 

 

다음은 2560x1600에서의 테스트 환경입니다. 화질은 최고.

 

12.png

 

13.png

 

14.png

 

15.png

 

앞에서 FXAA는 지포스나 라데온 모두 사용이 가능하다고 했는데, 지포스 GTX 580과 라데온 HD 6970은 비슷한 그래픽을 보여주고 있습니다.

 

FAXX의 AA 효과는 2xAA보다 뛰어나며, 4xAA와 비교해도 뒤지지 않습니다. FXAA는 2xAA보다 더 빠를 뿐만 아니라 4xAA급의 화질을 제공하고 있습니다.

 

16.png

 

지포스 GTX 580에서의 스크린샷입니다. FXAA가 알파 텍스처에 미치는 영향을 본 것인데, AA를 사용하지 않았을때 텍스처 바깥쪽 테두리에 대량의 입자가 나타나 있습니다. 2xAA, 4xAA에서도 입자는 더 거칠어지지만, 오직 FXAA에서만 입자가 사라집니다.

 

17.png

 

라데온 HD 6970에서의 스크린샷입니다. AA를 껐을 때에는 테두리가 확실히 거칠어 보이며, 2xAA에서는 개선되었고 4xAA에서는 더 나아졌습니다. 하지만 FXAA만큼 메끄럽진 못합니다.

 

18.jpg

 

NVIDIA의 스크린샷입니다. 어떤 게임인지는 모르겠지만. 왼쪽은 FXAA를 끈 것이고 중간은 FXAA3.9이지만 픽셀 컨트라스트를 낮추지 않은 것입니다. 세번째는 FXAA 3.9에 픽셀 컨트라스트까지 낮춘 화면입니다.

 

 

FXAA와 MLAA의 성능 비교입니다.

 

19.gif

 

라데온 HD 6970에서 FXAA는 56fps, MLAA는 32.6fps가 나왔습니다. 속도 차이는 42%이지만 MLAA의 그래프가 더 안정적입니다. 

 

20.gif

 

라데온 HD 6950에서 FXAA가 60% 앞섭니다.

 

21.gif

 

라데온 HD 6870에서 FXAA가 47.5% 더 앞섭니다.

 

 

FXAA와 MLAA의 화질 비교입니다.

 

22.png

 

미끈한 바닥에서 FXAA와 MLAA의 차이를 육안으로 구분하긴 힘듭니다.

 

23.png

 

MLAA의 컬러 필터링이 더 부드럽긴 하지만 기본적으로는 같습니다.

 

24.png

 

FXAA의 효과가 더 뛰어납니다.

 

25.png

 

나뭇잎에 쓰인 알파 텍스처에서는 FXAA가 MLAA보다 입자 크기가 더 작습니다. MLAA도 어느 정도 효과는 있지만 FXAA가 더 뛰어납니다.

 

 

FXAA는 NVIDIA가 AMD MLAA에 맞춰 내놓은 기술로서 큰 차이가 없는 그래픽에 더 빠른 속도를 내는 것이 특징입니다. 또한 알파 텍스처에서도 높은 처리가 장점입니다. 동일한 화질에서 MLAA가 FXAA보다 평균 37.1% 더 느립니다.

 

FXAA는 NVIDIA와 AMD 그래픽카드에 모두 호환되고. 성능이 미치는 영향이 MSAA나 MLAA보다 적으며, 4x MSAA나 MLAA와 같은 수준의 화질, 성능과 화질 사이의 좋은 균형, 텍스처나 쉐이더의 에일리어싱을 잘 잡아줍니다. 다만 아직은 게임 개발자들의 지원이 더 필요합니다.

 

MLAA는 게임에서 지원할 필요 없이 드라이버에서 설정하면 되기 때문에 모든 게임 엔진, 다이렉트 X건 OpenGL이건 실행 가능합니다. 또한 텍스처와 쉐이더의 에일리어싱 제거에 탁월합니다. 하지만 라데온만 지원하고 성능 손실이 크다는 단점이 있습니다.

기글하드웨어(http://gigglehd.com/zbxe)에 올라온 모든 뉴스와 정보 글은 다른 곳으로 퍼가실 때 작성자의 허락을 받아야 합니다. 번역한 뉴스와 정보 글을 작성자 동의 없이 무단 전재와 무단 수정하는 행위를 금지합니다.