Unity3D:面向 HLSL 中的图形 API 和平台

推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT简石数字孪生

面向 HLSL 中的图形 API 和平台

某些 #pragma 指令采用允许您面向特定图形 API 和平台的参数。本页包含有关使用这些指令的信息,并提供有效参数值的列表。

包含或排除图形 API

默认情况下,Unity 会为当前构建目标列表中的每个图形 API 编译所有着色器程序。有时,您可能只想为某些图形 API 编译某些着色器程序;例如,如果您使用并非所有平台都支持的功能。

若要仅为给定 API 编译着色器程序,请使用该指令。您可以传递多个值,空格分隔。#pragma only_renderers

此示例演示如何仅为 Metal 和 Vulkan 编译着色器:

#pragma only_renderers metal vulkan

若要从给定编译器的编译中排除着色器代码,请使用该指令。您可以传递多个值,空格分隔。#pragma exclude_renderers

此示例演示了如何从 Metal 和 Vulkan 的编译中排除着色器:

#pragma exclude_renderers metal vulkan

为给定图形 API 的图形层生成着色器变体

在内置渲染管线中,Unity 会自动生成与特定条件下的图形层相对应的着色器变体。如果需要,您还可以强制 Unity 生成这些变体。

为此,请使用预处理器指令并指定要为其生成层着色器变体的图形 API。#pragma hardware_tier_variants

例如,这将指示 Unity 编译 Metal 的层着色器变体:

#pragma hardware_tier_variants metal

有效参数值列表

支持的值包括:

描述
d3d11DirectX 11 功能级别 10 及更高版本,DirectX 12
glesOpenGL ES 2.0, WebGL 1.0
gles3OpenGL ES 3.x, WebGL 2.0
ps4游戏机 4
xboxoneXbox One 和 GameCore、DirectX 11 和 DirectX 12
metaliOS/Mac Metal
glcoreOpenGL 3.x, OpenGL 4.x
vulkan火山
switch任天堂开关
ps5游戏机 5

3D建模学习工作室整理翻译,转载请注明出处!

上一篇:Unity3D:面向 HLSL 中的着色器模型和 GPU 功能 (mvrlink.com)

下一篇:Unity3D:在 HLSL 中声明和使用着色器关键字 (mvrlink.com)

NSDT场景编辑器 | NSDT 数字孪生 | GLTF在线编辑器 | 3D模型在线转换 | UnrealSynth虚幻合成数据生成器 | 3D模型自动纹理化工具
2023 power by nsdt©鄂ICP备2023000829号