Version: 6000.3
语言: 中文
在脚本中切换着色器关键字
通过内置宏在着色器中分支

添加内置关键字集

您可以使用 Unity着色器在 GPU 上运行的程序。更多信息
请参阅术语表
指令快捷方式,以创建着色器关键字和变体集。例如,以下示例将SHADOWS_DEPTHSHADOWS_CUBE关键字和变体:

#pragma multi_compile_shadowcaster

着色器指令快捷方式

捷径 Unity 添加的着色器关键字 Unity 添加了一个着色器变体,所有关键字都关闭了 使用着色器变体的着色器通道
multi_compile_fog FOG_LINEAR,FOG_EXP,FOG_EXP2 是的
multi_compile_fwdadd POINT DIRECTIONAL SPOT POINT_COOKIE DIRECTIONAL_COOKIE PassType.ForwardAdd
multi_compile_fwdadd_fullshadows POINT,DIRECTIONAL,SPOT,POINT_COOKIE,DIRECTIONAL_COOKIE,SHADOWS_DEPTH SHADOWS_SCREEN SHADOWS_CUBE SHADOWS_SOFT SHADOWS_SHADOWMASK,LIGHTMAP_SHADOW_MIXING PassType.ForwardAdd. 添加了灯光具有实时阴影的功能。
multi_compile_fwdbase DIRECTIONAL,LIGHTMAP_ON,DIRLIGHTMAP_COMBINED,DYNAMICLIGHTMAP_ON,SHADOWS_SCREEN,SHADOWS_SHADOWMASK,LIGHTMAP_SHADOW_MIXING,LIGHTPROBE_SH PassType.ForwardBase.
multi_compile_fwdbasealpha DIRECTIONAL,LIGHTMAP_ON,DIRLIGHTMAP_COMBINED,DYNAMICLIGHTMAP_ON,LIGHTMAP_SHADOW_MIXING,VERTEXLIGHT_ON,LIGHTPROBE_SH PassType.ForwardBase
multi_compile_instancing INSTANCING_ON. 还添加PROCEDURAL_ON如果您的项目使用过程实例化。 是的 实例化
multi_compile_lightpass POINT,DIRECTIONAL,SPOT,POINT_COOKIE,DIRECTIONAL_COOKIE,SHADOWS_DEPTH,SHADOWS_SCREEN,SHADOWS_CUBE,SHADOWS_SOFT,SHADOWS_SHADOWMASK,LIGHTMAP_SHADOW_MIXING 绘制实时光影的所有通道,但光源探针光探针存储有关光线如何穿过场景中的空间的信息。排列在给定空间中的光源探针集合可以改善移动对象的光照和该空间内的静态LOD场景。更多信息
请参阅术语表
.
multi_compile_particles SOFTPARTICLES_ON 是的 粒子系统通过在场景中生成大量小型 2D 图像并为其设置动画来模拟流体实体(如液体、云和火焰)的组件。更多信息
请参阅术语表
通过。
multi_compile_prepassfinal LIGHTMAP_ON,DIRLIGHTMAP_COMBINED,DYNAMICLIGHTMAP_ON,UNITY_HDR_ON,SHADOWS_SHADOWMASK,LIGHTPROBE_SH 是的 PassType.Deferred
multi_compile_shadowcaster SHADOWS_DEPTH,SHADOWS_CUBE PassType.ShadowCaster
multi_compile_shadowcollector SHADOWS_SPLIT_SPHERES,SHADOWS_SINGLE_CASCADE 是的 屏幕空间阴影。

移除变体

您可以使用skip_variants指令来删除您不使用的关键字。

例如,以下示例将关键字添加到multi_compile_fwdaddset,但删除了POINTPOINT_COOKIES变种。

#pragma multi_compile_fwdadd
#pragma skip_variants POINT POINT_COOKIE

有关删除变体的更多信息,请参阅条带着色器变体。

其他资源

在脚本中切换着色器关键字
通过内置宏在着色器中分支