Shader的结构
一个UnityShader的结构如下所示:
Shader "ShaderName"{
Properties{
_value("valueName",valueType) = DefaultValue
}
SubShader{
//SubShader1
}
SubShader{
//SubShader2
}
Fallback "FallbackType"
}
1.Properties
Properties中定义了使用的属性,一般以下划线开始,常见的有以下几种:
_Float("FloatName",Float) = 1.5
_Range("RangeName",Range(0.0, 1.0) ) = 0.5
_Color("ColorName", Color) = (1,1,1,1)
_2D("TextureName", 2D) = ""{}
_Cube("CubeName", Cube) = "white"{}
_3D("3DName", 3D) = "black"{}
Float是一个浮点数,Range表示一个可选的范围,Color是一个四维数,注意2D,Cube,3D的初始化形式。
2.SubShader
在SubShader中定义了可选的状态,标签和一系列的Pass,但是Pass数目过多会引起渲染性能的下降
SubShader中常见的