2. 하고 싶은 이야기
1. Sampling
2. Aliasing & Anti Aliasing.
3. Super Sampling Anti Aliasing. (SSAA or FSAA)
4. Multi Sampling Anti Aliasing. (MSAA)
5. Transparency Anti Aliasing. (TAA)
6. Adaptive Anti Aliasing. (AAA)
7. Gamma Corrected Anti Aliasing. (GAA, GCAA)
8. Coverage Sample Anti Aliasing. (CSAA)
9. Quincunx Anti Aliasing. (QAA)
10. Temporal Anti Aliasing. (TAA)
11. Fragment Anti Aliasing. (FAA)
12. Rotated Sampling Anti Aliasing. (RSAA)
13. Morphological Anti Aliasing. (MLAA)
14. Practical Morphological Anti Aliasing (Practical MLAA)
15. Fast Approximate Anti Aliasing. (FXAA)
16. Enhanced Subpixel Morphological Anti Aliasing. (SMAA)
17. Temporal Approximate AA. (TXAA)
7. Turn continuous function into discrete samples.
Sampling : 아날로그 신호(연속신호)를
이산신호(discrete)로 바꾸기 위해 사용하
Sampling을 통해 만들어진 이산신호 값들
해당 2진수 값으로 바꾸어 주면(Quantiza
디지털 신호가 된다.
12. Turn continuous function into discrete samples.
그래픽스에서는..
아날로그 이미지를 컴퓨터에서 직접 처리하거나 저장할수 없기
표본화와 양자화 과정을 거쳐 디지털 이미지로 변환.
표본화를 거친 이미지..
아날로그 이미지의 연속적인 위치 데이터
불연속적인 디지털 데이터로 변환하는 과
13. Turn continuous function into discrete samples.
그래픽스에서는..
아날로그 이미지를 컴퓨터에서 직접 처리하거나 저장할수 없기
표본화와 양자화 과정을 거쳐 디지털 이미지로 변환.
양자화를 거친 이미지..
- 연속적인 색상 데이터를 불연속적인
디지털 데이터로 변환하는 과정.
- 각 화소의 밝기 또는 색을 컴퓨터에서
인지할 수 있는 숫자로 표현하는 과정.
14. Turn continuous function into discrete samples.
Rasterization (2D)
- Vertex 표현을 pixel 표현으로 변환하는 과정.
15. Turn continuous function into discrete samples.
Rasterization (2D)
Audio (1D)
- 아날로그 신호중 음성신호(speech signal).
16. Turn continuous function into discrete samples.
Rasterization (2D)
Audio (1D)
Video (2D + time)
- 2D 이미지의 연속적인 모음.
42. Interaction between complexity of function
and sample rate
Nyquist Sampling 법칙
한정된 대역의 주파수를 갖는 함수의 경우, 적절한 샘플링 간격을
정보의 유실없이 재생할 수 있다는 이론.
Nyquist Sampling 표준
Sampling시 Aliasing현상을 막는 Sampling 속도는 측정하고자 하
신호원의 최고 주파수의 2배 이상으로 한다.
43. Aliasing을 막기 위해 우리가 할 수 있는 일은?
-More real samples
-More logical samples + averaging
-Turn it tinto noise
-Use a Different function (prefilter)
63. Aliasing을 막기 위해 우리가 할 수 있는 일은?
-More real samples
다른 디스플레이 기술이 필요.
-More logical samples + averaging
오늘날의 일반적인 하드웨어(4x or 16x)
-Turn it tinto noise
부하가 발생하긴 하지만 무난한 해결책인듯…
-Use a Different function (prefilter)
오늘날 일반적으로 텍스쳐에서만 사용.
68. Super Sampling AA (or Full Screen AA)
SSAA의 핵심은 뻥튀기다??
- 원하는 해상도보다 훨씬 크게 렌더링 해서 이미지를 축소해서
- 모든 픽셀에 대해서 픽셀당 한 개 이상의 샘플을 추출하는 방식
69. Super Sampling AA (or Full Screen AA)
SSAA의 핵심은 뻥튀기다??
- 원하는 해상도보다 훨씬 크게 렌더링 해서 이미지를 축소해서
- 모든 픽셀에 대해서 픽셀당 한 개 이상의 샘플을 추출하는 방식
70. Super Sampling AA (or Full Screen AA)
SSAA의 핵심은 뻥튀기다??
치명적인 SSAA의 한계…
- 800x600의 해상도로 설정된 그래픽에서 4x4 AA를 활성화하
SSAA를 사용한다는 것은…..
파이프라인의 마지막 과정에서 800x600으로 축소해서 표시할
모든 픽셀을 4x4만큼 크게 샘플링 -> 3200x2400의 해상도로
픽셀을 샘플링해서 버퍼에 저장한다.
- 하지만..지오메트리와 상관없이 모든 픽셀을 뻥튀기 하므로
화면의 전체적인 퀄리티가 올라간다.
71. Super Sampling AA (or Full Screen AA)
SSAA의 핵심은 뻥튀기다??
치명적인 SSAA의 한계…
SSAA를 정리하자면…
요소 효과
처리방식 가로x세로(AxB) 샘플링
3D 오브젝트 경계면 △ 향상
텍스처 화질 △ 향상
특수효과 화질 △ 향상
가속 속도 ▽▽▽ 극단적으로 감소
메모리 요구량 △△△ 극단적으로 증가
72. Super Sampling AA (or Full Screen AA)
그래픽 카드에 걸리는
심각한 부하는
어떻게 해결하지..?
73. Super Sampling AA (or Full Screen AA)
SSAA의 문제점을 해결하는 와중에…
- 부두 : 부두5로 msaa의 시초를 만들었지만 파산, 엔비디아에
- 지포스 : 지포스3로 부두 흡수 후 Quinquix AA라는 기술을 탄
- 라데온 : 라데온8500으로 다이렉트X 표준기술로서의 msaa
- 파헬리아 : FAA라는 기술을 들고 출현.
- 카이로 : 망함.
74. Super Sampling AA (or Full Screen AA)
카이로를 제외하곤 모두 본격적으로 MSAA라는 기술을
SSAA의 문제점을 해결하는 와중에…
- 부두 : 부두5로 msaa의 시초를 만들었지만 파산, 엔비디아에
- 지포스 : 지포스3로 부두 흡수 후 Quinquix AA라는 기술을 탄
- 라데온 : 라데온8500으로 다이렉트X 표준기술로서의 msaa
- 파헬리아 : FAA라는 기술을 들고 출현.
- 카이로 : 망함.
75. 샘플의 배열형태
Ordered Grid와 Rotated Grid.
- 단순히 샘플을 어떻게 배치하는가의 문제.
- Ordered Grid를 선호하는 nVidia와 Rotated Grid를 선호하는
77. 샘플의 배열형태
Rotated Grid
- 샘플을 살짝 회전시켜 보자.
- 과거에는 nVidia에서는 OG방식을, Ati에서는 RG방식을 선호
현재는 옵션에 따라 두 가지 배열방식을 혼합하여 사용.
78. 샘플의 배열형태
핵심은 Ordered Grid와 Rotated Grid, 그 외에는?
- SmoothVision
- Random
- Flip-Tri
79. 샘플의 배열형태
핵심 OG와 RG, 그 외에는?
- SmoothVision
- Ati에서는 9x 시리즈와 함께, SmoothVision이라는 새로운
AA방식을 선보였다.
- SmoothVision에서 눈에 띄는 점은 Programmable.
- 정형화된 샘플배치가 아닌 프로그래밍을 통해 다양한 샘플
80. 샘플의 배열형태
핵심 OG와 RG, 그 외에는?
- SmoothVision
- Random
- 그냥 무작위로 샘플을 배열하는 방식
81. 샘플의 배열형태
핵심 OG와 RG, 그 외에는?
- SmoothVision
- Random
- Flip-Tri
- 기존의 짝수 배열이 아닌 픽셀의 근접점에 2개, 먼곳에 한 개 처
3개의 샘플을 배열하는 방식, 발전된 형태로는 RG와 유사한 배
83. 외각경계면만 신경쓰자~!.
- 슈퍼샘플링의 성능저하를 해결하기 위해 고안.
- 폴리곤 에지가 지나가는 픽셀만 Ax만큼 샘플링해서 원래의
픽셀로 필터링하는 방식을 사용.
- 블렌딩이 필요하지 않은 픽셀에 대한 계산(샘플링)을 포기함으
슈퍼샘플링보다 몇배나 높은 성능대비를 기대할 수 있다.
Multi Sampling AA
90. Multi Sampling AA
외각경계면만 신경쓰자~!.
SSAA와 MSAA.
- AxSSAA는 실제로 A배 크게 렌더링해서 나중에 1/A로 줄이는
- AxMSAA는 픽셀의 레이아웃부터 좀 다르다
91. Multi Sampling AA
외각경계면만 신경쓰자~!.
SSAA와 MSAA.
- AxSSAA는 실제로 A배 크게 렌더링해서 나중에 1/A로 줄이는
- AxMSAA는 픽셀의 레이아웃부터 좀 다르다
픽셀을 Fragment라고 부르는 A개의 서브픽셀로 나눈 후에
픽셀에 대한 커버리지를 계산하여 Fragment를 채우는 방식
92. 외각경계면만 신경쓰자~!.
Msaa의 단점은?
- 샘플이 부족하면 정확한샘플링이 불가능 하다.
- CPU 기반.
- 오브젝트의 외각부분만 샘플링하기 때문에,
텍스처, 특수효과등은 화질현상이 없다.
- 폰트나 무늬가 뚜렷한 텍스처에 적용할 경우
블렌딩에 의한 흐림현상이 지저분하다.
Multi Sampling AA
94. 외각경계면만 신경쓰자~!.
Msaa의 단점은?
Msaa를 정리하자면…
Multi Sampling AA
요소 효과
처리방식 폴리곤의 경계와 만나는 픽
셀에서만 Ax만큼 샘플링
3D 오브젝트 경계면 △ 향상
텍스처 화질 -- 향상 없음
특수효과 화질 -- 향상 없음
가속 속도 ▽ 적당히 감소
메모리 요구량 △ 적당히 증가
95. 외각경계면만 신경쓰자~!.
Msaa의 단점은?
Msaa를 정리하자면…
Multi Sampling AA
SSAA MSAA
성능감소 ▽▽▽극단적 감소 ▽적당히 감소
전체화질 △△△큰폭으로 좋아짐 △적당히 좋아짐
텍스처 화질 △증가 --영향없음
처리방식 전체화면 경계면등 일부만
메모리 요구량 △△△극단적 증가 △적당히 증가
옵션표시 방식 2x1, 1x2, 2x2, 4x4, 8x8 2x, 4x, 8x, 16x, 8xQ, 16xQ
시각적 만족도 △△△좋음 △적당함
96. 외각경계면만 신경쓰자~!.
Msaa의 단점은?
Msaa를 정리하자면…
Deferred Msaa?
-하드웨어의 가속을 간접적으로 받게하여 MSAA를 손쉽게 구현
1. 전처리로 씬의 모든 도형을 4xMSAA로 깊이만 렌더.
2. 씬을 MSAA를 끄고 정상적으로 HDR 렌더 타겟에 렌더
3. 톤 매핑 및 기타 후처리를 적용
4. Deferred AA를 적용 ( 1에서 만들어진 MSAA 뎁스 버퍼를 샘
픽셀 범위를 계산하고 범위를 기반으로 필터)
Multi Sampling AA
99. 세밀한 부분까지 좀 더 부드럽게…
- nVidia에서 만든 Transparency Anti Aliasing(TAA)
- 기존 AA기법에서는 표현해내지 못한 폴리곤 단위의 텍스쳐들
더욱 사실적이고 부드러운 화면을 표현한다.
Transparency AA
100. 세밀한 부분까지 좀 더 부드럽게…
- nVidia에서 만든 Transparency Anti Aliasing(TAA)
- 기존 AA기법에서는 표현해내지 못한 폴리곤 단위의 텍스쳐들
더욱 사실적이고 부드러운 화면을 표현한다.
Transparency AA
단일 폴리곤 내부에 렌더링된 식물
TAA 기법을 적용하면 이미지에 나
식물모양의 텍스쳐들에도 AA기법
더 높은 품질의 화면을 보여줄 수
일반적으로 철망이나 나뭇가지등
표현되는 부분에서 큰 효과를 가져
기존 AA Transparency AA
105. nVidia의 Transparency Anti Aliasing(TAA)와 친한 사
- 이미 경쟁사인 nVidia의 Geforce7 시리즈가 채용하고 있는 T
같은 방식의 AA기술로써 폴리곤 내부의 텍스쳐에서 나타내는
AA기술을 적용하게 만들어 준다.
- 이 기술은 작은 풀들이나 나뭇잎, 그리고 미세한 격자무늬를 더
표현해 주고 거친 외곽선을 부드럽게 만들어 준다.
Adaptive Anti Aliasing
112. 감마를 고려하라~!
- nVidia의 7x 시리즈의 그래픽카드(7800GTX)로부터 도입된 A
- GAA 또는 GCAA라고 불린다.
- AA가 발생하는 부분의 감마가 이미지의 전반적인 밝기와 차이
보이지 않도록, 픽셀의 컬러 레벨을 조종하는 옵션.
- 성능저하도 거의 없지만 시각적으로도 크게 차이가 없다.
Gamma corrected Anti Aliasing
118. nVidia의 8x 시리즈의 핵심기술
- GeForce8800부터 들어가는 새로운 AA기법.
- MSAA를 기반으로 MSAA 샘플링을 하는 과정에서 샘플의 개
- 전통적인 MSAA와의 차이점은 Color와 Z버퍼를 적게 취한다는
Coverage Sampling Anti Aliasing
119. nVidia의 8x 시리즈의 핵심기술
- 8x, 8xQ, 16x, 16xQ
Coverage Sampling Anti Aliasing
120. nVidia의 8x 시리즈의 핵심기술
- 왜 Color와 Z버퍼를 따로 분리하여 적게 쓰고 Coverage Sam
더 많이 취하는가?
-> Coverage Samples을 더 많이 취함으로써, 보다 많은 외각
분석한 뒤 Color/Z버퍼를 블렌딩해서 성능향상과 화질향상
Coverage Sampling Anti Aliasing
121. nVidia의 8x 시리즈의 핵심기술
- 8x, 8xQ, 16x, 16xQ
Coverage Sampling Anti Aliasing
- 8x, 16x CSAA는 Color와 Z버퍼를 4xAA수준으로 하
8, 16으로 더 많이 취함으로서 Color/Z버퍼의 샘플링
블렌딩 정도가 4xMSAA보다 더 정확히? 이루어 진다
122. nVidia의 8x 시리즈의 핵심기술
- 8x, 8xQ, 16x, 16xQ
Coverage Sampling Anti Aliasing
- 8xQ, 16xQ 의 Q는 Quality이기 때문에 Color/Z버퍼를 4xMS
취해서 8개를 가져오는데 8xQ는 결국 8xMSAA와 똑같은 샘플
결과가 발생하기 때문에 8xQ = 8xMSAA라고 생각하면 된다.
16xQ는 8xMSAA에 Coverage Samples만 16개 취한 형식.
123. nVidia의 8x 시리즈의 핵심기술
- 8x, 8xQ, 16x, 16xQ
Coverage Sampling Anti Aliasing
- 8x, 16x CSAA = 4xMSAA + 추가적인 Coverage Samples
- 8xQ CSAA = 8xMSAA
- 16xQ CSAA = 8XMSAA + 추가적인 Coverage Samples
124. nVidia의 8x 시리즈의 핵심기술
MSAA와 비슷한 성능에 적은 메모리 소비를 목표로 ~!.
- 멀티샘플링에서 압축기술을 제공하여 메모리 대역폭을 줄인다
- 압축이다보니 퀄리티는 그다지 좋지 않다.
- 일반적으로 CSAA는 ¼로 압축하는데 Q가 붙을 경우 압축율을
½로 만들어 이미지 퀄리티가 손상되는걸 막는다.
- 동일옵션의 멀티샘플링 방식보다 컬러에 대한 샘플을
2배 더 뻥튀기 하면서, 여분의 정보를 “압축저장”하여
- 메모리 요구량과 성능저하의 폭은 이전 멀티샘플링 옵션으로 유
보다 높은 퀄리티를 구현.
Coverage Sampling Anti Aliasing
125. nVidia의 8x 시리즈의 핵심기술
MSAA와 비슷한 성능에 적은 메모리 소비를 목표로 ~!.
Coverage Sampling Anti Aliasing
126. Implementation in Dx9
- 1. nVidia 카드인지 체크
- 2. CheckDeviceMultisampleType()로 Qulity Level체크
- 3. Sample Count>4 && Qulity Level>4이면 CSAA지원 가능
Coverage Sampling Anti Aliasing
131. nVidia의 8x 시리즈의 핵심기술
MSAA와 비슷한 성능에 적은 메모리 소비를 목표로 ~!.
CSAA는 쓸만한걸까?
- 일반론적으로 CSAA16x보다는 MSAA8x가 더 낮다.
CSAA는 부드럽게 블렌딩이 아닌 흐리멍텅해 보인다.
- 사실 CSAA는 먼치킨…
근본적으로 CSAA가 먼치킨인 이유는 일반적인 해상도에서 유
켠다고 해도 4x정도, 누가 과연 8x를 켜고 게임을 할까???
Coverage Sampling Anti Aliasing
134. nVidia의 짝퉁 AA?
- 2xQ와 같은 이름으로 적용.(Q는 Quality가 아닌 Quincunx)
- 짝퉁 또는 가짜 AA로 치부되어 사장됨.
- Quincunx(오망점)이라는 단어처럼 중심픽셀을 기준으로
총 5개의 샘플을 생성하나, 실제로는 하나의 픽셀을 중심으로
개별적인 Ax샘플을 취하는게 아닌 인접한 픽셀과 샘플을 공유.
Quincunx Anti Aliasing
135. nVidia의 짝퉁 AA?
- 최소 3개 이상의 샘풀을 두개이상의 픽셀에 대해 재사용되며
적은 샘플링으로 높은 퀄리티를 낸다는 주장으로 Geforce3와
- 자신의 샘풀이 아닌 공유된 샘풀을 비슷한 비율로 사용하다 보
이미지가 흐리멍탕하게 되는 블러효과를 내게 되고 퀄리티가 극
Quincunx Anti Aliasing
141. Quincunx Anti Aliasing
nVidia의 기술문서에 있는 QuincunxAA의 메모리 사
nVidia의 짝퉁 AA?
- 메모리 사용량은 2xAA와 동일하나 nVidia에서는 4xAA의
성능을 표현할 수 있다고 주장. Geforce3이후로 거의 사장.
- 기술문서 참고
144. 메탈 기어 솔리드4, 헤일로 위치에서 사용된 바로 그것!!
- 말 그대로 임시적인 AA.
- 이전의 프레임 버퍼를 보관해뒀다가 이번 프레임 버퍼와
하프 픽셀로 합치는 것.
- 이전 이미지와 이번 이미지를 합치는 방식.
- 정적인 화면에서는 AA가 걸리지만 움직이면 AA가 사라진다.
- 동적인 화면에서 잔상이 크게 일어난다.
Temporal Anti Aliasing
145. 메탈 기어 솔리드4, 헤일로 위치에서 사용된 바로 그것!!
Temporal Anti Aliasing
150. Matrox의 야심찬 준비
- Matrox 파헬리아 그래픽카드와 함께 Matrox에서 발표한 샘플
- MSAA와 SSAA방식의 장점만을 취했다고 주장.
- SSAA의 고질적인 문제인 과다한 비디오 메모리 소비와 해상도
픽셀수 증가로 인한 저질 퍼포먼스를 국소적으로 AA를 햄함으
- MSAA의 결점을 보완하기 위해 계단현상이 주로 일어나는 외
부분만을 자체적인 하드웨어 기능으로 추적해 해당 부분만 MS
- 지포스나 라데온도 Dx10 통합셰이더로 넘어가기 전까진 소프
- 윤곽추출은 독립 유닛으로 행해지기 때문에 렌더링 엔진에
크게 영향을 주지 않음.
Fragment Anti Aliasing
151. Matrox의 야심찬 준비
- 오브젝트의 전체적인 경계선을 우선적으로 분석해서
부분적으로 각 부분(fragment)에 맞는 적절한 샘플링을 취하는
Fragment Anti Aliasing
Matrox의 FAA 기술문
162. 갓오브워의 바로 그 기술~!!!
- 이미 완성된 NO AA이미지에 포스트 프로세싱형식으로 계단
패턴을 파악한 후, 거기에 중간색을 넣어 계단을 완화.
- CPU로 처리하는 이미지 기반 처리.
- 별도의 프레임버퍼 용량을 잡아먹지 않지만 연산량이 엄청나
- 나름(?) AA의 포스트 프로세싱 처리의 기초.
Morphological Anti Aliasing
163. Morphological Anti Aliasing
MLAA의 알고리즘
- Edge Detection.
- Weight Calculation.
- Color Blending.
갓오브워의 바로 그 기술~!!!
- 이미 완성된 NO AA이미지에 포스트 프로세싱형식으로 계단
패턴을 파악한 후, 거기에 중간색을 넣어 계단을 완화.
- CPU로 처리하는 이미지 기반 처리.
- 별도의 프레임버퍼 용량을 잡아먹지 않지만 연산량이 엄청나
- 나름(?) AA의 포스트 프로세싱 처리의 기초.
164. Edge의 형태가 어떤 타입(Z, U, L)인지 검사.
- 각 픽셀마다 4방향(상하좌우)와 대비 검사.
- 각 픽셀에서의 패턴의 중간지점을 서로 연결하는 벡터를 만든
- 결국 Z패터과 U패턴은 쪼개서 L패턴으로 만든다.
Morphological Anti Aliasing
165. Edge의 형태가 어떤 타입(Z, U, L)인지 검사.
- 각 픽셀마다 4방향(상하좌우)와 대비 검사.
- 각 픽셀에서의 패턴의 중간지점을 서로 연결하는 벡터를 만든
- 결국 Z패터과 U패턴은 쪼개서 L패턴으로 만든다.
Morphological Anti Aliasing
166. Edge를 기준으로 나뉜 각 부분을 얼만큼 섞을 것인지 판
- 만들어진 벡터를 통해 각 픽셀을 체크.
- 형태가 이루는 면적 비율이 blend weight가 됨.
Morphological Anti Aliasing
167. 나뉜 부분을 Color Blending.
- 연산된 blend weight에 의해 이웃한 픽셀의 색과 혼합.
- 결과 색 = (1-weight)*기존 색 + weight * 이웃 픽셀 색
Morphological Anti Aliasing
172. HDR과 AA의 악연을 해결해 주는 도우미?
- 친절하게 AA를 날려주는 HDR.
Morphological Anti Aliasing
계단현상은 명도/색도 대비가 강한
색의 경계에서 발생하는데 이러한 계단
완화시켜주기 위해 중간색을 넣는것이
MSAA 배율이 높을수록 중간색 단계도
HDR 색영역은 표현 색 영역으 초월해 버
모니터가 표현할 수 있는 최대 밝기가 1
50이나 100이나 둘 다 10으로 표현.
HDR 색영역은 중간치에 맞추어 RGB8로
그 와중에 AA가 손실.
173. HDR과 AA의 악연을 해결해 주는 도우미?
- 친절하게 AA를 날려주는 HDR.
Morphological Anti Aliasing
계단현상은 명도/색도 대비가 강한
색의 경계에서 발생하는데 이러한 계단
완화시켜주기 위해 중간색을 넣는것이
MSAA 배율이 높을수록 중간색 단계도
HDR 색영역은 표현 색 영역으 초월해 버
모니터가 표현할 수 있는 최대 밝기가 1
50이나 100이나 둘 다 10으로 표현.
HDR 색영역은 중간치에 맞추어 RGB8로
그 와중에 AA가 손실.
174. HDR과 AA의 악연을 해결해 주는 도우미?
- MLAA는 HDR영역이 이미 RGB8로 변환된 최종 버퍼에 포스
적용되기 때문에 AA손실같은 현상이 발생하지 않는다.
Morphological Anti Aliasing
175. 친절한 MLAA
- 메모리 절약 : 2xMSAA 적용시 G버퍼 용량이 14m에서 MLA
- 대역폭 절약 : G버퍼의 용량이 줄면서 대역폭 확보.
- 필레이트 절약 : 필레이트가 절감되면서 반투명 효과를 처리할
Morphological Anti Aliasing
176. 친절한 MLAA
- 메모리 절약 : 2xMSAA 적용시 G버퍼 용량이 14m에서 MLA
- 대역폭 절약 : G버퍼의 용량이 줄면서 대역폭 확보.
- 필레이트 절약 : 필레이트가 절감되면서 반투명 효과를 처리할
Morphological Anti Aliasing
181. Practical Morphological Anti Aliasing
우리 MLAA는.….
- SSAA나 MSAA에서는 할수 없었던 Deferred Shading을 할
Post processing AA인 MLAA…
- 하지만 FULL CPU 구현이라 렌더링 시간이 많이 걸리고 CP
데이터 전송에 소비가 있다.
MLAA와 먼가 다른 Practical MLAA….
- 기본적인 욕구는 바로 “GPU에서 MLAA 하고픈걸”에서 시작
- Post process 테크닉은 그대로 유지하고..
182. Practical Morphological Anti Aliasing
Practical MLAA는.….
- 2010년, SIGGRAPH 2010 “Practical Morphological Anti-
에서 소개됨.
- GPU Pro2권에서 소개.
- GPU 기반 실시간 처리가 가능한 MLAA
- MLAA와 같은 패스를 가지지만 세부 처리 방식은 다르다.
183. Edge Detection
- L형의 패턴은 사용하지 않음.
- Edge Texture에 Left(가로), Top(세로) Edge 정보를 R,G채
Practical Morphological Anti Aliasing
Top Left Both
184. Practical Morphological Anti Aliasing
Weight Calculation
- 기울어진 정도를 측정하기 위해서 구하고자 하는 Edge와 대
위치를 Iteration하면서 찾음.
- 가로를 기준으로 세로를 찾고, 세로를 기준으로 가로를 찾는
185. Practical Morphological Anti Aliasing
Weight Calculation
- Iteration하는 Sampling 횟수를 줄이기 위해서 Pixel의 사이
- 찾아야 하는 edge가 세로 edge이므로 Green(255)일 때 값이
187. Practical Morphological Anti Aliasing
Color Blend
- Left, Top, Right, Bottom의 Blending Weight는 각각 R,G,B
- 4개의 이웃 블렌딩 :
이전 패스에서 계산된 블렌딩 웨이트가 각 픽셀에서 이웃들과
190. 구현쉽고 속도빠른 AA 어디 없나?
- MLAA를 nVidia 직원이 개량해서 공개.
- MLAA와 마찬가지로 렌더링 파이프라인 이후에 이루
어지는 Post Effect.
- nVidia사에서 친절하게 Shader코드를 올려주고 있다.
- 적용 방식은 이곳에서 -> Game Development
Forever(FXAA)
- 에이지 오브 코난, 크라이시스2 등에서 사용.
Fast Approximate Anti Aliasing
199. 나름 최신 SMAA..?
- 2012/05 에 EUROGRAPHICS 발표 예정
- 가슴에 따뜻한 감동과 좌절을 안겨준 동영상
(http://www.iryoku.com/smaa)
- Pratical MLAA에서 착안
SubPixel Morphological Anti Aliasing
기존 MLAA
200. Edge detection
- Local contrast adaptation.
- Sub-ixel problem
- Sharp geometric features
Pattern handling
- Diagonal Patterns
Sub-pixel rendering
Temporal re-projection
SubPixel Morphological Anti Aliasing
201. SubPixel Morphological Anti Aliasing
Edge detection
- Local contrast adaptation.
: 원래 이미지 자체가 약간 AA를 적용한 것 같은 이미
지에서
MLAA는 L패턴을 사용하여 contrast(대비)가 나는
곳은 모두 Crossing edge로
파악하여 올바른 결과가 나오지 않는다.
MLAA SMAACrossing edges
203. SubPixel Morphological Anti Aliasing
Sub pixel Problem
- Temporal AA = SMAA T2x (프레임 별로 샘플링
위치를 다르게 선택)
- MSAA 2x = SMAA S2x (허용 가능한 성능차)
- Temporal AA + MSAA 2x = SMAA 4x
(SMAA의 최대 성능 옵션)
204. SubPixel Morphological Anti Aliasing
Sharp geometric features
- 각진 오브젝트의 경우 우리가 원하는 결과는 각진 그대
로 깔끔하게.
MLAA는 블러를 먹인것 처럼 만든다.
205. Diagonal Edge Patterns
- 기존의 filter based techniques
: Orthogonal(직각) pattern에 대해서만 고려
대각선에 대해 좋지 않은 alised 결과
SubPixel Morphological Anti Aliasing
206. Diagonal Edge Patterns
- 기존의 filter based techniques
: Orthogonal(직각) pattern에 대해서만 고려
대각선에 대해 좋지 않은 alised 결과
SubPixel Morphological Anti Aliasing
212. 신비로운 TXAA
- GDC 2012 – NVIDIA에서 발표
- Directx 11.0부터 지원
- GTX 400/500/600 계열만 지원(ATI 안됨)
- 고해상도의 Z 버퍼를 샘플링 함
- 과거 프레임에 대해서도 샘플 픽셀 단위의 엣지 정보를
샘플링 하므로
시간적인(Temporal) AA라고 부름.
- 아직 정확한 알고리즘 내부는 비공개.
Temporal Approximate Anti Aliasing
213. 신비로운 TXAA
- TXAA1과 TXAA2를 공개
- TXAA1 (MSAAx2 비용 = MSAAx8 효과)
- TXAA2 (MSAAx4 비용 = MSAAx8 이상의 효과)
Temporal Approximate Anti Aliasing
214. 신비로운 TXAA
- TXAA와 MSAA의 Quality, Performance 비교
Temporal Approximate Anti Aliasing
221. 수많은 AA, 세밀한 디테일.. 과연 필요한가?
- 게임은 계속 움직이면서 진행한다.
- 게임 진행 시 정지화면으로 만들어 AA를 유심히 살펴
보는 유저가 있을까??
- Nvidia 카드에서는 속도도 빠르고 결과물도 무난한
FXAA만 써도 되지 않을까?
다른 카드에서는 글쎄….mm?
I Think.