Unity Light Probe에 대해서

light mapping은 장면의 실사 느낌을 향상시킬 수 있지만, 동적인 객체가 사실적으로 렌더링 되지 않는 단점이 있다.

 

동적인 물체에 대한 라이트맵핑을 실시간으로 계산하는 것은 불가능 하지만, Light Probe를 이용하면 비슷한 효과를 얻을 수 있다.

동적인 오브젝트의 조명과 정적인 라이트 맵핑된 물체 사이의 어색함을 방지하는 데 도움이 된다

 

그냥 Realtime Lighting쓰면 되는거 아니냐? 하는데 실시간 라이팅 그리고 그림자는 연산이 비싼 작업이다.


Light Map의 특징과 Light Probe

Light Map 특징은 다음과 같다.

  1. Static Object(Contribute GI이 적용된)에만 적용된다.
  2. Texture 2D형식으로 Data 저장된다(3번과 연관).
  3. 메모리 이슈 발생 가능성이 있다.
  4. 종류로는 Subtractive, Baked Indirect, Shadowmask가 있다.

(좌)  Light Map Setting (우) Texture 2D 형식으로 저장된 Data

위에서 언급한 것처럼 라이트 맵에는 동적인 객체가 사실적으로 렌더링 되지 않는 단점이 존재하므로 단점을 보완시켜주기 위해 라이트 프로브도 함께 사용되는 것이다.

 

라이트 프로브란?

라이트 프로브는 Mixed Mode와 Baked Mode에서 광원으로부터 움직이는(동적) 오브젝트에 Direct, InDirect 및 반사광이 전달되게 끔 하는 역할입니다.

Light Type

라이트 프로브는 씬의 빈 공간을 지나가는 빛에 대한 정보를 파악해서 사용합니다.

라이트 프로브는 라이트맵처럼 "Baked"된 조명 정보를 씬에 저장합니다.

라이트맵의 경우 씬의 표면에 닿는 광원에 대한 조명 정보를 저장하지만, 라이트 프로브의 경우 씬의 빈 공간을 지나가는 광원에 대한 정보를 저장합니다.

 

라이트 프로브 특징은 다음과 같다.

  1. 주로 동적인 오브젝트 대응하는 용도로 사용된다(static에도 사용가능함)
  2. 저장형태가 복잡...개당 float x 30 + a

저장형태의 경우 다음 Docu를 참고해주세요.

 

라이트 프로브: 기술 정보 - Unity 매뉴얼

라이트 프로브의 조명 정보는 스피리컬 하모닉 기반 함수로 인코딩됩니다. L2 스피리컬 하모닉라고도 하는 3차 다항식을 사용합니다. 이 정보는 각 컬러 채널에 대해 9개인 27개의 부동 소수점 값

docs.unity3d.com


위에서 잠깐 Subtractive, Baked Indirect, Shadowmask 언급했는데 짧게 소개하고 넘어가겠습니다.

 

  • Baked Indirect : 간접광(Global illumination) 정보만 저장되고 그림자는realtime으로 처리된다.
  • Subtractive : 전통적인 라이트맵 처리 방법이며 동적인 오브젝트만 realtime으로 연산된다, but realtime과 baked된 그림자 차이가 발생
  • Shadowmask : 그림자 정보를 따로 저장한다, Realtime과 Baekd가 자연스럽게 이어진다(Subtractive 단점 보완 but 비쌈)
  • Distance Shadowmask : 가까운 거리는 realtime, 일정 거리 이상은baked된 녀석을 사용 

라이트 프로브 적용모습과 배치방법

해당하는 색에 근접하면 해당색으로 캡슐이 물든다
출처 - https://docs.unity3d.com/kr/2021.2/Manual/LightProbes-MovingObjects.html / (좌) 라이트 프로브가 적용되지 않은 모습 (우) 라이트 프로브가 적용된 모습 / 자동차 옆면을 자세히 보시면 은은하게 빨간색이 도는 것을 볼 수 있습니다.

그림자 영역 비교

라이트프로브 배치는 빛의 영역에 따라 나누면 됩니다.

은은하게 비추는 곳과, 강력하게 비추는 곳을 중점으로 배치하시면 됩니다.

 

 

라이트 프로브 만드는 방법

[Light]-> [Light Probe Group]을 눌러주어 라이트 프로브를 생성할 수 있습니다.

라이트 프로브 그룹 컴포넌트에서 Edit을 눌러주면 프로브들을 배치할 수 있습니다.

 

프로브들은 작은 구슬형태로 되어 있고 마우스로 Position바꿔줄 수 있으며 Ctrl + D 버튼으로 복제도 할 수 있습니다.