본문 바로가기
유니티 엔진

유니티 신 버전 라이트맵 사용하기 9 ( Using Unity 2017 Lightmap - 9)

by 대마왕J 2017. 12. 30.

Mixed Lighting - ShadowMask



Distance ShadowMask 



이전 시간에 이은 , 셰도우마스크의 추가 옵션입니다. 

2017 초기 버전에는 라이트맵 옵션에 같이 있었는데, 곧 따로 빠진 기능입니다. 


이 기능을 만든 이유는 다음과 같은데... 




ShadowMask로 리얼타임 셰도우와 베이크드 셰도우를 통합해서 자연스럽게 섞이게 된 것 까지는 좋은데, 

여전히 남아있는 문제는... 


Static 오브젝트의 그림자는 어쨌거나 구워진 것이기 때문에, 다이나믹 오브젝트에 드리우지는 못한다 

라는 것입니다. 


위 그림에서도 박스의 그림자가 바닥에는 드리워져 있는데 캐릭터에게는 드리우지 못하고 있는걸 알 수 있지요 


이건 구워진 그림자나 GI들의 숙명입니다. 


그래서 이걸 해결하는 법은 몇 가지가 있긴 한데, 그 중 하나가 바로 이번에 소개시켜드릴 옵션입니다. 


이 옵션은 가동시키기 위해서 다시 굽거나 할 필요는 없습니다. 그래서 아마 라이트맵 옵션에서 빠진듯.

그냥 이상태 이대로 바꿔주면 됩니다. 


바꿔주는 곳은 Edit/ Project Settings/ Quality




에서 여기에 있습니다 




여기서 Distance Shadowmask를 선택해 주면, 




캐릭터에 그림자가 먹습니다. 



어라 왜 먹는거지???


상식적으로 아무리 셰도우마스크로 구웠다 하더라도 구워진 텍스쳐라 다이나믹 오브젝트한테 영향을 줄 수 없을텐데???





이게 Distance Shadowmask의 차이입니다. 별 거 아니예요


일단 이건 실시간 그림자 거리와 상관 있습니다. 


이 부분이요. 


일단 저 거리가 뭐냐면.. 

실시간 그림자가 생기는 거리입니다. 


Distance Shadowmask 모드일때, 저 거리 안에 들어 있는 부분은 완벽한 실시간 그림자들로만 만들어집니다. 



즉 위 그림에서 붉은 영역으로 보이는 부분이 실시간 그림자 가능 거리이고, 이 때 Distance Shadowmask 일 때에는 저 영역 안에 들어있는

'모든 그림자는 실시간 그림자' 이라는 것입니다. Static 이니 Dynamic이니 상관없이 모두 Dynamic으로 동작하니, 당연히 저 박스의 그림자가 캐릭터에 드러워지는 것을 알 수 있습니다. 



그런데 실시간 그림자 거리가 짧아지거나, 카메라에서 오브젝트가 멀어져서 실시간 그림자 영역을 벗어나게 되었을 때 

그 그림자들은 다시 원래대로 Baked Shadowmap과 Realtime Shadowmap으로 나뉩니다.
그러면 다시 Static 오브젝트가 Dynamic 오브젝트에게 그림자를 드리우지 못하게 됩니다. 

 

위 그림에서 박스가 캐릭터에 그림자를 드리우지 못하는 것을 보면 알 수 있습니다. 



위의 내용을 다시 보면 아래와 같습니다. 



반응형

댓글