UnityShader的形式
一个典型的UnityShader结构如下
Shader"Custom/myShader"
{
Properties
{
//各种属性
}
SubShader
{
//Shader代码1
}
SubShader
{
//Shader代码2
}
//....
SubShader
{
//Shader代码n
}
Fallback "Diffuse"
}
大体上来说包含三部分
- Properties:存放各种需要使用的属性值,如颜色
- SubShader:真正意义上Shader代码所在的位置,SubShader可以有很多个,但使用时只用一个,这主要是为了做硬件适配,编译时,unity会从上向下找到第一个可以使用的SubShader。
- Fallback:当所有SubShader在当前硬件上都无法使用时,将通过Fallback执行一个默认而基本的着色器,确保在最差情况下依然可以进行渲染