我想实现功能,以便可以在运行时向/从顶点数组添加/删除顶点。
有一种通用的方法吗?
顶点数据的推荐格式似乎是结构的C数组,
所以我尝试了以下。保留一个指向Vertex结构数组的指针作为属性:
@property Vertex *vertices;
然后创建一个新数组并复制数据
- (void) addVertex:(Vertex)newVertex
{
int numberOfVertices = sizeof(vertices) / sizeof(Vertex);
Vertex newArray[numberOfVertices + 1];
for (int i = 0; i < numberOfVertices; i++)
newArray[i] = vertices[i];
newArray[numberOfVertices] = newVertex;
self.vertices = newArray;
}
但没有运气。我对C并不完全有信心,所以这真的很简单。
最佳答案
这就是我刚刚做的事情:
//verts is an NSMutableArray and I want to have an CGPoint c array to use with
// glVertexPointer(2, GL_FLOAT, 0, vertices);... so:
CGPoint vertices[[verts count]];
for(int i=0; i<[verts count]; i++)
{
vertices[i] = [[verts objectAtIndex:i] CGPointValue];
}
关于ios - OpenGL ES-更新顶点数组,添加/删除顶点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5724557/