Version: Unity 6.0 (6000.0)
言語 : 日本語
ビルトインレンダーパイプラインでランタイムにインスタンスごとのデータを変更する例
ビルトインレンダーパイプラインの GPU インスタンシングシェーダーリファレンス

ビルトインレンダーパイプラインで Unity による GPU インスタンシングシェーダーのストリッピングを防止する

Unity では、#pragma ディレクティブで noinstancing を指定しない限り、デフォルトでインスタンシングバリアントを使用してサーフェスシェーダーが生成されます。サーフェスシェーダーで #pragma multi_compile_instancing が使用されていても無視されます。

Unity の Standard シェーダーおよび StandardSpecular シェーダーはデフォルトでインスタンスシングをサポートしていますが、インスタンスごとのプロパティは transform を除いて定義されていません。

シーン内に GPU インスタンシングが有効化されているゲームオブジェクトがない場合、Unity はインスタンシングシェーダーバリアントを削除します。ストリッピング動作をオーバーライドするには、以下の手順に従います。

  1. Project Settings を開きます (メニュー: Edit > Project Settings の順に選択します)。
  2. Graphics に移動します。
  3. Shader Stripping セクションで、Instancing VariantsKeep All に設定します。
ビルトインレンダーパイプラインでランタイムにインスタンスごとのデータを変更する例
ビルトインレンダーパイプラインの GPU インスタンシングシェーダーリファレンス