一、参考与说明(需要写在开始东西):
1.1 Unity Shader 入门精要学习
https://github.com/candycat1992/Unity_Shaders_Book/tree/unity_5_4github.com1.2 写在开头,最近一直在关注渲染方面的文章,越看越发现,还是自下而上的学习路线比较好,了解背景原理,学习上层知识才更容易。但也确实发现,一头扎进去很容易迷茫,要学的要看的东西太多,现实也有各种原因,需要你快速直接的实现一些效果。这也是unity shader的好处,Unity在底层做了很多事情,我们只需要编写简单的代码,就可以看到效果,而且也有很多官方的shader案例,可以供我们参考。我想这大概也是作者想做的事情,让大家可以先有能力读懂shader代码,就像文字和词组的组合可以创造出很多不同的文章,但是学习还是要从文字开始,后面就要看大家的想象力了。同时又时间和能力的话,还是要保持对底层原理的学习,内功修炼要持久。
二、shader背景
我相信学习unity shader 大家一定听到过很多专业名词,比如:hlsl,glsl,cg,surfaceshader,vertex shader, fragment shader等等,我想还是有必要做个解释的。unity shader 支持如下三种语法:
- glsl -- OpenGL ShadingLanguage (基于OpenGL)
- hlsl -- High Level Shading Language (基于DirectX)
- cg -- C for Graphic (基于NVIDIA)
其中hlsl和cg比较常用,surfaceshader这个看了渲染管线可以知道,shader并没有surfaceshader,unity 也一样,支持 vertex fragment shader, surfaceshader是对顶