Deferred Rendering MSAA
- 기존 Forward Rendering에선 문제없이 사용하였던 MSAA를 Deferred Rendering에선 여러개의 RenderTarget에
Anti-Aliasing 처리를 하면 안되기 때문에 다른 방식으로 처리를 해야한다.
Deferred Rendering Anti-Aliasing 방법
1) SV_Coverage 방식
- Fragment에 의해 다루어진 픽셀을 계산하는 SV_Coverage 사용 방식이다.
- Coverage Mask가 1111이 아닌 하나의 픽셀 샘플이 있다면 다른값을 반환하여, 이 복잡성을 Multi Sampling 된 Buffer에
저장해둔 후, 최종 픽셀 출력시 인접 픽셀과 평균을 내어 계산한다.
- 화면 공간의 비연속성 보다는 기본 Geometry에 의존하기 때문에 가장자리 픽셀이 아닌것도 처리될 수 있다는 단점이 있다.
2) 2-Pass MSAA (Deferred AA)
1. 4xMSAA가 활성화 된 깊이 전용 Pass에서 모든 Geometry Rendering.
2. Deferred RenderTarget에 MSAA 없이 일반적으로 Geometry Rendering.
3. 기타 PostProcessing 적용.
4. 미리 그려둔 MSAA 깊이 버퍼를 샘플링하는 Deferred AA를 적용하고 이를 사용하여 픽셀 적용 범위를 계산 및 필터링.
- Geometry당 두번씩 그려줘야 하는 단점이 있다.
3) PostProcessing FXAA
- 기존 방식대로 Geometry Rendering 후 후처리 FXAA 적용하는 방식이다.
- 다각형과 선 가장자리를 무시하고 단순히 화면의 픽셀을 분석하여 MSAA보다 성능상 이득을 볼 수 있다.
적용 화면
'DirectX 11' 카테고리의 다른 글
[DirectX 11] IBL (Image Based Lighting) (0) | 2022.01.23 |
---|---|
[DirectX 11] PBR (Physically Based Rendering) (0) | 2022.01.21 |
[DirectX 11] Order Independent Transparency (0) | 2022.01.07 |
[DirectX 11] Particle System (0) | 2021.12.26 |
[DirectX 11] Terrain Mesh Blending (0) | 2021.12.20 |