我有一个带有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
答案 0 :(得分:1)
为什么需要使用GetData?
保存对数组的引用并使用数组...而不是使用vertexBuffer ...