차례
• AA란?
• AA의 종류
• 앨리어싱이 생기는 이유
• SSAA
• MSAA
• CSAA
• MLAA
• DLAA
• DEAA
• GBAA
• SRAA
• FXAA
• SMAA
• TXAA
• 결론
AA란?
• 다각형을 픽셀로 표현하고자 할때 픽셀의 크기때문에 생기는 계단현상( 앨리
어싱 )을 처리 하는 방법
• 오브젝트의 윤곽선 부근에 발생하는 톱니 모양의 들쭉날쭉한 모양을 희미하
게 해서 보이지 않게 하는 처리
• AA처리를 얼마나 저렴한 비용으로 할수 있는가 독립적으로 사용할 수 있는가
가 관건
SSAA
• SuperSampling AA = FSAA(Full-Scene AA)
• 모든 픽셀에 대하여 픽셀당 한 개 이상의 샘플을 추출하는 방식
• 표시하는 해상도 보다도 고해상도로 렌더링 한 뒤, 원래 해상도로 축소해서 사
용하는 방식
• 차이를 모를 수도 있으나 나름.. 계단현상이 대폭 사라지게 됨
•
SSAA 의 종류
Grid Algorithm Random Poisson Disc Jitter Rotated Grid
Jitter : Poisson Disc에 가까운 그리드 알고리즘의 수정판
SSAA
• 픽셀당 모두 수행하므로 부하가 매우 큼 ½ ~ 최고 ¼
• 메모리 대역폭을 많이 잡아먹음
메모리 대
• 퀄리티는 대신 최고… 보통 SSAA나 MSAA로 퀄리티 비교를 많이 함
역폭
따위…
MSAA
• Multi-Sampling Anti-Aliasing
• Super-Sampling을 효율과 성능면에서 최적화 한것(Partial Super- Sampling)
• 도형과 겹치는 픽셀칸에서 가운데 한점 뿐이 아니라 한칸당 한개 이상의 지점
에서 정보를 수집한다는 의미
• 가장 보편적인 AA 방법
• 문제는 멀티 샘플링시 필요한 프레임버퍼의 정보크기가 2배로 됨
( 디퍼드 와 같이 쓰기에 매우 무거움)
• 대역폭을 많이 잡아먹음. 더 많은 GPU 리소스 필요
MSAA.. 퀄리티는 괜찮지만
• CPU 기반
• 역시나 부하가 큼
• 이미지에 대해 상관없이 그냥 여러 번 샘플링 함
• AA 기준의 척도가 됨
• 현재 나오는 AA는 MSAA x N 만큼 성능이 좋으며 이정도 속도를 내며 메모리도
적게 먹는다로 말함
Deferred – MSAA ?
• 디퍼드 렌더링의 고질적 문제 ( AA )
• 하드웨어의 가속 을 간접적으로 받게 하여 MSAA를 손쉽게 구현할 수 있음
• http://mynameismjp.wordpress.com/2010/08/16/deferred-msaa/
Deferred – MSAA ?
• #1. 4xMSAA를 켜고 씬의 모든 도형을 Z- Prepass에서 렌더
#2. MSAA를 끄고 정상적으로 HDR 랜더 타겟에 렌더
#3. 톤 매핑 및 기타 후처리를 적용
#4. "Deferred AA"를 적용 : #1에서 만들어진 MSAA Depth-버퍼를 샘플링하여 픽
셀 범위를 계산하고 범위를 기반으로 필터
CSAA
• Coverage Sampling AA
• 범위 형태의 샘플링
• MSAA와 방식은 거의 유사
• GeForce 8000시리즈부터 지원 (NVIDIA만 지원)
• MSAA와 비슷한 성능으로 적은 메모리 소비
• (4xMSAA ≒ 4 Sample Count(8x 16x CSAA)
Implementation- Dx9
• #1 NVIDIA 그래픽 카드인지 체크
• #2 CheckDeviceMultisampleType()로 Qulity Level 체크
• Sample Count >4 && Qulity Level >4 이면 CSAA 지원 가능
MLAA
• MorphoLogical Anti-Aliasing
• 이미지 베이스 AA
• NO AA 에 포스트 프로세스(후처리)방식
• SPU/GPU 친화적(PS3에 적합)
• 스크린 스페이스 필터 ( 화면분석)
• 메쉬의 패턴(계단패턴)을 파악한 다음 중간색을 넣어 완화
• 메모리 절약( 2x MSAA 의 절반 정도)
• 대역폭 절약(광원효과등을 추가로 처리 가능)
• Fill rate 절약(반투명 효과처리가능한 리소스 증가)
• PC의 경우 라데온만 지원
MLAA 장 단점
• PC에서는 비슷한 퀄리티로 MSAA보다 빠름
• 콘솔의 경우 MSAA는 하드웨어 제약으로 샘플 카운트가 제한되 있기에 MLAA
가 보다 나은 퀄리티를 보장
• 이미지 베이스 기반이기에 CELL이나 SPE에서 사용하기 좋음 (화면 해석)
• 디퍼드 렌더링엔진에서 특히 사용하기 편한 MRT와 같이 사용 가능
• 톤 매핑 후 수행되는 안티앨리어싱이기에 HDR 사용할때 퀄리티가 증가
• MSAA와 호환되지 않음
• 서브 픽셀 문제 (후처리 이므로…)
DEAA
• Distance-to-Edge AA
• 후처리 방식
• 픽셀 셰이더에서 엣지까지의 거리를 계산 하는 방식
• (Edge Vertices 들이 0이 되는 텍스처 좌표의 ddx,ddy를 사용, 포워드 픽셀 셰이더
에서 엣지까지의 거리를 계산)
• 추가 공간이 필요
• 주어진 삼각형으로 픽셀 셰이더에서 엣지까지의 거리를 계산
• distance_x = -v/ddx (V); distance_y = -v/ddy (V)
• DEAA버퍼를 Alpha-to-Coverage에 시뮬레이션하는데도 사용 가능
SRAA 와 Deferred - MSAA
- Deferred-MSAA
• G-버퍼 만을 MSAA로 렌더링 후 다음은 평범하게 렌더링
• 마지막으로 후처리로 엣지를 뭉개는 방식을 사용
- SRAA
• 엣지를 박스필터등으로 뭉갬(논문에서는 바이리터럴 필터를 사용)
• 이때 가중치는 거리가 아닌 엣지의 강도(Z값이나 법선의방향)에 의해 산출
FXAA
• Fast Approximate Anti-Aliasing
• NVIDA에서 출시 (계속 업데이트 시켜주심)
• 후처리 이므로 독립적임(엔진에 독립적임)
• DX9,10,11 다 지원 그래픽카드 안가림
• 초딩도 5분이면 적용 (매우 간단)
• 소스코드 http://timothylottes.blogspot.com/2011/07/nvidia-fxaa-39-released.html
• 현재 3.11 까지 배포 – 4.0 배포 예정
SMAA
• Enhanced Subpixel Morphological Antialiasing
• Eurographics 2012에서 Jorge Jimenez, Jose I. Echevarria, Tiago Sousa, Diego Gutierrez
• SMAA: Enhanced Subpixel Morphological Antialiasing이라는 논문으로 발표
• 보케현상이 심하거나 각도에 따라 지글거리는 FXAA의 단점을 보완
• FXAA 만큼의 속도를 자랑
TXAA
• Temporal Approximate Anti- Aliasing
• GDC 2012 – NVIDIA에서 발표
• DirectX 11.0 부터 지원
• GTX 400/500/600 계열만 지원 ( ATI 안됨)- 즉 범용성 적음
• 고해상도의 Z 버퍼를 샘플링 함
• 과거 프레임에 대해서도 샘플 픽셀 단위의 엣지 정보를 샘플링하므로 시간적
인(Temporal) 안티 앨리어싱이라 부름
• 아직 정확한 알고리즘 내부는 비공개
TXAA
• TXAA1 과 TXAA2를 공개
• TXAA1 (2xMSAA 비용 = 8xMSAA 효과)
• TXAA2 (4xMSAA 비용 = 8xMSAA 이상의 효과)