如果我的顶点数据被布置
例子:
struct Vertex
{
float position[4];
float normal[3];
float texCoord[2];
}
我知道我们使用
glBindBufferARB( GL_ARRAY_BUFFER_ARB, m_uiVertBufferHandle );
//get the pointer position where we can add verts
void* pPositionBuffer = glMapBufferARB( GL_ARRAY_BUFFER_ARB, GL_READ_WRITE );
//now copy into our memory spot
//which we need to move to the right position
memcpy( ((char*)pPositionBuffer) + ( uiVertLocation*sizeof(VertexFormat) ), pVerts, iNumVerts*sizeof(VertexFormat));
//now stop mapping
glUnmapBufferARB(GL_ARRAY_BUFFER_ARB);
对于完整的复制位置,这是我一直在做的,但我只需要编辑顶点的位置数据而不更改任何其他属性
我只是在更新 cpu 端的位置数据以进行一些测试
struct Vertex
{
float position[4]; <----
float normal[3];
float texCoord[2];
}