글로벌 일루미네이션과 반사 설정
간접광과 반사 방식의 품질·변화 대응·성능 비용을 비교하고 장면과 목표 플랫폼에 맞는 조합을 설정합니다.
기본 광원과 그림자 설정이 끝났다면, 이제 사실감을 크게 올리는 고급 조명 요소로 넘어갑니다.
이번 절의 주제는 글로벌 일루미네이션(Global Illumination, GI)과 반사(Reflections)입니다.
간접광과 반사는 화면을 풍부하게 만들지만, 설정 방식에 따라 성능 비용이 크게 달라집니다.
핵심은 무조건 고품질이 아니라 장면 의도에 맞는 균형입니다.
글로벌 일루미네이션의 이해
글로벌 일루미네이션(Global Illumination, GI)은 직접광(Direct Light)이 오브젝트에 부딪힌 후 반사되어 주변 환경을 간접적으로 밝히는 현상을 시뮬레이션하는 기술입니다.
예를 들어, 햇빛이 흰 벽에 부딪히면 그 흰 벽이 주변의 다른 오브젝트에도 흰색 빛을 반사하여 비추는 것을 생각할 수 있습니다.
이는 씬의 깊이감과 사실감을 극대화하는 데 매우 중요합니다.
언리얼 엔진은 다양한 GI 솔루션을 제공하며, 각각 다른 특징과 성능 비용을 가집니다.
라이트매스 (Lightmass)
- 특징: Static 및 Stationary 조명으로부터의 간접광을 에디터에서 미리 계산하여(베이크하여)라이트맵(Lightmap)이라는 텍스처에 저장하는 방식입니다.
-
장점
- 런타임 계산 감소: 간접광을 미리 계산하지만 라이트맵 메모리와 샘플링 비용은 남습니다.
- 고품질 간접광: 매우 부드럽고 사실적인 간접광을 표현할 수 있습니다.
-
단점
- 빌드 시간 소요: 레벨이 커지거나 GI 품질이 높을수록 빌드 시간이 매우 길어질 수 있습니다.
- 정적 환경에만 적용: 빛이나 오브젝트가 런타임에 움직이면 간접광이 업데이트되지 않아 어색해집니다.
-
설정 (World Settings)
- 메인 툴바에서 창(Window) > 월드 세팅(World Settings)을 선택합니다.
- Lightmass 섹션에서 GI 관련 설정을 조절할 수 있습니다.
Static Lighting Level Scale: GI 계산의 전반적인 해상도. (값이 낮을수록 고품질, 빌드 시간 증가)Num Indirect Lighting Bounces: 빛이 몇 번 반사될지. (값이 높을수록 사실적, 빌드 시간 증가)Indirect Lighting Quality: 간접광의 전반적인 품질.Indirect Lighting Smoothness: 간접광의 부드러움 정도.
- 활용: 주로 정적인 실내 환경이나 야외의 움직이지 않는 배경 오브젝트에 사용됩니다.
스카이 라이트 (Sky Light) - 환경 조명
- 특징: 하늘 전체에서 들어오는 주변광(Ambient Light)을 시뮬레이션하여 간접광을 표현합니다. 씬의 스카이 박스나 큐브맵을 캡처하여 주변광을 생성합니다.
-
장점
- 간편하게 전반적인 주변광을 추가하여 그림자 영역의 어두움을 완화하고 사실감을 높입니다.
Real Time Capture를 활성화하면 동적인 환경에서도 주변광을 업데이트할 수 있습니다.
-
단점
- 오브젝트 간의 직접적인 빛 반사(예: 붉은 벽이 흰 바닥을 붉게 비추는 효과)는 표현하기 어렵습니다.
-
주요 설정 (Sky Light 액터 디테일 패널)
Intensity Scale: 스카이 라이트의 밝기.Source Type:SLS Captured Scene(씬 캡처) 또는SLS Specified Cubemap(큐브맵 지정).Real Time Capture: 동적인 낮/밤 시스템에서 스카이 라이트가 씬의 변화에 따라 실시간으로 업데이트되도록 합니다. (성능 부하 증가)
- 활용: 하늘이나 큐브맵의 환경 조명을 표현할 때 사용합니다. 모든 프로젝트의 필수 액터는 아닙니다.
루멘 (Lumen) - 실시간 GI
- 특징: 언리얼 엔진 5부터 도입된 완전히 동적인 실시간 GI 및 리플렉션 시스템입니다. 동적 광원과 장면 변화에 맞춰 GI와 반사를 갱신합니다. Lumen GI를 사용하면 사전 계산된 정적 조명 기여가 비활성화되며, 캐시 때문에 큰 조명 변화의 반영이 지연될 수 있습니다.
-
장점
- 실시간 간접광과 반사: 빛과 오브젝트가 움직일 때 간접광과 반사를 동적으로 갱신해 정적 라이트맵보다 변화에 대응하기 쉽습니다.
- 빌드 불필요: 라이트 빌드 과정이 필요 없어 작업 효율성이 높습니다.
-
단점
- 높은 성능 요구: 최신 그래픽 카드와 높은 사양의 시스템을 요구합니다.
- 설정 복잡도: 초기 설정 및 최적화에 대한 이해가 필요합니다.
-
활성화 (Project Settings)
편집(Edit) > 프로젝트 세팅(Project Settings)으로 이동합니다.엔진(Engine) > 렌더링(Rendering)섹션에서Global Illumination및Reflections의 기본 방법을 Lumen 으로 설정합니다.
- 활용: 고품질의 실시간 렌더링이 필요한 차세대 게임, 건축 시각화, 영화 제작 등에 주로 사용됩니다.
반사 (Reflections) 설정
반사는 표면의 재질 특성(금속, 유리, 물 등)에 따라 주변 환경을 비추는 현상입니다.
언리얼 엔진은 여러 가지 반사 솔루션을 제공합니다.
스크린 스페이스 반사
스크린 스페이스 반사(Screen Space Reflections, SSR)는 현재 카메라에 보이는 화면의 픽셀 정보를 사용하여 반사를 계산하는 방식입니다.
이는 실시간으로 반사를 업데이트할 수 있는 효율적인 방법입니다.
- 특징: 카메라 화면에 보이는 정보만을 사용하여 반사를 계산합니다.
-
장점
- 비교적 성능 효율적입니다.
- 실시간으로 반사를 업데이트합니다.
-
단점
- 카메라에 보이지 않는 오브젝트는 반사되지 않습니다. (화면 밖의 오브젝트는 반사되지 않음)
- 반사 품질이 완벽하지 않을 수 있습니다.
-
설정 (Post Process Volume)
Post Process Volume액터를 선택하고 디테일 패널에서Rendering Features > Reflections섹션을 확인합니다.Screen Space Reflection옵션을 활성화하고Intensity,Quality등을 조절합니다.
- 활용: SSR을 지원하는 렌더링 경로에서 화면 기반 반사가 충분한 표면에 사용합니다. Lumen이 기본인 프로젝트에도 일률적으로 SSR을 켜는 것은 아닙니다.
스피어/박스 리플렉션 캡처
스피어/박스 리플렉션 캡처(Sphere/Box Reflection Capture)는 특정 지점이나 영역에서 주변 환경을 캡처하여 반사 정보를 제공합니다.
이는 정적인 반사 효과를 구현하는 데 유용합니다.
- 특징: 특정 지점(스피어) 또는 영역(박스)에서 주변 환경을 캡처하여 큐브맵으로 저장하고, 이를 주변 오브젝트의 반사에 사용합니다.
-
장점
- SSR의 단점(화면 밖 오브젝트 반사 불가)을 보완합니다.
- 베이크된 반사이므로 런타임 성능 부하가 낮습니다.
-
단점
- 캡처된 시점의 정적인 반사만을 제공합니다. 오브젝트가 움직이거나 빛이 변하면 반사가 업데이트되지 않아 어색해질 수 있습니다.
- 캡처 액터를 적절한 위치에 배치해야 합니다.
-
배치
- 툴바의 추가(Add) > 조명(Lights) > 스피어 리플렉션 캡처(Sphere Reflection Capture) 또는 박스 리플렉션 캡처(Box Reflection Capture)를 선택하여 레벨에 배치합니다.
- 배치 후 액터를 선택하고 디테일 패널에서 스피어의
Influence Radius또는 박스의 크기·전환 거리를 조절하여 반사가 적용되는 범위를 맞춥니다. 영향 영역과 캡처 시점을 구분합니다.
- 활용: 실내 공간의 각 방, 복도 등 특정 영역의 반사를 개선하는 데 사용됩니다.
하드웨어 레이 트레이싱과 Lumen 반사
레이 트레이싱은 화면 밖 지오메트리까지 추적해 SSR의 정보 한계를 보완할 수 있지만, 지원 하드웨어와 장면 갱신 비용을 확인해야 합니다.
UE4의 독립적인 Ray Traced Reflections 설정은 UE5에서 폐기 예정 경로입니다. 새 UE5 프로젝트에서는 지원되는 Lumen 반사 경로를 확인합니다.
- 하드웨어 조건: 프로젝트의
Support Hardware Ray Tracing및Use Hardware Ray Tracing when available설정과 대상 GPU·렌더링 API 지원을 확인합니다. - 품질과 비용: Lumen의
Ray Lighting Mode에서 Hit Lighting for Reflections를 사용하면 반사 광선의 적중점에서 조명을 평가하지만, 장면과 설정에 따라 비용이 증가합니다. - GI와 반사의 분리: Lumen Reflections는 Lumen GI 없이 베이크 조명과 함께 사용할 수 있는 경로도 있습니다. 이 조합에는 Lumen 하드웨어 레이 트레이싱이 필요하므로 두 Method를 같은 기능으로 취급하지 않습니다.
글로벌 일루미네이션 및 반사 설정 실습
다음 Lightmass 실습은 정적 조명이 허용되고 Lumen GI가 꺼진 테스트 레벨을 전제로 합니다. 기존 프로젝트 설정을 확인하고 베이크와 Lumen 비교를 별도 상태로 기록하세요.
새로운 레벨 생성: 파일(File) > 새 레벨(New Level) > 기본(Basic)을 선택하여 기본적인 레벨을 만듭니다. 템플릿에 포함되는 액터는 버전에 따라 다르므로, Directional Light·Sky Light·후처리 볼륨의 존재와 모빌리티를 먼저 확인합니다.
오브젝트 배치: 몇 개의 큐브나 스피어, 그리고 색상이 다른 머티리얼을 적용한 스태틱 메시들을 배치하여 빛 반사를 관찰하기 좋게 만듭니다. (예: 빨간색 큐브 옆에 흰색 바닥)
- 툴바의 빌드(Build) > 라이트만 빌드(Build Lighting Only)를 실행합니다.
- 빌드 후, 빨간색 큐브 옆의 흰색 바닥에 붉은색 빛이 은은하게 비치는 것을 관찰합니다. 이것이 라이트매스에 의한 간접광(GI)입니다.
창(Window) > 월드 세팅(World Settings)을 엽니다.Lightmass섹션에서Num Indirect Lighting Bounces를1로 줄여보고 다시 빌드하여 간접광의 변화를 관찰합니다. (반사 횟수에 따른 변화는 재질과 장면에 따라 다릅니다.)Indirect Lighting Quality를 높여보고 다시 빌드하여 간접광의 부드러움과 품질 변화를 관찰합니다. (빌드 시간이 길어질 수 있습니다.)
- 툴바의 추가(Add) > 조명(Lights) > 스피어 리플렉션 캡처(Sphere Reflection Capture)를 선택하여 레벨 중앙에 배치합니다.
- 반사 캡처를 갱신하고 영향 반경을 조절하며 주변 오브젝트의 반사를 관찰합니다.
- 특히 금속성 재질이나 유리 재질에 반사가 어떻게 나타나는지 확인합니다.
- 레벨에 있는
Post Process Volume을 선택합니다. - 디테일 패널에서
Rendering Features > Reflections섹션으로 이동합니다. Screen Space Reflection옵션을 활성화하고Intensity를 높여 반사의 강도를 조절합니다.- Lumen과 비교할 때는 지원 조건을 확인한 별도 설정에서 GI·반사의 Method를 Lumen으로 바꾸고 동적 광원으로 관찰합니다. 이때 앞서 베이크한 정적 조명이 그대로 함께 기여한다고 해석하지 않습니다.
반사에서 빠진 물체가 화면 밖에 있는지, 캡처 후에 움직였는지, 현재 추적 방식이 지원하는 지오메트리인지 구분하면 품질 설정을 무작정 올리지 않아도 됩니다.
글로벌 일루미네이션과 반사 설정은 레벨의 시각적 완성도를 결정하는 매우 중요한 단계입니다.
프로젝트의 목표 플랫폼과 성능 요구사항을 고려하여 적절한 GI 및 반사 솔루션을 선택하고, 각 옵션들을 신중하게 조절하는 연습을 충분히 해보세요.