Unity シェーダーディレクティブショートカットを使用して、シェーダーキーワードとバリアントのセットを作成できます。例えば、以下の例では、SHADOWS_DEPTH と SHADOWS_CUBE のキーワードとバリアントを追加しています。
#pragma multi_compile_shadowcaster
| ショートカット | 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
|
いいえ | リアルタイムのライトとシャドウを描画するすべてのパス (ライトプローブを除く)。 | ||||
multi_compile_particles |
SOFTPARTICLES_ON |
はい | パーティクルシステムがパス。 | ||||
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_fwdadd セットのキーワードを追加し、POINT バリアントと POINT_COOKIES バリアントを削除します。
#pragma multi_compile_fwdadd
#pragma skip_variants POINT POINT_COOKIE
バリアントの削除の詳細については、シェーダーバリアントストリッピングを参照してください。