Unity 조명 시스템: Baked, Mixed, Realtime
조명 모드 비교
섹션 제목: “조명 모드 비교”| 모드 | 정적 오브젝트 | 동적 오브젝트 | CPU/GPU 비용 | 업데이트 |
|---|---|---|---|---|
| Realtime | ✅ | ✅ | 높음 | 매 프레임 |
| Baked | ✅ | ❌ | 없음(런타임) | 베이크 시 |
| Mixed | ✅ | ✅ (간접광) | 중간 | 부분적 |
Baked Lighting 설정
섹션 제목: “Baked Lighting 설정”Window → Rendering → Lighting 창에서 설정합니다.
Lighting Mode: Baked Indirect (권장)Lightmapper: Progressive GPU / CPULightmap Resolution: 40 texels per unit (실내), 20 (실외)Max Lightmap Size: 1024 (모바일), 2048 (PC)정적 오브젝트는 Inspector에서 Static → Contribute GI 체크가 필요합니다.
// 런타임에 Lightmap 교체 (DLC, 레벨별 조명)LightmapData[] maps = LightmapSettings.lightmaps;LightmapSettings.lightmaps = newMaps;Mixed Lighting 모드
섹션 제목: “Mixed Lighting 모드”- Subtractive: 가장 빠름, 단방향 그림자만 지원, 모바일 권장
- Baked Indirect: 간접광만 베이크, 직접광+그림자는 실시간
- Shadowmask: 정적 오브젝트 그림자 베이크 + 동적 그림자 합성
// Mixed Light 예시 설정var light = GetComponent<Light>();light.lightmapBakeType = LightmapBakeType.Mixed;light.shadows = LightShadows.Soft;Light Probe — 동적 오브젝트 간접광
섹션 제목: “Light Probe — 동적 오브젝트 간접광”베이크된 조명 환경에서 움직이는 오브젝트가 주변 간접광을 받도록 합니다.
배치 원칙:- 조명 변화가 큰 경계에 촘촘하게 배치- 캐릭터 키 높이에 맞춰 그룹화- 실내/실외 경계에 반드시 배치// 특정 위치의 Light Probe 보간값 조회SphericalHarmonicsL2 sh;LightProbes.GetInterpolatedProbe(transform.position, null, out sh);
// 렌더러에 Light Probe 모드 설정renderer.lightProbeUsage = LightProbeUsage.BlendProbes;renderer.lightProbeProxyVolumeOverride = proxyVolume; // LPPV 사용 시Reflection Probe — 반사 환경
섹션 제목: “Reflection Probe — 반사 환경”// Reflection Probe 런타임 업데이트var probe = GetComponent<ReflectionProbe>();probe.mode = ReflectionProbeMode.Realtime;probe.refreshMode = ReflectionProbeRefreshMode.EveryFrame; // 비용 높음probe.refreshMode = ReflectionProbeRefreshMode.OnAwake; // 한 번만
// 수동 렌더probe.RenderProbe();조명 최적화 팁
섹션 제목: “조명 최적화 팁”// 1. Shadow Distance 제한QualitySettings.shadowDistance = 50f; // 기본 150 → 불필요한 원거리 그림자 제거
// 2. Shadow CascadesQualitySettings.shadowCascades = 2; // PC: 4, 모바일: 1~2
// 3. 동적 오브젝트 그림자 수 제한light.shadowNearPlane = 0.1f;
// 4. Occlusion Culling과 조합// Static → Occluder/Occludee Static 설정 후 베이크Enlighten Realtime GI vs Progressive Lightmapper
섹션 제목: “Enlighten Realtime GI vs Progressive Lightmapper”| Enlighten Realtime GI | Progressive | |
|---|---|---|
| 방식 | 런타임 GI 업데이트 | 오프라인 베이크 |
| 낮/밤 전환 | ✅ 자연스럽게 | ❌ 어려움 |
| 빌드 크기 | 증가 | 라이트맵 증가 |
| Unity 지원 | Deprecated (2023.1+) | ✅ 권장 |
- 정적 환경은 Baked, 동적 그림자가 필요하면 Mixed 사용
- Light Probe 배치가 캐릭터 조명 품질에 직결
- Shadow Distance와 Cascade 수를 타겟 플랫폼에 맞게 조정
- Enlighten Realtime GI는 Unity 2023.1부터 Deprecated — Progressive로 전환 권장