실시간 조명 및 사전 계산 조명
베이크 조명과 실시간 조명의 유연성·품질·런타임 비용을 비교하고 프로젝트 변화량에 맞는 하이브리드 전략을 선택합니다.
조명 디버깅까지 익혔다면, 이제 조명 처리 방식 자체를 선택해야 합니다.
이번 절에서는 실시간 조명(Real-time Lighting)과 사전 계산 조명(Precomputed Lighting)을 비교합니다.
두 방식은 품질, 유연성, 성능 비용에서 성격이 다르기 때문에 프로젝트 목표에 맞춰 조합해야 합니다.
즉, 이 절의 핵심은 기능 설명이 아니라 언제 어떤 방식을 선택할지 판단 기준입니다.
사전 계산 조명 / 베이크된 조명
사전 계산 조명(Precomputed Lighting)은 게임이나 콘텐츠가 실행되기 전에 에디터에서 조명 정보를 미리 계산하여 오브젝트에 저장하는 방식입니다.
언리얼 엔진에서는 주로 라이트매스(Lightmass) 시스템을 통해 구현됩니다.
사전 계산 조명 동작 원리
- 라이트 빌드: 에디터에서
Build Lighting과정을 통해 조명(특히Static및Stationary조명)의 직접광 및 간접광 정보를 계산합니다. - 라이트맵(Lightmap): 계산된 조명 정보는 주로
Lightmap이라는 텍스처에 저장됩니다. 각 스태틱 메시(Static Mesh)는 자신만의 라이트맵 UV 채널을 사용하여 이 텍스처를 참조합니다. - 이동 물체의 간접광: 베이크 경로에서는 Volumetric Lightmap 같은 공간의 사전 계산 조명 데이터를 샘플링할 수 있습니다. 저해상도 메시를 자동으로 버텍스 베이크로 전환하는 기능으로 이해하지 않습니다.
사전 계산 조명 장점
뛰어난 성능 효율성: 사전 계산한 부분의 실시간 계산을 줄일 수 있습니다. 라이트맵 메모리·샘플링과 함께 사용하는 동적 조명 비용은 남습니다.
이는 특히 모바일이나 저사양 플랫폼에서 중요합니다.
고품질 간접광(Global Illumination): 라이트매스를 통해 복잡한 다중 반사 간접광(GI)을 매우 사실적이고 부드럽게 표현할 수 있습니다.
장면이 고정되어 있을 때 빌드 시간을 써서 런타임 간접광 계산을 줄이는 선택입니다.
부드러운 그림자: 충분한 라이트맵 해상도·UV 패딩·빌드 품질을 확보하면 부드러운 그림자를 얻을 수 있습니다. 베이크만으로 계단 현상이 없어지는 것은 아닙니다.
사전 계산 조명 단점
정적인 환경에만 적합: 빛의 위치, 색상, 강도나, 빛에 영향을 받는 오브젝트의 위치가 런타임에 변하면 베이크된 조명과 그림자가 업데이트되지 않아 어색해집니다.
긴 빌드 시간: 레벨의 크기와 복잡도, GI 품질 설정에 따라 라이트 빌드 시간이 매우 오래 걸릴 수 있습니다.
메모리 사용: 라이트맵 텍스처가 저장되어야 하므로 추가적인 메모리를 사용합니다.
라이트맵 UV 필요: 라이트맵에 베이크할 메시에는 겹치지 않는(Non-overlapping) 라이트맵 UV 채널이 필요합니다. 완전 동적 경로의 모든 Static Mesh 에셋에 요구되는 조건은 아닙니다. (3장 4절 3D 모델 최적화 참고)
사전 계산 조명에 쓰는 액터
- Static (정적) 조명: 모든 빛과 그림자가 완전히 베이크됩니다.
- Stationary (정지) 조명: 간접광은 베이크하고 직접광은 동적으로 계산합니다. 그림자는 기존 Shadow Maps 경로에서 정적·동적 방식을 조합하며, VSM에서는 직접 그림자도 동적으로 평가합니다.
실시간 조명 / 다이내믹 조명
실시간 조명(Real-time Lighting)은 게임이나 콘텐츠가 실행되는 동안 매 프레임마다 조명 정보를 계산하여 렌더링하는 방식입니다.
실시간 조명 동작 원리
- 쉐이더 계산: 오브젝트의 재질 쉐이더가 각 프레임마다 광원의 위치, 특성, 그리고 카메라 시점에 따라 빛과 그림자를 실시간으로 계산합니다.
- 그림자 맵 / 쉐도우 캐스케이드: 실시간 그림자는 주로 그림자 맵(Shadow Map)이나 캐스케이드 그림자 맵(Cascaded Shadow Maps, CSM)과 같은 기술을 사용하여 구현됩니다.
실시간 조명 장점
동적인 환경 지원: 빛의 위치, 색상, 강도가 실시간으로 변하거나, 오브젝트가 움직여도 조명과 그림자가 즉시 업데이트되어 매우 유연한 연출이 가능합니다. (예: 낮/밤 주기, 플레이어 손전등)
빌드 시간 불필요: 조명 빌드 과정이 없어 작업 흐름이 빠릅니다.
실시간 조명 단점
높은 성능 요구: 매 프레임마다 복잡한 조명 및 그림자 계산을 수행해야 하므로 CPU 및 GPU에 큰 부하를 줍니다.
많은 수의 실시간 조명은 프레임 속도를 크게 떨어뜨릴 수 있습니다.
간접광 표현의 어려움: 직접광은 쉽게 표현되지만, 빛의 다중 반사로 인한 사실적인 간접광(GI)은 구현하기 어렵거나, Lumen과 같은 고성능 실시간 GI 솔루션을 사용해야 합니다 (높은 사양 요구).
그림자 품질: 미리 계산된 그림자보다 품질이 떨어질 수 있습니다 (계단 현상, 필터링 문제 등).
이를 완화하기 위한 기술(CSM 등)도 성능 비용이 따릅니다.
실시간 조명에 쓰는 액터
- Movable (이동 가능) 조명: 모든 빛과 그림자가 완전히 실시간으로 계산됩니다.
하이브리드 조명 시스템 및 최적화 전략
실시간 조명과 사전 계산 조명은 장면 변화 여부와 목표 성능에 따라 선택이 달라집니다.
베이크 경로에서는 사전 계산 조명과 동적 직접광을 조합할 수 있습니다. Lumen GI를 사용하는 완전 동적 경로는 정적 라이트맵 기여를 사용하지 않으므로, 먼저 프로젝트의 GI 경로를 결정합니다.
각 조명 모빌리티의 역할 분담
-
Static (정적)
- 역할: 레벨의 기본 주변광과 정적인 오브젝트에 대한 간접광을 제공합니다.
- 활용: 건축물의 벽, 바닥, 천장 등 움직이지 않는 구조물, 고정된 환경 소품.
- 최적화: 베이크 경로에서 고정된 조명을 맡기되 라이트맵 메모리와 빌드 시간을 함께 관리합니다.
-
Stationary (정지)
- 역할: 레벨의 주요 광원(태양 등)으로, 베이크된 간접광과 실시간 다이내믹 그림자를 제공합니다.
- 활용: Directional Light, 레벨의 주요 포인트/스포트 라이트.
- 최적화: 기존 Shadow Maps에서는 동일 지오메트리에 겹치는 Stationary의 정적 그림자 채널이 최대 4개 이하입니다. 전체 레벨의 광원 개수와 구분하고 Overlap 보기로 확인합니다.
-
Movable (이동 가능)
- 역할: 플레이어의 손전등, 총구 화염, 폭발, 움직이는 차량 헤드라이트 등 런타임에 이동·회전해야 하는 광원에 사용합니다. 강도만 바꾼다면 Stationary도 가능하며, 완전 동적 프로젝트에서 Movable을 효과 전용으로 제한할 이유는 없습니다.
- 최적화: 최소한의 Movable 조명만 사용하고,
Attenuation Radius를 최대한 줄여 영향 범위를 제한합니다.
주요 최적화 팁 (재강조)
모빌리티 설정의 현명한 선택: GI 경로를 정한 뒤 위치·회전·색·강도 중 무엇이 바뀌는지에 맞춰 모빌리티를 선택하세요.
라이트 빌드: 베이크에 영향을 주는 Static 또는 Stationary 조명 설정을 변경했다면 Build Lighting을 수행하여 최신 조명 정보를 레벨에 적용하고, 빌드 품질을 적절히 조절합니다.
라이트맵 UV 최적화: 베이크할 메시가 적절한 라이트맵 UV 채널을 가지고 있는지, 겹치는 부분이 없는지 확인합니다. (3장 4절 3D 모델 최적화, 5장 4절 라이트맵 밀도 시각화 참고)
그림자 품질 vs 성능: 기존 CSM을 사용한다면 Directional Light의 Dynamic Shadow Distance와 Num Cascades를 조절하여 그림자 품질과 성능 사이의 균형을 찾습니다.
불필요한 오브젝트의 Cast Shadows를 비활성화합니다.
Attenuation Radius 제한: Point Light 및 Spot Light의 Attenuation Radius를 필요한 만큼만 설정하여 오버랩되는 동적 조명의 수를 줄입니다.
Lumen (UE5): 언리얼 엔진 5를 사용하고 실시간 GI가 필수적이라면 Lumen을 고려하지만, 이는 높은 성능 요구사항이 따르므로 목표 플랫폼을 고려하여 결정해야 합니다.
| 선택할 경로 | 먼저 확인할 비용과 제약 |
|---|---|
| 베이크와 동적 직접광 조합 | 라이트맵 UV·메모리, 재빌드 시간, 런타임에 바뀌지 않는 간접광 |
| Lumen GI 중심 | 목표 플랫폼 지원, 장면 추적·갱신 비용, 큰 변화가 캐시에 반영되는 시간 |
이 표는 성능 순위가 아닙니다. 같은 장면과 목표 기기에서 필요한 변화가 유지되는지 비교합니다.
실시간 조명과 사전 계산 조명은 언리얼 엔진 조명 시스템의 양대 산맥입니다.
이 두 가지 방식의 차이점을 명확히 이해하고, 여러분의 프로젝트 특성과 목표에 맞춰 어떤 조명 모빌리티를 선택하고 어떻게 조합할지 결정하는 것이 중요합니다.
효율적인 조명 설정은 시각적 품질을 극대화하면서도 게임의 안정적인 프레임 속도를 유지하는 데 결정적인 역할을 합니다.