在 HLSL 中,#pragma
指令是一种预处理指令,用于向着色器编译器提供其他类型预处理指令未涵盖的附加信息。
(一).使用 #pragma 指令
#pragma
指令可放置在 HLSL 代码的任意位置,但通常的惯例是将它们放在代码开头,例如:
hlsl
#pragma target 3.0
#pragma exclude_renderers vulkan
#pragma vertex vert
#pragma fragment frag
// 其余HLSL代码置于此处
(二).限制条件
使用#pragma
指令时存在以下限制:
-
条件指令中的使用限制
仅当条件表达式仅依赖于以下内容时,才能在条件指令(#if
)内使用#pragma
:- 自定义的
#define
指令 - 平台关键字:
SHADER_API_MOBILE
、SHADER_API_DESKTOP
、UNITY_NO_RGBM
等 UNITY_VERSION
宏
- 自定义的
-
文件类型限制