Version: Unity 6.0 (6000.0)
言語 : 日本語
スクリプトでのシェーダーキーワードのトグルと確認
ビルトインマクロによるシェーダー内の分岐

ビルトインキーワードセットの追加

Unity シェーダーディレクティブショートカットを使用して、シェーダーキーワードとバリアントのセットを作成できます。例えば、以下の例では、SHADOWS_DEPTHSHADOWS_CUBE のキーワードとバリアントを追加しています。

#pragma multi_compile_shadowcaster

シェーダーディレクティブショートカット

ショートカット Unity で追加されるシェーダーキーワード バリアントはすべてのキーワードをオフにした状態で追加されます
multi_compile_fog FOG_LINEARFOG_EXPFOG_EXP2 はい フォグ multi_compile_fwdadd POINT DIRECTIONAL SPOT POINT_COOKIE DIRECTIONAL_COOKIE いいえ PassType.ForwardAdd
multi_compile_fwdadd_fullshadows POINTDIRECTIONAL``SPOTPOINT_COOKIEDIRECTIONAL_COOKIESHADOWS_DEPTH SHADOWS_SCREEN SHADOWS_CUBE SHADOWS_SOFT SHADOWS_SHADOWMASKLIGHTMAP_SHADOW_MIXING いいえ
PassType.ForwardAdd。ライトにリアルタイムの影を付ける機能を追加します。
multi_compile_fwdbase DIRECTIONALLIGHTMAP_ONDIRLIGHTMAP_COMBINEDDYNAMICLIGHTMAP_ONSHADOWS_SCREENSHADOWS_SHADOWMASKLIGHTMAP_SHADOW_MIXINGLIGHTPROBE_SH いいえ PassType.ForwardBase
multi_compile_fwdbasealpha DIRECTIONALLIGHTMAP_ONDIRLIGHTMAP_COMBINEDDYNAMICLIGHTMAP_ONLIGHTMAP_SHADOW_MIXINGVERTEXLIGHT_ONLIGHTPROBE_SH いいえ PassType.ForwardBase
multi_compile_instancing INSTANCING_ONプロジェクトでプロシージャルインスタンシングを使用している場合は、PROCEDURAL_ON も追加します。 はい インスタンシング
multi_compile_lightpass POINTDIRECTIONAL,SPOTPOINT_COOKIEDIRECTIONAL_COOKIESHADOWS_DEPTHSHADOWS_SCREENSHADOWS_CUBESHADOWS_SOFTSHADOWS_SHADOWMASKLIGHTMAP_SHADOW_MIXING いいえ リアルタイムのライトとシャドウを描画するすべてのパス (ライトプローブを除く)。
multi_compile_particles SOFTPARTICLES_ON はい パーティクルシステムがパス。
multi_compile_prepassfinal LIGHTMAP_ONDIRLIGHTMAP_COMBINEDDYNAMICLIGHTMAP_ONUNITY_HDR_ONSHADOWS_SHADOWMASKLIGHTPROBE_SH はい PassType.Deferred
multi_compile_shadowcaster SHADOWS_DEPTHSHADOWS_CUBE いいえ PassType.ShadowCaster multi_compile_shadowcollectorSHADOWS_SPLIT_SPHERESSHADOWS_SINGLE_CASCADE はい スクリーンスペースのシャドウ。

バリアントの削除

skip_variants ディレクティブを使用して、使用しないキーワードを削除できます。

例えば、以下の例では、multi_compile_fwdadd セットのキーワードを追加し、POINT バリアントと POINT_COOKIES バリアントを削除します。

#pragma multi_compile_fwdadd
#pragma skip_variants POINT POINT_COOKIE

バリアントの削除の詳細については、シェーダーバリアントストリッピングを参照してください。

スクリプトでのシェーダーキーワードのトグルと確認
ビルトインマクロによるシェーダー内の分岐