1

648個のVertexPositionNormalTexture要素を持つVertexbufferがあります。これは27個の立方体であり、各立方体は24個の頂点を保持します。

最初の立方体の頂点にアクセスしたい場合は、次のように記述できます。

int startIndex = 0;

VertexPositionNormalTexture[] vertices = new VertexPositionNormalTexture[24];

vertexBuffer.GetData<VertexPositionNormalTexture>(vertices, startIndex, 24);

問題は、9番目のキューブ(24 * 9 = 216)にアクセスしたい場合です。私は書かなければなりません:

int startIndex = 216;

VertexPositionNormalTexture[] vertices = new VertexPositionNormalTexture[startIndex + 24];

vertexBuffer.GetData<VertexPositionNormalTexture>(vertices, startIndex, 24);

24個の要素にアクセスするためだけに、192個の追加スロットを作成する必要があります。Vertex.GetDataは、データを取得する同じインデックスにコピーするためです。どうすればよいですか?24個の要素を正しいサイズの配列に書き込みますか?

すべてのクラス、構造体、および関数はXNAFramework4.0からのものです

4

1 に答える 1

1

なぜGetDataを使用する必要があるのですか?

配列への参照を保存し、vertexBufferではなく配列を操作します。

于 2012-10-31T11:55:28.383 に答える