PART 5 - 강의 2/5

Clipmap 구조

Directional Light의 계층적 VSM 구조

01

라이트 타입별 구조

라이트 타입 구조 해상도
Directional Clipmaps 각 레벨 16k
Point Cube Map (6면) 면당 16k
Spot 단일 VSM 16k
02

Clipmap 계층

Clipmap 구조 (Directional Light)
[카메라] | +-----------+-----------+ | Level 6 | ~64cm | | Level 7 | ~1.3m | | Level 8 | ~2.6m | | ... | | | Level 22 | ~40km | +-----------+-----------+ 각 레벨: 16k 해상도, 이전 레벨의 2배 반경
03

Clipmap 레벨 설정

범위와 해상도 조절

Clipmap 관련 설정 // Clipmap 레벨 수 r.Shadow.Virtual.Clipmap.LevelCount = 17 // 기본 17 레벨 // 첫 번째 레벨의 반경 (기본 ~64cm) r.Shadow.Virtual.Clipmap.FirstLevelRadius // 마지막 레벨의 범위 // = FirstLevelRadius * 2^(LevelCount-1) // 기본: ~40km // Clipmap 시각화 r.Shadow.Virtual.Visualize = 1
레벨 수 조절

씬의 최대 그림자 거리에 맞춰 LevelCount를 조절하세요. 불필요하게 높은 레벨은 페이지 풀을 낭비합니다. 소규모 실내 씬에서는 레벨 수를 줄여 메모리를 절약할 수 있습니다.

04

로컬 라이트 VSM

Point/Spot Light의 VSM 구조

로컬 라이트 특성
  • Point Light: 6면 Cube Map, 각 면 16k 가상 해상도
  • Spot Light: 단일 VSM, 16k 가상 해상도
  • Rect Light: Spot과 유사한 단일 VSM
로컬 라이트 VSM 최적화 // 로컬 라이트 VSM 해상도 제한 r.Shadow.Virtual.MaxPhysicalPagesLocal = 512 // 로컬 라이트가 많을 때 페이지 풀 압박 // MegaLights 또는 Shadow Distance로 관리 // 그림자 거리 제한 // Light의 Shadow Max Distance 속성 활용
SUMMARY

핵심 요약

  • Directional Light는 Clipmap 구조 사용 (17 레벨)
  • 각 레벨 16k 해상도, 이전 레벨의 2배 반경
  • Point Light는 6면 Cube Map, Spot Light는 단일 VSM
  • Clipmap LevelCount 조절로 메모리 최적화 가능
PRACTICE

도전 과제

배운 내용을 직접 실습해보세요

실습 1: Clipmap 시각화

r.Shadow.Virtual.Visualize = 1로 Directional Light의 Clipmap 레벨을 시각화하고, 카메라 근처에서 먼 거리까지 각 레벨의 해상도 차이를 관찰하세요.

실습 2: 로컬 라이트 VSM 비용

Point Light를 10개, 50개, 100개로 증가시키면서 stat ShadowRendering의 Physical Pages Used를 모니터링하세요. 페이지 풀 압박이 시작되는 라이트 수를 확인하세요.

심화 과제

대규모 오픈월드에서 Clipmap LevelCount를 12, 17, 22로 변경하면서 그림자 커버리지와 메모리 사용량의 트레이드오프를 분석하세요. 프로젝트에 최적인 레벨 수를 결정하세요.