루멘은 차세대 콘솔을 위해 설계된 언리얼 엔진 5의 완전한 다이내믹 글로벌 일루미네이션 및 리플렉션 시스템이자, 디폴트 글로벌 일루미네이션 및 리플렉션 시스템입니다. 루멘은 밀리미터에서 킬로미터에 이르는 거대하고 디테일한 환경에서 디퓨즈 인터리플렉션을 무한한 바운스 및 인다이렉트 스페큘러 리플렉션으로 렌더링합니다.
루멘 시작하기
새로 생성하는 프로젝트에서는 루멘 글로벌 일루미네이션 및 리플렉션이 메시 디스턴스 필드 생성(Generate Mesh Distance Fields) 같은 종속성과 함께 기본적으로 활성화됩니다. 언리얼 엔진 4에서 언리얼 엔진 5로 변환된 기존 프로젝트에서는 루멘 기능이 자동으로 활성화되지 않습니다. 기존 프로젝트 내의 라이팅 패스를 망가뜨리거나 변경하지 않기 위한 조치입니다.
루멘은 프로젝트 세팅의 렌더링(Rendering) > 다이내믹 글로벌 일루미네이션(Dynamic Global Illumination) 및 리플렉션(Reflections) 카테고리에서 활성화할 수 있습니다.
글로벌 일루미네이션과 리플렉션을 따로 설정할 수 있습니다. 각 카테고리에서 루멘을 활성화하려면 다음 항목을 설정합니다.
- 다이내믹 글로벌 일루미네이션 방식: 루멘
- 리플렉션 방식: 루멘
메시 디스턴스 필드 생성(Generate Mesh Distance Field) 프로퍼티가 활성화되어 있지 않은 경우, 루멘을 활성화하면 같이 활성화됩니다. 이 프로퍼티는 루멘의 소프트웨어 레이 트레이싱 모드에 필수입니다. 활성화 후 엔진을 재시작해야 합니다.
루멘 글로벌 일루미네이션은 스크린 스페이스 글로벌 일루미네이션(SSGI) 및 디스턴스 필드 앰비언트 오클루전(DFAO)을 대체합니다. 루멘 리플렉션은 스크린 스페이스 리플렉션(Screen Space Reflections)을 대체합니다.
프로젝트에서 루멘을 활성화하면 프리컴퓨티드 스태틱 라이팅의 기여가 비활성화되며 모든 라이트맵이 숨김 처리됩니다.
루멘 라이팅 기능
루멘은 언리얼 엔진에서 강력한 다이내믹 글로벌 일루미네이션을 구현하며, 나나이트, 월드 파티션, 버추얼 섀도 맵 등 언리얼 엔진 5의 다른 지원 시스템과 잘 통합됩니다.
스크린 스페이스 글로벌 일루미네이션 및 레이 트레이싱 글로벌 일루미네이션(RTGI) 등의 언리얼 엔진 4 기능은 고퀄리티의 리얼타임 프로젝트에서 안정적이거나 좋은 퍼포먼스를 보여주지 못합니다. 또한 다른 주요 시스템과 완전히 통합되지도 않아 엔진 기능 대부분을 폭넓게 지원하지 못합니다.
루멘 글로벌 일루미네이션
루멘 글로벌 일루미네이션은 디퓨즈 간접광을 솔브합니다. 예를 들어 표면에서 디퓨즈, 바운스되는 라이트는 해당 표면의 색을 띠고 주변 표면에 색이 들어간 라이트를 반사하여 컬러 블리딩(color bleeding)이라는 이펙트를 생성합니다. 씬의 메시도 간접광을 차단하며 간접 섀도잉을 생성합니다.
루멘은 향상된 디퓨즈 바운스를 제공합니다. 이는 이 아파트 씬의 하얀 페인트처럼 밝은 디퓨즈 머티리얼이 있는 씬에서 중요합니다.
언리얼 엔진 5의 나나이트 가상화 지오메트리를 사용하면 지오메트리를 이전보다 훨씬 디테일하게 만들 수 있습니다. 루멘은 풀 해상도 셰이딩을 달성하지만, 간접광 연산에서는 리얼타임 퍼포먼스를 위해 훨씬 낮은 해상도를 사용합니다.
스카이 라이팅과 루멘
스카이 라이팅은 루멘의 파이널 개더(Final Gather) 프로세스의 일부로 솔브됩니다. 여기에는 실내 공간을 야외 라이팅보다 훨씬 어둡게 만드는 스카이 섀도잉이 포함되어 훨씬 자연스러운 이펙트를 제공합니다.
또한 루멘은 라이팅포함 반투명 및 볼류메트릭 포그에 더 낮은 퀄리티의 글로벌 일루미네이션을 제공합니다.
루멘과 이미시브 머티리얼
이미시브 머티리얼(Emissive Material)은 루멘의 파이널 게더를 통해 추가 퍼포먼스 비용 없이 라이트를 전파합니다. 그러나 이미시브 영역이 노이즈 아티팩트 표시를 유발하지 않으면서 작고 밝아지는 데에는 한계가 있습니다. 직접 배치한 광원에 비하면 이미시브 머티리얼이 솔브하기가 기본적으로 훨씬 어렵습니다.
루멘 리플렉션
루멘은 머티리얼 러프니스 값의 전체 범위에서 간접 스페큘러 또는 리플렉션을 솔브합니다.
디퓨즈 글로벌 일루미네이션 및 섀도 처리된 스카이라이트는 모든 리플렉션에서 볼 수 있습니다. 루멘 리플렉션은 아래의 자동차 예시와 같은 클리어 코트(Clear Coat) 머티리얼도 지원합니다.
루멘은 아래 예시의 자동차 창문과 같은 반투명 표면에서의 글로시 리플렉션도 제공합니다.
프로젝트의 고퀄리티 반투명 리플렉션(High Quality Translucency Reflections) 이 활성화된 경우, 루멘 리플렉션은 반투명 표면 머티리얼의 최상단 레이어에 미러 리플렉션을 제공합니다.
루멘 리플렉션은 리플렉션의 미러링을 강제하는 단일 레이어 물(Single Layer Water) 머티리얼을 지원합니다.
루멘 양면 폴리지
양면 폴리지(Two-Sided Foliage) 셰이딩 모델은 라이팅을 뒷면에서 수집하고 머티리얼의 서브서피스 컬러(Subsurface Color) 에 의해 감쇠되는 리프를 통해 스캐터링시켜 솔브됩니다.
지원되는 라이트 유형 및 기타 기능
개괄적으로 루멘은 다음과 같은 기능을 제공합니다.
- 디렉셔널, 스카이, 포인트, 스포트, 렉트 라이트 등 모든 라이팅 유형을 지원합니다.
- 라이트 함수는 모든 유형의 라이트에서 지원합니다.
- 모빌리티가 스태틱(Static) 으로 설정된 라이트는 지원하지 않습니다.
루멘 세팅
루멘 세팅은 프로젝트 세팅(Project Settings) 과 포스트 프로세스 볼륨(Post Process Volume) 에서 찾을 수 있습니다.
루멘 프로젝트 세팅
루멘과 관련된 모든 프로젝트 세팅은 엔진(Engine) > 렌더링(Rendering) 섹션에서 찾을 수 있습니다. 프로젝트 세팅에는 프로젝트에서 루멘에 사용할 모든 디폴트 세팅이 포함되어 있습니다.
루멘이 필요로 하거나 영향을 받는 모든 세팅의 목록은 아래와 같습니다.
프로퍼티 이름 | 설명 |
---|---|
글로벌 일루미네이션 | |
다이내믹 글로벌 일루미네이션 메서드(Dynamic Global Illumination Method) | 프로젝트에서 사용할 다이내믹 글로벌 일루미네이션 타입을 선택합니다. |
리플렉션 | |
리플렉션 메서드(Reflection Method) | 프로젝트에서 사용할 다이내믹 리플렉션 타입을 선택합니다. |
루멘 | |
사용 가능한 경우 하드웨어 레이 트레이싱 사용(Use Hardware Ray Tracing when available) | 비디오 카드, RHI, 운영 체제가 지원하는 경우 루멘의 하드웨어 레이 트레이싱 기능을 사용합니다. 사용하지 않으면 루멘은 소프트웨어 레이 트레이싱으로 전환됩니다. 하드웨어 레이 트레이싱은 인스턴스가 10만 개를 초과하는 씬에서는 막대한 씬 업데이트 비용을 유발합니다. 추가 정보는 레이 트레이싱 퍼포먼스 가이드를 참조하세요. |
레이 라이팅 모드(Ray Lighting Mode) | 루멘이 하드웨어 레이 트레이싱을 사용할 때 루멘 리플렉션 레이가 비춰지는 방식을 제어합니다. 루멘은 최적의 퍼포먼스를 위해 표면 캐시(Surface Cache) 를 디폴트로 사용하지만, 리플렉션을 위한 히트 라이팅(Hit Lighting for Reflections) 으로 설정하여 퀄리티를 더 높일 수도 있습니다. |
고퀄리티 반투명 리플렉션(High Quality Translucency Reflections) | 반투명 표면의 프론트 레이어에서 고퀄리티 미러 리플렉션을 사용할지 여부입니다. 다른 레이어는 유광 리플렉션만 생성할 수 있는 저퀄리티 광속 발산도 캐시 방식을 사용합니다. 포스트 프로세스 볼륨(Post Process Volume) 세팅에서 활성화하면 GPU 비용이 증가합니다. |
소프트웨어 레이 트레이싱 모드(Software Ray Tracing Mode) | 루멘이 씬을 레이 트레이싱할 때 사용할 트레이싱 메서드를 제어합니다. 디테일 트레이싱(Detail Tracing) 은 가장 높은 퀄리티를 위해 개별 메시의 디스턴스 필드를 트레이싱합니다. 글로벌 트레이싱(Global Tracing) 은 가장 빠른 트레이싱을 위해 낮은 글로벌 디스턴스 필드를 트레이싱합니다. |
하드웨어 레이 트레이싱 | |
하드웨어 레이 트레이싱 지원(Support Hardware Ray Tracing) | 더 높은 퀄리티 결과를 위해 지원되는 운영 체제, RHI, 비디오 카드에서 레이 트레이싱을 활성화합니다. |
소프트웨어 레이 트레이싱 | |
메시 디스턴스 필드 생성(Generate Mesh Distance Fields) | 스태틱 메시의 디스턴스 필드를 빌드할지 여부입니다. 디스턴스 필드는 루멘의 소프트웨어 레이 트레이싱 및 디스턴스 필드 앰비언트 오클루전에 필요합니다. 디스턴스 필드 앰비언트 오클루전으로는 디렉셔널 라이트에 무버블 스카이 라이트 섀도 및 레이 트레이스드 디스턴스 필드 섀도를 구현할 수 있습니다. 활성화하면 스태틱 메시의 빌드 시간, 메모리 사용, 디스크 용량이 증가합니다. |
디스턴스 필드 복셀 밀도(Distance Field Voxel Density) | 메시의 디폴트 스케일이 디스턴스 필드 복셀 치수로 변환되는 방식을 결정합니다. 변경하면 모든 디스턴스 필드가 다시 빌드됩니다. 값이 크면 메모리를 아주 빠르게 소모합니다. |
포스트 프로세스 세팅
포스트 프로세스 볼륨에는 루멘에 대한 오버라이드 및 아티스트 제어 프로퍼티가 포함됩니다. 이 세팅은 글로벌 일루미네이션 및 리플렉션 카테고리에 있습니다.
포스트 프로세스 볼륨에서 찾을 수 있는 모든 루멘 세팅의 목록은 아래와 같습니다.
프로퍼티 이름 | 설명 |
---|---|
글로벌 일루미네이션: 루멘 글로벌 일루미네이션 | |
루멘 씬 라이팅 퀄리티(Lumen Scene Lighting Quality) | 스케일이 클수록 루멘 씬이 더 높은 충실도로 계산되고 리플렉션에도 드러나지만 GPU 비용이 높아집니다. |
루멘 씬 디테일(Lumen Scene Detail) | 루멘 씬에 표현될 수 있는 인스턴스 크기를 제어합니다. 값이 클수록 작은 오브젝트가 표현되지만 GPU 비용이 높아집니다. |
루멘 씬 뷰 인스턴스(Lumen Scene View Distance) | 루멘이 레이 트레이싱에서 유지하는 씬에 대한 최대 뷰 거리를 설정합니다. 값이 클수록 스카이 섀도잉 및 글로벌 일루미네이션의 이펙트 범위가 넓어지지만 GPU 비용이 높아집니다. |
파이널 게더 퀄리티(Final Gather Quality) | 루멘 글로벌 일루미네이션의 퀄리티를 높이고 노이즈 렌더링을 줄이지만, GPU의 렌더링 비용을 높입니다. |
스크린 트레이스(Screen Traces) | 루멘 글로벌 일루미네이션에 스크린 스페이스 트레이스를 사용할지 여부입니다. 스크린 스페이스 트레이스는 루멘 씬을 우회하는 대신 씬 뎁스와 컬러를 샘플링합니다. 퀄리티가 개선되지만 이와 동시에 글로벌 일루미네이션에서만 보이는 이미시브 오브젝트 추가와 같이 루멘 씬에만 해당하는 변경이 방지됩니다. |
최대 트레이스 거리(Max Trace Distance) | 루멘이 라이팅 솔브 시 트레이스할 최대 거리를 제어합니다. 값이 너무 작으면 라이팅이 동굴 등의 넓은 영역으로 새어 나올 수 있습니다. 값이 크면 GPU의 씬 렌더링 비용이 높아집니다. |
씬 캡처 캐시 해상도(Scene Capture Cache Resolution) | 루멘 표면 캐시 해상도의 스케일 인수입니다. 값이 작을수록 퀄리티가 낮아지는 대신 GPU 메모리가 절약됩니다. 오버라이드되지 않는 경우 0.5로 디폴트 설정됩니다. 씬 캡처 컴포넌트의 포스트 프로세스 세팅에서 설정해야 합니다. |
글로벌 일루미네이션: 루멘 글로벌 일루미네이션: 고급 프로퍼티 | |
루멘 씬 라이팅 업데이트 속도(Lumen Scene Lighting Update Speed) | 루멘 씬이 퍼포먼스를 향상하기 위해 라이팅 결과를 어느 정도까지 캐시할 수 있는지 제어합니다. 스케일이 클수록 라이팅 변경이 빠르게 전파되지만, GPU 비용이 높아집니다. |
파이널 게더 라이팅 업데이트 속도(Final Gather Lighting Update Speed) | 루멘 파이널 게더가 퍼포먼스를 향상하기 위해 라이팅 결과를 어느 정도까지 캐시할 수 있는지 제어합니다. 스케일이 클수록 라이팅 변경이 빠르게 전파되지만, GPU 비용이 높아집니다. |
디퓨즈 컬러 부스트(Diffuse Color Boost) | 간접광의 머티리얼 디퓨즈 색을 pow(DiffuseColor, 1 / DiffuseColorBoost)로 계산하여 간접광을 밝게 합니다. 값이 1(원본 디퓨즈 색)보다 높으면 물리적으로 정확하지 않지만, 씬에서 반사광의 양을 늘리기 위한 아트 디렉션 용도로는 유용합니다. 리플렉션도 씬보다 밝아지게 하므로 2 미만으로 유지하는 것이 좋습니다. |
스카이라이트 누수(Skylight Leaking) | 스카이라이트 강도에서 얼마만큼의 누출을 허용할지 제어합니다. 이는 실내 영역이 완전히 어두워지지 않게 하는 비물리 기반의 아트 디렉션 노브로서 유용합니다. |
풀 스카이라이트 누수 거리(Full Skylight Leaking Distance) | 스카이라이트 누출이 완전한 강도에 도달하는 수신 표면으로부터의 거리를 제어합니다. 값이 작을수록 스카이라이트 누출이 평탄해지며, 값이 클수록 앰비언트 오클루전 이펙트를 생성합니다. |
리플렉션: 루멘 리플렉션 | |
퀄리티(Quality) | 표면에서 루멘 리플렉션의 퀄리티를 높이고 노이즈의 렌더링을 줄여 주지만, GPU의 렌더링 비용이 높아집니다. |
레이 라이팅 모드(Ray Lighting Mode) | 루멘 하드웨어 레이 트레이싱을 사용할 때, 라이팅의 비용을 낮추기 위해 표면 캐시를 리플렉션에 재사용할지 아니면 퀄리티를 높이기 위해 히트 포인트에서 라이팅을 계산할지를 제어합니다. |
스크린 트레이스(Screen Traces) | 루멘 글로벌 일루미네이션에 스크린 스페이스 트레이스를 사용할지 여부입니다. 스크린 스페이스 트레이스는 루멘 씬을 우회하는 대신 씬 뎁스와 컬러를 샘플링합니다. 퀄리티가 개선되지만 이와 동시에 글로벌 일루미네이션에서만 보이는 이미시브 오브젝트 추가와 같이 루멘 씬에만 해당하는 변경이 방지됩니다. |
고퀄리티 반투명 리플렉션(High Quality Translucency Reflections) | 반투명 표면의 프론트 레이어에서 고퀄리티 미러 리플렉션을 사용할지 여부입니다. 다른 레이어는 유광 리플렉션만 생성할 수 있는 저퀄리티 광속 발산도 캐시 방식을 사용합니다. 활성화하면 GPU 비용이 증가합니다. 프로젝트 세팅의 고퀄리티 반투명 리플렉션(High Quality Translucency Reflections) 을 먼저 활성화해야 합니다. |
트레이스할 최대 러프니스(Max Roughness To Trace) | 루멘이 여전히 전용 리플렉션 레이를 트레이스하는 최대 러프니스 값을 설정합니다. 값이 클수록 리플렉션 퀄리티가 향상되지만 GPU 비용이 크게 증가합니다. |
최대 리플렉션 바운스(Max Reflection Bounces) | 재귀 리플렉션 바운스의 최대 수를 설정합니다. 디폴트는 1이고, 거울과 같은 표면에 2차 리플렉션이 없는 단일 리플렉션 레이를 의미합니다. 바운스가 2회 이상이면 충분한 퍼포먼스 예산이 있을 때 리플렉션에서 검은색 영역을 방지할 수 있습니다. 이 포스트 프로세스 세팅은 최대 8회 바운스까지 가능합니다. r.Lumen.Reflections.MaxBounces 를 사용하여 최대 64회 리플렉션 바운스가 가능하도록 포스트 프로세스 세팅을 오버라이드할 수 있습니다. 프로젝트 세팅에서 리플렉션을 위한 히트 라이팅을 갖춘 하드웨어 레이 트레이싱이 활성화되어야 합니다. |
최대 리프랙션 바운스(Max Refraction Bounces) | 트레이스할 최대 리프랙션 이벤트 수입니다. 히트 라이팅을 사용하는 경우 루멘 최대 리프랙션 바운스가 0보다 클 때 반투명 메시가 트레이싱되어 리플렉션 트레이싱 비용이 증가하게 됩니다. |
추가 참고 사항
다음은 프로젝트에서 루멘 기능으로 작업할 때 유념해야 할 추가 고려 사항입니다.
루멘 라이팅 업데이트 속도
루멘은 리얼타임 퍼포먼스를 달성하기 위해 캐시를 많이 사용합니다. 로컬 라이팅의 변화는 빠르게 전파되지만, 태양을 비활성화하는 것 등의 글로벌 라이팅 변화는 전파되기까지 몇 초가 걸리기도 합니다. 프로젝트에서 루멘 씬 라이팅 업데이트 속도 와 파이널 게더 라이팅 업데이트 속도 등의 포스트 프로세스 볼륨 컨트롤을 사용하면 이 지연 현상을 해결할 수 있지만 GPU 비용이 높아집니다.
프로젝트에서 스태틱 라이팅 비활성화하기
루멘이 활성화되면 스태틱 라이팅의 프리컴퓨티드 라이팅이 제거됩니다. 프로젝트 세팅의 엔진 > 렌더링 섹션에서 스태틱 라이팅 허용(Allow Static Lighting) 을 비활성화하여 프로젝트에서 프리컴퓨티드 라이팅을 완전히 비활성화할 수 있습니다.
스태틱 라이팅을 비활성화하면 셰이더 순열과 스태틱 라이팅 오버헤드도 절약됩니다. 또한 머티리얼 앰비언트 오클루전이 루멘 글로벌 일루미네이션과 함께 작동하도록 지원합니다.
이미 스태틱 라이팅을 사용 중인 프로젝트의 경우, 이미 로드된 레벨의 월드 세팅(World Settings) 에서 프리컴퓨티드 라이팅 강제 비활성화(Force No Precomputed Lighting) 프로퍼티를 활성화하지 않았다면 라이트맵을 메모리와 디스크에 로드합니다. 그 후에 라이팅을 리빌드하고 레벨을 저장하여 라이트맵 데이터를 제거해야 합니다.
구워진 스태틱 라이팅에 루멘 리플렉션 사용하기
루멘 글로벌 일루미네이션 없이 루멘 리플렉션을 사용할 수 있습니다. 이는 스태틱 라이팅을 사용하지만 배치된 리플렉션 캡처의 기능 이상으로 리플렉션 퀄리티를 높이고자 하는 게임과 프로젝트에 가장 도움이 됩니다. 독립형 루멘 리플렉션의 경우 자동으로 리플렉션에 히트 라이팅을 활성화하는 루멘 하드웨어 레이 트레이싱 모드를 활성화해야 합니다.
클리어 코트 머티리얼
루멘은 클리어 코트 머티리얼(듀얼 노멀 사용)을 지원하지만 약간의 제한 사항이 있습니다. 이는 다음과 같습니다.
- 상단 레이어만 낮은 러프니스 값을 가질 수 있습니다. 하단 레이어는 거친 값을 갖는 것으로 가정되어, 광택 있는 결과물로 이어집니다. 이 제한 사항은 단일 리플렉션 레이가 픽셀별로 드리워져 상단과 하단 레이어 모두 선명한 리플렉션을 드리우지 못하도록 한다는 사실에서 기인합니다.
- 클리어 코트 양이 0에 도달해도 위의 제한 사항이 계속 적용됩니다. 즉, 단일(하단) 레이어가 있음에도 불구하고 리플렉션은 러프니스 값이 낮은 경우에도 광택이 있거나 거칠게 보입니다.
머티리얼 앰비언트 오클루전
루멘 글로벌 일루미네이션은 스켈레탈 메시의 안정적인 셀프 오클루전을 제공하는 머티리얼 앰비언트 오클루전을 지원합니다.
머티리얼 앰비언트 오클루전을 루멘과 함께 사용하는 방법은 다음과 같습니다.
- 프로젝트 세팅(Project Settings)에서 스태틱 라이팅 허용(Allow Static Lighting) 을 비활성화하여 GBuffer에 공간을 확보합니다.
- 머티리얼 출력을 앰비언트 오클루전(Ambient Occlusion) 으로 설정합니다.
머티리얼 앰비언트 오클루전은 버퍼 시각화 앰비언트 오클루전(Ambient Occlusion) 뷰 모드 사용 시 표시되지 않습니다.
루멘 글로벌 일루미네이션은 앰비언트 오클루전 대신 사용할 수 있는 벤트 노멀 맵도 지원합니다. 하지만 벤트 노멀 맵은 앰비언트 오클루전에 비해 렌더링 비용이 훨씬 높으면서도 시각적 개선은 미미합니다.
루멘에서 벤트 노멀 맵을 사용하려면 다음과 같이 설정합니다.
- 프로젝트의
DefaultEngine.ini
환경설정 파일 내[SystemSettings]
섹션에r.GBufferDiffuseSampleOcclusion=1
을 설정하고 에디터를 재시작합니다. - 머티리얼을 구성하여 벤트 노멀(Bent Normal) 커스텀 출력 노드로 출력합니다.