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

언리얼 엔진 5의 완전 다이내믹 글로벌 일루미네이션 및 리플렉션 시스템의 대략적인 개요입니다.

Windows
MacOS
Linux

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

루멘 시작하기

언리얼 엔진 5에서 새로 생성하는 프로젝트에서는 루멘 글로벌 일루미네이션 및 리플렉션이 메시 디스턴스 필드 생성 같은 종속성과 함께 기본으로 활성화됩니다.

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

루멘은 프로젝트 세팅의 렌더링(Rendering), 다이내믹 글로벌 일루미네이션(Dynamic Global Illumination) 카테고리에서 활성화할 수 있습니다 다이내믹 글로벌 일루미네이션 메서드(Dynamic Global Illumination Method)루멘(Lumen) 으로 설정하세요. 이 프로퍼티는 리플렉션 메서드(Reflection Method)루멘 으로 설정하며, 루멘의 소프트웨어 레이 트레이싱 모드에 필요한 메시 디스턴스 필드 생성(Generate Mesh Distance Fields) 를 활성화합니다.

projectsettings_gettingstarted.png

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

메시 디스턴스 필드 생성 을 활성화하면 엔진을 다시 시작해야 합니다. 루멘 GI 및 리플렉션은 에디터 재시작 없이 활성화/비활성화할 수 있으며 다이내믹 글로벌 일루미네이션 및 리플렉션 유무를 비교할 때 중요합니다.

루멘에 영향을 미치는 모든 프로젝트 세팅과 관련된 정보는 이 페이지의 루멘 프로젝트 세팅 섹션을 참조하세요.

루멘 라이팅 기능

루멘을 통해서 강력한 다이내믹 글로벌 일루미네이션을 언리얼 엔진에 처음으로 도입하게 되었으며 나나이트 같은 UE5의 다른 지원 시스템과 잘 통합됩니다.

언리얼 엔진 4에서는 스크린 스페이스 글로벌 일루미네이션이 안정적이지 않았으며 레이 트레이싱 글로벌 일루미네이션(RTGI)이 게임에서 충분한 퀄리티로 퍼포먼스를 내지 못했고, 다른 중요 시스템과 잘 통합되지도 않았습니다.

루멘 글로벌 일루미네이션

루멘은 다이내믹 디퓨즈 간접광을 솔브합니다. 예를 들어 표면에서 디퓨즈, 바운스되는 라이트는 해당 표면의 색을 띄고 주변 표면에 색이 들어간 라이트를 반사합니다. 이 이펙트를 컬러 블리딩이라고 합니다. 씬의 메시도 간접광을 차단하며 간접 섀도를 생성합니다.

LumenTechDemo_2.png

루멘은 레이 트레이싱 글로벌 일루미네이션 등 다른 다이내믹 글로벌 일루미네이션보다 향상된 디퓨즈 바운스를 제공합니다. 이는 이 아파트 씬의 하얀 페인트처럼 밝은 디퓨즈 머티리얼이 있는 씬에서 중요합니다.

LumenGI_Apartment.png

언리얼 엔진 5의 나나이트 기술을 활용하면 메시 지오메트리를 이전보다도 훨씬 더 디테일하게 만들 수 있습니다. 루멘은 풀 해상도 노멀 디테일을 달성하는 반면,간접광 연산에서는 리얼타임 퍼포먼스를 위해 훨씬 낮은 해상도를 사용합니다.

LumenTechDemo_3.png

루멘은 라이팅된 반투명 및 볼류메트릭 포그를 위해서 낮은 퀄리티의 글로벌 일루미네이션도 제공합니다.

fog-lumen-on.png

스카이 라이팅과 루멘

스카이 라이팅은 루멘의 최종 수집(Final Gather) 의 일부로 솔브됩니다. 여기에는 하늘이 흐려지면서 실내 공간이 야외보다 훨씬 어두워지는 현상도 포함됩니다.

LumenTechDemo_1.png

루멘 및 이미시브 머티리얼

이미시브 머티리얼은 루멘의 최종 수집을 통해 추가 퍼포먼스 비용 없이 라이트를 전파합니다. 그러나 이미시브 영역이 노이즈 아티팩트를 유발하지 않으면서 작고 밝아지는 데에는 한계가 있습니다. 직접 배치한 라이트 소스보다는 당연히 솔브하기가 훨씬 어렵습니다.

Lumen_Emissive.png

루멘 리플렉션

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

LumenReflections.png

디퓨즈 글로벌 일루미네이션 및 섀도 처리된 스카이라이트는 모두 리플렉션에서 볼 수 있습니다. 루멘 리플렉션은 클리어 코트 머티리얼도 지원합니다.

아래 예시는 클리어 코트 머티리얼을 지원하는 루멘을 보여줍니다.

Lumen_SkyLight.png

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

언리얼 엔진 5 얼리 액세스에서 루멘이 지원하는 것은 다음과 같습니다.

  • 모든 라이트 유형을 지원합니다. 여기에는 디렉셔널, 스카이, 포인트, 스포트, 렉트 라이트가 포함됩니다.

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

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

루멘 세팅

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

프로젝트 세팅

루멘의 프로젝트 세팅은 렌더링 섹션에 있습니다. 여기에 루멘의 기본 세팅이 포함되어 있습니다.

ProjectSettings_Lumen.png

루멘은 다이내믹 글로벌 일루미네이션 메서드리플렉션 메서드 를 선택하면 프로젝트에서 활성화됩니다.

프로젝트 세팅은 루멘에 영향을 미치는 다른 기본 세팅도 포함합니다.

  • 소프트웨어 레이 트레이싱 모드(Software Ray Tracing Mode) 는 트레이싱 수행 방식에 대한 옵션을 제공합니다.

  • 디테일 트레이싱(Detail Tracing) 은 개별 메시의 디스턴스 필드를 트레이스하여 가장 높은 퍼포먼스 비용으로 가장 높은 퀄리티를 달성합니다.

  • 글로벌 트레이싱(Global Tracing) 은 글로벌 디스턴스 필드를 트레이스하여 낮은 퀄리티로 가장 빠르게 트레이싱을 수행합니다.

  • 가능하면 하드웨어 레이 트레이싱 사용(Use Hardware Ray Tracing when available) 은 지원되는 하드웨어를 사용하여 씬 지오메트리에 대한 레이를 트레이스하며, 기준에 부합하지 않으면 루멘의 소프트웨어 레이 트레이싱을 디폴트로 합니다. 하드웨어 레이 트레이싱은 인스턴스가 만 개 이상인 씬에서 상당한 씬 업데이트 퍼포먼스 비용을 초래하며, 하드웨어 레이 트레이싱 지원을 활성화해야 사용할 수 있습니다.

  • 하드웨어 레이 트레이싱 지원(Support Hardware Ray Tracing) 은 지원되는 비디오 카드, RHI 운영 체제를 통해 씬 지오메트리에 대한 레이를 트레이스하여 레이 트레이싱 기능을 통해 최고 퀄리티를 달성합니다.

  • 메시 디스턴스 필드 생성 은 루멘의 소프트웨어 레이 트레이싱에 필요한 개별 스태틱 메시에 대한 디스턴스 필드 표현을 생성합니다. 무버블 스카이 라이트 및 디렉셔널 라이트와 디스턴스 필드를 사용하여 다른 다이내믹 라이팅 및 섀도잉 메서드와 함께 사용할 수도 있습니다.

포스트 프로세스 세팅

포스트 프로세스 볼륨은 글로벌 일루미네이션리플렉션 프로퍼티 섹션에서 루멘에 대한 오버라이드를 제공합니다.

PostProcessVolumeOverrides.png

메서드(Method) 프로퍼티는 여기서 오버라이드되지 않았다면프로젝트 세팅에서 선택된 글로벌 일루미네이션리플렉션 메서드를 사용합니다. 루멘은 프로젝트의 글로벌 일루미네이션 및 리플렉션 메서드입니다.

각각의 퀄리티는 다음을 통해 제어됩니다.

  • 최종 수집 퀄리티(Final Gather Quality) 는 루멘 글로벌 일루미네이션의 퀄리티를 높이고 노이즈 렌더링을 줄이지만, GPU의 렌더링 비용을 높입니다.

  • 퀄리티(Quality) 는 표면에서 루멘 리플렉션의 퀄리티를 높이고 렌더링된 결과의 노이즈를 줄여 주지만, GPU의 렌더링 비용을 높입니다.

추가 참고사항

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

루멘 라이팅 업데이트 속도

루멘은 리얼타임 퍼포먼스를 달성하기 위해 캐시를 많이 사용합니다. 로컬 라이팅의 변화는 빠르게 전파 되지만, 태양의 비활성화 같은 글로벌 라이팅의 변화는 전파되기까지 몇 초가 걸리기도 합니다.

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

루멘을 사용할 때는 스태틱 라이팅의 사전 연산된 라이팅이 제거됩니다. 프로젝트 세팅에서 스태틱 라이팅 허용(Allow Static Lighting) 옆의 박스를 체크 해제하여 프로젝트에 대한 사전 연산 라이팅을 완전히 비활성화할 수 있습니다.

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

스태틱 라이팅을 사용하는 프로젝트는 '사전 연산 라이팅 사용 금지' 프로퍼티를 레벨 월드 세팅에서 활성화하지 않았다면 라이트맵을 메모리와 디스크에 로드합니다. 그 후에 라이팅을 리빌드하고 레벨을 저장해야 합니다.

머티리얼 벤트 노멀

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

머티리얼 벤트 노멀을 루멘과 함께 사용하려면 다음을 수행합니다.

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

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

  • 머티리얼을 구성하여 BentNormal 커스텀 출력 노드로 출력합니다.

Lumen_ScreenTraces.png

왼쪽, 화면 트레이스를 비활성화하고 스켈레탈 메시에 적용한 루멘 GI.

가운데, 구성된 머티리얼 벤트 노멀.

오른쪽, 재활성화된 머티리얼 벤드 노멀 및 화면 트레이스.