본문 바로가기
개발 (Game)/Unity (General)

[Unity] Light Probes

by 진현개발일기 2025. 4. 15.

■ Light Probes

베이크된 조명과 동적 오브젝트를 연결할 수 있는 기법.
씬에 그룹으로 포함된 작은 구체이고 그 수가 매우 많다.

[원리]

라이트 프로브는 조명을 베이크할 때 광원을 캡처하고, 게임이 실행되면 동적 오브젝트가 이러한 프로브를 샘플링하는데
가장 가까운 프로브를 샘플링해 프로브의 조명 데이터를 받아온다. 

이를 통해 동적 오브젝트는 베이크 프로세스 중에 베이크된 조명 데이터를 받아올 수 있으며 여기에는 모든 광원 반사와 발광 머티리얼 등이 모두 포함된다. 이렇게 하면 동적 오브젝트가, 미리 베이크되었지만, 매우 사실적인 조명을 받을 수 있어서 돋보이게 된다.

 

[주의할 점]

1. 이러한 프로브는 조명이 어느 정도 변화하면서 흥미로운 모습을 보이는 주요 지점에 배치해야 하므로 수동으로 직접 배치하면서 다양한 조명을 포착할 수 있게 하면 좋다.

2. 라이트 프로브는 그림자의 실루엣을 형성하지는 않는다. 그림자는 베이크 되었으므로 라이트 프로브는 조명 정보와 광원의 강도에 더해 컬러 정보만을 제공한다.

 

따라서 베이크된 그림자가 동적 오브젝트에 실시간 그림자를 드리우지는 않는다. 대신 근사치는 제법 정확하여 개체가 개방된 야외에 있을 때와 실내에 있을 때 차이점이 명확히 드러난다.

[팁]

1. 식물과 같이 디테일은 살아 있지만 크기가 작아 제대로 확인하기 어려운 개체들은 Lightmap으로 베이크할 경우 폴리곤이 차지하는 공간이 많아져서 베이킹 시간이 매우 높아진다.

 

Lightmap Scale을 조절할 수도 있으나, 그렇게 된다면 식물의 디테일 캡처의 정확도가 떨어지므로 Receive GI를 Lightmap이 아니라 Light Probes로 대체하면 좋다. 이런 경우 그림자는 지면의 라이트맵에 베이크 되지만 오브젝트 자체는 라이트 프로브의 조명을 받는다.

우측 Inspector의 설정을 확인하면 GI를 Light Probes로 받고 있다.



2. 라이트 프로브 그룹을 선택하지 않더라도 씬 전체에 존재하는 프로브들을 확인하고 싶다면 Lighting패널에서 Light Probe Visualization 설정값을 "All Probes No Cells"로 변경해주면 된다.


이렇게 설정할 경우 광원과 그림자를 의도한 대로 캡처했는지, 프로브의 색깔을 통해, 디버깅도 되고 문제가 생기면 확인하기 편해진다.



3. 씬 뷰 내 Global Illumination 섹션에서 [Contributors / Receivers]를 선택하면 디버그하며 오브젝트 설정을 잊어버렸거나 올바르게 세팅 되었는지 한 눈에 확인할 수 있다.

(캐릭터는 예외. Skinned Mesh Renderer를 사용해서 항상 동적이기 때문이다.)

■ 참고

https://www.youtube.com/watch?v=hMnetI4-dNY

'개발 (Game) > Unity (General)' 카테고리의 다른 글

[Unity] Renderer  (0) 2025.04.17
[Unity] Reflection Probes  (0) 2025.04.15
[Unity] Mixed Lighting  (0) 2025.04.15
[Unity] Lightmap - UV  (0) 2025.04.14
[Unity] Lightmap - Filtering and charts  (0) 2025.04.14