Baked GI? GI?

GI : Global Illumination 이고,
광원에서 직접 표면에 닿는 빛에 국한하지 않고 다른 표면(간접 조명)으로 빛이 표면에 반사되는 방식을 모델링하는 시스템이다.


Baked GI
Baked GI는 베이크 / 사전 계산의 정적 객체에만 이 기능을 제한하고 있다 이동하는 객체는 다른 객체로 빛을 반사할 수 없으며 그 반대도 마찬가지다. 그러다 라이트 프루브를 이용하여 정적 오브젝트에서 바운스 라이트를 계속 가져올 수 있다. 런타임시 비 정적 오브젝트가 정적 오브젝트가 반사한 빛을 가질 수 있다. 즉, 흰 벽옆에 붉은 공이 있으면 흰 벽에 색이 번지지 않지만 흰 공옆에 붉은 벽이 있으면 흰 공에 색이 번진다.

 

왼쪽의 빨간색 Plane은 Emission으로 빨간색 빛을 방출한다.

오른쪽의 랜더몽키는 static이고 ( emssion의 영향을 받음 )

왼쪽의 랜더몽키는 static이 아니다 ( emssion의 영향을 받지 않음 )

하지만 lightProbe를 사용한다면?? static이 아니어도 emission이 방출한 빛의 영향을 받는 걸 확인할 수 있다.

 

참고로 이 랜더몽키는 저번에 제작한 이 멀티라이팅 툰 쉐이더를 사용한 랜더몽키이다.

 

Baked GI의 영향을 받기위해 Ambient에서 이 값을 참조한다.

Add의 B는 쉐이더의 fragment 색깔 값이다.

원래는 여기에 baked GI의 값을 더해주었지만 이것을 끊어보겠다.

그랬더니 당연하게도 이 씬에는 라이트가 없으므로 검정색이 되어버린다!

 

그래서 Unlit Shader를 작성할 때 이러한 GI의 영향을 받게 하려면 Baked GI라는 값을 추가해주어야 한다

  Comments,     Trackbacks