Version: 2019.3
GLSL 着色器程序
着色器编译目标级别

Unity 中使用的着色语言

Unity’s shader programs uses a variant of the HLSL language. HLSL is sometimes called Cg but it’s worth bearing in mind that Unity does not use Cg.

着色器编译器

不同平台使用不同的着色器编译器来编译着色器程序,如下所述:

  • Windows and Microsoft platforms (DX11, DX12 and Xbox One) all use Microsoft’s HLSL compiler (currently d3dcompiler_47).
  • OpenGL Core、OpenGL ES 3、OpenGL ES 2.0 和 Metal 使用 Microsoft 的 HLSL,然后使用 HLSLcc 按字节代码转换为 GLSL 或 Metal。
  • 其他游戏主机平台使用其各自的编译器(例如,PS4 使用 PSSL)。
  • 表面着色器使用 HLSL 和 MojoShader 来完成代码生成分析步骤。

可以使用预定义着色器宏来确定 Unity 在使用哪个编译器(例如,使用仅一种编译器支持的 HLSL 语法)或解决编译器错误。

另请参阅

GLSL 着色器程序
着色器编译目标级别