icon
5장 : 조명과 그림자 설정

글로벌 일루미네이션과 반사 설정


이전 절들에서 기본적인 광원 설정과 그림자 옵션 및 최적화에 대해 다루었습니다. 이제 레벨의 시각적 사실감을 한 단계 더 끌어올리는 두 가지 핵심 요소, 바로 글로벌 일루미네이션(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) - 주변광 GI

  • 특징: 하늘 전체에서 들어오는 주변광(Ambient Light)을 시뮬레이션하여 간접광을 표현합니다. 씬의 스카이 박스나 큐브맵을 캡처하여 주변광을 생성합니다.
  • 장점
    • 간편하게 전반적인 주변광을 추가하여 그림자 영역의 어두움을 완화하고 사실감을 높입니다.
    • Real Time Capture를 활성화하면 동적인 환경에서도 주변광을 업데이트할 수 있습니다.
  • 단점
    • 오브젝트 간의 직접적인 빛 반사(예: 붉은 벽이 흰 바닥을 붉게 비추는 효과)는 표현하기 어렵습니다.
  • 주요 설정 (Sky Light 액터 디테일 패널)
    • Intensity Scale: 스카이 라이트의 밝기.
    • Source Type: SLS Captured Scene (씬 캡처) 또는 SLS Specified Cubemap (큐브맵 지정).
    • Real Time Capture: 동적인 낮/밤 시스템에서 스카이 라이트가 씬의 변화에 따라 실시간으로 업데이트되도록 합니다. (성능 부하 증가)
  • 활용: 모든 야외 환경에서 필수적으로 사용되며, 실내에서도 창문을 통해 들어오는 주변광을 표현하는 데 사용됩니다.

루멘 (Lumen) - 실시간 GI

  • 특징: 언리얼 엔진 5부터 도입된 완전히 동적인 실시간 GI 및 리플렉션 시스템입니다. 모든 광원(Static, Stationary, Movable)과 오브젝트의 움직임에 따라 GI와 반사가 실시간으로 업데이트됩니다.
  • 장점
    • 최고의 사실감: 빛과 오브젝트가 움직여도 간접광과 반사가 완벽하게 실시간으로 업데이트되어 극강의 현실감을 제공합니다.
    • 빌드 불필요: 라이트 빌드 과정이 필요 없어 작업 효율성이 높습니다.
  • 단점
    • 높은 성능 요구: 최신 그래픽 카드와 높은 사양의 시스템을 요구합니다.
    • 설정 복잡도: 초기 설정 및 최적화에 대한 이해가 필요합니다.
  • 활성화 (Project Settings)
    • 편집(Edit) > 프로젝트 세팅(Project Settings)으로 이동합니다.
    • 엔진(Engine) > 렌더링(Rendering) 섹션에서 Global IlluminationReflections의 기본 방법을 'Lumen' 으로 설정합니다.
  • 활용: 고품질의 실시간 렌더링이 필요한 차세대 게임, 건축 시각화, 영화 제작 등에 주로 사용됩니다.

반사 (Reflections) 설정

반사는 표면의 재질 특성(금속, 유리, 물 등)에 따라 주변 환경을 비추는 현상입니다. 언리얼 엔진은 여러 가지 반사 솔루션을 제공합니다.

스크린 스페이스 반사

스크린 스페이스 반사(Screen Space Reflections, SSR)는 현재 카메라에 보이는 화면의 픽셀 정보를 사용하여 반사를 계산하는 방식입니다. 이는 실시간으로 반사를 업데이트할 수 있는 효율적인 방법입니다.

  • 특징: 카메라 화면에 보이는 정보만을 사용하여 반사를 계산합니다.
  • 장점
    • 비교적 성능 효율적입니다.
    • 실시간으로 반사를 업데이트합니다.
  • 단점
    • 카메라에 보이지 않는 오브젝트는 반사되지 않습니다. (화면 밖의 오브젝트는 반사되지 않음)
    • 반사 품질이 완벽하지 않을 수 있습니다.
  • 설정 (Post Process Volume)
    • Post Process Volume 액터를 선택하고 디테일 패널에서 Rendering Features > Reflections 섹션을 확인합니다.
    • Screen Space Reflection 옵션을 활성화하고 Intensity, Quality 등을 조절합니다.
  • 활용: 대부분의 프로젝트에서 기본 반사 솔루션으로 사용됩니다.

스피어/박스 리플렉션 캡처

스피어/박스 리플렉션 캡처(Sphere/Box Reflection Capture)는 특정 지점이나 영역에서 주변 환경을 캡처하여 반사 정보를 제공합니다. 이는 정적인 반사 효과를 구현하는 데 유용합니다.

  • 특징: 특정 지점(스피어) 또는 영역(박스)에서 주변 환경을 캡처하여 큐브맵으로 저장하고, 이를 주변 오브젝트의 반사에 사용합니다.
  • 장점
    • SSR의 단점(화면 밖 오브젝트 반사 불가)을 보완합니다.
    • 베이크된 반사이므로 런타임 성능 부하가 낮습니다.
  • 단점
    • 캡처된 시점의 정적인 반사만을 제공합니다. 오브젝트가 움직이거나 빛이 변하면 반사가 업데이트되지 않아 어색해질 수 있습니다.
    • 캡처 액터를 적절한 위치에 배치해야 합니다.
  • 배치
    • 툴바의 '추가(Add) > 조명(Lights) > 스피어 리플렉션 캡처(Sphere Reflection Capture)' 또는 '박스 리플렉션 캡처(Box Reflection Capture)' 를 선택하여 레벨에 배치합니다.
    • 배치 후 액터를 선택하고 디테일 패널에서 Capture Distance (스피어) 또는 Box Extent (박스)를 조절하여 캡처 영역을 설정합니다.
  • 활용: 실내 공간의 각 방, 복도 등 특정 영역의 반사를 개선하는 데 사용됩니다.

레이 트레이싱 반사

레이 트레이싱 반사(Ray Traced Reflections)는 언리얼 엔진 4.22부터 지원되는 고급 반사 기술로, 실제 빛의 경로를 추적하여 반사를 계산합니다. 이는 매우 사실적이고 정확한 반사를 제공합니다.

  • 특징: 실제 빛의 경로를 추적하여 반사를 계산하는 방식으로, 매우 정확하고 사실적인 반사를 제공합니다.
  • 장점
    • SSR의 한계를 뛰어넘는 물리적으로 정확한 반사.
    • 화면 밖 오브젝트도 정확하게 반사됩니다.
  • 단점
    • 매우 높은 성능 요구: RTX 계열 그래픽 카드 등 고사양 하드웨어가 필수적입니다.
  • 활성화 (Project Settings & Post Process Volume):
    • 프로젝트 세팅(Project Settings) > 렌더링(Rendering)에서 Ray Tracing을 활성화합니다.
    • Post Process Volume에서 Ray Traced Reflections 옵션을 활성화하고 품질을 조절합니다.
  • 활용: 최고 품질의 시각화가 필요한 하이엔드 프로젝트에 사용됩니다.

글로벌 일루미네이션 및 반사 설정 실습

레벨에 GI 및 반사 효과를 적용하고 그 변화를 관찰해 봅시다.

새로운 레벨 생성: '파일(File) > 새 레벨(New Level) > 기본(Basic)'을 선택하여 기본적인 레벨을 만듭니다. (Directional Light, Sky Light, Sky Sphere, Post Process Volume이 포함되어 있습니다.)

오브젝트 배치: 몇 개의 큐브나 스피어, 그리고 색상이 다른 머티리얼을 적용한 스태틱 메시들을 배치하여 빛 반사를 관찰하기 좋게 만듭니다. (예: 빨간색 큐브 옆에 흰색 바닥)

라이트 빌드 실행

  • 툴바의 '빌드(Build) > 라이트만 빌드(Build Lighting Only)' 를 실행합니다.
  • 빌드 후, 빨간색 큐브 옆의 흰색 바닥에 붉은색 빛이 은은하게 비치는 것을 관찰합니다. 이것이 라이트매스에 의한 간접광(GI)입니다.

World Settings에서 Lightmass 설정 조절

  • 창(Window) > 월드 세팅(World Settings)을 엽니다.
  • Lightmass 섹션에서 Num Indirect Lighting Bounces1로 줄여보고 다시 빌드하여 간접광의 변화를 관찰합니다. (값이 낮을수록 간접광이 약해집니다.)
  • Indirect Lighting Quality를 높여보고 다시 빌드하여 간부광의 부드러움과 품질 변화를 관찰합니다. (빌드 시간이 길어질 수 있습니다.)

스피어 리플렉션 캡처 배치

  • 툴바의 '추가(Add) > 조명(Lights) > 스피어 리플렉션 캡처(Sphere Reflection Capture)' 를 선택하여 레벨 중앙에 배치합니다.
  • 반사 캡처 액터를 이동시키면서 주변 오브젝트의 반사가 어떻게 변하는지 관찰합니다.
  • 특히 금속성 재질이나 유리 재질에 반사가 어떻게 나타나는지 확인합니다.

Post Process Volume 설정 조절

  • 레벨에 있는 Post Process Volume을 선택합니다.
  • 디테일 패널에서 Rendering Features > Reflections 섹션으로 이동합니다.
  • Screen Space Reflection 옵션을 활성화하고 Intensity를 높여 반사의 강도를 조절합니다.
  • (UE5의 경우) Rendering Features > Global Illumination 섹션에서 MethodLumen으로 설정하고, Reflections 섹션에서 MethodLumen으로 설정하여 실시간 GI와 반사의 변화를 관찰해 보세요. (사양에 따라 다를 수 있습니다.)

글로벌 일루미네이션과 반사 설정은 레벨의 시각적 완성도를 결정하는 매우 중요한 단계입니다. 프로젝트의 목표 플랫폼과 성능 요구사항을 고려하여 적절한 GI 및 반사 솔루션을 선택하고, 각 옵션들을 신중하게 조절하는 연습을 충분히 해보세요. 이는 여러분의 레벨을 단순한 3D 공간이 아닌, 빛과 상호작용하는 생동감 있는 세계로 만드는 데 큰 도움이 될 것입니다.