Version: 2021.3
言語: 日本語
マテリアルインスペクターでのシェーダーキーワードの使用
シェーダーバリアントコレクション

Shader variant stripping

You can prevent shader variants from being compiled. This is called stripping. Stripping unneeded variants can greatly reduce build times, file size, shader loading times, and runtime memory usage. In larger projects, or projects with complex shaders, this is a very important consideration.

シェーダーキーワードを宣言する際のシェーダーバリアントの制限

以下のシェーダーキーワードの宣言方法によって、生成されるバリアントの数を制限することができます。

  • multi_compile の代わりに shader_feature を可能な限り使用します。
  • multi_compile で使わないキーワードを定義しないようにします。
  • シェーダーキーワードが特定のシェーダーステージにのみ影響する場合を示します。

ハンドコーディングされたシェーダーでこれを行う方法については、HLSL でのシェーダーキーワードの宣言と使用 を参照してください。Shader Graph での実行については、[Shader Graph ブラックボード]を参照してください。Blackboard](https://docs.unity.cn/Packages/com.unity.shadergraph@latest?subfolder=/manual/Blackboard.html) を参照してください。

エディター UI でのシェーダーバリアントのストリッピング

Unity エディターの UI には、シェーダーストリッピングを設定できる箇所がいくつかあります。

  • Graphics Settings ウィンドウ で、Shader stripping セクションの設定を行います。
  • Always-included shaders 設定で、必要のないシェーダーが含まれないようにします 。
  • GPU インスタンス化、ライトマッピング、フォグに関連するバリアントを除去します。
  • ビルトインレンダーパイプラインでは、階層設定が違うことが重要でない場合は、お互いに同じ階層設定にしてください。詳しくは、グラフィックスの階層 を参照してください。
  • ユニバーサルレンダーパイプライン (URP)では、URP アセットで使用しない機能を無効にします。詳細は、シェーダーストリッピング を参照してください。

エディタースクリプトを使ったシェーダーバリアントのストリッピング

他の方法では除去できないシェーダーバリアントについては、エディタースクリプトで以下の API を使用してビルド時のストリッピングを行うことができます。

ストリッピングについての詳細は、Unity のブログ スクリプタブルシェーダーバリアントの除去 を参照してください。

マテリアルインスペクターでのシェーダーキーワードの使用
シェーダーバリアントコレクション
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961