본문 바로가기
언리얼 엔진/Virtual Production & Entertainment

버추얼 프로덕션 성능 향상을 위한 Lumen 콘솔 변수 (UE5)

by z03y 2026. 9. 18.

💡 버추얼 프로덕션에서 Lumen은 비용이 많이 든다고?

루멘은 본질적으로 비싼 비용을 필요로 하지 않는다. 불필요한 장면에서 최대치로 켜놓는 것이 대부분의 문제이다. 따라서 시스템 환경이나 사양에 따라서 어느 정도의 비용을 사용해야 하는지를 파악해야 하고, 콘솔의 몇가지 변수를 하나씩 조정하면서 정확한 측정을 하는 것이 루멘 최적화의 핵심이다.

 

💡 과도한 사용 주의! Lumen의 GI와 반사 작동 메커니즘의 이해가 필수

얼룩덜룩하게 보이는 노이즈 아티팩트 (Epic Games)

 

루멘을 아무런 이해 없이 무작정 전역 적용하면 VP 현장에서 치명적인 프레임 드랍과 시각적 아티팩트를 유발한다. 버추얼 프로덕션은 LED 월 화면과 카메라 렌더링이 정확히 sync되어 고정된 프레임 레이트를 완벽하게 유지해야 하기 때문에 퍼포먼스에 특히나 엄격하다.

 

Stat GPU는 Lumen의 개별패스를 포함한 GPU 패스 타이밍을 표시한다.

 

루멘 성능 프로파일링의 첫 번째는, 콘솔을 열고 (` 키), Stat Unit을 입력하는 것으로 시작할 수 있다. 그리고 루멘 관련 콘솔 변수들을 하나씩 조절해보며 변화를 지켜보는 방식으로 분석하고 최적의 루멘 옵션을 찾는다. Stat Unit 말고도 Stat GPU 또는 ProfileGPU로 확인할 수 있다. 확인할 정보 타입에 따라 선택하면 된다. 또한 콘솔에 cvar 값을 직접 입력하는 것은 테스트 용이기 때문에 최종적으로는 직접적으로 해당 옵션에 값을 반영해야 한다. 

 

💡 성능 튜닝을 위한 핵심 콘솔 변수

Lumen의 품질과 프레임 타임을 균형 있게 맞추기 위해 조정해야 하는 핵심 콘솔 변수 목록이다. Lumen의 cvar는 서로 상호작용하기 때문에 한 번에 하나씩 변경하고 Stat GPU 또는 Stat Unit 명령어로 해당 조정에 대한 퍼포먼스 변화를 확인한다.

콘솔 변수 기능 기본 시작 값
r.Lumen.Reflections.Allow 뷰 내 루멘 반사(Reflections) 활성화/비활성화. 0으로 설정하면 GI는 유지한 채 반사만 끈다. 기본값 1 / 반사면이 적은 씬에서는 0 권장
r.Lumen.DiffuseIndirect.Allow 루멘 확산간접광(Diffuse Global Illumination) 활성화/비활성화. 루멘을 사용하는 핵심 이유. 기본값 1
r.Lumen.HardwareRayTracing 루멘을 소프트웨어 트레이싱에서 하드웨어 레이 트레이싱으로 전환. RT 지원 GPU 필요. 기본값 0 / 하이엔드 사양 타겟일 때만 1
r.Lumen.ScreenProbeGather.DownsampleFactor 스크린 프로브 GI 수집 해상도. 값이 높을수록 비용은 줄어들지만 GI가 더 흐려진다. 기본값 16 / 품질을 낮추고 성능을 챙기려면 값을 올리는 것 권
r.Lumen.Reflections.MaxRoughnessToTrace 트레이싱 반사를 중단할 거칠기(Roughness) 임계값. 값을 낮추면 거친 표면의 반사 계산을 건너뜁니다
r.Lumen.Reflections.ScreenSpaceReconstruction 반사를 위한 스크린 공간 디노이즈/재구성 기능. 기본값 1 / 더 깨끗한 반사 표현을 위해 유지
r.LumenScene.SurfaceCache.* 루멘에 데이터를 제공하는 Surface Cache의 세부/업데이트 설정. 씬 전체 단위의 성능 비용을 좌우. 기본값 유지 권장 / 대형 오픈 월드 씬에서만 재조정
r.Lumen.ScreenProbeGather.MaxLightingFromEmissive
Emissive 재질은 루멘에서 물리적 광원으로 사용된다. 지나친 Emissive 재질의 간접 라이팅 기여도를 제한하여 빛 번짐이나 노이즈, 과도한 발광 반사를 제어. 기본값 1 

 

💡 유용한 콘솔 변수

Lumen의 Screen Probe Gather Temporal과 관련된 주요 콘솔 변수이다. Screen Probe Gather Temporal에 대해 쉽게말하면 화면상의 여러 점(Probe)에서 빛 정보를 모은 뒤 잔상을 적절히 활용해 노이즈를 지우고 자연스러운 빛을 만드는 기술이다.

Lumen의 Screen Probe 기반 광선 추적 개념


잔상(고스팅), 깜빡임, 노이즈, 픽셀 번짐 같은 시각적 아티팩트가 있는 경우, 아래 값들을 조정해볼 수 있다.

콘솔 변수 기능 기본 시작 값 
r.Lumen.ScreenProbeGather.Temporal 템포럴(시간) 필터 사용 여부. 기본값 1 
r.Lumen.ScreenProbeGather.Temporal.ClearHistoryEveryFrame 디버깅을 위해 매 프레임 히스토리를 지울지 여부. 기본값 0
r.Lumen.ScreenProbeGather.Temporal.DebugForceTracesMoving 매 프레임 이동한 루멘 트레이스 수를 보여주는 디버깅 옵션. 기본값 0
r.Lumen.ScreenProbeGather.Temporal.DistanceThreshold 이전 프레임의 라이팅 결과를 버리는 데 필요한 상대적 거리 임계값. 낮을수록 잔상(고스팅)이 줄거나 깜빡임 아티팩트가 증가할 수 있다. 기본값 0.005
r.Lumen.ScreenProbeGather.Temporal.FastUpdateModeUseNeighborhoodClamp 움직이는 물체 주변 영역에서 히스토리 값을 현재 프레임의 스크린 공간 아웃 영역값으로 제한할지 여부 기본값 1 
r.Lumen.ScreenProbeGather.Temporal.MaxFastUpdateModeAmount 트레이스가 움직이는 물체에 부딪힐 때 사용할 빠른 반응 템포럴 필터의 최대량. 1에 가까울수록 노이즈는 많아지지만 씬 변화에 더 빠르게 반응. 기본값 0.3
r.Lumen.ScreenProbeGather.Temporal.MaxFramesAccumulated 누적할 최대 프레임 수. 낮을수록 템포럴 필터가 라이팅 변화를 더 빠르게 전파하지만 노이즈로 인한 깜빡임이 증가. 기본값 10
r.Lumen.ScreenProbeGather.Temporal.MaxRayDirections 픽셀당 가능한 무작위 방향의 수. MaxFrameAccumulated 값에 맞추어 조절. 기본값 8
r.Lumen.ScreenProbeGather.Temporal.NormalThreshold 이전 히스토리 라이팅을 허용하기 위해 히스토리 텍셀의 노멀이 현재 픽셀과 이룰 수 있는 최대 각도. 기본값 45

 

💡 Lumen을 사용할 때 흔히 발생하는 문제점

Lumen을 사용에 많은 경험이 없는 제작, 오퍼레이터들이 종종 '왜 이렇게 보이나요?'라고 질문한다. 이러한 질문의 대부분은 아래와 같은 설정을 놓치고 있는 경우가 많다.

 

  • 잘못된 Mobility 세팅 : Static 조명은 Lumen에서 지원하지 않는다. Lumen을 최대한 활용하려면 Stationary 또는 Movable로 사용한다. (경우에 따라서 Static 조명과 Lumen을 함께 사용하는 하이브리드 방식도 있다. 월드 세팅에서 Force No Precomputed Lighting 옵션 토글 사용.) 
  • Surface Cache 누락 : 메시가 Surface Cache 아틀라스에 표현되지 않으면 해당표면에서 반사되어야 할 빛이 누락된다. 어느 부분이 누락되었는지는 시각화를 통해 분홍색 부분이 있는지 없는지 확인할 수 있다. 분홍색 부분은 Lumen이 표면을 인식할 수 없다는 것을 보여주는 영역이다. (시각화 방법 : View mode > Lumen > Surface Cache)
  • 지오메트리가 너무 작을 경우 : 하드웨어 레이트레이싱을 사용하지 않는 경우, 창틀과 같은 얇은 요소들의 디테일을 놓칠 수 있다. 이런요소들은 Mesh Distance Field를 통과하지 못해 실내 조명이 왜곡될 수 있다.
  • 반사 중복 계산 : Lumen Reflections와 함께 Reflection Capture 액터를활성화 상태로 두면 일부 표면이 두 번 반사될 수 있다. Lumen이 활성화된 경우 Reflection Capture를 제거하거나 매우 낮은 강도의 대체 기능으로만 사용을 권장한다.
  • 과도한 Emissive 값 : 루멘에서는 과도한 Emissive 수치가 장면 전체에 퍼져나가게 되면 높은 비용과 시각적 오류를 발생시킬 확률이 높다. 값을 적절하게 사용하거나 다른 방법으로 대체한다.
  • 프로파일링을 안하는 것 : Lumen을 사용할 때 어떤 설정이 리소스를 많이 소모하는지 분석하는 과정은 필수이다. 문제가 발생할때, 대부분의 경우 약간의 설정만 변경하면 문제가 해결될 가능성이 높다.            

 

 

 

 

 

 

💡Ref.

https://dev.epicgames.com/community/learning/tutorials/mjo7/unreal-engine-temporal-quality-guide

https://dev.epicgames.com/documentation/unreal-engine/lumen-performance-guide-for-unreal-engine

 

Lumen Performance Guide for Unreal Engine | Unreal Engine 5.8 Documentation | Epic Developer Community

A guide for understanding Lumen's scalability options in Unreal Engine.

dev.epicgames.com

https://www.unrealengine.com/tech-blog/unreal-engine-5-goes-all-in-on-dynamic-global-illumination-with-lumen?lang=ko

 

루멘으로 다이내믹 글로벌 일루미네이션의 모든 잠재력을 실현하는 언리얼 엔진 5

루멘은 언리얼 엔진 5의 새로우면서 완전한 다이내믹 글로벌 일루미네이션 및 리플렉션 시스템입니다.

www.unrealengine.com

 

https://dev.epicgames.com/documentation/unreal-engine/lumen-technical-details-in-unreal-engine?lang=ko

 

Lumen Technical Details in Unreal Engine | Unreal Engine 5.8 Documentation | Epic Developer Community

Dive into the technical details of using Lumen's global illumination and reflections features with software or hardware ray tracing in Unreal Engine.

dev.epicgames.com

https://altheragames.com/en/blog/ue5-lumen-console-variables

 

UE5 Lumen Console Variables: A Performance Reference (2026) | Althera Games

The Lumen console variables that actually move performance and quality in UE5 — with safe values for indie hardware budgets.

altheragames.com

 

 

반응형