一度にすべてのデータを送信するため、メッシュを 1 つのメッシュに結合してレンダリングする方がはるかに高速であると読みました。私はdirectx9.0c、固定機能、c++を使用しています。私は多くの LP3DXMESH を結合して一度に送信して描画したいと考えています。
グーグルで答えを探すと、ジャンクの結果が得られます。これどうやってするの?
複数のメッシュを 1 つに結合するのは非常に簡単で、いくつかの基準が満たされていることを確認します。
すべてのメッシュの頂点サイズ/レイアウト (または宣言)が同じである必要があります。
モデル 1 には 10 個の頂点と 21 個のインデックスがあります モデル 2 には 20 個の頂点と 30 個のインデックスがあります モデル 3 には 25 個の頂点と 45 個のインデックスがあります
すべてのデータを保持できる頂点バッファーを作成します (例: 10+20+25 頂点)
モデル 1、モデル 2、モデル 3 の各頂点をこの新しい頂点バッファーにコピーします。
頂点バッファーと同じ方法でインデックス バッファーを作成します (例: 21 + 30 + 45 インデックス)。
モデル 1 では、インデックスをコピーするだけです。
モデル 2 の場合、インデックスをコピーする必要がありますが、各インデックスに 10 を追加します (最初の頂点バッファーのサイズ)。
モデル 3 の場合、番号 2 と同じことを行いますが、10 + 20 (前の各サイズの合計) を追加する必要があります。
新しいバッファでメッシュを作成します。
いくつかの考慮事項について: