《Unity Shaders and Effects Cookbook》阅读笔记,找了很久ShaderLab的教程......结合官网教程学习ShaderLab。
用一个最简单的Shader展示一下shader代码的结构:
第一行代码Shader后跟的是shader的名字,在给Material添加Shader时根据shader名找到对应shader:
以上这个再简单不过的Shader由Properties部分和SubShader部分构成。
其中Properties定义了一系列Shader中用到的参数,这些参数可以在添加了相应Shader的Material的Inspector面板中看到,例如上述代码中
_Color("Main Color", Color) = (0,1,1,1)
为Material的Inspector添加了一个颜色的GUI元素:
常见Properties类型:
-
Numbers and Sliders
name ("display name", Range (min, max)) = number name ("display name", Float) = number name ("display name", Int) = number
-
Colors and Vectors
name ("display name", Color) = (number,number,number,number) name ("display name", Vector) = (number,number,number,number)
-
Textures
name ("display name", 2D) = "defaulttexture" {} name ("display name", Cube) = "defaulttexture" {} name ("display name", 3D) = "defaulttexture" {}
一个属性定义的结构:
要在SubShader中调用之前Properties中定义的那些变量,需要在SubShader中创建与之具有相同名称的变量。
例如对于前述的_Color,就需要创建
CGPROGRAM float4 _Color;
注意变量创建在CGPROGRAM之后。
Unity Shaders and Effects Cookbook PDF:http://pan.baidu.com/s/1o8gCtvk (我看的这本是Unity4的,就着文档也能看,就没纠结版本了)
时间: 2024-10-23 09:12:29