2

ゲームには合計 12 のマテリアルがあります。次に、多くのマテリアルがアタッチされているさまざまなゲームオブジェクトがあります。たとえば、Gameobject1 には、それぞれ 2 つの同じマテリアルを使用する 10 の子があります。 unity3d で動的バッチ処理をオンにして、CombineChildren.js を GameObject1 にアタッチしましたが、結果は同じです。20 回のドローコールがありますが、Gameobject1 で 2 つのマテリアルのみを繰り返し使用しているため、2 つのドローコールに減らしたいと考えています。どこが間違っているのですか?

どんな助けでも大歓迎です

4

2 に答える 2

0

(1) Occlusion を使用して、シーン内のカメラが見ているものだけをレンダリングします。オクルージョンは、ドローコールを減らす非常に効率的な方法です。

オクルージョンカリング

(2) 対象物に同じ材料を使用する。

(3) シーンをライトマップできます。次に、このツールを使用して、すべてのライトマップを 1 つの大きなマップに圧縮します。 詳細な説明でここにあるツール

シーンの最適化

3 つの方法をすべて使用すると、グラフィックスの機能の品質を損なうことなく、ドロー コールが大幅に削減されます。

于 2013-11-14T13:20:40.697 に答える
0

私の場合、unity3Dに付属の CombineMeshUtility.js を使用して、子ゲーム オブジェクトのすべてのメッシュを 1 つのメッシュに結合することで、この問題を解決できました。したがって、親ゲーム オブジェクト (空のゲーム オブジェクト) には、すべての子オブジェクトのメッシュである 1 つのゲーム オブジェクトがあり、レンダラーやマテリアルを持たない他の子ゲーム オブジェクトがあります。これが明確であることを願っています

于 2013-11-22T21:24:24.347 に答える