你可以声明着色器关键字,使着色器在关键字启用或禁用时表现出不同行为。这些关键字可用于常规图形着色器(包括表面着色器)和计算着色器。
(一).使用#pragma
声明着色器关键字
通过 HLSL 代码中的#pragma
指令声明关键字,示例如下:
hlsl
#pragma shader_feature REFLECTION_TYPE1 REFLECTION_TYPE2 REFLECTION_TYPE3
可使用以下指令类型:
指令 | 分支类型 | Unity 生成的着色器变体 |
---|---|---|
shader_feature |
静态分支 | 仅生成构建时启用的关键字组合变体 |
multi_compile |
静态分支 | 生成所有可能的关键字组合变体 |
dynamic_branch |
动态分支 | 不生成变体,通过 GPU 动态判断分支 |