라이트맵 굽기

Unity/TA 2020. 1. 10. 00:36

씬 세팅

 

용어 정리

InDirect Light : 간접광이라는 뜻으로 GI, AO를 의미

Direct Light : 직접광이라는 뜻으로 보통 Specular 효과를 의미

 


Baked Indirect

InDirect만 베이킹하여 GI, AO만 베이킹됩니다,

그림자는 실시간 처리됩니다.

 

 

베이크 결과입니다, GI, AO만 베이킹된 것을 확인 할 수 있습니다.

 

 

베이킹시 기본적으로 텍스처 2개가 생성됩니다.

 


Subtractive

Static오브젝트의 그림자와 InDirect를 확실하게 베이킹합니다,

조명이 Baked일때는 라이팅 색상을 베이킹합니다.(Mixed일때 실시간 라이팅 처리)

 

옵션에서 다이나믹 오브젝트의 실시간 그림자 색상을 지정 할 수 있습니다.

(기본적으로 다이나믹 오브젝트와 Static오브젝트의 그림자 색상이 달라 질 수 있어서 맞출때 사용)

 

 

Direct Light(직접광)처리를 하지 않아서 물체의 Specular효과가 죽어버립니다.

(도큐먼트 설명으론 라이트 방향 정보를 가지지 않는다는데 난반사효과는 잘됩니다.)

 

 

베이킹 결과입니다, 그림자와 AO,GI가 베이킹 됬습니다.

 

 

베이킹시 기본적으로 텍스처파일 2개가 생성됩니다.

 


Shadowmask

InDirect(GI, AO)는 당연히 베이킹되고 그림자는 베이킹&실시간 둘다 됩니다.

 

퀄리티옵션에서 ShadowmaskMode를 Distance Shadowmask로 하고 Shadow Distance로 거리를 지정하면 

 

원래 드럼통이 존재한 채로 라이트를 구운것입니다, 카메라가 위에서 지정한 거리 내부로 들어오면 실시간 그림자 출력,

밖으로 나가면 베이킹한 그림자를 출력합니다.

 

이 거리지정은 다이나믹 오브젝트 그림자에도 영향이 갑니다.

 

만약 Mode를 Shadowmask로 설정하면 그냥 베이킹한 그림자만 출력합니다.

 

 

베이킹한 결과입니다, Shadowmask 맵은 안보이지만 GI,AO과 함께 그림자는 Shadowmask로 베이킹 되었습니다.

 

베이킹시 기본 3가지 텍스처파일이 생성됩니다.

 

 

 

 

AO(Ambient Occlusion) 세팅

Max Distance

AO 처리 될 거리

InDirect Contribution

AO 강도

Direct Contribution

???

 

 

 

Lightmap Size

라이트맵 베이킹 텍스처 사이즈를 결정합니다.

 

사이즈를 작게 하면 위 처럼 라이트맵 텍스처가 여러개 구워지면서 드로우콜이 늘어나게 됩니다.

 

플랫폼이 허용하는 한도에 따라서 크기를 맞춰 위 처럼 최대한 텍스처 적게 만들어야 합니다.

 

 

 

 

 

 

 

에러

 

 

Shadowmask모드에서 Compress Lightmaps를 체크하면 위와 같은 에러가 뜹니다, 원인을 몰라서 그냥 Compress Lightmaps 체크를 해제해서 해결합니다.

 

 

 

 

 

 

라이트맵 쉐이더

 

라이트맵 구울때 Emission GI도 같이 굽는법 -> 라이트맵 텍스처에 GI 파워 그리기

각 라이트모드에 맞게 쉐이더 최적화

 

 

 

 

 

 

 

 

 


WRITTEN BY
CatDarkGame
Technical Artist dhwlgn12@gmail.com

,