シェーダーバリアント

参考:

複数のシェーダープログラムのバリアントを作る | Unity 2018.4 マニュアル [公式]

使い方

参考:

Unity の Shader Variant について調べてみた – Qiita

shader_feature や multi_compile でシェーダのバリアントを作る | LIGHT11

Shader Variant とは? | 黒河優介

Asset Bundle と Shader Variant の関係 | 黒河優介

Shader Variant と最適化周り | 黒河優介

Shader Variant について調べてみた | しゅみぷろ

複数のシェーダープログラムのバリアントを作る | Unity 2018.4 マニュアル [公式]

プラグマ (#pragma キーワード/コンパイラーディレクティブ)

  • multi_compileシェーダーバリアントを生成する
  • multi_compile_localシェーダーバリアントを生成する/キーワードはローカルに作用する
  • shader_feature未使用のバリアントはビルドに含まれない
  • shader_feature_local未使用のバリアントはビルドに含まれない/キーワードはローカルに作用する

定義できるグローバルキーワードは 256 個に制限される。Unity は内部的に 60 個のグローバルキーワードを使用する。ユーザーが定義できるグローバルキーワードの上限は実質的に 190 個程度に制限される。ローカルキーワードはシェーダー毎に 64 個に制限される。

参考:

複数のシェーダープログラムのバリアントを作る | Unity 2018.4 マニュアル [公式]

シェーダーキーワードを使う

参考:

Shader の定義済みキーワードを動的に有効/無効化する | KAZUPON 研究室

マテリアルパラメーターへのスクリプトを使ったアクセスと変更 | Unity マニュアル [公式]

Shader.EnableKeyword | Unity スクリプトリファレンス [公式]

Shader.DisableKeyword | Unity スクリプトリファレンス [公式]

Declaring and Using Shader Keywords in HLSL | Unity Manual [Official]

How do I set a shader setting/property at runtime using MonoBehaviour? – Stack Overflow

ビルトインショートカット

  • multi_compile_fwdbase
  • multi_compile_fwdadd
  • multi_compile_fwdadd_fullshadows
  • multi_compile_fog

参考:

複数のシェーダープログラムのバリアントを作る | Unity 2018.4 マニュアル [公式]

マルチコンパイル (multi_compile)

参考:

Multi-Compile Shaders | Martin Palko

パフォーマンス/最適化

参考:

シェーダーのロード時間の最適化 | Unity 2018.4 マニュアル [公式]

Shader Variant Collections

参考:

Shader Variant Collections | Unity Manual [Official]

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。

Protected by reCAPTCHA