기본적으로는 안된다고 알고 있다.
그런데 이곳저곳 돌아다니다가 , 이 부분을 지원하는 함수가 존재한다는 것을 알게 되었다.
o.vertexLIght = ShadeVertexLights(v.vertex, v.normal);
이건 메뉴얼에도 나오는 vertexlight의 함수.
기본적으로 프레그먼트 shader로 짜야 작동하는 것으로 알고 있었고, 그렇게 쓰고 있었는데..
http://chulin28ho.egloos.com/viewer/5547927
갑자기 SH Light를 서피스 shader로 짤 수 있다는 글을 보게 되었다.
http://chulin28ho.tistory.com/185
오오 진짜..? 라는 감동.
여기의 중요 부분은
o.shLight = ShadeSH9 (float4 (worldN, 1.0));
이 부분인데, 함수가 지원된다.. 라는걸 보고.
SH 라이트를 서피스로 짤 수 있다면 ShadeVertexLights 함수도 surface에서 지원 가능하겠네?
라고 생각하고 해 봤는데
실패...
게다가 SH light의 서피스 버전도 실패다.
아무래도 이 라이팅 함수는 프래그먼트에서만 작동한다고 알고 있는 것이 맞는듯 하다.
반응형
'Shader ' 카테고리의 다른 글
Unity shader 메뉴 숨기기 (Hide Properties in inspector) (0) | 2014.05.19 |
---|---|
Flow shader 확장버전 (0) | 2014.05.16 |
Unity surface shader 에서 No light 모드 만들기 (0) | 2014.05.13 |
유니티 라이트 프로브 셰이더 예제 (0) | 2014.04.12 |
유니티 물 쉐이더 강의용 예제 (0) | 2014.04.10 |
댓글