RSMs Off

RSMs Off

RSMs On

RSMs On

목차

  1. Reflective Shadow Maps 란
  2. 구현 방식
  3. 표준 섀도우 맵 확장
  4. 간접광 계산
  5. 최종 합성
  6. 느낀 점
  7. 마치며
  8. Reference

Reflective Shadow Maps 란

Reflective Shadow Maps(이하 RSMs)은 Shadow Maps라는 이름에서 유추되는 것과는 다르게 그림자를 그리는 데 사용되는 기법은 아닙니다. RSMs는 그럴듯한 간접광(Indirect Light)을 근사하는 방식으로 실시간으로 전역 조명(Global Illumination)을 표현하는 알고리즘입니다. 다만 그 방식이 표준 섀도우 맵(Standard Shadow Map, 이하 SSM)을 확장하는 방식이기 때문에 이러한 이름이 붙었다고 생각됩니다.

이 글에서는 RSMs를 소개한 논문(Dachsbacher04)을 기반으로 Direct3D 11/12로 구현한 결과물을 통해 RSMs의 기본적인 구현 방법을 소개하겠습니다.

구현 방식

RSMs는 다음과 같은 순서로 구현됩니다.

  1. SSM을 확장하여 다음과 같은 정보를 텍스쳐에 기록합니다.
    1. 월드 좌표 위치 (World Position)
    2. 월드 노멀 (World Normal)
    3. 반사된 방사속 (Reflected Radiant Flux)
  2. 전체 화면 크기의 사각형을 그리면서 이전 단계에서 텍스쳐에 기록한 정보를 바탕으로 간접광을 계산합니다.
  3. 직접광을 계산하면서 간접광 계산 결과를 합성하여 최종 결과를 계산합니다.

이후로 각 단계를 좀 더 자세히 살펴보도록 하겠습니다.

표준 섀도우 맵 확장