包含此页的版本:
不含此页的版本:
一些#pragma指令采用允许您定位特定图形 API 和平台的参数。此页面包含有关使用这些指令的信息,并提供有效参数值的列表。
默认情况下,Unity 会编译所有着色器在 GPU 上运行的程序。更多信息
请参阅术语表当前生成目标列表中每个图形 API 的程序。有时,您可能只想为某些图形 API 编译某些着色器程序;例如,如果您使用并非所有平台都支持的功能。
要仅为给定的 API 编译着色器程序,请使用#pragma only_renderers命令。您可以传递多个值,以空格分隔。
此示例演示了如何仅为 Metal 和 Vulkan 编译着色器:
#pragma only_renderers metal vulkan
若要从给定编译器的编译中排除着色器代码,请使用#pragma exclude_renderers命令。您可以传递多个值,以空格分隔。
此示例演示了如何从 Metal 和 Vulkan 的编译中排除着色器:
#pragma exclude_renderers metal vulkan
在内置渲染管线(Render Pipeline) 获取场景内容并将其显示在屏幕上的一系列作。Unity 允许您从预构建的渲染管道中进行选择,或编写自己的渲染管道。更多信息
请参阅术语表,Unity 自动生成着色器变体Unity 根据着色器关键字及其状态的特定组合生成的着色器程序的版本。一个着色器对象可以包含多个着色器变体。更多信息
请参阅术语表在特定条件下对应于图形层。如果需要,您还可以强制 Unity 生成这些变体。
为此,请使用#pragma hardware_tier_variantspreprocessor 指令,并指定要为其生成层着色器变体的图形 API。
例如,这指示 Unity 编译 Metal 的层着色器变体:
#pragma hardware_tier_variants metal
支持的值包括:
| 价值 | 描述 |
|---|---|
d3d11 |
DirectX 11 功能级别 10 及更高版本,DirectX 12 |
glcore |
OpenGL 3.x、OpenGL 4.x |
gles3 |
OpenGL ES 3.x,WebGL一种在 Web 浏览器中呈现 2D 和 3D 图形的 JavaScript API。Unity Web 构建选项允许 Unity 将内容发布为 JavaScript 程序,这些程序使用 HTML5 技术和 WebGL 渲染 API 在 Web 浏览器中运行 Unity 内容。更多信息 请参阅术语表2.0 |
metal |
iOS 或 Mac 上的 Metal |
ps4 |
游戏机®4 |
ps5 |
游戏机®5 |
switch |
任天堂Switch™ |
vulkan |
火神 |
webgpu |
WebGPU |
xboxseries |
Xbox Series S|X |