Version: 2022.2
言語: 日本語
コンピュートシェーダー
ビルトインシェーダー

エラーシェーダーとローディングシェーダー

場合によっては、Unity が通常のシェーダーでオブジェクトをレンダリングできないことがあります。このような場合、Unity は、特殊なシェーダーでオブジェクトをレンダリングします。

Unity が元々のシェーダーを使用できない理由によって、使用される特殊なシェーダーが変わります。

デフォルトのエラーシェーダー

オブジェクトのマテリアルまたはシェーダーに問題がある場合、Unity はデフォルトのエラーシェーダーでオブジェクトをレンダリングします。例えば、マテリアルが割り当てられていない場合や、シェーダーがコンパイリングしない場合、シェーダーがサポートされていない場合などです。

デフォルトのエラーシェーダーは Unity エディターとビルドに使用されます。

デフォルトのエラーシェーダーはマゼンタ (明るいピンク) です。

マゼンタのエラーシェーダー
マゼンタのエラーシェーダー

BatchRendererGroup API を使用する場合、Unity はデフォルトのエラーシェーダーを表示しません。BatchRendererGroup.SetErrorMaterial を使って、代わりに使用するマテリアルを設定してください。

ローディングシェーダー

Unity は、オブジェクトの表示に必要な シェーダーバリアント をコンパイル中であることを示すために、ローディングシェーダーでオブジェクトをレンダリングします。

Unity は、非同期シェーダーコンパイル が有効になっている場合と、開発ビルドで Shader Live Link サポート が有効になっている場合に、Unity エディターにローディングシェーダーを表示します。

ローディングシェーダーはシアン (明るい青色) です。

シアンのローディングシェーダー
シアンのローディングシェーダー

BatchRendererGroup API を使用した場合、Unity はローディングシェーダーを表示しません。BatchRendererGroup.SetLoadingMaterial を使って、代わりに使用するマテリアルを設定してください。

仮想テクスチャリングのエラーマテリアル

プロジェクトに Streaming Virtual Texturing (SVT) を使用している場合、Unity は SVT の設定の問題を示すために特殊なマテリアルを使用します。詳細は 仮想テクスチャリングのエラーマテリアルのエラーマテリアル を参照してください。

コンピュートシェーダー
ビルトインシェーダー