BatchRendererGroup (BRG) は、画面へのレンダリングを行うために、描画コマンド を生成します。これは BRG 固有の概念で、ここには、最適化された、インスタンス化された ドローコールを Unity が効率的に作成するために必要なすべてが含まれています。
BRG は、描画コマンドでインスタンスを描画するタイミングを決定するのに フィルター設定 を使用します。フィルター設定は、インスタンス自体を描画するタイミングだけでなく、影やモーションベクトルなど、各インスタンスの特定の側面を描画するタイミングも制御します。
同じフィルター設定が多くの描画コマンドに適用されることもよくあるため、BRG は、描画範囲 を使用して描画コマンドの一部範囲にフィルター設定を適用します。描画範囲は、連続した数の描画コマンドと、それらに適用されるフィルター設定のインスタンスを組み合わせます。描画範囲は、フィルター設定によって、Unity が描画コマンドを呼び出さないように指定している場合に特に有用です。なぜなら、これによって、Unity は範囲内のすべての描画コマンドのレンダリングを効率的にスキップすることができるからです。
どのインスタンスをどのドローコールに含めるかに関する制約はありません。同じインスタンス、あるいは同じインスタンスインデックスとバッチ ID を持つオブジェクトを、異なるメッシュとマテリアルで何度もレンダリングできます。これが有用になるのは例えば、異なるマテリアルを持つ異なるサブメッシュを描画するが、同じインスタンスインデックスを使用して複数の描画間でトランスフォーム行列などのプロパティーを共有する場合などです。
BRG でレンダラーを作成する方法については、BatchRendererGroup でレンダラーを作成する を参照してください。
スクリプタブルレンダーパイプライン内では描画コマンドは、ほとんどの場合、互換性のある DrawRenderers の呼び出しごとに、単一の、プラットフォームレベルの、インスタンス化されたドローコールとして実行されます。ただしこれは、グラフィックス API のドローコールのサイズ制限が描画コマンドの visibleCount
より低い場合には不可能です。そのような場合には、描画コマンドが複数のインスタンス化されたドローコールに分割されます。
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.