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

루멘의 다이내믹 글로벌 일루미네이션 및 리플렉션 기능에 대한 대략적인 개요입니다.

Choose your operating system:

Windows

macOS

Linux

루멘은 차세대 콘솔을 위해 설계된 언리얼 엔진 5의 완전 다이내믹 글로벌 일루미네이션 및 리플렉션 시스템이자, 디폴트 글로벌 일루미네이션 및 리플렉션 시스템입니다. 루멘은 밀리미터에서 킬로미터에 이르는 거대하고 디테일한 환경에서 디퓨즈 인터리플렉션을 무한한 바운스 및 간접 스페큘러 리플렉션으로 렌더링합니다.

루멘 시작하기

새로 생성하는 프로젝트에서는 루멘 글로벌 일루미네이션 및 리플렉션이 메시 디스턴스 필드 생성(Generate Mesh Distance Fields) 같은 종속성과 함께 기본적으로 활성화됩니다.

언리얼 엔진 4에서 언리얼 엔진 5로 변환된 기존 프로젝트에서는 루멘 기능이 자동으로 활성화되지 않습니다. 기존 프로젝트 내의 라이팅 패스를 망가뜨리거나 변경하지 않기 위한 조치입니다.

루멘은 프로젝트 세팅의 렌더링(Rendering) > 다이내믹 글로벌 일루미네이션(Dynamic Global Illumination)리플렉션(Reflections) 카테고리에서 활성화할 수 있습니다.

projectsettings_gettingstarted.png

글로벌 일루미네이션과 리플렉션을 따로 설정할 수 있습니다. 각 카테고리에서 루멘을 활성화하려면 다음 항목을 설정합니다.

  • 다이내믹 글로벌 일루미네이션 방식: 루멘

  • 리플렉션 방식: 루멘

    메시 디스턴스 필드 생성(Generate Mesh Distance Field) 프로퍼티가 활성화되어 있지 않은 경우, 루멘을 활성화하면 같이 활성화됩니다. 이 프로퍼티는 루멘의 소프트웨어 레이 트레이싱 모드에 필수입니다. 활성화 후 엔진을 재시작해야 합니다.

루멘 글로벌 일루미네이션은 스크린 스페이스 글로벌 일루미네이션(SSGI)디스턴스 필드 앰비언트 오클루전(DFAO)을 대체합니다. 루멘 리플렉션은 스크린 스페이스 리플렉션(Screen Space Reflections)을 대체합니다.

프로젝트에서 루멘을 활성화하면 프리컴퓨티드 스태틱 라이팅의 기여가 비활성화되며 모든 라이트맵이 숨김 처리됩니다.

루멘 라이팅 기능

루멘은 언리얼 엔진에서 강력한 다이내믹 글로벌 일루미네이션을 구현하며, 나나이트, 월드 파티션, 버추얼 섀도 맵 등 언리얼 엔진 5의 다른 지원 시스템과 잘 통합됩니다.

스페이스 글로벌 일루미네이션레이 트레이싱 글로벌 일루미네이션 등의 언리얼 엔진 4 기능은 높은 퀄리티의 리얼타임 프로젝트에서 안정적이거나 좋은 퍼포먼스를 보여주지 못합니다. 또한 다른 주요 시스템과 완전히 통합되지도 않아 엔진 기능 대부분을 폭넓게 지원하지 못합니다.

루멘 글로벌 일루미네이션

루멘 글로벌 일루미네이션은 디퓨즈 간접광을 솔브합니다. 예를 들어 표면에서 디퓨즈, 바운스되는 라이트는 해당 표면의 색을 띠고 주변 표면에 색이 들어간 라이트를 반사하여 컬러 블리딩(color bleeding)이라는 이펙트를 생성합니다. 씬의 메시도 간접광을 차단하며 간접 섀도잉을 생성합니다.

LumenTechDemo_2.png

루멘은 향상된 디퓨즈 바운스를 제공합니다. 이는 이 아파트 씬의 하얀 페인트처럼 밝은 디퓨즈 머티리얼이 있는 씬에서 중요합니다.

LumenGI_Apartment.png

언리얼 엔진 5의 나나이트(Nanite) 가상화된 지오메트리를 사용하면 지오메트리를 이전보다 훨씬 디테일하게 만들 수 있습니다. 루멘은 풀 해상도 셰이딩을 달성하지만, 간접광 연산에서는 리얼타임 퍼포먼스를 위해 훨씬 낮은 해상도를 사용합니다.

LumenTechDemo_3.png

스카이 라이팅과 루멘

스카이 라이팅은 루멘의 파이널 게더(Final Gather) 프로세스의 일부로 솔브됩니다. 여기에는 실내 공간을 야외 라이팅보다 훨씬 어둡게 만드는 스카이 섀도잉이 포함되어 훨씬 자연스러운 이펙트를 제공합니다.

LumenTechDemo_1.png

또한 루멘은 라이팅된 반투명볼류메트릭 포그(Volumetric Fog)에 더 낮은 퀄리티의 글로벌 일루미네이션을 제공합니다.

shadowedfogvolume.png

루멘과 이미시브 머티리얼

이미시브 머티리얼(Emissive Material)은 루멘의 파이널 게더를 통해 추가 퍼포먼스 비용 없이 라이트를 전파합니다. 그러나 이미시브 영역이 노이즈 문제를 유발하지 않으면서 작아지고 밝아지는 데에는 한계가 있습니다. 직접 배치한 라이트 소스에 비하면 이미시브 머티리얼이 솔브하기가 기본적으로 훨씬 어렵습니다.

Lumen_Emissive.png

루멘 리플렉션

루멘은 머티리얼 러프니스 값의 전체 범위에서 간접 스페큘러 또는 리플렉션을 솔브합니다.

LumenReflections.png

디퓨즈 글로벌 일루미네이션 및 섀도 처리된 스카이라이트는 모든 리플렉션에서 볼 수 있습니다. 루멘 리플렉션은 아래의 자동차 예시와 같은 클리어 코트(Clear Coat) 머티리얼도 지원합니다.

Lumen_SkyLight.png

루멘은 아래 예시의 자동차 창문과 같은 반투명 표면에서의 글로시 리플렉션도 제공합니다.

미러 리플렉션은 현재 지원되지 않습니다.

lumen-glossy-reflections.jpg

지원되는 라이트 유형 및 기타 기능

개괄적으로 루멘은 다음과 같은 기능을 제공합니다.

  • 디렉셔널, 스카이, 포인트, 스포트, 렉트 라이트 등 모든 라이팅 유형을 지원합니다.

  • 라이트 함수(Light Functions)는 디렉셔널 라이트(Directional Light)에서만 지원합니다.

  • 모빌리티(Mobility)스태틱(Static) 으로 설정된 라이트는 지원하지 않습니다. 스태틱 라이트는 라이트맵에 완전히 저장되어, 루멘이 활성화되면 스태틱 라이트의 기여가 비활성화되기 때문입니다.

루멘 세팅

루멘 세팅은 프로젝트 세팅(Project Settings)포스트 프로세스 볼륨(Post Process Volume) 에서 찾을 수 있습니다.

루멘 프로젝트 세팅

루멘과 관련된 모든 프로젝트 세팅은 엔진(Engine) > 렌더링(Rendering) 섹션에서 찾을 수 있습니다. 프로젝트 세팅에는 프로젝트에서 루멘에 사용할 모든 디폴트 세팅이 포함되어 있습니다.

ProjectSettings_Lumen.png

루멘이 필요로 하거나 영향을 받는 모든 세팅의 목록은 아래와 같습니다.

프로퍼티 이름

설명

Global Illumination

다이내믹 글로벌 일루미네이션 메서드(Dynamic Global Illumination Method)

프로젝트에서 사용할 다이내믹 글로벌 일루미네이션 타입을 선택합니다.

Reflections

리플렉션 메서드(Reflection Method)

프로젝트에서 사용할 다이내믹 리플렉션 타입을 선택합니다.

Lumen

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

비디오 카드, RHI, 운영 체제가 지원하는 경우 루멘의 하드웨어 레이 트레이싱 기능을 사용합니다. 사용하지 않으면 루멘은 소프트웨어 레이 트레이싱으로 전환됩니다. 하드웨어 레이 트레이싱은 인스턴스가 10만 개를 초과하는 씬에서는 막대한 씬 업데이트 비용을 유발합니다. 추가 정보는 레이 트레이싱 퍼포먼스 가이드를 참조하세요.

레이 라이팅 모드(Ray Lighting Mode)

루멘이 하드웨어 레이 트레이싱을 사용할 때 루멘 리플렉션 레이가 비춰지는 방식을 제어합니다. 루멘은 최적의 퍼포먼스를 위해 표면 캐시(Surface Cache) 를 디폴트로 사용하지만, 리플렉션을 위한 히트 라이팅(Hit Lighting for Reflections) 으로 설정하여 퀄리티를 더 높일 수도 있습니다.

소프트웨어 레이 트레이싱 모드(Software Ray Tracing Mode)

루멘이 씬을 레이 트레이싱할 때 사용할 트레이싱 메서드를 제어합니다. 디테일 트레이싱(Detail Tracing) 은 가장 높은 퀄리티를 위해 개별 메시의 디스턴스 필드를 트레이스합니다. 글로벌 트레이싱(Global Tracing) 은 가장 빠른 트레이싱을 위해 낮은 글로벌 디스턴스 필드를 트레이싱합니다.

Hardware Ray Tracing

하드웨어 레이 트레이싱 지원(Support Hardware Ray Tracing)

더 높은 퀄리티 결과를 위해 지원되는 운영 체제, RHI, 비디오 카드에서 레이 트레이싱을 활성화합니다.

Software Ray Tracing

메시 디스턴스 필드 생성

스태틱 메시의 디스턴스 필드를 빌드할지 여부입니다. 디스턴스 필드는 루멘의 소프트웨어 레이 트레이싱 및 디스턴스 필드 앰비언트 오클루전에 필요합니다. 디스턴트 필드 앰비언트 오클루전으로는 디렉셔널 라이트에 무버블 스카이 라이트 섀도 및 레이 트레이싱된 디스턴스 필드 섀도를 구현할 수 있습니다. 활성화하면 스태틱 메시의 빌드 시간, 메모리 사용, 디스크 용량이 증가합니다.

디스턴스 필드 복셀 밀도(Distance Field Voxel Density)

메시의 디폴트 스케일이 디스턴스 필드 복셀 치수로 변환되는 방식을 결정합니다. 변경하면 모든 디스턴스 필드가 다시 빌드됩니다. 값이 크면 메모리를 아주 빠르게 소모합니다.

포스트 프로세스 세팅

포스트 프로세스 볼륨에는 루멘에 대한 오버라이드 및 아티스트 제어 프로퍼티가 포함됩니다. 이 세팅은 글로벌 일루미네이션리플렉션 카테고리에 있습니다.

PostProcessVolumeOverrides.png

포스트 프로세스 볼륨에서 찾을 수 있는 모든 루멘 세팅의 목록은 아래와 같습니다.

프로퍼티 이름

설명

Global Illumination

루멘 씬 라이팅 퀄리티(Lumen Scene Lighting Quality)

스케일이 클수록 루멘 씬이 더 높은 충실도로 계산되고 리플렉션에도 드러나지만 GPU 비용이 높아집니다.

루멘 씬 디테일(Lumen Scene Detail)

루멘 씬에 표현될 수 있는 인스턴스 크기를 제어합니다. 값이 클수록 작은 오브젝트가 표현되지만 GPU 비용이 높아집니다.

루멘 씬 뷰 인스턴스(Lumen Scene View Distance)

루멘이 레이 트레이싱에서 유지하는 씬에 대한 최대 뷰 거리를 설정합니다. 값이 클수록 스카이 섀도잉 및 글로벌 일루미네이션의 이펙트 범위가 넓어지지만 GPU 비용이 높아집니다.

파이널 게더 퀄리티(Final Gather Quality)

루멘 글로벌 일루미네이션의 퀄리티를 높이고 노이즈 렌더링을 줄이지만, GPU의 렌더링 비용을 높입니다.

최대 트레이스 거리(Max Trace Distance)

루멘이 라이팅 솔브 시 트레이스할 최대 거리를 제어합니다. 값이 너무 작으면 라이팅이 동굴 등의 넓은 영역으로 새어 나올 수 있습니다. 값이 크면 GPU의 씬 렌더링 비용이 높아집니다.

루멘 씬 라이팅 업데이트 속도(Lumen Scene Lighting Update Speed)

루멘 씬이 퍼포먼스를 향상하기 위해 라이팅 결과를 어느 정도까지 캐시할 수 있는지 제어합니다. 스케일이 클수록 라이팅 변경이 빠르게 전파되지만, GPU 비용이 높아집니다.

파이널 게더 라이팅 업데이트 속도(Final Gather Lighting Update Speed)

루멘 파이널 게더가 퍼포먼스를 향상하기 위해 라이팅 결과를 어느 정도까지 캐시할 수 있는지 제어합니다. 스케일이 클수록 라이팅 변경이 빠르게 전파되지만, GPU 비용이 높아집니다.

퀄리티(Quality)

표면에서 루멘 리플렉션의 퀄리티를 높이고 노이즈의 렌더링을 줄여 주지만, GPU의 렌더링 비용이 높아집니다.

레이 라이팅 모드(Ray Lighting Mode)

루멘 하드웨어 레이 트레이싱을 사용할 때, 라이팅의 비용을 낮추기 위해 표면 캐시를 리플렉션에 재사용할지 아니면 퀄리티를 높이기 위해 히트 포인트에서 라이팅을 계산할지를 제어합니다.

추가 참고사항

다음은 프로젝트에서 루멘 기능으로 작업할 때 유념해야 할 추가 고려사항입니다.

루멘 라이팅 업데이트 속도

루멘은 리얼타임 퍼포먼스를 달성하기 위해 캐시를 많이 사용합니다. 로컬 라이팅의 변화는 빠르게 전파되지만, 태양을 비활성화하는 것 등의 글로벌 라이팅 변화는 전파되기까지 몇 초가 걸리기도 합니다. 프로젝트에서 루멘 씬 라이팅 업데이트 속도파이널 게더 라이팅 업데이트 속도 등의 포스트 프로세스 볼륨 컨트롤을 사용하면 이 지연 현상을 해결할 수 있지만 GPU 비용이 높아집니다.

프로젝트에서 스태틱 라이팅 비활성화하기

루멘이 활성화되면 스태틱 라이팅의 프리컴퓨티드 라이팅이 제거됩니다. 프로젝트 세팅의 엔진 > 렌더링 섹션에서 스태틱 라이팅 허용(Allow Static Lighting) 을 비활성화하여 프로젝트에서 프리컴퓨티드 라이팅을 완전히 비활성화할 수 있습니다.

스태틱 라이팅을 비활성화하면 셰이더 순열과 스태틱 라이팅 오버헤드도 절약됩니다. 또한 머티리얼 앰비언트 오클루전이 루멘 글로벌 일루미네이션과 함께 작동하도록 지원합니다.

이미 스태틱 라이팅을 사용 중인 프로젝트의 경우, 이미 로드된 레벨의 월드 세팅(World Settings) 에서 프리컴퓨티드 라이팅 강제 비활성화(Force No Precomputed Lighting) 프로퍼티를 활성화하지 않았다면 라이트맵을 메모리와 디스크에 로드합니다. 그 후에 라이팅을 리빌드하고 레벨을 저장하여 라이트맵 데이터를 제거해야 합니다.

머티리얼 앰비언트 오클루전

루멘 글로벌 일루미네이션은 스켈레탈 메시의 안정적인 셀프 오클루전을 제공하는 머티리얼 앰비언트 오클루전을 지원합니다.

머티리얼 앰비언트 오클루전을 루멘과 함께 사용하는 방법은 다음과 같습니다.

  • 프로젝트 세팅(Project Settings)에서 스태틱 라이팅 허용(Allow Static Lighting) 을 비활성화하여 GBuffer에 공간을 확보합니다.

  • 머티리얼 출력을 앰비언트 오클루전(Ambient Occlusion) 으로 설정합니다.

루멘 머티리얼 앰비언트 오클루전

왼쪽, 화면 트레이스(소프트웨어 레이 트레이싱)만 활성화하고 스켈레탈 메시에 적용한 루멘 GI. 오른쪽, 머티리얼 앰비언트 오클루전.

루멘 글로벌 일루미네이션은 앰비언트 오클루전 대신 사용할 수 있는 벤트 노멀 맵도 지원합니다. 하지만 벤트 노멀 맵은 앰비언트 오클루전에 비해 렌더링 비용이 훨씬 높으면서도 시각적 개선은 미미합니다.

루멘에서 벤트 노멀 맵을 사용하려면 다음과 같이 설정합니다.

  • 프로젝트의 DefaultEngine.ini 환경설정 파일 내 [SystemSettings] 섹션에 r.GBufferDiffuseSampleOcclusion=1 을 설정하고 에디터를 재시작합니다.

  • 머티리얼을 구성하여 벤트 노멀(Bent Normal) 커스텀 출력 노드로 출력합니다.