Я настраиваю буфера вершин в OpenGL, например:Каков правильный способ изменения вершинного буфера OpenGL?
int vboVertexHandle = glGenBuffers();
glBindBuffer(GL_ARRAY_BUFFER, vboVertexHandle);
glBufferData(GL_ARRAY_BUFFER, vertexData, GL_DYNAMIC_DRAW);
Позже, если я хочу, чтобы добавить или удалить вершины в «vertexData», что такое правильный способ сделать это? Возможно ли это? Я предполагаю, что не могу просто изменить массив напрямую, не пересылая его на GPU.
Если я изменить массив vertexData, то назвать это снова:
glBindBuffer(GL_ARRAY_BUFFER, vboVertexHandle);
glBufferData(GL_ARRAY_BUFFER, vertexData, GL_DYNAMIC_DRAW);
... будет что перезаписать старый буфер с моими новыми данными? Или мне также нужно удалить старый? Есть ли способ лучше?
Разве вы не хотели сказать «неинициализированные данные» в конце вашего первого абзаца? – Ancurio
@ Ancurio Действительно, я сделал. Спасибо за исправление. – radical7