본문 바로가기
유니티 엔진

유니티 5.6 라이트맵 변화 연구4 - 믹스드 라이트맵(Mixed lightmap)2

by 대마왕J 2017. 7. 26.

그래서 믹스드 라이트에서 새로 생긴 셰도우 마스크 기술에 대한 얘길 하고 있었죠. 에헴. 


네에 근데 셰도우 마스크에도 두 종류가 만들어져 있어요 


일단 용어부터 정리하고 가죠. 

셰도우 맵 : 실시간 그림자를 의미한다고 생각하시면 됩니다. 

셰도우 마스크 : 라이트맵처럼 그림자만 따로 구워 놨다고 생각하시면 됩니다. 


일단 그 전에 subtractive 라이트맵의 한계부터 보지요 


분명 베이크드 라이트맵과 다이나믹 라이트맵의 그림자는 다른 그림자입니다. 

베이크드는 현재 라이트맵에 포함되어 그려진거고 

다이나믹은 실시간 라이트맵이니까요 




색상을 잘 맞추면 어떻게 되겠습니다만, 아무리 색상을 맞춘다 하더라도 문제점은 보입니다 


일단 두 그림자가 서로 다른 것이기 때문에, 서로 잘 섞이질 않습니다. 눈속임을 잘 할수는 있다 하더라도 



그 다음 뒤에 가려진 다이나믹 오브젝트가 그림자로 가려지지 않는다는건데, 이건 사실 어쩔 수가 없지요. 스테틱 오브젝트가 다이나믹 그림자를 만들 순 없으니


그래서 이거에 대한 꼼수로는 라이트프로브가 권장되곤 합니다. 

아무래도 SH 정밀도 특성상 제대로 할 수는 없지만 어설프게 눈속임할 정도는 되니까요 


뭐 그래서 일단.. 그림자가 따로 노는 것 부터 잡아보자라는 느낌 같습니다만

그림자를 위한 마스크 맵을 따로 독립시키는 라이트맵이 믹스드 라이트에 들어가 있습니다. 그게 셰도우마스크 기능



Shadow Mask 


일단 믹스드 라이트에서는 주의할 점이 있네요. 대부분 신형 기능이 포워드 렌더링에서만 돌아간다는 것입니다. 디퍼드에서는 안된다고. 그리고 그림자 4개 이상은 되지 않는다고 합니다. 뭐 4개 채널밖에 지원 안하니까 어쩔 수 없겠죠 

언리얼의 스테이셔너리 라이트와 거의 같은 기술로 보입니다.  대신 포워드라는 점이 달라서 조금 차이가 있네요 언리얼은 스테이셔너리나 스테틱으로 구워도 다이나믹 오브젝트한테 셰도우를 캐스팅하는데, 유니티는 포워드라 그런지 좀 제약이 있습니다. 


뭐 말만 많이 해봤자니까 일단 .. 메뉴얼에 표가 잘 정리되어 있으므로 그걸 다시 정리합니다. 


 

다이나믹 오브젝트가 그림자 받을때  

스테틱 오브젝트가 그림자 받을때  

 

그림자 거리옵션
한계 안쪽

그림자 거리옵션
한계 이상

그림자 거리옵션
한계 안쪽

그림자 거리옵션
한계 이상

 그림자를 드리우는
다이나믹 오브젝트 

 셰도우맵
(리얼타임 셰도우)

안나옴 

 셰도우맵
(리얼타임 셰도우)

 안나옴

 그림자를 드리우는
스테틱 오브젝트 

 라이트 프로브
(안된다는 얘기잖아
)

 라이트 프로브(;;)

 셰도우 마스크맵

 셰도우 마스크맵




그래서 셰도우 마스크로 라이트맵을 굽게 되면 아래와 같이 됩니다. 

과연 , 장점으로 써 놨던 '리얼타임 라이팅때와 같은 퀄리티' 가 무슨 얘긴지 알겠군요. 그림자가 꽤 자연스럽습니다.


그림자마스크 맵이 R 채널로 생긴것을 볼 수 있습니다 .

당연히 스테틱 오브젝트한테만 적용되어 있지요 




게다가 이건 그림자맵과 그림자 마스크의 합성이므로 넘나 자연스럽게 합성됩니다. 엄머 저도 깜짝 속을 뻔

하지만 이거 역시 그림자 맵일 뿐이라서, 다이나믹 오브젝트한테 스테틱 오브젝트가 그림자를 드리우는것은 불가능합니다.  언리얼은 되던데.. 언리얼은 되던데... 언리얼은 포워드가 아니라 디퍼드여서 그런것인듯... 

역시 이럴땐 라이트 프로브를 써야 합니다. 


하지만 거꾸로 다이나믹 오브젝트가 스테틱 오브젝트한테 그림자를 드리우는 것은 되지요 . 뭐 이거야 예전 믹스드도 그랬으니까. 



또한 당연하게도 셰도우마스크는 라이트맵의 해상도 영향을 받고, 실시간 라이트 거리제한은 받지 않습니다. 




4개 이상의 그림자 마스크는 만들지 못합니다. RGBA 겠죠


셰도우맵을 확인해 보면 4개의 그림자 마스크를 볼 수 있습니다. 


사실, 그 이상도 만들 수 있습니다. 저 순서는 아마도 밝기나 거리? 중요도? 순서인 듯 하는데 그 이상으로 넘어가는 라이트의 그림자는, 베이크드와 똑같이 라이트맵에 그냥 그려집니다. 

지금 사실 위 이미지에도 그려져 있는건데 잘 안보이는 것인듯요 




그래서 라이트맵을 열어보면... 여기도 약간 보일락 말락 하지만 3개의 그림자가 라이트맵에 같이 구워져 있는걸 볼 수 있습니다. 


아무래도 4개 이상의 그림자는 힘들다고 생각하는게 편할 듯 하군요 


또 하나 재미있는건, 구워지는건 GI 데이터와 디렉셔널리티 (선택) 그림자 마스크 뿐이므로 


실제 조명 색이나 메터리얼의 알베도 색을 살짝살짝 바꾸는건 실제로 허용이 된단 말입니다. 

심지어는 점점 연하게 해서 끄는 연출도 가능합니다. 색도 바꿀 수 있고요 

물론 GI 부분에 묻어난 알베도는 변하지 않으니 옳지 않을 수 있지만, 약간이라면 충분히 눈속임할만 합니다. 


이렇게 조정이 되는군요. 구워진 상태에서도요 . 신기합니다. 


반응형

댓글