Skip to content

그림자 생성(8)~개량형 깊이 그림자 기법(3)

[칼럼 핵심 요약]
LSPSM 기법으로 깊이 그림자 기법의 약점이 대부분 극복할 수 있지만, 그래도 먼 곳까지가 그려지는 광대한 옥외 장면에서는 역시 1장의 섀도우 맵으로 차폐 구조를 생성하고 있었다면 해상도 부족이 생길 수 있다.

🌐 원문 링크: 影の生成(8)~改良型デプスシャドウ技法(3) (Mynavi News)
📅 원문 발행일: 2008-08-01 | ✍️ 저자: 西川善司 (니시카와 젠지 / Zenji Nishikawa)

NOTE

💡 현대 그래픽스 관점에서의 발전사 (Modern Retrospective)

  • 섀도우 맵의 한계와 진화: 본문에서 다루는 캐스케이드 섀도우 맵(CSM)과 VSM 등은 여전히 실시간 렌더링의 주력이지만, 해상도 에일리어싱과 자가 차폐 오류(Shadow Acne)의 구조적 한계를 갖습니다.
  • 하드웨어 가속 레이트레이싱 섀도우: 현재는 DXR/Vulkan RT를 이용한 실시간 광선 추적 섀도우(Ray-Traced Soft Shadows) 및 가상화 그림자 맵(Virtual Shadow Maps, VSM in UE5)을 통해 해상도 제약 없는 완벽한 반그림자(Penumbra) 연산이 실시간으로 이루어집니다.

📖 본문 해설

[원문 리드문] > LSPSM 기법으로 깊이 그림자 기법의 약점이 대부분 극복할 수 있지만, 그래도 먼 곳까지가 그려지는 광대한 옥외 장면에서는 역시 1장의 섀도우 맵에서 차폐 구조를 생성하고 있었던 것은 해상도 부족이 생겨 버리는 경우가 있다.

캐스케이드 LSPSM 기법 ~ 깊이 그림자 기법의 개량판 그 제 3 형태

LSPSM 기법으로 깊이 그림자 기법의 약점이 대부분 극복할 수 있지만, 그래도 먼 곳까지가 그려지는 광대한 옥외 장면에서는 역시 1장의 섀도우 맵으로 차폐 구조를 생성하고 있었다면 해상도 부족이 생길 수 있다.

1장의 섀도우 맵으로 부족해 버리면, 복수의 섀도우 맵을 이용해서는 어떨까…

하나의 광원으로부터의 차폐 구조를 기록하는데 복수의 섀도우 맵을 이용하는 것이지만, 복수의 섀도우 맵을 어떻게 생성하는가가 이 궁리의 포인트가 된다.

다양한 방법이 생각되지만, 가장 알기 쉬운 것은, 시점으로부터의 시야(시추대)를 시점 위치로부터 가까운 위치로부터 먼 쪽으로 적당하게 분할하고, 분할된 시야 각각에 대해, 전술한 LSPSM 기법에 요구된 2개의 조건을 만족하는 좌표계에서의 섀도우 맵 생성을 실시하면 된다.

개념도 적으로는 아래 그림과 같습니다. 이 그림은 시야를 시점에서 근거리, 중거리, 원거리의 3단계로 나누어 각각 섀도우 맵을 생성하는 예를 보여준다.

캐스케이드 LSPSM 개념도캐스케이드 LSPSM 개념도

🔍 [인포그래픽 도해 한국어 번역: VSM (베리언스 섀도우 맵)과 체비쇼프 확률 분포]

  • 모멘트 저장: 2채널 텍스처에 깊이의 평균 E[x]과 제곱 평균 E[x2]을 저장
  • 하드웨어 밉맵 블러: 깊이 텍스처 자체에 가우시안 블러를 적용하여 부드러운 반그림자(Penumbra) 생성
  • 체비쇼프 부등식: 깊이 차이에 따른 비가림 확률 pmax=σ2σ2+d2을 산출하여 픽셀 밝기 결정

3개로 나눈 각 시야의 경계 부근은 겹치고 있는 것을 알 수 있다고 생각하지만, 이 부분에 대해서는, 섀도우 맵은 중복해 생성되게 된다. 그 의미에서이 방법은 다소 중복성이 있으며, 이는 과도한 부하가됩니다.

최종 렌더링시,이 복수 매 생성 된 섀도우 맵을 구별하여 그림자를 생성합니다.

깊이 그림자 기술은 픽셀을 렌더링 할 때 픽셀과 광원까지의 거리를 계산하고 픽셀과 해당 섀도우 맵에 저장된 값을 비교합니다. 어느 픽셀을 렌더링할 때에는, 당연히, 깊이값(Z값)을 구하게 되므로, 이 깊이값을 키로 하여 복수 생성해 둔 섀도우 맵으로부터, 어느 것을 선택해 참조하면 좋을지를 결정한다.

덧붙여 어느 정도로 분할할 것인가, 몇개로 분할할 것인가… (계속)

「로스트 플래닛」(캡콤)은 캐스케이드 LSPSM 기법을 채용하고 있다. 로스트 플래닛에서는, 1024×1024 텍셀의 3장의 섀도우 맵을, 시점으로부터의 거리의 근중원으로 나누어 생성하고 있었다. Character Wayne by (C)Lee Byung Hun/BH Entertainment CO., LTD, (C)CAPCOM CO., LTD. 2006, 2007 ALL RIGHTS RESERVED.「로스트 플래닛」(캡콤)은 캐스케이드 LSPSM 기법을 채용하고 있다. 로스트 플래닛에서는, 1024×1024 텍셀의 3장의 섀도우 맵을, 시점으로부터의 거리의 근중원으로 나누어 생성하고 있었다. Character Wayne by (C)Lee Byung Hun/BH Entertainment CO., LTD, (C)CAPCOM CO., LTD. 2006, 2007 ALL RIGHTS RESERVED.

위에 게재한 장면의 근거리 섀도우 맵위에 게재한 장면의 근거리 섀도우 맵

같은 장면의 중거리 섀도우 맵같은 장면의 중거리 섀도우 맵

같은 장면의 원거리 섀도우 맵같은 장면의 원거리 섀도우 맵

(트라이Z 니시카와 젠지)


🔗 연관 지식 베이스 (Wiki)

Based on Zenji Nishikawa's 3D Graphics Maniax series. Translated & Knowledge-Based for Korean Game Developers.