Version: 6000.3
语言: 中文
HLSL 编译指示参考
HLSL 编译指示需要命令引用

HLSL 编译指示目标命令参考

这是列表着色器在 GPU 上运行的程序。更多信息
请参阅术语表
Unity 使用的模型,以及#pragma require每个值对应的值。

注意:Unity 的着色器模型类似于 DirectX 着色器模型和 OpenGL 版本要求,但它们并不完全对应。仔细阅读说明,以确保您了解其中的差异。

价值 描述 支持 等效#pragma require
2.0 等效于 DirectX 着色器模型 2.0
数量
有限的算术和纹理指令;8 个插值器;无顶点纹理采样;片段着色器中没有衍生物;没有显式LOD纹理采样。
适用于 Unity 支持的所有平台。 不适用
2.5 与 3.0 几乎相同,但只有 8 个插值器,并且没有显式 LOD 纹理采样。 DirectX 11 功能级别 9+
OpenGL 3.2+
Vulkan
Metal
derivatives
3.0 相当于 DirectX 着色器模型 3.0

DirectX 11 功能级别 10 +
OpenGL 3.2+
OpenGL ES 3.0+
Vulkan
Metal
一切2.5加:
interpolators10 samplelod fragcoord
3.5 相当于 OpenGL ES 3.0

DirectX 11 功能级别 10+
OpenGL 3.2+
OpenGL ES 3+
Vulkan
Metal
一切3.0加:
interpolators15 mrt4 integers 2darray instancing
4.0 等效于 DirectX 着色器模型 4.0,但不需要支持 8 个 MRT。 DirectX 11 功能级别 10+
桌面 OpenGL 3.x
OpenGL ES 3.1
OpenGL ES 3.1 + Android 扩展包 (AEP)
OpenGL 3.2+
Vulkan
Metal(如果未定义几何阶段)
一切3.5加:
geometry
gl4.1 等效于 OpenGL 4.1 桌面版 OpenGL 4.1
着色器模型 4.0 + 曲面细分,以匹配 macOS 10.9 功能。
一切4.0加:
cubearray tesshw tessellation msaatex
4.5 相当于 OpenGL ES 3.1 DirectX 11 功能级别 11+
OpenGL 4.3+
OpenGL ES 3.1
Vulkan
Metal
一切3.5加:
compute randomwrite msaatex
4.6 相当于 OpenGL 4.1

这是 Mac 上支持的最高 OpenGL 级别。
DirectX 11 功能级别 11+
OpenGL 4.1+
OpenGL ES 3.1 + AEP
Vulkan
Metal(如果未定义几何级,并且未定义外壳或域级)
一切4.0加:
cubearray tesshw tessellation msaatex
5.0 等效于 DirectX 着色器模型 5.0,但不需要支持 32 个插值器或立方体贴图数组。 DirectX 11 功能级别 11+
桌面 OpenGL >= 4.2
OpenGL 4.3+
OpenGL ES 3.1 + AEP
Vulkan
Metal(如果未定义几何级,并且未定义外壳或域级)
一切4.0加:
compute randomwrite msaatex tesshw tessellation

有关控制台平台的着色器模型支持的信息,请参阅特定于平台的文档。

笔记:

  • 在 DirectX 定义中,着色器模型 4.0 包括mrt8,着色器模型 5.0 包括interpolators32cubearray.为了获得更广泛的兼容性,Unity 不包括这些内容。若要要求这些功能,请使用显式#pragma require命令。
  • 如果您使用的目标需要geometry但着色器未定义几何阶段,Unity 会删除geometry从编译时的需求列表中。
  • 如果您使用的目标需要tessellation但您的着色器未定义外壳或域阶段,Unity 会删除tessellation从编译时的需求列表中。
HLSL 编译指示参考
HLSL 编译指示需要命令引用