Opengl 更改单顶点值

Opengl 更改单顶点值,opengl,Opengl,在我的项目中,我想编辑已经在GPU中的给定顶点位置。 我是否需要重新加载整个模型,或者有一个函数来更改所需的顶点 这就是我将网格传递到GPU的方式 void Mesh3v3n2t::PassToGPU() { glGenVertexArrays(1, &VaoId); glBindVertexArray(VaoId); glGenBuffers(1, &VboId); glBindBuffer(GL_ARRAY_BUFFER, VboId); glBufferData(GL_A

在我的项目中,我想编辑已经在GPU中的给定顶点位置。 我是否需要重新加载整个模型,或者有一个函数来更改所需的顶点

这就是我将网格传递到GPU的方式

void Mesh3v3n2t::PassToGPU()
{
glGenVertexArrays(1, &VaoId);
glBindVertexArray(VaoId);

glGenBuffers(1, &VboId);
glBindBuffer(GL_ARRAY_BUFFER, VboId);
glBufferData(GL_ARRAY_BUFFER, 32*vertices.size(),vertices.data(), GL_STATIC_DRAW);

glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 32, 0);
glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 32, (void*)12);
glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, 32, (void*)24);

glEnableVertexAttribArray(0);
glEnableVertexAttribArray(1);
glEnableVertexAttribArray(2);

glGenBuffers(1, &IndexBufferId);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, IndexBufferId);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, indices.size()*4, indices.data(), GL_STATIC_DRAW);
}
你可以用。如果要经常这样做,您可能需要重新考虑
GL\u STATIC\u DRAW
使用提示,但这不是必需的。

您可以使用。如果要经常这样做,您可能需要重新考虑
GL\u STATIC\u DRAW
用法提示,但这不是必需的