루멘의 기술적 디테일

루멘 글로벌 일루미네이션 및 리플렉션 시스템의 기술적 기능과 사양 개요입니다.

Choose your operating system:

Windows

macOS

Linux

루멘은 글로벌 일루미네이션 및 리플렉션을 처리하기 위해 다수의 레이 트레이싱 메서드를 사용합니다. 스크린 트레이싱을 먼저 완료한 후, 좀 더 안정적인 메서드를 사용합니다.

부호화된 디스턴스 필드(Signed Distance Fields)를 통한 소프트웨어 레이 트레이싱(Software Ray Tracing) 을 기본적으로 사용하지만, 하드웨어 레이 트레이싱(Hardware Ray Tracing) 을 지원하는 그래픽 카드에서 활성화하면 더 높은 퀄리티를 달성할 수 있습니다.

루멘 글로벌 일루미네이션 및 리플렉션의 우선 목표는 차세대 콘솔에서 거대한 오픈 월드를 60fps로 실행할 수 있게 지원하는 것입니다. 엔진 퀄리티 레벨 높음(High) 에는 60fps를 목표로 하는 루멘 세팅이 포함됩니다.

루멘의 두 번째 목표는 차세대 콘솔에서 선명한 실내 라이팅을 30fps로 출력하는 것입니다. 엔진의 에픽(Epic) 퀄리티 레벨은 차세대 콘솔에서 1080p 내부 해상도로 글로벌 일루미네이션과 리플렉션을 약 8ms로 생성하며, 템포럴 슈퍼 해상도(Temporal Super Resolution)를 통해 네이티브 4K에 근접한 퀄리티를 보여줍니다.

표면 캐시

루멘은 표면 캐시(Surface Cache) 라는 주변 씬의 표면에 대한 자동 파라미터화를 생성합니다. 이는 씬에서 레이가 닿는 포인트의 라이팅을 빠르게 확인할 때 사용됩니다. 루멘은 각 메시의 머티리얼 프로퍼티를 여러 각도에서 캡처합니다. (카드(Cards) 로 불리는) 이 캡처 포지션은 각 메시에 대해 오프라인으로 생성됩니다.

카드는 r.Lumen.Visualize.CardPlacement 1 콘솔 명령으로 시각화할 수 있습니다.

루멘 카드 배치 시각화

기본적으로 루멘은 메시 하나당 카드를 12개만 배치하지만, 스태틱 메시 에디터(Static Mesh Editor)의 빌드 세팅(Build Settings) 에서 최대 루멘 메시 카드(Max Lumen Mesh Cards) 세팅으로 증가시킬 수 있습니다. 카드 수를 조절하면 복잡한 인테리어나 불규칙한 모양의 단일 메시에 유용합니다.

스태틱 메시 에디터 빌드 세팅 최대 루멘 메시 카드

표면 캐시가 적용되지 않는 영역은 레벨 에디터(Level Editor)의 표면 캐시 뷰 모드에서 분홍색으로 표시됩니다.

이런 영역은 빛을 바운스하지 않으며 리플렉션에서는 검은색으로 보입니다. 이런 문제는 최대 루멘 메시 카드 수를 증가시켜 해결할 수 있지만, 그것으로 모든 문제가 해결되지는 않을 수도 있습니다. 대신 메시를 덜 복잡한 부분들로 나누어 이런 유형의 문제를 해결할 수도 있습니다.

뷰 모드(View Mode) > 루멘(Lumen) > 표면 캐시(Surface Cache)

복잡한 메시의 루멘 표면 캐시 시각화

이미지를 클릭하면 최대 크기로 볼 수 있습니다.

이미지를 클릭하면 최대 크기로 볼 수 있습니다.

픽셀 뎁스(Pixel Depth), 카메라 위치(Camera Position), 카메라 벡터(Camera Vector) 등과 같이 뷰에 의존하는 로직의 머티리얼은 루멘 표면 캐시 뷰 모드에서 정확하게 표시되지 않을 수 있습니다. 이런 노드를 사용하는 머티리얼의 경우 레이 트레이싱 퀄리티 스위치(Ray Tracing Quality Switch) 노드로 루멘 표면 캐시에 사용할 수 있는 버전의 머티리얼을 만들거나, 표면 캐시 캡처를 복잡한 머티리얼에 최적화할 수 있습니다.

레이 트레이싱 퀄리티 스위치 머티리얼 노드

레이 트레이싱 퀄리티 스위치 노드 사용에 대한 자세한 내용은 레이 트레이싱 퍼포먼스 가이드 페이지를 참고하세요.

나나이트(Nanite)는 메시 캡처를 가속하여 표면 캐시와 트라이앵글 씬의 동기화를 유지합니다. 특히 하이 폴리곤 메시는 효율적인 캡처를 위해 나나이트를 사용해야 합니다 폴리지(Foliage)와 인스턴스드 스태틱 메시 컴포넌트(Instanced Static Mesh Component)는 메시가 나나이트를 사용하는 경우에만 지원됩니다.

표면 캐시가 머티리얼 프로퍼티로 채워진 뒤에는 루멘이 해당 표면 위치의 직접광과 간접광을 계산합니다. 이러한 업데이트가 여러 프레임에 걸쳐 이뤄지며 여러 다이내믹 라이트와 여러 번 바운스되는 글로벌 일루미네이션을 효율적으로 지원합니다.

언리얼 엔진에는 표면 캐시 및 카드 표현용 시각화 모드가 있습니다. 자세한 내용은 이 페이지의 루멘 시각화 옵션을 참고하세요.

인테리어가 단순한 메시만 지원되며 벽, 바닥, 천장이 별도의 메시여야 합니다. 가구가 포함된 방 전체를 단일 메시로 임포트하려 한다면 루멘을 사용할 수 없습니다.

스크린 트레이싱

루멘은 우선 화면에 대한 레이 트레이싱(스크린 트레이싱(Screen Tracing) 또는 스크린 스페이스 트레이싱(Screen Space Tracing))부터 처리한 뒤 히트가 발견되지 않거나 레이가 표면 뒤로 지나가면 더 안정적인 메서드를 사용합니다. 스크린 트레이싱은 여러 지오메트리 타입을 지원하며, 루멘 씬과 트라이앵글 씬 사이의 불일치를 해소하는 데 유용합니다.

스크린 트레이싱의 단점은 간접광 스케일(Indirect Lighting Scale)이나 이미시브 부스트(Emissive Boost)의 라이팅 프로퍼티 같은 간접광에만 적용되므로 아트 디렉션의 제어를 크게 제한한다는 점입니다. 간접광 스케일을 크게 설정하면 스크린 트레이싱이 올바르게 지원되지 않기 때문에 글로벌 일루미네이션이 뷰에 의존하게 됩니다.

아래의 예시 씬에서는 스크린 트레이싱을 먼저 사용한 뒤 비용이 더 높은 다른 트레이싱 옵션으로 넘어갔습니다. 글로벌 일루미네이션 및 리플렉션에 대한 스크린 트레이싱을 비활성화하면 소프트웨어 레이 트레이싱으로 생성된 루멘 씬만 볼 수 있습니다. 스크린 트레이싱은 트라이앵글 씬과 루멘 씬의 불일치를 해소하는 데 유용합니다.

이런 유형의 비교를 하려면 레벨 뷰포트의 표시(Show) > 루멘(Lumen) 메뉴에서 스크린 트레이싱(Screen Traces) 옆의 체크를 해제해 스크린 트레이싱을 비활성화합니다.

스크린 트레이싱 활성화 상태 | (디폴트)

스크린 트레이싱 비활성화 상태 | 표면 캐시 사용

루멘 레이 트레이싱

루멘은 씬을 레이 트레이싱하는 두 가지 방식을 제공합니다. 소프트웨어 레이 트레이싱과 하드웨어 레이 트레이싱이 그것입니다.

  • 소프트웨어 레이 트레이싱 은 메시 디스턴스 필드(Mesh Distance Fields)를 사용하여 가장 광범위한 하드웨어 및 플랫폼에서 작동하지만, 효과적으로 사용할 수 있는 지오메트리, 머티리얼, 워크플로 타입이 제한됩니다.

  • 하드웨어 레이 트레이싱(Hardware Ray Tracing) 은 표면 캐시보다 높은 퀄리티를 위해 트라이앵글을 트레이싱하여 더 넓은 범위의 지오메트리 타입을 지원하고 레이가 닿는 지점의 라이팅을 평가합니다. 하드웨어 레이 트레이싱을 작동하려면 이 기능을 지원하는 그래픽 카드와 시스템이 필요합니다.

소프트웨어 레이 트레이싱은 오버랩되는 인스턴스가 많은 씬에서 퍼포먼스를 유지할 수 있는 유일한 옵션이고, 하드웨어 레이 트레이싱은 표면에 높은 퀄리티의 미러 리플렉션을 구현할 수 있는 유일한 방법입니다.

소프트웨어 레이 트레이싱

루멘은 부호화된 디스턴스 필드에 기본적으로 소프트웨어 레이 트레이싱을 사용합니다. 이 트레이싱 표현은 셰이더 모델 5(Shader Model 5, SM5)를 지원하는 모든 하드웨어에서 지원되며, 프로젝트 세팅(Project Settings)에서 메시 디스턴스 필드 생성(Generate Mesh Distance Fields) 을 활성화하기만 하면 됩니다.

그러면 렌더러가 메시 디스턴스 필드를 글로벌 디스턴스 필드(Global Distance Field)와 병합하여 트레이싱을 가속합니다. 기본적으로 루멘은 첫 2m에서 정확도를 위해 각 메시의 디스턴스 필드를 트레이싱하고, 나머지 레이에 대해서는 병합된 글로벌 디스턴스 필드를 트레이싱합니다.

프로젝트에 겹치는 인스턴스가 많다면, 프로젝트 세팅에서 루멘이 사용하는 메서드를 소프트웨어 레이 트레이싱 모드(Software Ray Tracing Mode) 로 바꾸면 됩니다. 이때 루멘은 두 가지 옵션을 제공합니다.

  • 디테일 트레이싱(Detail Tracing) 은 디폴트 메서드이며, 개별 메시의 부호화된 디스턴스 필드를 트레이싱하여 높은 퀄리티를 달성합니다. 정확도를 위해 첫 2m가 사용되며, 각 레이의 나머지에 대해서는 글로벌 디스턴스 필드를 트레이싱합니다.

  • 글로벌 트레이싱(Global Tracing) 은 최대한 빠른 트레이싱을 위해 각 레이의 글로벌 디스턴스 필드만 트레이싱합니다.

메시 디스턴스 필드는 카메라가 월드 내에서 움직일 때 거리에 따라 스트리밍 인, 아웃됩니다. 이것들이 단일 아틀라스로 압축되어 레이 트레이싱을 가능하게 합니다.

r.DistanceFields.LogAtlasStats 1 명령을 사용하면 메시 디스턴스 필드 통계를 로그에 출력할 수 있습니다.

루멘의 소프트웨어 레이 트레이싱 퀄리티는 메시의 디스턴스 필드 표현 퀄리티에 의존합니다. 시각화 옵션에는 두 가지가 있는데, 메시 디스턴스 필드글로벌 디스턴스 필드**입니다. 이러한 시각화 모드는 뷰포트의 표시(Show) > 시각화(Visualize)** 메뉴에 있습니다.

메시 디스턴스 필드와 글로벌 디스턴스 필드의 시각화 표시 메뉴 선택

루멘 씬 뷰

Mesh Distance Field Visualization

Global Distance Field Visualization

씬 뷰

메시 디스턴스 필드 시각화

글로벌 디스턴스 필드 시각화

일부 메시는 얇은 표면의 디스턴스 필드 표현이 좋지 않아 라이트 누수 문제를 유발할 수 있습니다. 메시 디스턴스 필드 시각화는 이런 유형의 문제를 찾아내는 데 도움이 됩니다.

mdfresolution-chandelier.png

(왼쪽에서 오른쪽으로) 트라이앵글 메시, 디스턴스 필드 해상도 스케일 1.0(디폴트), 1.5, 2.0

디스턴스 필드 표현을 향상하는 방법에는 두 가지가 있습니다.

프로젝트 세팅: 디스턴스 필드 복셀 밀도(Distance Field Voxel Density )

스태틱 메시 에디터: 디스턴스 필드 해상도 스케일(Distance Field Resolution Scale)

이미지를 클릭하면 최대 크기로 볼 수 있습니다.

이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  • 프로젝트 전체의 메시 디스턴스 필드 퀄리티를 향상하려면 프로젝트 세팅(Project Settings)의 디스턴스 필드 복셀 밀도 를 사용합니다.

  • 개별 메시의 퀄리티를 향상하려면 스태틱 메시 에디터의 빌드 세팅 에서 디스턴스 필드 해상도 스케일 을 높입니다.

디스턴스 필드 해상도나 밀도를 높이면 프로젝트의 디스크 크기가 늘어납니다.

소프트웨어 레이 트레이싱의 제한 사항

소프트웨어 레이 트레이싱에는 프로젝트에서 활용하는 방식과 현재 지원되는 지오메트리, 머티리얼의 타입에 관한 몇 가지 제한 사항이 있습니다.

지오메트리 제한 사항

  • 루멘 씬에는 스태틱 메시, 인스턴스드 스태틱 메시, 계층 구조 인스턴스드 스태틱 메시, 랜드스케이프 지형만 표현됩니다.

  • 폴리지는 폴리지 툴 세팅(Foliage Tool Settings)에 있는 디스턴스 필드 라이팅 영향(Affect Distance Field Lighting) 에서 활성화해야 합니다.

머티리얼 제한 사항

  • 월드 포지션 오프셋(WPO)은 지원되지 않습니다.

  • 디스턴스 필드는 투명 머티리얼을 무시하며 마스크드 머티리얼을 불투명으로 취급합니다.

    • 마스크드 머티리얼은 폴리지 잎의 상당 부분이 마스크 처리된 부분에 막대한 오버 섀도잉을 유발할 수 있습니다.

  • 디스턴스 필드 빌드는 오버라이드 컴포넌트가 아닌 스태틱 메시 에셋에 할당된 머티리얼 프로퍼티를 사용합니다.

    • 블렌드 모드가 다르거나 양면 프로퍼티가 활성화된 머티리얼로 오버라이드하면 트라이앵글 표현과 메시의 디스턴스 필드 표현 사이에 불일치가 생깁니다.

워크플로 제한 사항

  • 소프트웨어 레이 트레이싱에는 모듈식 지오메트리로 구성된 레벨이 필요합니다. 벽, 바닥, 천장 등은 별도의 메시여야 합니다. 산이나 다층 건물 같은 대형 단일 메시는 디스턴스 필드 표현이 제대로 되지 않아 셀프 오클루전 문제를 유발할 수 있습니다.

  • 라이트 누수를 피하려면 벽 두께가 10cm 이상이어야 합니다.

  • 디스턴스 필드는 아주 얇은 피처나 뒤에서 보이는 단면 메시를 나타낼 수 없습니다. 단면 메시의 뒷면 트라이앵글이 보이지 않게 하거나 닫힌 지오메트리만을 사용하면 이런 유형의 문제를 방지할 수 있습니다.

  • 메시 디스턴스 필드 해상도는 스태틱 메시의 임포트 스케일에 따라 할당됩니다.

    • 아주 작게 임포트된 뒤에 컴포넌트에서 스케일을 확대한 메시는 충분하지 못한 디스턴스 필드 해상도를 지닙니다. 레벨에 배치된 인스턴스에 스케일 조절을 사용하는 경우, 스태틱 메시 에디터의 빌드 세팅에서 디스턴스 필드 해상도를 설정하세요.

하드웨어 레이 트레이싱

하드웨어 레이 트레이싱은 소프트웨어 레이 트레이싱보다 넓은 범위의 지오메트리 타입을 지원하며, 특히 스킨을 입힌 메시에 트레이싱을 지원합니다. 하드웨어 레이 트레이싱은 더 높은 퀄리티로 스케일을 올리기도 수월합니다. 하드웨어 레이 트레이싱은 낮은 퀄리티의 표면 캐시와는 다르게 실제 트라이앵글과 교차하며 레이 히트에서 라이팅을 평가할 수도 있습니다.

높은 퀄리티의 히트 라이팅을 사용하려면 프로젝트 세팅(Project Settings)의 엔진(Engine) > 렌더링(Rendering) 섹션에서 다음을 활성화해야 합니다.

높은 퀄리티를 위한 루멘 프로젝트 세팅

  • 하드웨어 레이 트레이싱 지원(Support Hardware Ray Tracing): 활성화

  • 사용 가능한 경우 하드웨어 레이 트레이싱 사용(Use Hardware Ray Tracing when available): 활성화

  • 레이 라이팅 모드(Ray Lighting Mode): 리플렉션을 위한 히트 라이팅(Hit Lighting for Reflections)

하드웨어 레이 트레이싱은 두 가지 레이 트레이싱 메서드 중 퀄리티가 더 높지만, 큰 씬에서의 구성 비용도 더 높아서 오버랩되는 메시가 많으면 트레이싱 비용이 더욱 높아집니다. 스킨을 입힌 메시처럼 다이내믹하게 변형되는 메시도 레이 트레이싱 가속 구조를 프레임마다 업데이트할 때 스킨을 입힌 트라이앵글 수에 비례하여 높은 비용을 유발합니다. 하드웨어 레이 트레이싱의 구성과 비용에 대한 자세한 내용은 레이 트레이싱 퍼포먼스 가이드를 참고하세요.

나나이트가 활성화된 스태틱 메시의 경우, 하드웨어 레이 트레이싱이 예비 메시(Fallback Mesh) 에만 작동합니다. 예비 메시는 나나이트의 예비 상대 오차(Fallback Relative Error) 프로퍼티로 생성되며, 완전한 디테일의 메시를 사용할 수 없을 때 사용됩니다. 이러한 예비 메시는 레벨 뷰포트의 Show(표시) > Advanced(고급) > Nanite Meshes(나나이트 메시) 에서 시각화될 수 있습니다.

스크린 트레이싱은 나나이트로 렌더링된 풀 트라이앵글 메시와 루멘으로 레이 트레이싱된 예비 메시 사이의 불일치를 숨기는 데 사용합니다. 하지만 불일치가 너무 커서 숨기기 어려울 때도 있습니다. 그럴 때는 예비 상대 오차를 높이면 부정확한 셀프 인터섹션 문제가 줄어듭니다.

풀 디테일 트라이앵글 메시

나나이트 생성 예비 메시

루멘은 다음과 같은 경우에 하드웨어 레이 트레이싱을 사용합니다.

  • 프로젝트에서 하드웨어 레이 트레이싱 지원사용 가능한 경우 하드웨어 레이 트레이싱 사용 이 활성화된 경우.

    • 하드웨어 레이 트레이싱 지원 세팅을 변경했다면 엔진을 재시작해야 합니다.

  • 프로젝트가 지원되는 운영 체제, RHI, 그래픽 카드에서 실행되었을 경우. 현재 원활한 퍼포먼스의 하드웨어 레이 트레이싱이 지원되는 플랫폼은 다음과 같습니다.

    • DirectX 12가 설치된 Windows 10

      • 그래픽 카드는 NVIDIA RTX 2000 시리즈 이상 또는 AMD RX 6000 시리즈 이상이어야 합니다.

    • PlayStation 5

    • Xbox Series S / X

루멘에 하드웨어 레이 트레이싱을 사용하는 프로젝트는 필요에 따라 소프트웨어 레이 트레이싱으로 예비 전환할 수 있지만, 두 메서드의 메모리 비용과 씬 업데이트 비용을 동시에 유발하지 않게 설정할 수 있습니다. 이런 경우 DefaultEngine.ini 환경설정 파일에 다음 콘솔 변수를 추가해야 합니다.

r.DistanceFields.SupportEvenIfHardwareRayTracingSupported=0

이 세팅이 비활성화되면 런타임에 사용 가능한 경우 하드웨어 레이 트레이싱 사용 을 토글할 수 없습니다.

대형 월드

루멘 씬은 월드 내 카메라 주변에서만 실행되므로 대형 월드와 스트리밍이 가능합니다. 루멘은 나나이트의 레벨 오브 디테일(LOD)과 멀티 뷰 래스터화에 의존해 빠른 씬 캡처로 표면 캐시를 유지하고, 멈춤 현상을 방지하기 위해 모든 동작의 스로틀을 조절합니다. 루멘이 작동하는 데 나나이트가 필수는 아니지만, 나나이트를 활성화하지 않으면 하이 폴리곤 메시가 많은 씬에서 루멘 씬의 캡처가 매우 느려집니다. 특히 에셋에 LOD가 제대로 설정되어 있지 않은 씬은 더 그렇습니다.

카메라를 빠르게 움직이면 루멘 씬의 업데이트가 카메라 시점을 따라잡지 못하고 뒤늦게 따라가면서 간접광이 튀는 현상이 발생합니다.

루멘이 소프트웨어 레이 트레이싱을 사용할 때는 카메라 위치에서 200m까지만 루멘 씬에 들어가지만, 이 거리는 포스트 프로세스 볼륨(Post Process Volumes)의 루멘 씬 뷰 인스턴스(Lumen Scene View Distance) 세팅에서 최대 800m까지 늘릴 수 있습니다. 최대 루멘 씬 뷰 인스턴스를 초과한 거리에서는 글로벌 일루미네이션을 위한 스크린 트레이싱만 활성화됩니다.

파 필드

루멘 하드웨어 레이 트레이싱은 기본적으로 루멘 글로벌 일루미네이션 및 리플렉션을 카메라에서 1km 거리까지 확장하는 파 필드(Far Field) 트레이싱을 구현합니다.

파 필드 트레이싱은 DefaultEngine.ini 환경설정 파일의 콘솔 변수 r.LumenScene.FarField=1 로 활성화되며, 월드 파티션의 계층형 레벨 오브 디테일을 사용해야 합니다. 파 필드를 빌드하려면 HLOD1을 사용해야 합니다.

파 필드가 활성화되면, 최대 트레이스 거리(Max Trace Distance) (디폴트 200m)에서 트레이싱이 시작되어 r.LumenScene.FarField.MaxtraceDistance (디폴트 1km)까지 계속됩니다. 오브젝트는 r.RayTracing.Culling.Radius 를 사용하여 레이 트레이싱에서 컬링할 수 있으므로, 프로젝트의 컬링 반경과 최대 트레이스 거리가 일치하는 편이 좋습니다. 그렇지 않으면 니어 필드(카메라에서 최대 트레이스 거리까지의 오브젝트)가 파 필드 탐색 포인트 이전에 컬링되어 적용 범위에 빈틈이 생길 수 있습니다.

루멘 파 필드 글로벌 일루미네이션 및 리플렉션

언리얼 엔진 5 테크 데모 ‘매트릭스 어웨이큰스(The Matrix Awakens)'에서는 파 필드 트레이싱을 사용하여 대형 월드의 글로벌 일루미네이션을 시연합니다.

루멘 기능의 일반적인 제한 사항

  • 루멘 글로벌 일루미네이션은 라이트맵의 스태틱 라이팅(Static Lighting)과 함께 사용할 수 없습니다. 루멘 리플렉션은 향후 언리얼 엔진 5가 출시되면 라이트맵의 글로벌 일루미네이션과 함께 사용할 수 있도록 확장될 예정입니다. 이를 통해 스태틱 라이팅 기술을 사용하는 프로젝트의 렌더링 퀄리티가 한층 높아질 것입니다.

  • 루멘 리플렉션은 다수의 스페큘러 리플렉션을 지원하지 않습니다.

  • 루멘은 현재 단일 레이어 물 머티리얼을 지원하지 않습니다.

  • 루멘은 현재 씬 캡처(Scene Captures) 또는 분할 화면(Split-screen)을 지원하지 않습니다.

  • 루멘은 포워드 셰이딩(Forward Shading)과 호환되지 않습니다.

퍼포먼스

루멘은 엔진 퀄리티 세팅을 사용합니다. 이 세팅은 레벨 에디터의 뷰포트에서 세팅(Settings) > 엔진 퀄리티 세팅(Engine Scalability Settings) 으로 가면 찾을 수 있습니다. 이 세팅에서는 일반 퀄리티 세팅을 낮음(Low) 에서 시네마틱(Cinematic) 까지 조절할 수 있으며, 개별 기능에 대한 세팅도 같은 범위로 조절할 수 있습니다. 엔진 퀄리티 옵션은 에디터에만 국한되지 않으며, 블루프린트를 통해 호출하여 출시하는 프로젝트에 사용할 수 있습니다.

루멘은 글로벌 퀄리티 또는 개별 글로벌 일루미네이션 그리고 리플렉션높음 , 에픽 , 시네마틱 퀄리티 세팅으로 설정될 때만 활성화됩니다.

에디터 내 엔진 퀄리티 세팅

루멘은 4K 출력을 위해 템포럴 업샘플링과 언리얼 엔진 5 기능인 템포럴 슈퍼 해상도(Temporal Super Resolution) 알고리즘에 크게 의존합니다. 엔진 퀄리티 옵션은 루멘 디폴트 세팅으로 타깃 프레임 레이트를 설정합니다.

  • 엔진 퀄리티 레벨 에픽(Epic) 은 차세대 콘솔 1080p 기준 30fps 예산(글로벌 일루미네이션 및 리플렉션 8ms)으로 설정됩니다.

  • 엔진 퀄리티 레벨 높음(High) 은 60fps 예산으로 설정됩니다. 다만, 60fps 예산을 충분한 퀄리티로 달성하는 것은 여전히 진행 중인 작업입니다.

  • 낮음(Low)중간(Meduim) 퀄리티 레벨에서는 루멘이 비활성화됩니다.

러프니스가 0.4 미만인 머티리얼은 루멘 리플렉션을 트레이싱하려면 추가 레이가 필요하므로, 루멘의 라이팅 솔브 비용이 가장 높습니다.

루멘 플랫폼 지원

  • 루멘은 PlayStation 4, Xbox One 등의 이전 세대 콘솔을 지원하지 않습니다.

  • 다이내믹 라이팅에 의존하는 프로젝트는 이전 세대 플랫폼과 레거시 PC 하드웨어에서 디스턴스 필드 앰비언트 오클루전(Distance Field Ambient Occlusion)스크린 스페이스 글로벌 일루미네이션(Screen Space Global Illumination)의 조합을 사용할 수 있습니다.

  • 루멘은 차세대 콘솔(PlayStation 5 및 Xbox Series S / X)과 고사양 PC용으로 개발되었습니다. 루멘에는 지원 사양이 다른 두 가지 레이 트레이싱 모드가 있습니다.

  • 소프트웨어 레이 트레이싱 지원 사양:

  • DirectX11을 사용하고 셰이더 모델 5(SM5)를 지원하는 그래픽 카드

    NVIDIA GeForce GTX 1070 이상의 그래픽 카드가 필요합니다.

  • 하드웨어 레이 트레이싱 지원 사양:

    • DirectX 12가 설치된 Windows 10

    • 그래픽 카드는 NVIDIA RTX 2000 시리즈 이상 또는 AMD RX 6000 시리즈 이상이어야 합니다.

  • 루멘은 모바일 플랫폼을 지원하지 않습니다. 향후 모바일 렌더러용 다이내믹 글로벌 일루미네이션 시스템을 개발할 계획은 없습니다. 다이내믹 라이팅을 사용하는 게임은 모바일에서 섀도 처리되지 않는 스카이 라이트(Sky Light)를 사용해야 합니다.

  • 루멘은 현재 가상 현실(Virtual Reality, VR) 시스템을 지원하지 않습니다. VR 지원이 가능하기는 하지만, VR은 높은 프레임 레이트와 해상도가 필요하기 때문에 다이내믹 글로벌 일루미네이션에 적합하지 않습니다.

루멘 시각화 옵션

언리얼 에디터에서 루멘의 데이터를 시각화하는 여러 방법이 있습니다. 시각화는 루멘이 씬을 라이팅하는 방법을 확인하고 문제를 해결하는 데 유용합니다.

주요한 루멘 뷰 모드는 레벨 뷰포트의 뷰 모드(View Mode) 메뉴에서 찾을 수 있습니다.

루멘 뷰 모드 옵션

루멘 겹쳐 보기 시각화

이미지를 클릭하면 최대 크기로 볼 수 있습니다.

이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  • 겹쳐 보기(Overview) 는 렌더링된 씬에 루멘의 세 가지 시각화를 모두 작은 타일로 표시합니다.

  • 루멘 씬(Lumen Scene) 은 씬의 루멘 버전을 최대한 높은 퀄리티로 보여줍니다 (표면 캐시 또는 하드웨어 레이 트레이싱).

  • 리플렉션 뷰(Reflection View) 는 리플렉션에 사용되는 제한된 트레이싱 거리를 포함하여, 루멘 리플렉션의 관점으로 씬을 보여줍니다.

  • 표면 캐시(Surface Cache) 는 너무 복잡해서 포함할 수 없는 영역이 분홍색으로 하이라이트된다는 점 외에는 루멘 씬과 동일합니다.

추가적인 시각화 옵션은 레벨 뷰포트의 표시(Show) > 시각화(Visualize) 메뉴에 있습니다.

메시 디스턴스 필드와 글로벌 디스턴스 필드의 시각화 표시 메뉴 선택

루멘 씬 뷰

Mesh Distance Field Visualization

Global Distance Field Visualization

씬 뷰

메시 디스턴스 필드 시각화

글로벌 디스턴스 필드 시각화

  • 메시 디스턴스 필드(Mesh Distance Fields) 는 씬을 구성하는 개별 메시의 부호화된 디스턴스 필드 표현을 표시합니다.

  • 글로벌 디스턴스 필드(Global Distance Fields) 는 개별 메시 디스턴스 필드가 병합된 디테일이 낮은 디스턴스 필드를 표시합니다. 콘솔 명령으로 루멘이 사용하는 다른 데이터를 시각화할 수도 있습니다.

  • 루멘의 카드 배치(Card Placement)카드 로 불리는 캡처 위치가 씬에서 어떻게 사용되는지 표시합니다. 카드는 각 메시에서 오프라인으로 생성되며, 여러 각도에서 각 메시의 머티리얼 프로퍼티를 캡처하는 데 사용됩니다. 이 시각화 모드는 r.Lumen.Visualize.CardPlacement 1 명령으로 활성화할 수 있습니다.

  • 하드웨어 레이 트레이싱은 스태틱 메시 에셋의 예비 상대 오차 프로퍼티에서 생성된 나나이트 예비 메시(Nanite Fallback Mesh) 를 사용합니다. 예비 메시는 루멘 리플렉션에서 스크린 트레이싱과 나나이트 레이 트레이싱된 씬 사이의 불일치를 가리는 데 사용됩니다. 표시(Show) > 고급(Advanced) > 나나이트 메시(Nanite Meshes) 로 나나이트 렌더링을 비활성화하고 루멘에서 사용되는 예비 메시를 확인할 수 있습니다.

문제 해결

씬에서 루멘 관련 문제를 해결하려면 먼저 루멘 겹쳐 보기(Overview) 뷰 모드에서 시작하는 게 좋습니다.

루멘 씬은 간접광에 눈에 띄게 영향을 미치는 부분에서 메인 씬 뷰와 일치해야 합니다. 루멘 표면 캐시 뷰 모드에서 분홍색 영역이 너무 큰 문제는 스태틱 메시 세팅(Static Mesh Settings)에서 최대 루멘 메시 카드(Max Lumen Mesh Cards) 수를 높이거나 메시를 여러 부분으로 나누어 해결할 수 있습니다.

troubleshooting-topic-1.png

문제를 유발하는 메시

간접광에 문제를 유발하는 메시가 있으면 레벨 인스턴스의 디테일(Details) 패널에서 다음 중 하나를 비활성화하여 루멘 씬에서 제거할 수 있습니다.

  • 소프트웨어 레이 트레이싱 의 경우, 디스턴스 필드 라이팅 영향(Affect Distance Field Lighting) 박스를 체크 해제하여 제거합니다.

  • 하드웨어 레이 트레이싱 의 경우, 다이내믹 간접광 영향(Affect Dynamic Indirect Lighting) 박스를 체크 해제하여 제거합니다.

섀도 맵과 레이 트레이스드 섀도의 불일치

루멘은 루멘 씬의 섀도잉에 렌더러의 섀도 맵을 재사용합니다. 하지만 섀도 맵은 화면상의 위치에서만 사용할 수 있습니다. 화면 밖 표면의 경우, 루멘은 섀도잉에 레이 트레이싱을 사용합니다. 두 기법 사이에 심각한 불일치가 있을 경우, 루멘 글로벌 일루미네이션은 스크린 스페이스 글로벌 일루미네이션 같은 스크린 스페이스 기술과 마찬가지로 뷰에 크게 의존합니다.

이런 유형의 문제는 불일치를 일으키는 원인을 알아내어 해결할 수 있습니다. 레이 트레이스드 섀도(Ray Traced Shadows)를 보려면 루멘 씬(Lumen Scene) 뷰 모드에서 표시(Show) > 루멘(Lumen) 아래 있는 섀도 맵 재사용(Reuse Shadow Maps) 표시 플래그를 비활성화합니다.

문제: 실내 미러 리플렉션에서 나타나는 얼룩 문제

미러 리플렉션에서 얼룩이 보이는 문제가 발생하는 이유는 루멘이 여러 번 바운스되는 글로벌 일루미네이션 계산에 많은 예산을 쓰지 않아 매우 낮은 퀄리티 세팅을 사용하기 때문입니다. 포스트 프로세스 세팅(Post Process Settings)에서 루멘 씬 퀄리티(Lumen Scene Quality) 를 높이면 이 문제가 줄어듭니다.

lumen-scene-viewmode-default.png

lumen-scene-lighting-quality-4.png

루멘 씬 뷰 모드

루멘 씬 라이팅 퀄리티를 4로 개선

문제: 작은 메시가 미러 리플렉션에서 검은색으로 나타남

미러 리플렉션에서 작은 메시가 검은색으로 나타나는 것은 루멘이 퍼포먼스를 위해 작은 오브젝트를 루멘 씬에서 컬링하기 때문입니다. 포스트 프로세스 세팅에서 루멘 씬 디테일(Lumen Scene Detail) 을 높이면 더 먼 거리에서도 작은 메시를 캡처합니다.

![루멘 씬 뷰 모드] |(troubleshooting-topic-black-meshes-1.png)(w:1000)

루멘 씬 디테일 증가

문제: 200m부터 스카이 오클루전(Sky Occlusion)과 글로벌 일루미네이션이 사라짐

스카이 오클루전과 글로벌 일루미네이션은 초기 200m까지만 루멘 씬에 유지됩니다. 포스트 프로세스 세팅에서 루멘 씬 뷰 인스턴스 를 높이면 더 먼 거리에서도 루멘 씬을 유지합니다.

문제: 큰 동굴형 영역에서의 라이트 누수

동굴형 영역 또는 닫힌 영역에서 루멘이 퍼포먼스를 향상하기 위해 레이가 트레이싱되는 거리를 제한하는데, 오클루더가 누락되면 라이트 누수가 발생하게 됩니다.

포스트 프로세스 세팅(Post Process Settings)에서 루멘 씬 디테일(Lumen Scene Detail)최대 트레이스 거리(Max Trace Distance) 를 높입니다.

예를 들어 아래 메시는 밖에서 구멍이 보이지 않는 닫힌 박스입니다.

troubleshooting-topic-enclosed-box-1.png

박스 내부에서는 씬 전체에 걸쳐 스카이라이팅이 누수되고 있는 것이 보입니다.

troubleshooting-topic-enclosed-box-2.png

이때 다음 값을 높입니다.

  • 루멘 씬 뷰 인스턴스

  • 최대 트레이스 거리

그러면 라이트 누수가 해결됩니다.

troubleshooting-topic-enclosed-box-3.png

문제: 글로벌 일루미네이션에서 라이팅 변화가 너무 느림

루멘 글로벌 일루미네이션을 변경하거나 비활성화했을 때, 씬의 라이팅 변화가 너무 느려 빠르게 켜지거나 꺼지지 않고 서서히 페이드됩니다.

예를 들어 다음 씬에서 스카이 라이트를 비활성화하자 라이팅이 서서히 페이드 아웃되는 것을 볼 수 있습니다.

troubleshooting-topic-lumen-update-speed-1.gif

루멘 글로벌 일루미네이션의 변화 속도를 향상하려면 포스트 프로세스 볼륨의 파이널 개더 라이팅 업데이트 속도(Final Gather Lighting Update Speed) 세팅을 높입니다.

그러면 스카이 라이팅이 이전보다 빠르게 비활성화됩니다.

troubleshooting-topic-lumen-update-speed-2.gif

변경 후에는 꼭 이러한 세팅을 디폴트로 되돌려 저비용 라이팅으로 돌아가야 합니다.

문제: 작은 이미시브 메시가 씬에 라이팅을 일관되게 비추지 않음

작은 오브젝트는 루멘 씬에서 컬링되므로, 스크린 트레이싱만이 작은 이미시브 메시를 감지할 수 있습니다. 이로 인해 작은 이미시브 메시가 씬에 라이팅을 일관되게 비추지 못하는 문제가 발생합니다. 디테일(Details) 패널에서 레벨 인스턴스를 이미시브 라이트 소스(Emissive Light Source) 로 설정합니다.

![루멘 씬 뷰 모드] |(troubleshooting-topic-emissive-1.png)(w:750)

이미시브 라이트 소스 프로퍼티 활성화됨

문제: 퍼포먼스가 원활하지 않더라도 최고 퀄리티의 미러 리플렉션을 원함

루멘은 리플렉션 레이의 라이팅에 표면 캐시를 기본적으로 사용합니다. 렌더링 속도가 훨씬 빠르기 때문입니다. 그러나 다음 세팅을 통해 레이 히트에서 라이팅을 평가하도록 환경설정할 수 있습니다.

  • 프로젝트 세팅에서 레이 라이팅 모드리플렉션을 위한 히트 라이팅(Hit Lighting for Reflections) 으로 설정합니다.

  • 이렇게 하면 전체 프로젝트의 라이팅이 변경됩니다.

  • 포스트 프로세스 볼륨에서 레이 라이팅 모드리플렉션을 위한 히트 라이팅 으로 설정합니다.

    • 하나의 샷이나 뷰포트에만 필요하여 개별적으로 변경하는 경우에 적합합니다.

아래의 예시 씬에서 벽과 계단의 스페큘러 하이라이트가 리플렉션에서 누락된 것을 확인할 수 있습니다.

루멘 표면 캐시

루멘의 리플렉션을 위한 히트 라이팅