본문 바로가기
Shader

Surface shader 로 vertexlit 전용 shader나 SH Light 전용 shader를 만들 수 있는가?

by 대마왕J 2014. 5. 13.

기본적으로는 안된다고 알고 있다.

그런데 이곳저곳 돌아다니다가 , 이 부분을 지원하는 함수가 존재한다는 것을 알게 되었다.

 

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의 서피스 버전도 실패다.

 

아무래도 이 라이팅 함수는 프래그먼트에서만 작동한다고 알고 있는 것이 맞는듯 하다.

 

 

반응형

댓글