그림자 옵션과 성능 최적화
정적·동적 그림자 옵션과 해상도·거리·캐스케이드 비용을 비교해 공간감과 목표 프레임 사이의 균형을 맞춥니다.
광원을 배치했다면, 이제 조명의 완성도를 좌우하는 그림자 설정을 다룰 차례입니다.
그림자(Shadows)는 공간 깊이와 현실감을 만드는 핵심 요소지만, 동시에 렌더링 비용이 큰 항목이기도 합니다.
품질만 높이면 성능이 무너지고, 성능만 보면 화면 설득력이 떨어지는 경우가 많습니다.
이번 절에서는 언리얼 그림자 옵션을 상황별로 선택하는 기준을 정리합니다.
그림자의 기본 원리 및 중요성
그림자는 빛이 오브젝트에 의해 가려질 때 발생하는 현상으로, 3D 공간의 인지에 매우 중요한 역할을 합니다.
- 깊이감 표현: 그림자는 오브젝트의 위치와 주변 환경과의 관계를 명확히 보여주어 씬의 깊이감을 향상시킵니다.
- 형태 강조: 오브젝트의 복잡한 형태를 그림자를 통해 더욱 명확하게 드러냅니다.
- 현실감 증가: 실제 세계와 마찬가지로 빛과 그림자가 존재함으로써 씬의 사실감을 극대화합니다.
- 단서 제공: 그림자는 플레이어에게 중요한 오브젝트의 존재나 다가오는 위협에 대한 시각적 단서를 제공할 수 있습니다.
언리얼 엔진은 다양한 방식으로 그림자를 생성하고 렌더링하며, 각 방식은 성능과 품질에 서로 다른 영향을 미칩니다.
그림자 옵션의 이해
그림자 품질은 장면의 깊이를 만들지만 성능 비용도 큽니다.
그림자 방식은 광원의 Mobility와 프로젝트의 Shadow Map Method를 함께 봐야 합니다. 아래 베이크 설명은 정적 조명을 허용하는 경로를 전제로 하며, Lumen GI에서는 정적 라이트맵 기여가 비활성화됩니다. Virtual Shadow Maps(VSM)를 사용하면 기존 CSM과 Stationary의 여러 그림자 방식이 VSM으로 대체됩니다.
Static Light의 그림자
- 특징: 빛과 그림자 정보가 에디터에서 미리 계산되어(베이크되어) 텍스처(라이트맵)에 저장됩니다. 런타임에는 이 저장된 정보를 사용하여 그림자를 표현하므로, 실시간 광원·그림자 계산을 줄일 수 있습니다. 라이트맵 저장과 샘플링 비용은 남습니다.
-
장점
- 고정된 조명의 런타임 계산을 줄일 수 있습니다.
- 복잡한 간접광과 부드러운 그림자를 미리 계산하여 사실적인 결과를 얻기 쉽습니다.
-
단점
- 베이크된 조명은 런타임 변화에 맞춰 다시 계산되지 않습니다.
- 빌드 시간(Light Build)이 필요합니다. (이전 절 참고)
-
주요 설정
- Lightmass Settings (라이트매스 설정): Static 라이트에 대한 빌드 품질을 조절합니다. (디테일 패널 하단)
Indirect Lighting Intensity: 간접광의 강도.Indirect Lighting Saturation: 간접광의 채도.- 반사 횟수는 광원별 속성이 아니라 World Settings > Lightmass > Num Indirect Lighting Bounces에서 조절합니다.
- Lightmass Settings (라이트매스 설정): Static 라이트에 대한 빌드 품질을 조절합니다. (디테일 패널 하단)
- 활용: 움직이지 않는 건축물 내부의 고정된 조명, 배경 오브젝트 등에 사용됩니다.
Stationary Light의 그림자
- 특징: 간접광을 베이크하고 직접광은 동적으로 계산합니다. 기존 Shadow Maps 경로에서는 정적 물체의 사전 계산 그림자와 이동 물체의 동적 그림자를 조합합니다. 한 지오메트리에 겹치는 Stationary 광원은 정적 그림자 채널 할당상 최대 4개 이하로 제한될 수 있습니다. 이는 광원 하나가 그림자를 네 개만 만든다는 뜻이 아닙니다.
-
장점
- 베이크된 간접광의 이점(성능 효율성)과 실시간 그림자의 유연성을 모두 가집니다.
- 주요 광원(태양)이 그림자를 드리우는 오브젝트들이 움직여도 그림자가 자연스럽게 업데이트됩니다.
-
단점
- Static보다는 성능 비용이 높습니다.
- 여전히 빌드 시간(Light Build)이 필요합니다.
- 동시에 영향을 주는 Stationary 라이트의 수에 제한이 있습니다.
-
주요 설정 (Directional Light의 경우)
Cascaded Shadow Maps (CSM): 거리에 따른 그림자 해상도를 조절하는 캐스케이드 그림자 맵 설정입니다.Dynamic Shadow Distance Movable Light / Stationary Light: 동적 그림자가 렌더링될 최대 거리를 조절합니다. 이 거리가 멀수록 성능 부하가 커집니다.Num Cascades: 그림자 맵을 몇 개의 단계로 나눌지 설정합니다. (단계가 많을수록 멀리서도 그림자 품질이 좋지만 성능 부하 증가)Distribution Exponent: 캐스케이드 간의 거리 분포를 조절합니다.
- 활용: 야외 환경의 태양(Directional Light), 주요 실내 공간의 천장 조명 등 레벨의 주요 광원에 사용됩니다.
Movable Light의 그림자
- 특징: 모든 빛과 그림자가 실시간으로 계산됩니다. 빌드 과정이 필요 없습니다.
-
장점
- 가장 유연하고 동적인 조명 및 그림자 연출이 가능합니다.
- 움직이는 물체와 광원에 대응하지만, 선택한 그림자 방식의 해상도·캐시·필터링 한계는 남습니다.
-
단점
- 그림자를 만드는 Movable 조명이 넓게 겹치면 비용이 커질 수 있습니다. 모빌리티 이름만으로 실제 프레임 비용을 순위 매길 수는 없습니다.
- 정교한 간접광 표현이 어렵거나, 추가적인 비용이 발생합니다.
-
주요 설정
- Movable 라이트는
Lightmass설정이 없습니다. - 기존 Shadow Maps 경로의
Shadow Bias,Shadow Filter Sharpen같은 옵션과 VSM 전용 설정을 구분합니다.
- Movable 라이트는
- 활용: 플레이어의 손전등, 차량 헤드라이트, 폭발 효과, 동적인 낮/밤 시스템의 태양/달 등 실시간 움직임이 필수적인 상황에 사용됩니다.
그림자 성능 최적화 전략
그림자는 성능 병목 현상의 주요 원인 중 하나이므로, 전략적인 최적화가 필수적입니다.
Cast Shadows 설정 제어
-
불필요한 그림자 비활성화
- 너무 작아서 그림자가 거의 보이지 않거나, 중요한 시각적 정보를 제공하지 않는 오브젝트들은 그림자를 드리우지 않도록 설정합니다.
-
액터 선택 > 디테일 패널 > 렌더링(Rendering) 섹션 >
Cast Shadows옵션 비활성화 - 이는 드로우 콜(Draw Call)을 줄이고 그림자 렌더링 부담을 감소시킵니다.
Cast Shadows는 메시 컴포넌트와 광원 양쪽에 있습니다. 어느 쪽을 끄는지에 따라 없어지는 그림자 범위가 다르므로 한 항목씩 비교합니다.
라이트의 감쇠 반경 조절
Point Light나Spot Light의Attenuation Radius를 필요한 만큼만 작게 설정하세요. 빛의 영향 범위가 클수록 더 많은 오브젝트가 그림자 계산에 포함되어 성능 부하가 커집니다.- 시각적으로 의미 있는 범위 내에서 반경을 제한하여 불필요한 계산을 줄입니다.
캐스케이드 그림자 맵(CSM) 설정 최적화
다음 설정은 기존 Shadow Maps 경로의 Stationary/Movable Directional Light에 적용합니다. VSM을 사용하는 프로젝트의 품질 문제를 CSM 옵션으로 해결하려고 해서는 안 됩니다.
-
Dynamic Shadow Distance Movable Light/Stationary Light조절- 동적 그림자가 렌더링될 최대 거리를 조절합니다. 이 거리가 멀수록 성능 부하가 커집니다.
- 플레이어가 멀리서도 그림자를 봐야 할 필요가 없다면 이 값을 적절히 줄여 성능을 확보하세요.
-
Num Cascades(캐스케이드 수) 조절- 캐스케이드 수가 많을수록 그림자 품질은 향상되지만, 성능 비용이 증가합니다.
- 지원 개수와 예산은 플랫폼·렌더링 경로에 따라 다릅니다. 가까운 그림자와 먼 그림자의 전환을 함께 비교합니다.
-
Distribution Exponent(분포 지수) 조절1은 캐스케이드를 해상도에 비례하는 거리로 배분합니다.1보다 크게 하면 전환 지점이 카메라 쪽으로 당겨져 가까운 영역에 더 집중됩니다.- 이 값을 조절하여 가까운 그림자의 품질을 유지하면서 먼 그림자의 성능을 최적화할 수 있습니다.
그림자 해상도 조절
- 기존 Shadow Maps에서는 지원되는 광원의
Shadow Resolution Scale등 해당 방식의 옵션을 확인합니다. VSM의 해상도·페이지 비용은 VSM 전용 시각화와 설정으로 확인합니다. - 주요 광원은 높은 해상도를, 보조 광원이나 작고 중요하지 않은 광원은 낮은 해상도를 사용합니다.
그림자 캐스팅 방법
- Lightmass 품질은 주로 베이크 시간·저장 결과에, 하드웨어 레이 트레이싱 그림자는 런타임 GPU 비용에 영향을 줍니다. 서로 다른 비용을 한 성능 옵션으로 취급하지 않습니다.
라이트 빌드의 중요성
사전 계산 조명을 사용하는 레벨에서는 변경된 베이크 정보를 적용하려면 라이트 빌드가 필요합니다. Lumen GI의 동적 결과를 만들기 위한 단계는 아닙니다.
툴바의 빌드(Build) 드롭다운 메뉴 클릭.
라이트만 빌드(Build Lighting Only) 선택.
빌드 품질 설정: 빌드(Build) 메뉴 바로 아래에 있는 라이트 품질(Light Quality) 드롭다운에서 빌드 품질을 프리뷰, 중간, 높음, 생산 등으로 조절할 수 있습니다.
품질이 높을수록 빌드 시간이 길어집니다.
미리보기: 빌드 후 그림자가 레벨에 올바르게 적용되었는지 확인합니다.
팁: CPU Lightmass와 GPU Lightmass는 사용하는 자원과 지원 설정이 다릅니다. 프로젝트에서 선택한 빌더를 확인하세요.
작은 변경에는 프리뷰 품질로 빠르게 확인하고, 최종 빌드 시에만 생산 품질을 사용하는 것이 효율적입니다.
품질을 낮추기 전, 접지감·이동 판단에 필요한 그림자를 정합니다. 이후 불필요한 캐스터, 광원 반경, 사용 중인 그림자 방식의 거리·해상도 순서로 하나씩 바꾸고 같은 카메라 경로에서 비교합니다.
그림자 옵션과 성능 최적화는 레벨의 시각적 품질과 게임의 프레임 속도를 동시에 관리하는 복잡하지만 중요한 과정입니다.
이 절에서 배운 내용들을 바탕으로 다양한 광원의 그림자 설정을 조절하고, 라이트 빌드를 실행하면서 시각적 변화와 성능 영향을 직접 체험해 보세요.
최적화는 지속적인 테스트와 조정이 필요한 작업이며, 성능 측정을 반복하며 프로젝트에 맞는 그림자 기준을 정하세요.