Unity3D Shader的内建multi_compile开关所涵盖的多样体

请尊重原作者的工作,转载时请务必注明转载自:www.xionggf.com

multi_compile_fwdbase

在Unity3D 2018.4.18f1版本下实测到,如果不做其他特别的指定,一个multi_compile_fwdbase编译指令,包含了以下 9 个内建的keyword:

DIRECTIONAL DIRLIGHTMAP_COMBINED DYNAMICLIGHTMAP_ON
LIGHTMAP_ON LIGHTMAP_SHADOW_MIXING LIGHTPROBE_SH
SHADOWS_SCREEN SHADOWS_SHADOWMASK VERTEXLIGHT_ON

如果不做特别的指定的话,默认地启用了其中的 4 个内建keyword,分别是:DIRECTIONAL LIGHTPROBE_SH SHADOWS_SCREEN VERTEXLIGHT_ON组成了 8 个多样体,如下:

多样体(变体)
DIRECTIONAL
DIRECTIONAL LIGHTPROBE_SH
DIRECTIONAL SHADOWS_SCREEN
DIRECTIONAL LIGHTPROBE_SH SHADOWS_SCREEN
DIRECTIONAL VERTEXLIGHT_ON
DIRECTIONAL LIGHTPROBE_SH VERTEXLIGHT_ON
DIRECTIONAL SHADOWS_SCREEN VERTEXLIGHT_ON
DIRECTIONAL LIGHTPROBE_SH SHADOWS_SCREEN VERTEXLIGHT_ON

multi_compile_fwdadd

在Unity3D 2018.4.18f1版本下实测到,如果不做其他特别的指定,一个multi_compile_fwdadd编译指令,包含了以下 5 个内建的keyword:

DIRECTIONAL DIRECTIONAL_COOKIE POINT POINT_COOKIE SPOT

如果不做特别的指定的话,默认地启用了全部的 5 个内建keyword,组成了 8 个多样体,如下:

keyword组成的多样体(变体)
DIRECTIONAL
DIRECTIONAL_COOKIE
POINT
POINT_COOKIE
SPOT

multi_compile_fwdadd_fullshadows

在Unity3D 2018.4.18f1版本下实测到,如果不做其他特别的指定,一个multi_compile_fwdadd_fullshadows编译指令,包含了以下 5 个内建的keyword:

DIRECTIONAL DIRECTIONAL_COOKIE LIGHTMAP_SHADOW_MIXING POINT POINT_COOKIE
SHADOWS_CUBE SHADOWS_DEPTH SHADOWS_SCREEN SHADOWS_SHADOWMASK SHADOWS_SOFT SPOT

如果不做特别的指定的话,默认地启用了全部的 5 个内建keyword,组成了 13 个多样体,如下:

keyword组成的多样体(变体)
POINT
DIRECTIONAL
SPOT
POINT_COOKIE
DIRECTIONAL_COOKIE
SHADOWS_DEPTH SPOT
SHADOWS_DEPTH SHADOWS_SOFT SPOT
DIRECTIONAL SHADOWS_SCREEN
DIRECTIONAL_COOKIE SHADOWS_SCREEN
POINT SHADOWS_CUBE
POINT SHADOWS_CUBE SHADOWS_SOFT
POINT_COOKIE SHADOWS_CUBE
POINT_COOKIE SHADOWS_CUBE SHADOWS_SOFT

参考网页:

https://docs.unity3d.com/Manual/SL-ShaderPerformance.html

https://www.cnblogs.com/sifenkesi/p/4716791.html