Screen Traces
화면 공간 트레이싱과 실제 지오메트리 커버리지
Lumen 트레이싱 파이프라인
Screen Traces가 먼저, RT는 미스 시에만
Lumen은 먼저 Screen Space Tracing을 시도하고, 미스가 발생하면 Software 또는 Hardware Ray Tracing으로 폴백합니다.
Screen Traces 장단점
빠르지만 제한적
장점
- 모든 지오메트리 타입 지원
- Lumen Scene과 실제 씬 불일치 커버
- 매우 빠른 처리
단점
- 화면 밖 정보 없음
- 아트 디렉션 제어 제한
- 뷰 의존적 GI 발생 가능
Indirect Lighting Scale이 큰 값일 때 Screen Traces에 의존하면 카메라 회전에 따라 GI가 변하는 현상이 발생할 수 있습니다.
Screen Traces 알고리즘
HZB 기반 계층적 화면 공간 레이마칭
Screen Traces는 Hierarchical Z-Buffer(HZB)를 사용하여 화면 공간에서 레이마칭을 수행합니다. 저해상도 밉 레벨에서 시작하여 히트 시 더 높은 해상도로 정제합니다.
// HZB 기반 계층적 레이마칭
for each pixel:
ray = ComputeReflectionRay(normal, viewDir)
// 저해상도에서 시작하여 정밀도 증가
mipLevel = MaxMipLevel
while (mipLevel >= 0):
stepPos = MarchRay(ray, mipLevel)
if (HZB[mipLevel][stepPos] > ray.depth):
mipLevel-- // 더 정밀하게
else:
AdvanceRay() // 다음 스텝
if (hit):
return ScreenColor[hitPos] // 화면 색상 사용
else:
FallbackToWorldTracing() // SWRT/HWRT
r.Lumen.ScreenProbeGather.ScreenTraces.MaxIterations로 레이마칭 반복 횟수를 조절할 수 있습니다. 값을 줄이면 성능이 향상되지만 히트율이 낮아져 더 많은 월드 트레이싱이 필요해집니다.
관련 설정 및 프로파일링
Screen Traces 최적화 파라미터
// Screen Traces 기본 설정
r.Lumen.ScreenProbeGather.ScreenTraces = 1 // 활성화
r.Lumen.ScreenProbeGather.ScreenTraces.MaxIterations = 50 // 반복 횟수
r.Lumen.ScreenProbeGather.ScreenTraces.RelativeDepthThickness = 0.01
// 프로파일링
ProfileGPU // "ScreenSpaceTracing" 항목 확인
stat Lumen // Screen Probe 관련 통계
| 파라미터 | 낮은 값 | 높은 값 |
|---|---|---|
| MaxIterations | 빠름, 히트율 낮음 | 느림, 히트율 높음 |
| RelativeDepthThickness | 엄격한 히트, 노이즈 가능 | 관대한 히트, 아티팩트 가능 |
핵심 요약
- Screen Traces는 Lumen의 첫 번째 트레이싱 방법
- HZB 기반 계층적 레이마칭으로 효율적 탐색
- 화면 공간 정보만 사용하여 매우 빠름
- 미스 시 Software/Hardware RT로 폴백
- MaxIterations으로 품질/성능 트레이드오프 조절
도전 과제
배운 내용을 직접 실습해보세요
r.Lumen.Visualize.Mode = 1로 Lumen 시각화를 활성화하고, 카메라를 벽 쪽으로 향할 때와 개방된 공간을 향할 때 Screen Traces 히트율의 차이를 stat Lumen으로 확인하세요.
r.Lumen.ScreenProbeGather.ScreenTraces.MaxIterations 값을 16, 32, 50, 100으로 변경하면서 ProfileGPU의 ScreenSpaceTracing 비용과 시각적 품질 변화를 비교하세요.
Screen Traces를 비활성화(r.Lumen.ScreenProbeGather.ScreenTraces = 0)하고 월드 트레이싱만으로 GI를 계산했을 때의 성능 저하와 품질 변화를 분석하세요. Screen Traces가 전체 Lumen 파이프라인에서 차지하는 역할의 중요성을 정량적으로 평가하세요.