0

ゲームの静的背景として使用される複数のメッシュ(つまり、木、車など)を含むモデルファイルがあります。私の目標は、モデルの頂点とインデックスを2つのバッファーとして保存し、これらのバッファーをGPUに割り当てることです。しかし、私は行く途中で少し混乱しています。

このRiemerのXNAチュートリアルでは、モデル自体に1つの大きな頂点バッファーと1つの大きなインデックスバッファーがあり、すべてのメッシュ(およびメッシュパーツ)の情報が含まれていると述べていますが、これらのバッファーにアクセスすることはできないようです。ただし、ModelMeshPartsのバッファーにアクセスすることは可能ですが、それらすべてを1つのバッファーに連結することはできません。

私の推測では、モデルプロセッサを拡張して、実行時にモデルの頂点とインデックスを配列に格納します。Riemerは、これらのバッファーはすでに定義されていると言っているので、そうするためのより簡単な方法はありますか?私はその声明について混乱しています。

答えてくれてありがとう。

4

1 に答える 1

1

実際には、モデル全体に​​対して1つの頂点バッファーと1つのインデックスバッファーしかありません。ModelMeshPartで公開される頂点バッファーは、モデル全体の頂点バッファーであり、他のMMPで公開されるのと同じバッファーです。それらを連結する必要はありません。バッファ全体が各MMPにあります。

各MMPには、そのバッファーの独自の開始インデックスがあり、各MMPには、その特定のMMPに使用される開始インデックスから連続する頂点の数を表す独自の変数があります。

ここに画像の説明を入力してください

したがって、このモデルのVBの図でModelMesh[1]->ModelMeshPart[1]は、開始インデックスが300で、頂点の数が75です。したがって、MMPを描画するときに、デバイスはVB全体のいくつかの頂点のみを使用することを認識します。

于 2013-01-25T02:20:46.850 に答える