그림자 옵션과 성능 최적화
광원을 배치했다면, 이제 조명의 완성도를 좌우하는 그림자 설정을 다룰 차례입니다.
그림자(Shadows)는 공간 깊이와 현실감을 만드는 핵심 요소지만, 동시에 렌더링 비용이 큰 항목이기도 합니다. 품질만 높이면 성능이 무너지고, 성능만 보면 화면 설득력이 떨어지는 경우가 많습니다.
이번 절에서는 언리얼 그림자 옵션을 상황별로 선택하는 기준을 정리합니다.
그림자의 기본 원리 및 중요성
그림자는 빛이 오브젝트에 의해 가려질 때 발생하는 현상으로, 3D 공간의 인지에 매우 중요한 역할을 합니다.
- 깊이감 표현: 그림자는 오브젝트의 위치와 주변 환경과의 관계를 명확히 보여주어 씬의 깊이감을 향상시킵니다.
- 형태 강조: 오브젝트의 복잡한 형태를 그림자를 통해 더욱 명확하게 드러냅니다.
- 현실감 증가: 실제 세계와 마찬가지로 빛과 그림자가 존재함으로써 씬의 사실감을 극대화합니다.
- 단서 제공: 그림자는 플레이어에게 중요한 오브젝트의 존재나 다가오는 위협에 대한 시각적 단서를 제공할 수 있습니다.
언리얼 엔진은 다양한 방식으로 그림자를 생성하고 렌더링하며, 각 방식은 성능과 품질에 서로 다른 영향을 미칩니다.
그림자 옵션의 이해
그림자의 렌더링 방식은 광원 액터의 Mobility (모빌리티) 설정에 따라 크게 달라집니다.
Static Light의 그림자
- 특징: 빛과 그림자 정보가 에디터에서 미리 계산되어(베이크되어) 텍스처(라이트맵)에 저장됩니다. 런타임에는 이 저장된 정보를 사용하여 그림자를 표현하므로, 런타임 성능 부하가 거의 없습니다.
-
장점
- 가장 성능 효율적입니다.
- 복잡한 간접광과 부드러운 그림자를 미리 계산하여 사실적인 결과를 얻기 쉽습니다.
-
단점
- 빛이 움직이거나 빛에 의해 영향을 받는 오브젝트가 움직이면 그림자가 어색해집니다.
- 빌드 시간(Light Build)이 필요합니다. (이전 절 참고)
-
주요 설정
- Lightmass Settings (라이트매스 설정): Static 라이트에 대한 빌드 품질을 조절합니다. (디테일 패널 하단)
Indirect Lighting Intensity: 간접광의 강도.Indirect Lighting Saturation: 간접광의 채도.Indirect Lighting Bounces: 빛이 몇 번 반사될지. (값이 높을수록 사실적이지만 빌드 시간 증가)
- Lightmass Settings (라이트매스 설정): Static 라이트에 대한 빌드 품질을 조절합니다. (디테일 패널 하단)
- 활용: 움직이지 않는 건축물 내부의 고정된 조명, 배경 오브젝트 등에 사용됩니다.
Stationary Light의 그림자
- 특징: 간접광은 Static과 마찬가지로 미리 계산되지만, 그림자는 실시간으로 다이내믹하게 계산됩니다.하나의 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 Bias,Shadow Filter Sharpen: 그림자의 품질과 부드러움을 조절합니다.
- Movable 라이트는
- 활용: 플레이어의 손전등, 차량 헤드라이트, 폭발 효과, 동적인 낮/밤 시스템의 태양/달 등 실시간 움직임이 필수적인 상황에 사용됩니다.
그림자 성능 최적화 전략
그림자는 성능 병목 현상의 주요 원인 중 하나이므로, 전략적인 최적화가 필수적입니다.
Cast Shadows 설정 제어
-
불필요한 그림자 비활성화
- 너무 작아서 그림자가 거의 보이지 않거나, 중요한 시각적 정보를 제공하지 않는 오브젝트들은 그림자를 드리우지 않도록 설정합니다.
-
액터 선택 > 디테일 패널 > 렌더링(Rendering) 섹션 >
Cast Shadows옵션 비활성화 - 이는 드로우 콜(Draw Call)을 줄이고 그림자 렌더링 부담을 감소시킵니다.
- Shadow Casting Disabled Cast Shadow As If Movable: 특정 Static Mesh 액터가 Static Light로부터 그림자를 받지만, Movable Light처럼 다른 Static 액터에 실시간 그림자를 드리우게 할 때 사용합니다. (매우 특수한 경우)
라이트의 감쇠 반경 조절
Point Light나Spot Light의Attenuation Radius를 필요한 만큼만 작게 설정하세요. 빛의 영향 범위가 클수록 더 많은 오브젝트가 그림자 계산에 포함되어 성능 부하가 커집니다.- 시각적으로 의미 있는 범위 내에서 반경을 제한하여 불필요한 계산을 줄입니다.
캐스케이드 그림자 맵(CSM) 설정 최적화
Stationary 또는 Movable Directional Light에만 해당됩니다.
-
Dynamic Shadow Distance Movable Light/Stationary Light조절- 동적 그림자가 렌더링될 최대 거리를 조절합니다. 이 거리가 멀수록 성능 부하가 커집니다.
- 플레이어가 멀리서도 그림자를 봐야 할 필요가 없다면 이 값을 적절히 줄여 성능을 확보하세요.
-
Num Cascades(캐스케이드 수) 조절- 캐스케이드 수가 많을수록 그림자 품질은 향상되지만, 성능 비용이 증가합니다.
- 일반적으로 3~4개의 캐스케이드가 적절한 품질을 제공합니다. 모바일에서는 2개 이하로 줄이기도 합니다.
-
Distribution Exponent(분포 지수) 조절- 이 값이 낮을수록 카메라 가까운 곳의 그림자 해상도가 높아지고, 멀리 갈수록 빠르게 낮아집니다.
- 이 값이 높을수록 전체적으로 그림자 해상도가 고르게 분포됩니다.
- 이 값을 조절하여 가까운 그림자의 품질을 유지하면서 먼 그림자의 성능을 최적화할 수 있습니다.
그림자 해상도 조절
- 각 광원 액터의 디테일 패널에서
Shadow Resolution또는Shadow Map Resolution과 같은 옵션을 조절하여 그림자 맵의 해상도를 변경할 수 있습니다. - 주요 광원은 높은 해상도를, 보조 광원이나 작고 중요하지 않은 광원은 낮은 해상도를 사용합니다.
그림자 캐스팅 방법
Lightmass빌드 시 그림자 품질 관련 설정이나, 광원의Ray Traced Shadows(레이 트레이싱 그림자) 옵션 등은 매우 높은 성능을 요구하므로, 프로젝트의 목표 사양에 따라 신중하게 활성화해야 합니다.
라이트 빌드의 중요성
Static 및 Stationary 조명에 대한 그림자 및 간접광 정보를 레벨에 적용하기 위해서는 반드시 라이트 빌드(Light Build)과정을 거쳐야 합니다.
툴바의 빌드(Build) 드롭다운 메뉴 클릭.
라이트만 빌드(Build Lighting Only) 선택. (단축키: Ctrl + Shift + ,)
빌드 품질 설정: 빌드(Build) 메뉴 바로 아래에 있는 라이트 품질(Light Quality) 드롭다운에서 빌드 품질을 프리뷰, 중간, 높음, 생산 등으로 조절할 수 있습니다. 품질이 높을수록 빌드 시간이 길어집니다.
미리보기: 빌드 후 그림자가 레벨에 올바르게 적용되었는지 확인합니다.
팁: 라이트 빌드는 CPU 자원을 많이 사용하며 시간이 오래 걸릴 수 있습니다. 작은 변경에는 프리뷰 품질로 빠르게 확인하고, 최종 빌드 시에만 생산 품질을 사용하는 것이 효율적입니다.
그림자 옵션과 성능 최적화는 레벨의 시각적 품질과 게임의 프레임 속도를 동시에 관리하는 복잡하지만 중요한 과정입니다. 이 절에서 배운 내용들을 바탕으로 다양한 광원의 그림자 설정을 조절하고, 라이트 빌드를 실행하면서 시각적 변화와 성능 영향을 직접 체험해 보세요. 최적화는 지속적인 테스트와 조정이 필요한 작업이며, 여러분의 숙련도를 높이는 데 큰 도움이 될 것입니다.