본문 바로가기
유니티 엔진

유니티 라이트맵에서 투명도 적용하기 : Transparent Shadow in Lightmap

by 대마왕J 2014. 12. 15.

역시 이번에도 영원한 스승님인 스킬트리랩의 이득우 스승님의 도움을 받았습니다.

모르는게 없어 이 분은....

 

일단 문제가 뭐냐면, 유니티에서 라이트 맵을 구울때 투명도인 부분의 문제입니다.

 

 

 

 

이런 맵이 있다고 칩시다. 실시간 그림자예요.Shader 는 Cutout 계열.

그림자가 잘 나옵니다.

 

 

 

 

그런데 이걸 라이트맵으로 구우면 이렇게 나옵니다. 사각형으로...알파가 적용이 안돼요...

 

 

여기에는 여기 좋은 답변이 있습니다. 사실 검색만 해도 나오긴 하는군요.

 

http://answers.unity3d.com/questions/49537/can-transparent-textures-be-lightmapped.html

 

 

 

 

방법은,

 

Properties에

_TransparencyLM ("Transmission LightMap", 2D) = "white" {}

만 추가해 주면 된다는 겁니다.

이 녀석이 칼라로 그림자를 만들어 준데요 글쎄.

 

 

 

 

이런 이미지를 넣었다면.

 

 

 

 

 

 

그대로 칼라 그림자를 만들어 준다지 뭐예요 글쎄!!!!!!

 

그러므로

 

 

 

이런 흑백 이미지를 만들어 넣어준다면

 

 

 

이렇게 라이트맵을 구울 수 있다는 말이지요!!!!

 

이건 스테인드 글라스에도 응용 할 수 있겠어요!!! 엄청 유용하네요!!!!!

 

 

 

이렇게 만든 라이트맵은, 다른 일반적인 라이트맵과도 혼용해서 쓰는데 아무 문제가 없습니다. 짱이다 이거.

 

 

 

 

ps.

pragma debug 옵션으로 내부 코드도 보려 했었는데 보는데 실패했습니다. 왜 프래그먼트가 안생기지...?

ps2.

남기영님의 제보에 따르면 , 이름에 Transparent Cutout  이라고만 되어 있으면 투명도가 빠진다고 한다.

Beast에서 왠지 Cutout이란 단어를 찾는것 같다는 말씀.

반응형

댓글