Vertexbuffer Getdata VertexPositionNormalTexture

时间:2012-10-30 21:08:34

标签: xna-4.0

我有一个带有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

1 个答案:

答案 0 :(得分:1)

为什么需要使用GetData?

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