版本:Unity 6 (6000.0)
语言:英语
静态和动态分支简介
通过内置宏在着色器中进行分支

着色器中的静态和动态分支

有关更多信息,请参阅 着色器中静态和动态分支简介

静态分支

您可以通过以下方式在您的 着色器在 GPU 上运行的程序。 更多信息
词汇表 中查看
中使用静态分支

  • 在手动编写的着色器中
    • 使用 #if#elif#else#endif 预处理器指令,或 #ifdef#ifndef 预处理器指令来创建静态分支。
    • 使用 if 语句 来计算编译时常量值。虽然 if 语句也可以用于动态分支,但编译器会检测到编译时常量值并创建静态分支。
    • Unity 提供 内置宏,用于一些您可以与静态分支一起使用的编译时常量。

注意: 静态分支仅在手动编写的着色器中可用。您不能在 Shader Graph 中创建静态分支。

动态分支

您可以通过以下方式在您的着色器中使用动态分支

  • 在手动编写的着色器中
    • 可选:设置 着色器关键字 以用于动态分支。您可以在没有着色器关键字的情况下使用动态分支,但这提供了简单的设置和每个材质的配置。
    • 使用 if 语句 来计算着色器关键字(如果使用)或任何其他运行时状态。您可以使用属性来强制 GPU 执行两个分支,或仅执行一个分支。
  • 在 Shader Graph 中,使用 分支节点。这始终执行两个分支。
静态和动态分支简介
通过内置宏在着色器中进行分支