Unity3d Shader开发(五)Fallback ,Category

Fallback定义在所有子着色器后。简单来说,它表示"如果没有任何子着色器能被运行在当前硬件上,请尝试使用降级着色器"。

Syntax 语法

Fallback "name"
退回到给定名称的着色器
Fallback Off
显式声明没有fallback并且不会打印任何警告,甚至没有子着色器会被运行

Details 细节

Fallback标志的功能和将另一个着色器的所有子着色器拷贝到标志所在位置所起的功能相同

Example 示例

Shader "example" {
    // properties and subshaders here...
    // 属性和子着色器在此
    Fallback "otherexample"
}

Category 分类是如下任意命令的逻辑组。大多数情况下是被用于继承渲染状态。例如,你的着色器可以有多个子着色器,他们都需要关闭雾效果,附加的混合,等等。你能在这些情况使用种类:

Shader "example" {
Category {
    Fog { Mode Off }
    Blend One One
    SubShader {
        // ...
    }
    SubShader {
        // ...
    }
    // ...
}
}

分类块只影响着色器解析,作用和粘贴状态集到分类所包含的子着色器块中的效果一样。完全不影响着色器的运行速度。

原文地址:https://www.cnblogs.com/martianzone/p/3358771.html