Light Probes와 Reflection Probes 배치 최적화로 동적 오브젝트 라이팅 개선하기

Unity에서 동적 캐릭터와 소품이 배경 조명에 자연스럽게 섞이지 않는 원인을 Light Probes·Reflection Probes 관점에서 분석하고 밀도·경계·블렌딩·성능을 함께 최적화하는 실전 배치 절차를 정리합니다.

✓ 복사 완료!
챕터라이팅 & 그림자
난이도중급
상태● 검토 완료
대상 엔진
Engine Agnostic
최종 업데이트
Light Probes와 Reflection Probes 배치 최적화로 동적 오브젝트 라이팅 개선하기

핵심 요약

동적 오브젝트가 씬의 조명과 어색하게 분리되는 가장 흔한 이유는 조명 정보를 샘플링하는 Light Probe의 위치와 밀도가 실제 광량 변화와 맞지 않거나 Reflection Probe의 영향 범위와 우선순위가 겹치기 때문이다. Light Probe는 간접광과 환경광을 SH(Spherical Harmonics) 계수로 보간하고 Reflection Probe는 정반사 환경 정보를 제공하므로 두 시스템을 분리해 진단한 뒤 광원 변화 지점과 재질 변화 지점에 맞춰 배치해야 한다.

Light Probes와 Reflection Probes는 무엇이 다른가?

두 Probe는 모두 정적인 환경 정보를 동적 렌더러에 전달하지만 해결하는 문제가 다르다.

구분Light ProbesReflection Probes
주 역할동적 오브젝트의 간접 확산광, 환경광, 색 번짐금속·유광 재질의 정반사 환경 표현
저장 정보Spherical Harmonics 계수큐브맵(Cubemap)
대표적인 문제캐릭터가 벽 가까이에서 밝아지거나 어두워지지 않음유리·금속이 다른 공간을 반사하거나 반사 전환이 튐
배치 기준광량·색·차폐가 변하는 공간반사 환경과 재질 특성이 달라지는 공간
주요 성능 비용베이크 데이터와 보간, 밀도 증가에 따른 메모리큐브맵 메모리, 실시간 갱신 시 렌더링 비용

확산광과 정반사는 서로 대체할 수 없다. 캐릭터 피부가 주변 벽의 색을 받지 않는 문제는 대개 Light Probe 문제이고 검·자동차·유리창에 엉뚱한 공간이 비치는 문제는 Reflection Probe 문제다.

동적 오브젝트 라이팅이 어색해지는 이유는 무엇인가?

Light Probe 보간이 조명 경계를 지나치는 경우

Unity의 전통적인 Light Probe Group은 여러 Probe의 SH 계수를 테트라헤드론 구조로 보간한다. 실내와 실외, 밝은 복도와 어두운 방처럼 조명 변화가 큰 두 영역 사이에 Probe가 너무 적으면 중간 계수가 넓게 섞인다. 그 결과 문턱을 넘은 캐릭터가 실제보다 빨리 밝아지거나 어두워진다.

조명 변화가 충분히 포착되지 않은 상황은 다음처럼 생각할 수 있다.

Lobject≈∑i=1nwi⋅SHiL_{object} \approx \sum_{i=1}^{n} w_i \cdot SH_i

여기서 SH_i는 주변 Light Probe의 조명 계수이고 w_i는 위치 기반 보간 가중치다. 주변 Probe가 서로 다른 조명 영역을 잘 대표하지 못하면 수식 자체는 정상이어도 결과가 틀어진다.

Probe가 벽 또는 바닥에 너무 가깝게 배치된 경우

Probe를 메시 표면에 붙이면 벽 뒤쪽의 조명이나 비정상적인 누광 영향을 받기 쉽다. 특히 얇은 벽, 양면 조명 설정, 베이크 해상도가 낮은 환경에서는 캐릭터가 벽을 통과해 빛을 받는 것처럼 보일 수 있다.

Probe는 일반적으로 동적 오브젝트의 중심 또는 주요 셰이딩 높이를 기준으로 두고 충돌 메시 표면에서 약간 띄우는 편이 안전하다. 사람 크기 캐릭터라면 발 위치만이 아니라 가슴과 머리 높이에서 어떤 환경광을 받는지도 확인해야 한다.

밝은 복도와 어두운 방의 경계에 높이별 Light Probe를 배치한 예시

Reflection Probe의 Box Projection 또는 블렌딩 범위가 맞지 않는 경우

Reflection Probe는 큐브맵의 반사 방향만 제공하면 넓은 공간에서 반사 위치가 틀어져 보일 수 있다. 실내처럼 벽·천장·바닥이 가까운 공간에서는 Box Projection을 켜고 Probe의 박스 크기를 실제 반사 공간과 가깝게 맞추는 것이 중요하다.

또한 서로 다른 방의 Reflection Probe가 넓게 겹치면 금속 재질의 반사가 이동 중에 급격하게 변하거나 의도하지 않은 Probe가 선택될 수 있다. Blend Distance는 전환을 부드럽게 만드는 도구이지 잘못된 영향 범위를 해결하는 수단은 아니다.

Light Probes는 어떻게 배치해야 하는가?

다음 절차는 Light Probe Group과 Adaptive Probe Volumes(APV)를 모두 점검할 때 사용할 수 있다. 단, APV는 Unity 버전과 렌더 파이프라인 설정에 따라 지원 범위가 다르므로 프로젝트의 사용 가능 여부를 먼저 확인한다.

1. 동적 오브젝트의 이동 경로를 먼저 표시한다

캐릭터, 적, 문, 엘리베이터, 물리 소품처럼 실제로 움직이는 대상의 경로를 우선순위로 정한다. 플레이어가 닿지 않는 장식 공간에 균일한 고밀도 Probe를 넣는 것보다 다음 지점에 집중하는 편이 효과적이다.

  1. 실내·실외 전환부와 문틀
  2. 그림자 아래, 처마 아래, 터널 입구
  3. 색이 강한 벽이나 발광체 주변
  4. 계단·경사로·엘리베이터처럼 높이가 바뀌는 구간

2. 조명 변화가 큰 곳에는 3차원 밀도를 추가한다

바닥에 한 층만 Probe를 배치하면 상체와 머리가 받는 환경광 변화를 표현하기 어렵다. 캐릭터가 통과하는 공간이라면 최소한 낮은 높이와 상체 높이처럼 수직 방향의 샘플을 고려한다.

공간 상황권장 배치 방식
넓고 균일한 실외낮은 밀도의 규칙적 격자, 지형 높낮이에 맞춘 보정
밝은 창문 주변창문 안쪽·바깥쪽과 캐릭터 상체 높이에 추가 샘플
복도와 방의 연결부문틀 양쪽에 조밀하게 배치하고 두 공간의 샘플을 분리
계단·다층 구조계단 높이를 따라 수직 샘플을 추가
강한 색광 또는 네온광원 근처와 영향 종료 지점에 추가 샘플

Probe 수를 무작정 늘리지 말고 씬 뷰의 Light Probe 시각화와 게임 카메라를 함께 확인한다. 변화가 거의 없는 벽면 중앙이나 플레이 불가 영역은 과감히 성기게 유지한다.

3. 베이크 결과를 동적 렌더러에서 검증한다

베이크가 끝난 뒤 정적 배경만 보고 판단하면 오류를 놓치기 쉽다. 실제 캐릭터 프리팹을 움직이며 Mesh Renderer 또는 Skinned Mesh Renderer의 Probe 설정을 확인한다.

Light Probes: Blend Probes
Reflection Probes: Blend Probes
Receive Global Illumination: Light Probes

설정 명칭은 Unity 버전과 파이프라인에 따라 일부 달라질 수 있다. 핵심은 동적 렌더러가 Light Probe를 사용하도록 하고 디버그 시에는 Probe 사용을 끈 결과와 비교해 변화가 실제로 적용되는지 확인하는 것이다.

Reflection Probes는 어떻게 나누고 블렌딩할까?

공간의 반사 정체성을 기준으로 분할한다

Reflection Probe의 경계는 조명만이 아니라 무엇이 반사되어야 하는가를 기준으로 정한다. 같은 밝기의 방이라도 한쪽이 나무 벽과 창문이고 다른 쪽이 금속 설비실이면 반사 환경은 다르다.

  1. 반사 대상이 되는 공간의 물리적 경계를 정한다.
  2. 각 공간에 Probe를 배치하고 큐브맵이 포함할 레이어를 검토한다.
  3. 영향 박스(Influence Volume)를 공간보다 과도하게 넓히지 않는다.
  4. 문, 복도처럼 전환이 필요한 곳에서만 Blend Distance를 부여한다.

Box Projection은 실내 우선으로 사용한다

Box Projection은 반사를 제한된 상자 공간에 투영해 가까운 벽과 천장의 위치감을 보정한다. 작은 실내, 상점, 차량 내부처럼 반사체와 경계가 가까운 환경에서 특히 유용하다. 반대로 탁 트인 야외에서는 시각적 이득이 작을 수 있으므로 실제 재질을 기준으로 비교한다.

실내 Reflection Probe의 Influence Volume과 Blend Distance를 구분한 예시

실시간 Reflection Probe는 제한적으로 사용한다

Realtime 모드는 장면을 최대 여섯 방향으로 다시 렌더링해 큐브맵을 갱신한다. 동적인 시간이 흐르는 야외나 움직이는 대형 환경에는 필요할 수 있지만 모든 실내 Probe에 적용하면 GPU 비용이 빠르게 커진다.

갱신 방식적합한 사례주의점
Baked정적인 실내, 고정된 조명런타임 변화가 반사에 반영되지 않음
Custom스크립트로 특정 시점에 갱신갱신 시점과 해상도를 직접 관리해야 함
Every Frame변화가 매우 큰 특수 연출비용이 높아 일반 환경에는 부적합

가능하면 Baked Probe를 기본으로 두고 변화가 필요한 핵심 공간만 Custom 갱신으로 제한한다. 반사 해상도와 culling mask도 함께 줄여야 실제 비용 절감으로 이어진다.

동적 오브젝트 라이팅을 개선하는 실전 점검 순서

1. 문제를 확산광과 정반사로 분리한다

무광 재질로도 캐릭터가 배경과 어색하면 Light Probe부터 점검한다. 금속성 또는 Smoothness가 높은 재질에서만 문제가 뚜렷하면 Reflection Probe, SSR(Screen Space Reflections), 재질 설정을 확인한다.

2. 경계 지점에만 샘플을 추가한다

밝기·색·차폐가 바뀌는 구간을 찾아 Light Probe를 보강한다. 특히 벽을 사이에 둔 두 공간의 샘플이 하나의 넓은 보간 영역을 만들지 않도록 문틀 양쪽에 별도 샘플을 둔다.

3. 실제 플레이 카메라에서 전환을 측정한다

에디터 씬 뷰에서 자연스러워도 카메라 이동, 자동 노출, 톤 매핑, TAA가 함께 작동하면 팝핑이 더 도드라질 수 있다. 캐릭터를 일정 속도로 이동시키고 다음 항목을 캡처 비교한다.

  • 밝은 공간에서 어두운 공간으로 진입할 때의 확산광 변화
  • 금속·유광 소품의 반사 전환 시점
  • 문을 열고 닫을 때 베이크 데이터와 실제 연출의 불일치
  • 저사양 품질 설정에서 Reflection Probe 해상도와 블렌딩 결과

자주 묻는 질문 (FAQ)

Light Probe를 많이 배치할수록 항상 좋은가?

아니다. 조명 변화가 적은 곳의 과도한 밀도는 베이크 시간과 데이터만 늘릴 수 있다. 광량·색·차폐가 급변하는 이동 경로에 우선 배치하는 것이 효율적이다.

캐릭터 발밑이 떠 보일 때 Reflection Probe를 추가해야 하는가?

대개 아니다. 발밑의 접지감은 그림자, Ambient Occlusion, Light Probe의 확산광, 라이트맵 품질과 더 직접적으로 관련된다. 먼저 Light Probe 위치와 그림자 설정을 확인한다.

실시간 Reflection Probe를 쓰면 모든 반사 문제가 해결되는가?

아니다. 실시간 갱신은 큐브맵의 최신성만 높인다. 잘못된 Influence Volume, Box Projection 미설정, 부적절한 블렌딩, 화면 밖 정보를 반영하지 못하는 다른 반사 기법의 한계는 별도로 해결해야 한다.

정리

동적 오브젝트 라이팅의 품질은 Probe 개수보다 조명 변화와 공간 경계에 맞춘 배치에 좌우된다. Light Probe는 캐릭터가 받는 확산 환경광을 Reflection Probe는 재질에 비치는 반사 환경을 담당한다. 먼저 어떤 성분이 틀렸는지 분리하고 이동 경로의 경계 구간을 조밀하게 보강한 뒤 실제 게임 카메라에서 전환을 검증하면 품질과 성능을 함께 관리할 수 있다.