Properties
上一节我们了解了一个Shader的基本结构,这一节,我们从 Properties 代码块入手,了解Shaderlab的参数组成。
如何声明Properties
常规属性
Properties的属性常用的主要有以下几类: Numbers (数值)、 Colors(颜色) 、 Vectors (向量)、 Textures (纹理),其中,对于数值属性,还提供了Range()设置区间值限定数值范围(注意,属性中没有 Matrices (矩阵))。下面给出一些Shader的属性定义方法,具体的属性值以及默认参数可以参考Unity官方文档ShaderLab: Properties(unity3D/Editor/Data/en/Manual/SL-Properties.html)。
//定义Numbers(数值)和Sliders(区间值)
name ("display name", Range (min, max)) = number
name ("display name", Float) = number
name ("display name", Int) = number
//定义Colors(颜色)和Vectors(向量)
//颜色表示为一个四维向量,对应颜色的RGBA通道;每个分量取值为[0,1]
//向量必须是四维向量
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" {}
Texture(纹理)
Unity给出了纹理声明时可选的默认默认值:
对于 2D Texture(2维纹理)
内置默认值 | (R,G,B,A) |
---|---|
empty string | |
“white” | 1, |