유니티 Light Map Bake & Light Probe 정리

라이트맵과 라이트 프로브에 대해 총 정리하는 시간을 가져보고자 합니다.
 

Unity Light Types

유니티에는 총 4가지 형태의 빛이 있다 1. Spot 2. Directional 3. Point 4. Area 1번 Spot같은 경우 가로등 같은 형태의 오브젝트에서 타원형의 빛을 발광하기 위해 사용된다 또는 스포트라이트 생각하면 된

wlsdn629.tistory.com

 

Unity Light Probe에 대해서

light mapping은 장면의 실사 느낌을 향상시킬 수 있지만, 동적인 객체가 사실적으로 렌더링 되지 않는 단점이 있다. 동적인 물체에 대한 라이트맵핑을 실시간으로 계산하는 것은 불가능 하지만, Lig

wlsdn629.tistory.com

 

유니티 초보자인 내가 Light Probe를 사용할 수 있다고?🌟"Magic Light Probes"🌟에셋을 이용해서 쉽게

Light Probe란? Light Probe는 이전에 포스팅해둔 자료가 있으므로 참고하시면 되겠습니다. Unity Light Probe에 대해서 light mapping은 장면의 실사 느낌을 향상시킬 수 있지만, 동적인 객체가 사실적으로 렌

wlsdn629.tistory.com

지금까지 공부한 내용은 위 포스팅들을 참고해 주세요.


라이트 맵 굽는 방법

Lighting 탭

먼저, 라이트맵을 굽기 위해서는 라이팅 탭에 들어가셔서 라이팅 세팅 어셋을 새롭게 만드셔야 합니다.
기존에 라이팅 세팅 해둔 게 있다면 불러오셔서 사용하시면 됩니다.
 
라이팅 세팅은 다음과 같은 정보들을 포함하고 있습니다.

(좌) 라이팅 세팅 (우) 라이팅 탭에 있는 프로퍼티 세팅

사진을 보시다시피 (좌), (우) 모습은 동일하다는 것을 볼 수 있습니다.
따라서, 라이팅 세팅에서 프로퍼티를 수정하든, 라이팅 탭에서 프로퍼티를 수정하든 동일한 결과를 낼 수 있습니다.
 
Realtime Global Ilumination 옵션을 활성화할 경우 라이트 맵을 구울 때 전역 조명에 대한 정보도 계산합니다.
 
Realtime Global Ilumination을 사용할 경우 퍼포먼스 부담이 높기 때문에 성능 최적화를 위해 Baked Global IlunminationLight Probe를 사용하여 실시간 전역 조명과 같은 효과를 연출할 수 있습니다.

Global Ilumination / 전역 조명 / Directional

GI는 직접광(Direct), 반사광(InDirect) 등의 Light Data를 가지고 있습니다. 
 
여기서 주의할 점은,  Baked Global Ilunmination를 사용한다고 Light Mode를 Baked로 할 경우 동적으로 움직이는 객체의 그림자는 사라지게 됩니다.
 
왜냐하면 Baked Mode는 라이트 맵에 구워진 그림자 Data만 사용하겠다는 뜻이므로 동적오브젝트의 경우 라이트 맵에 그림자를 굽지 않았기 때문에 그림자가 사라지게 됩니다.
 
따라서, 동적으로 움직이는 객체의 그림자는 나오게 하고 싶고, 움직이지 않는 정적인 객체의 그림자는 라이트 맵을 구워서 사용하고 싶다면 Light Mode는 Mixed로 설정하셔야 합니다.

출처 - https://namu.wiki/w/%EC%B2%98%EB%A7%88

 
라이트 맵 굽는 방법에는 총 3가지 방법이 있다고 소개드렸습니다.

Lighting Mode

 

라이팅 모드GI 라이트맵에 저장그림자 라이트맵에 저장   정적 오브젝트의 그림자 계산
Baked Indirect저장함저장하지 않음실시간 계산
Subtractive저장함저장함저장하지 않음
Shadowmask저장함저장하지 않음별도의 Shadowmask 텍스처로 저장
(좌) Subtractive - shadowmask 비활성화 / (우) Shadowmask - shadow mask에 그림자에 관한data가 저장 
Subtractive 환경에서의 (좌) 라이트 프로브 있을 때 (우) 라이트 프로브 없을 때

 
그 외 라이트맵을 구울 때 알아두셔야 하는 프로퍼티들에 대해 정리해 봤습니다.
 

Property Description
Progressive
Updates
활성화하면 현재 보이는 (화면?)텍셀에 먼저 변경 내용을 적용한 후 뷰 밖에 있는 텍셀에 변경 내용을 적용합니다.
Multiple Importance Sampling      잘 모르는 부분이라 생략...
Direct Sample
Count
직접 조명 계산에 사용하는 샘플 수를 제어합니다.
Indirect Sample
Count
간접 조명 계산에 사용하는 샘플 수를 제어합니다.
Environment
Sample Count
잘 모르는 부분이라 생략...
Light Probe Sample Multiplier   값이 높을수록 라이트 프로브의 품질이 향상되지만 베이크 시간이 증가합니다.
Min Bounce바운스 수의 최소값을 설정합니다.
Max Bounce바운스 수의 최대값을 설정합니다.
Filter Mode포스트 프로세싱 효과를 적용하는 방식을 설정하며, Direct, Indirect, Ambient Occlusion 타겟에 대해 분할된 라이트맵을 조절합니다.

라이트 프로브 적용방법

Light Probe Group을 생성합니다
쉽게 제작 - 경계선을 따라 설치

라이트 프로브를 설치하신 후에는 반드시 라이트맵을 새로 구워야 합니다.

(좌) 내가 직접 프로브를 배치해봤을 때 (우) 에셋을 활용해서 프로브를 배치해봤을 때 / 확실히 그림자 영역에서 부드러움의 차이가 많이 보인다 / 제 눈엔 드라마틱한 차이는 안보이는데 여러분의 눈은 어떻게 보이는지 궁금하네요 ㅋㅋ

절대 PPL이 아님을 강조하며 말씀드리자면, 비싼 에셋들은 그만큼 가치가 있어서 제가 직접 하지 않고 주로 에셋을 이용해서 개발을 하는 편입니다...
 
사실 처음에 개발할 땐 "왜 돈 주고 에셋을 사용해! 내가 직접 하면 되지! " 이런 마인드였으나
에셋의 위대함을 알게된 이후, 절대 혼자 힘으로 모든 것을 해결하려 하지 않습니다.
 
라이트 프로브의 경우도 마찬가집니다.
라이트프로브를 백날 수동으로 설치하는 것보다 원클릭으로 자동으로 라이트 프로브 설계하는 것이 더 훌륭하며 시간 단축에도 엄청난 기여를 합니다.