本文为ShaderLab系列学习文章,文中内容为Unity5.X游戏开发技术详解和典型案例,希望对正在学习或者想要学习ShaderLab的人有所帮助,如文章有任何错误还请读者帮忙指正,谢谢!
第一天:ShaderLab基础
1.Shader
什么是Shader:Shader是一个着色器程序的跟命令,每一个着色器程序都必须定义唯一一个Shader,其中定义了材质如何使用这个着色器渲染对象。Shader命令语法如下。
Shader "ShaderName"{
[Properties]
SubShader{......}
[Fallback]
}
1:Shader为关键字,定义这是一个Shader着色器, ShaderName为自己定义的Shader的名称, Properties为材质的属性列表,后面紧跟随着SubShader列表,最后面可以添加Fallback代码块。
2:着色器拥有一个Properties的列表。任何定义在着色器程序中的属性都会显示在属性查看器中,典型的有颜色、纹理或者任何被着色器所使用的数据。
3:着色器程序中包含至少一个子着色器,即SubShader,当加载一个着色器程序时,unity将遍历这个列表,获取第一个能够被用户机器支持的子着色器,如果没有一个着色器被支持,unity将尝试降级着色器,即Fallback操作。
2:着色器的三种形态
1:固定管线着色器
固定管线着色器是在老一代GPU能力有限是,对着色器的约束性比较高的一种形态。为了市场占有率,新一代的显卡仍然对齐有所选择的支持,但