4
すべてにインスタンス化を使用しますか?
インスタンス化は、同じメッシュの複数のコピーを一度にレンダリングするとき(大幅に)パフォーマンスを(大幅に)向上させます。しかし、1回の描画呼び出しで正確に1つのコピーをレンダリングする場合、オーバーヘッドはどれくらいありますか?エンジンによってレンダリングされたすべてのジオメトリにインスタンス化を使用するのは良い考えですか、悪い考えでしょうか? 編集:FPSゲームを作成しているとしましょう。ほとんどのオブジェクトには、ナイフ、銃、機関銃、建物、電波塔という1つのインスタンスしかありません。しかし、複数のインスタンスを持つオブジェクトもあります:木(例:数百のインスタンスを持つ3種類の木)、草など...つまり、1つのインスタンスオブジェクトを「伝統的な」方法でレンダリングするのではなく、インスタンス化を使用して草を作成する場合、インスタンス化を使用してすべてをレンダリングします。したがって、無線タワーにはインスタンスが1つしかなく(その情報はインスタンスデータバッファーに格納されます)、DrawInstanced()インスタンスカウントが等しいコールを使用してそのタワーをレンダリングします1。他のすべてのオブジェクトと同じです(もちろん、木や草には複数のインスタンスがあります)。 だから私の質問は次のとおりです。インスタンス化を使用してオブジェクトの単一インスタンスを描画するのは悪い考えですか?インスタンス化のオーバーヘッド(メモリおよびパフォーマンスの面)が大きすぎるのか、それともシングルインスタンスオブジェクトのレンダリングに望ましくないのですか?
16
mesh
instancing