루멘(Lumen) 및 가상 그림자 맵 설정 가이드
언리얼 엔진 5의 루멘(Lumen) 및 가상 그림자 맵(Virtual Shadow Maps) 품질 설정에 대한 완전한 가이드입니다. 성능과 품질의 균형을 맞추는 방법을 배워보세요.
🎯r.Lumen 반사 설정
역할: 레이 추적(reflection ray)이 얼마나 거친(rough한) 표면까지 반사를 계산할지 정하는 임계값입니다.
설명: 이 값 이하의 거칠기(roughness)는 실시간으로 레이 추적된 반사를 계산하며, 그 이상은 Lumen GI를 통한 근사(reflection fallback)를 사용합니다.
예시: 0.4 기본값. 값을 낮추면(예: 0.3) 거친 표면의 noisy한 반사를 줄이지만, 시각적 디테일이 손실될 수 있습니다.
역할: 반투명(translucent) 표면에서 정면(front layer) 반사를 허용/제한합니다.
차이:
- Allow: UI나 조건에 관계없이 반사 기능 자체를 끕니다.
- Enable: 실제로 반사를 활성화하거나 비활성화합니다.
적용 예시: 반투명 유리나 물에 반사가 필요 없을 경우 두 값을 0으로 설정해 비용과 노이즈를 줄일 수 있습니다.
역할: 반사의 계산 해상도를 얼마나 낮출지 결정합니다.
설명: 값을 높일수록 낮은 해상도로 계산되어 GPU 부담이 줄지만, 반사의 선명함이 떨어집니다.
🌙r.Shadow.Virtual.SMRT 가상 그림자 맵 품질
SMRT는 soft shadow (penumbra)를 렌더링하기 위해 여러 개의 레이(ray)를 쏘는 방식입니다.
역할: Directional(light from sun/등), Local(point, spot) 광원의 반투명 그림자 품질을 결정하는 ray의 개수.
효과: ray 수 증가 → 부드럽고 노이즈 적은 그림자; ray 수 감소 → 노이즈와 jitter 증가
기본값: 대략 8개. 0으로 설정 시 hard shadow(단일 샘플)로 전환됩니다.
역할: 그림자 penumbra의 범위와 ray 길이를 조절합니다.
설명:
- RayLengthScaleDirectional: ray의 길이 한계를 설정해 overshoot 방지.
- MaxRayAngleFromLight: 광원부터 얼마나 벌어진 각도까지 penumbra를 허용할지 결정
🔧성능-품질 균형을 위한 추가 설정
역할: 그림자 지도(shadow map)의 해상도 레벨 LOD 바이어스를 조정해 전체적인 품질을 설정.
설명:
- 값을 높이면 해상도 낮춤 → 성능 상승 / 품질 저하
- 값을 낮추면 해상도 상승 → 품질 향상 / 성능 저하
📝요약 정리
| 항목 | 역할 | 트레이드오프 |
|---|---|---|
| MaxRoughnessToTrace | rough 이하 반사 계산 임계값 | 값↓ → 노이즈↓, 디테일↓ |
| Translucency…Allow/Enable | 반투명 반사 on/off | 반사 off → 성능↑ |
| DownsampleFactor | 반사 해상도 조정 | 값↑ → 반사 날림↓ |
| RayCountDirectional/Local | 그림자 ray 개수 | 값↓ → 노이즈↑ |
| RayLengthScale / MaxRayAngle | Penumbra 범위 조절 | 적절한 값 필요 |
| ResolutionLodBias | 그림자 해상도 LOD 바이어스 | 성능/품질 조절 |
✅1. 루멘 반사 품질 향상 (고품질 시각효과 목표)
목적: 깨끗하고 리얼한 반사 (특히 유리, 물, 금속 표면)
| 변수 | 추천값 | 설명 |
|---|---|---|
| r.Lumen.Reflections.MaxRoughnessToTrace | 0.6 | 더 거친 표면도 레이 추적 반사를 사용함 (디테일 ↑) |
| r.Lumen.Reflections.HierarchicalScreenTraces | 1 | 고급 스크린 반사 기법 사용 |
| r.Lumen.Reflections.ScreenTraces | 1 | 화면 기반 반사 활성화 (섬세한 디테일 확보) |
| r.Lumen.Reflections.DownsampleFactor | 1 | 반사 해상도 최대 유지 (선명도 ↑) |
| r.Lumen.TranslucencyReflections.FrontLayer.Enable | 1 | 반투명 물체도 반사에 포함 (예: 유리창 반사) |
추가 팁: 광원 설정에서 Use Area Shadows 및 Use Ray Traced Shadows를 활성화하면 반사에도 깊이감이 더해집니다.
🚀2. 성능 우선 프로젝트용 세팅 (낮은 사양 PC/VR/모바일용)
목적: 프레임 향상, GPU 부하 최소화
| 변수 | 추천값 | 설명 |
|---|---|---|
| r.Lumen.Reflections.MaxRoughnessToTrace | 0.3 | 거친 표면은 반사 생략 (성능 ↑) |
| r.Lumen.Reflections.DownsampleFactor | 2 또는 4 | 반사 해상도 낮춰 GPU 부담 ↓ |
| r.Lumen.TranslucencyReflections.FrontLayer.Enable | 0 | 반투명 반사 끄기 |
| r.Shadow.Virtual.SMRT.RayCountDirectional | 2 | 최소한의 그림자 레이 (노이즈는 생기지만 성능 향상) |
| r.Shadow.Virtual.ResolutionLodBiasDirectional | 2 | 그림자 해상도 낮춤 |
추가로 비활성화 추천 설정:
- r.Lumen.Reflections.ScreenTraces = 0
- r.Lumen.Reflections.HierarchicalScreenTraces = 0
→ 모든 반사를 Lumen GI fallback으로 처리
🌟3. 노이즈 없는 고품질 그림자 세팅 (시네마틱/영상/스틸컷용)
목적: 선명하고 깨끗한 부드러운 그림자
| 변수 | 추천값 | 설명 |
|---|---|---|
| r.Shadow.Virtual.SMRT.RayCountDirectional | 8 이상 | 다수의 레이로 부드러운 penumbra 구현 |
| r.Shadow.Virtual.SMRT.MaxRayAngleFromLight | 0.1 | 너무 넓은 penumbra 각도 제한 (노이즈 감소) |
| r.Shadow.Virtual.SMRT.RayLengthScaleDirectional | 0.5 | 레이 범위 짧게 → 그림자 경계 더 정밀 |
| r.Shadow.Virtual.ResolutionLodBiasDirectional | -1 | 최대 해상도 사용 |
| r.Shadow.Virtual.EnableClipmap | 1 | 멀리 있는 그림자 해상도 자동 조절 (효율↑) |
시네마틱용 팁:
- r.Shadow.PerObject 활성화 시 개별 오브젝트마다 고품질 그림자 적용 가능.
- r.Shadow.Virtual.Cache를 적절히 활용하면 씬 전환 시 캐시된 그림자 재활용 가능.
참고 자료
🎯 추가 학습 리소스
도서와 함께 활용하면 좋은 온라인 리소스들을 소개합니다.