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);

我必须创建 192 个额外的插槽才能访问我的 24 个元素。因为 vertex.GetData 将复制到它从中获取数据的同一索引。我该怎么做它将我的 24 个元素写入正确大小的数组?

所有的类、结构和函数都来自 XNA Framework 4.0

4

1 回答 1

1

为什么需要使用 GetData?

保存对数组的引用并使用数组...而不是使用 vertexBuffer...

于 2012-10-31T11:55:28.383 回答