[DirectX 11] Deferred Rendering FXAA

2022. 1. 16. 20:09·Graphics

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에 의존하기 때문에 가장자리 픽셀이 아닌것도 처리될 수 있다는 단점이 있다.

 

Fragment를 통해 SV_Coverage를 활용한 Anti-Aliasing 처리

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보다 성능상 이득을 볼 수 있다.

 

적용 화면

FXAA Off / FXAA On

저작자표시 (새창열림)

'Graphics' 카테고리의 다른 글

[DirectX 11] IBL (Image Based Lighting)  (5) 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
'Graphics' 카테고리의 다른 글
  • [DirectX 11] IBL (Image Based Lighting)
  • [DirectX 11] PBR (Physically Based Rendering)
  • [DirectX 11] Order Independent Transparency
  • [DirectX 11] Particle System
KyuHwang
KyuHwang
  • KyuHwang
    DirectX Engine
    KyuHwang
  • 전체
    오늘
    어제
    • 분류 전체보기 (50)
      • C++ (4)
      • CS (0)
      • Graphics (32)
      • DLL (2)
      • Shader (7)
      • Project (4)
      • ETC (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • YouTube
  • 공지사항

  • 인기 글

  • 태그

    RunTime Compile Shader
    Explicit Linking
    Return Type Operator
    Win API
    Order Independent Transparency
    Implicit Linking
    texture block compression
    dll
    Project
    nvtt
    hlsl
    mobile format
    Hash Code
    animation constraint
    std::is_base_of
    Define Macro
    DirectX 2D
    animation retargeting
    bc format
    shader
    rigging chain
    Shader Resource 관리
    Alpha Blending
    Directx11
    C ++
    Shader Macro
    Shader Reflection
    std::enable_if
    Define Function
    DLL Interface
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
KyuHwang
[DirectX 11] Deferred Rendering FXAA
상단으로

티스토리툴바