책 '유니티 쉐이더 스타트업' 을 보고 공부했습니다.
인터넷 '포프의 쉐이더 입문강좌' 를 참고했습니다. ( https://kblog.popekim.com/2011/11/01-part-1.html )
유니티 쉐이더는 ShaderLab(쉐이더랩)이라고 불리는 자체 스크립트 언어를 이용합니다.
스크립트로 제작된 이유
유니티가 멀티 플랫폼 제작을 지원하기 때문에, 여러가지 경우의 수가 많습니다. 그림자의 유무, 라이트맵의 유무 등등
많은 경우에 따라 제작방법이 달라지기 때문에, 각각 작성하고 관리하기 힘듭니다.
스크립트를 사용하게 되면, 문법에 맞추어 하나의 쉐이더만 작성하면 됩니다.
ShaderLab을 이용한 제작 방식
크게 세 가지로 나뉩니다.
1. ShaderLab(쉐이더랩)으로만 작성하기
2. Surface Shader(서피스 쉐이더)로 작성하기
3. Vertex & Fragment Shader(버텍스 & 프레그먼트 쉐이더)로 작성하기
각각 설명하겠습니다.
1. ShaderLab (고정 파이프라인 쉐이더)
ShaderLab 문법만 이용해서 작성하는 방법입니다.
매우 가볍고 하드웨어 호환성이 좋습니다.
기능이 상당히 부족해서, 고급 효과를 기대하기 어렵습니다.
자체 문법이기 때문에, 다른 쉐이더 문법과 거의 호환되지 않습니다.
추천 X.
2. Surface Shader (Surface는 표면이라는 뜻을 가짐.)
ShaderLab 스크립트와 함께 일부분은 CG 쉐이더 코드를 사용하는 방법입니다.
기본적인 조명 코드와 버텍스 쉐이더의 복잡한 부분은 자동으로 처리됩니다.
그래서 픽셀 쉐이더 부분만 간편하게 작성할 수 있습니다.
최적화에는 다소 무리가 있고, 일정 수준 이상의 고급 기번을 구현하기에는 어렵습니다.
비주얼 쉐이더 에디터와 비슷한 개념을 가지고 있기 때문에, 공부하기에 좋습니다.
3. Vertex & Fragment Shader
ShaderLab 스크립트와 함께 CG 쉐이더 코드를 사용하지만, 좀 더 본격적인 쉐이더 작성 방법입니다.
자동으로 처리해주는 부분이 별로 없어서 대로 된 CG 쉐이더 방식입니다.
어렵지만, 완전히 수동으로 제어할 수 있어서 최적화와 고급 기법을 표현할 때 좋습니다.
'기타 > Unity' 카테고리의 다른 글
[Unity Shader] 쉐이더 인터페이스, Properties (0) | 2018.11.30 |
---|---|
[Unity Shader] Surface Shader 구조 (0) | 2018.11.30 |
[Shader] 쉐이더(Shader)란? (0) | 2018.11.29 |
[Unity Effect] 반짝이는 공 이펙트 (0) | 2018.11.16 |
[Shader] 커스텀 라이트 1 / Lambert 라이트 (0) | 2018.11.15 |