icon안동민 개발노트

실시간 조명 및 사전 계산 조명


 언리얼 엔진에서 실시간 조명과 사전 계산 조명은 각각 고유한 특성과 용도를 가지고 있습니다.

 이 가이드에서는 두 조명 방식의 차이점, 장단점, 그리고 효과적인 활용 방법을 상세히 살펴보겠습니다.

실시간 조명

 특성

  • 동적으로 변화하는 환경에 적합
  • 높은 연산 비용
  • 즉각적인 조명 변화 가능

 설정 방법

  1. 조명 액터 배치 : Place Actors > Lights
  2. Mobility 설정 : Movable 선택
  3. 주요 속성 조정
Intensity: 조명 강도
Light Color: 조명 색상
Attenuation Radius: 영향 범위 (Point/Spot Light)

 장점

  • 동적 환경에서 유연한 조명 변화
  • 실시간 그림자 및 반사 지원

 단점

  • 높은 성능 요구
  • 고품질 전역 조명 구현의 어려움

사전 계산 조명 (라이트매스)

 특성

  • 정적 환경에 적합
  • 낮은 런타임 성능 부하
  • 고품질 전역 조명 가능

 빌드 프로세스

  1. 정적 조명 설정 : Light > Mobility > Static/Stationary
  2. 라이트맵 UV 설정 : Static Mesh > Generate Lightmap UVs
  3. 라이트매스 설정 : World Settings > Lightmass
  4. 빌드 실행 : Build > Build Lighting

 최적화 기법

  • 라이트맵 해상도 조정
  • Lightmass Importance Volume 사용
  • 적절한 Light Map Coordination 설정

 장점

  • 높은 품질의 전역 조명
  • 낮은 런타임 성능 부하

 단점

  • 긴 빌드 시간
  • 동적 환경 변화에 대응 어려움

하이브리드 접근법

 Stationary Lights 활용

  • 부분적 동적 변화 가능
  • 정적 조명의 품질과 동적 조명의 유연성 결합

 혼합 사용 전략

  1. 주요 환경 조명 : Static/Stationary
  2. 동적 요소 : Movable
  3. 예시
주 태양광: Stationary Directional Light
실내 조명: Static Point Lights
캐릭터 조명: Movable Spot Light

동적 시간 변화에 따른 조명 전환

 시간 시스템 구현

float TimeOfDay; // 0-24 범위
 
void UpdateLighting()
{
    DirectionalLight->SetIntensity(CalculateSunIntensity(TimeOfDay));
    SkyLight->SetIntensity(CalculateSkyIntensity(TimeOfDay));
    // 추가 조명 업데이트...
}

 실시간 사전 계산 조명 전환

  • 주간 : 사전 계산 + 보조 실시간 조명
  • 야간 : 주로 실시간 조명 사용

성능 영향

 실시간 조명

  • GPU 부하 증가
  • 동적 그림자로 인한 성능 저하 가능성

 사전 계산 조명

  • 낮은 런타임 부하
  • 메모리 사용량 증가 (라이트맵)

게임 장르/환경별 조명 전략

 실내 환경

  • 주로 사전 계산 조명 사용
  • 동적 요소에 제한적 실시간 조명 적용

 야외 환경

  • 하이브리드 접근 : Stationary 주 광원 + 동적 요소
  • 거리 기반 LOD 시스템 구현

 대규모 오픈 월드

  • 월드 분할 및 스트리밍
  • 거리에 따른 조명 품질 조절
  • 예시
가까운 거리: 고품질 실시간 + 사전 계산
중간 거리: 저품질 실시간 + 사전 계산
먼 거리: 주로 사전 계산 라이트맵

플랫폼별 최적화 고려사항

 모바일

  • 사전 계산 조명 우선 사용
  • 제한적인 실시간 조명 (주요 동적 요소만)
  • 라이트맵 해상도 감소

 콘솔

  • 하이브리드 접근 가능
  • 동적 해상도 조정으로 성능 유지
  • 플랫폼 특화 최적화 기능 활용

고품질 조명 구현 팁

 1. 물리 기반 조명 값 사용

Directional Light Intensity: 3.14 (태양광 기준)
Light Color Temperature: 실제 광원 기반 설정

 2. 보조 조명으로 디테일 강화

  • Fill Lights로 그림자 부분 보완
  • Rim Lights로 윤곽 강조

 3. 후처리 효과 활용

  • Bloom, Lens Flares로 조명 강화
  • Color Grading으로 전체적 분위기 조정

게임 디자인 및 개발 프로세스 영향

 게임 디자인 영향

  • 실시간 조명 : 동적 환경, 상호작용적 게임플레이 가능
  • 사전 계산 조명 : 안정적인 성능, 고품질 정적 환경에 적합

 개발 프로세스 영향

  • 실시간 조명 : 빠른 이터레이션, 즉각적인 결과 확인
  • 사전 계산 조명 : 긴 빌드 시간, 신중한 계획 필요

 언리얼 엔진에서 실시간 조명과 사전 계산 조명의 효과적인 사용은 게임의 시각적 품질과 성능을 결정짓는 핵심 요소입니다.

 실시간 조명은 동적이고 상호작용적인 환경을 만드는 데 탁월하지만, 높은 성능 요구사항이 단점입니다.

 반면 사전 계산 조명은 뛰어난 품질의 정적 조명을 낮은 런타임 비용으로 제공하지만 유연성이 떨어집니다.

 하이브리드 접근법은 두 방식의 장점을 결합하여 최적의 결과를 얻을 수 있게 해줍니다.

 Stationary Lights를 활용하면 부분적인 동적 변화와 함께 고품질 정적 조명의 이점을 누릴 수 있습니다. 동적 시간 변화에 따른 조명 전환은 이러한 하이브리드 접근의 좋은 예시입니다.

 게임 장르와 환경에 따라 적절한 조명 전략을 선택하는 것이 중요합니다.

 실내 환경은 주로 사전 계산 조명이 효과적이며 야외 환경은 하이브리드 접근이 적합할 수 있습니다.

 대규모 오픈 월드의 경우, 거리에 따른 조명 품질 조절과 월드 분할 기법을 활용하여 성능과 품질의 균형을 맞출 수 있습니다.

 플랫폼별 최적화도 중요한 고려사항입니다. 모바일 플랫폼에서는 사전 계산 조명을 우선적으로 사용하고 실시간 조명을 제한적으로 적용해야 합니다. 콘솔 플랫폼에서는 하이브리드 접근이 가능하며, 플랫폼 특화 최적화 기능을 활용할 수 있습니다.

 고품질 조명 구현을 위해서는 물리 기반 조명 값 사용, 보조 조명을 통한 디테일 강화, 그리고 후처리 효과의 활용이 중요합니다. 이러한 기법들을 조합하여 사용하면 더욱 사실적이고 인상적인 조명 효과를 만들 수 있습니다.