2022. 11. 24. 01:09ㆍUnity
라이트 프로브란?
우리가 쓰는 Mixed 라이트는 정적(static) 개체만 굽고 동적(dynamic) 개체는 굽지 않는다. 동적 개체는 이미 구워진(baked) 개체들과 자연스럽게 어울리기 위해서는 실제로 빛을 받고 있는 것처럼 보이는 장치가 필요하다. 이때 Light Probe로 유사한 효과를 줄 수 있다.
동적 개체가 Light Probe가 설치되어있고 이미 구워진 곳을 지나갈 때는 이미 설치 되어있는 가장 가까운 Light Probe 구(sphere) 샘플 사이를 보간하여 빛을 근사화한다. 쉽게 말해 주변 노란 구가 받아들이고 있는 빛의 평균값을 동적 개체에 적용시켜준다고 보면 된다.
위의 프로젝트는 Subtractive로 구운 예시이다. Baked Indirect와 Shadowmask는 실시간 그림자를 사용하기에 예시와 같은 모습은 나오지 않는다. 다른 Mixed Lighting의 종류는 뒤에 더 다루어 볼 예정이다.
라이트 프로브의 배치
Light Probe는 [Light] - [Light Probe Group]으로 만들 수 있고 Edit Light Probes 옆 버튼을 통해 편집할 수 있다.
빛의 평균 값이 동적 개체에 적용되므로 배치에서 가장 중요한 점은 빛이 바뀌는 지점, 빛의 경계선을 위주로 구를 배치하는 것이다. 추가로, 복잡한 프로젝트에서는 동적 개체의 이동 경로에 따라서 추가로 배치를 해 주어야 한다.
Light Probe를 알맞게 배치한 후 다시 구우면 잘 작동하는 것을 볼 수 있으며 바닥 색 또한 동적 개체에 반사 되는 것을 볼 수 있다.
추가로 배치에서 주의할 점은 아래와 같다.
- 오브젝트 안에 라이트 프로브 구를 넣지 않는 것을 추천한다. 주변 빛을 받아들이는 라이트 프로브 구가 오브젝트 안에 들어있으면 완전한 어둠으로 인식할 수 있다.
- 기본적으로 오브젝트의 모서리에는 조도가 낮기 때문에 제대로 조명하기 위해 라이트 프로브 구를 설치할 필요가 있다.
- 캐릭터가 움직이는 곳 근처의 라이팅을 보간하기 위해 이동 경로에도 라이트 프로브 구를 넣을 필요가 있다.
라이트 프로브의 원리
라이트 프로브의 원리를 찾아보면 항상 "구면 조화 함수(Spherical Harmonics)" 라는 말을 볼 수 있다. 정리하면, 라이트 프로브는 '함수' 원리를 이용하여 빛을 계산한다고 보면 된다. Baked 된 라이트 맵은 텍스쳐를 이미지 저장하기 때문에 사이즈가 크지만 라이트 프로브는 함수 계수를 저장하므로 사이즈가 작다는 장점이 있다.
참고 영상
'Unity' 카테고리의 다른 글
[Unity]C# for, foreach, while, do-while문 정리 (0) | 2023.04.11 |
---|---|
[Unity]텍스쳐 최적화를 위한 TexturePacker 사용하기 (0) | 2023.03.27 |
[Unity] Sprite Atlas 기능 사용하기 (0) | 2023.02.19 |
[Unity] 빌드에서만 스프라이트가 핑크색으로 보이는 경우 (0) | 2023.02.19 |
[Unity] 시네머신과 레코더 (Cinemachine & Recorder) (1) | 2023.01.02 |