【Unityのパフォーマンス最適化(1)】バッチ処理を実装する4つの方法

1. オフラインバッチ 

オフライン バッチ処理とは、エンジンでのリアルタイム バッチ処理の負担を軽減するために、ゲームを実行する前にツールを使用して関連リソースをバッチ処理することを意味します。

静的モデルとシーン オブジェクトはオフライン バッチ処理に適しています。シーンの表面の装飾など: 石/レンガなど。

オフライン バッチ処理の方法には次のものがあります。

1. アーティストはプロのモデリング ツールを使用してバッチ処理を行います。3D Max/Maya など。

2. エンジンのプラグインまたはツールを利用します。たとえば、Unity のプラグインMeshBakerDrawCallMinimizerは静的オブジェクトをバッチ処理できます。

3. 独自のオフライン バッチ統合ツールを作成します。サードパーティのプラグインがプロジェクトのニーズを満たすことができない場合、プログラムはオフライン バッチ統合ツールを特別に実装する必要があります。

2. ランタイムバッチ

Unity エンジンには、静的バッチ処理と動的バッチ処理という 2 つのバッチ レンダリング テクノロジが組み込まれています。

元のリンク: Unity のパフォーマンスの最適化を組み合わせたバッチ_unity を組み合わせたバッチ_1010 のブログ - CSDN ブログ

1. 静的バッチ処理

原則:マージされた大きなグリッドを使用してデータを直接送信します。この場合、データは 1 回だけ送信され、レンダリング状態の切り替えは発生しないため、DrawCall は 1 つだけ生成されます。

静的バッチ処理、静的バッチ処理の原理は、複数のシーン オブジェクトをパーツに分割し、描画用に 1 つの大きなオブジェクトに事前合成することです。unity5 の実装では、IBO を統合せずに大きな vbo に統合し、その vbo をGPU を使用する場合、VBO 全体を描画するのではなく、オブジェクトの一部を描画する必要があるたびに IBO を変更し、大きな VBO の特定のセクションを選択して描画します。静的バッチ処理では、複数の小さなオブジェクトの描画を大きなオブジェクトの描画にマージし、レンダリング状態への変更を減らすことができます。複数のオブジェクトを一度に並行して描画するため、理論的には最も高速な描画方法です。ただし、最大の欠点は次のとおりです。新しい大規模な VBO は大量の追加メモリを必要とし、VBO のマージ時に頂点データが決定され、頂点データを変更できないため、動的オブジェクトを染色できません (たとえば、Unity5 の LOD バッチ処理の実装は、事前に行われていました) -LOD のすべてのレベルを出力します。マージされます)、別の VBO のサイズは制限されています。オブジェクトが多すぎる場合、それらは複数の描画に分割されます。

PlayerSettings で静的バッチ処理をオンにし、静的バッチ処理が必要なオブジェクトの [静的] をオンにします。

 

おすすめ

転載: blog.csdn.net/m0_74022070/article/details/131858871