2014년 10월 21일 화요일

포프님의 셰이더 유니티로 구현하기 1. Diffuse Shader







포프님의 셰이더 책에 있는 내용을 유니티에서 구현하면서 셰이더 공부를 하기로 했다. 난 어차피 유니티만 쓰니깐..빨강 셰이더는 그냥 패스.

유니티가 CG를 사용하긴 하지만, 뭐 문법은 거의 차이가 없다. 대부분 그대로 옮겨도 가능할 정도로.

어쨌든 공부한 결과물을 올림으로써 개인적인 만족을 얻기 위함이다. 이렇게라도 해야 공부를 하지.

공부하면서 특이점이라고 할만한것은 포프님의 Diffuse Shader 내용을 그대로 구현하더라도 빛의 회전에 대해서 반응이 없다.

구글님에게 도움을 청하니 이리 하라신다.





저기 Tags{ "LightMode" = "ForwardBase" } 이거. 이걸 해주니 비로소 반응을 보인다. 그럼 대체 이놈이 뭔지 알아야 할 것 아닌가?

유니티 메뉴얼을 보자.

http://docs.unity3d.com/Manual/SL-PassTags.html



기껏 캡쳐해서 이미지까지 올렸다니 왜이리 글씨가 작은 것이다냐..그냥 링크타고 들어가서 보시요...

설명에 보면 선택할 수 있는 Tag 중 ForwardBase는 Forward Rendering을 사용하고, ambient(주변광)과 main directional light(!!!) 그리고 vertex/SH light가 적용된다고 한다.

지금 Directional light를 쓰고 있으니, 이 놈이 맞는것 같다. 다른 Tag들은 아직 나도 공부를 안 해서 뭔지 모르겠다. 다만 이런게 있구나~하고 이걸 안 쓰면 Directional light를 회전 시켜도 셰이더가 안 먹는다라는걸 인지하고 있자. 차차 알게 되겠지.

여하튼 이거 말고는 딱히 거슬리는 부분은 없었다. 워낙 포프님이 설명을 디테일하게 잘 해주셔서..

뭐 시작은 큰 무리없이 무난하게 넘어간 듯.



댓글 없음:

댓글 쓰기