在编译着色器时由编辑器根据目标平台和GraphicsTier设置的定义。
UNITY_NO_DXT5nm | 当为不支持 DXT5NM 的平台编译着色器时,会设置 UNITY_NO_DXT5nm,这意味着法线贴图将以 RGB 格式进行编码。 |
UNITY_NO_RGBM | 当为不支持 RGBM 的平台编译着色器时,会设置 UNITY_NO_RGBM,因此将使用 dLDR 代替。 |
UNITY_ENABLE_REFLECTION_BUFFERS | 当延迟着色在延迟模式下渲染反射探头时,会设置 UNITY_ENABLE_REFLECTION_BUFFERS。使用此选项设置,反射将渲染到每个像素缓冲区中。这类似于将灯光渲染到每个像素缓冲区的方式。在使用延迟着色时,UNITY_ENABLE_REFLECTION_BUFFERS 默认情况下处于开启状态,但您可以通过在图形设置中将延迟反射着色器选项设置为“不支持”来关闭它。当该设置关闭时,反射探头会像正向渲染一样逐对象进行渲染。 |
UNITY_FRAMEBUFFER_FETCH_AVAILABLE | 当为可能支持帧缓冲区提取的平台编译着色器时,会设置 UNITY_FRAMEBUFFER_FETCH_AVAILABLE。 |
UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS | UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS 启用在 OpenGL ES 2.0 上使用内置阴影比较采样器。 |
UNITY_METAL_SHADOWS_USE_POINT_FILTERING | 如果阴影采样器应在 iOS Metal 上使用点过滤,则会设置 UNITY_METAL_SHADOWS_USE_POINT_FILTERING。 |
UNITY_NO_SCREENSPACE_SHADOWS | 当禁用屏幕空间级联阴影贴图时,会设置 UNITY_NO_SCREENSPACE_SHADOWS。 |
UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS | 当启用半透明阴影时,会设置 UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS。 |
UNITY_PBS_USE_BRDF1 | 如果应使用 Standard Shader BRDF1,则会设置 UNITY_PBS_USE_BRDF1。 |
UNITY_PBS_USE_BRDF2 | 如果应使用 Standard Shader BRDF2,则会设置 UNITY_PBS_USE_BRDF2。 |
UNITY_PBS_USE_BRDF3 | 如果应使用 Standard Shader BRDF3,则会设置 UNITY_PBS_USE_BRDF3。 |
UNITY_SPECCUBE_BOX_PROJECTION | 如果启用了反射探头盒投影,则会设置 UNITY_SPECCUBE_BLENDING。 |
UNITY_SPECCUBE_BLENDING | 如果启用了反射探头混合,则会设置 UNITY_SPECCUBE_BLENDING。 |
UNITY_ENABLE_DETAIL_NORMALMAP | 如果应在分配时对细节法线贴图进行采样,则会设置 UNITY_ENABLE_DETAIL_NORMALMAP。 |
SHADER_API_MOBILE | 当为移动平台编译着色器时,会设置 SHADER_API_MOBILE。 |
SHADER_API_DESKTOP | 当为“桌面”平台编译着色器时,会设置 SHADER_API_DESKTOP。 |
UNITY_HARDWARE_TIER1 | 当为 GraphicsTier.Tier1 编译着色器时,会设置 UNITY_HARDWARE_TIER1。 |
UNITY_HARDWARE_TIER2 | 当为 GraphicsTier.Tier2 编译着色器时,会设置 UNITY_HARDWARE_TIER2。 |
UNITY_HARDWARE_TIER3 | 当为 GraphicsTier.Tier3 编译着色器时,会设置 UNITY_HARDWARE_TIER3。 |
UNITY_COLORSPACE_GAMMA | 当为伽马颜色空间编译着色器时,会设置 UNITY_COLORSPACE_GAMMA。 |
UNITY_LIGHT_PROBE_PROXY_VOLUME | 当光探头代理体积功能受当前图形 API 支持并在图形层级设置中启用时,会设置 UNITY_LIGHT_PROBE_PROXY_VOLUME。您只能在内置渲染管线中设置图形层级。 |
UNITY_LIGHTMAP_DLDR_ENCODING | 当光照贴图纹理使用双 LDR 编码来存储纹理中的值时,会设置 UNITY_LIGHTMAP_DLDR_ENCODING。 |
UNITY_LIGHTMAP_RGBM_ENCODING | 当光照贴图纹理使用 RGBM 编码来存储纹理中的值时,会设置 UNITY_LIGHTMAP_RGBM_ENCODING。 |
UNITY_LIGHTMAP_FULL_HDR | 当光照贴图纹理不使用任何编码来存储纹理中的值时,会设置 UNITY_LIGHTMAP_FULL_HDR。 |
UNITY_VIRTUAL_TEXTURING | 虚拟纹理是否在该平台上启用并受支持。 |
UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION | 当 Vulkan 预转换在目标构建平台上启用并受支持时,Unity 会启用 UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION。 |
UNITY_ASTC_NORMALMAP_ENCODING | 当在 Android、iOS 或 tvOS 上使用 DXT5nm 风格的法线贴图时,Unity 会启用 UNITY_ASTC_NORMALMAP_ENCODING。 |
SHADER_API_GLES30 | 当图形 API 为 OpenGL ES 3 并且最低支持的 OpenGL ES 3 版本为 OpenGL ES 3.0 时,会设置 SHADER_API_ES30。 |
UNITY_UNIFIED_SHADER_PRECISION_MODEL | 如果您在播放器设置中将着色器精度模型设置为统一,则 Unity 会设置 UNITY_UNIFIED_SHADER_PRECISION_MODEL。 |
UNITY_PLATFORM_SUPPORTS_WAVE_32 | 当目标平台已知支持波级着色器操作且波大小为 32 时,Unity 会设置 UNITY_PLATFORM_SUPPORTS_WAVE_32。 |
UNITY_PLATFORM_SUPPORTS_WAVE_64 | 当目标平台已知支持波级着色器操作且波大小为 64 时,Unity 会设置 UNITY_PLATFORM_SUPPORTS_WAVE_64。 |
UNITY_NEEDS_RENDERPASS_FBFETCH_FALLBACK | 当我们需要为 RenderPass 生成回退以防没有帧缓冲区提取时,会设置 UNITY_NEEDS_RENDERPASS_FBFETCH_FALLBACK。 |
UNITY_PLATFORM_SUPPORTS_DEPTH_FETCH | 如果 RenderPass 可以使用其深度附件作为输入,则会设置 UNITY_PLATFORM_SUPPORTS_DEPTH_FETCH。 |