Tôi đang thiết lập một bộ đệm đỉnh trong OpenGL, như thế này:Cách thích hợp để sửa đổi bộ đệm đỉnh OpenGL là gì?
int vboVertexHandle = glGenBuffers();
glBindBuffer(GL_ARRAY_BUFFER, vboVertexHandle);
glBufferData(GL_ARRAY_BUFFER, vertexData, GL_DYNAMIC_DRAW);
Sau đó, nếu tôi muốn thêm hoặc loại bỏ các đỉnh để "vertexData", cách thích hợp để làm điều này là gì? Thậm chí có thể không? Tôi giả sử tôi không thể sửa đổi trực tiếp mảng mà không cần gửi lại nó tới GPU.
Nếu tôi thay đổi mảng vertexData, sau đó gọi này một lần nữa:
glBindBuffer(GL_ARRAY_BUFFER, vboVertexHandle);
glBufferData(GL_ARRAY_BUFFER, vertexData, GL_DYNAMIC_DRAW);
... đó sẽ ghi đè lên bộ đệm cũ bằng dữ liệu mới của tôi? Hay tôi cũng phải xóa cái cũ? Có cách nào tốt hơn?
Bạn không muốn nói "dữ liệu chưa được khởi tạo" ở cuối đoạn đầu tiên của mình? – Ancurio
@Ancurio Thật vậy tôi đã làm. Cảm ơn vì sự đúng đắn của bạn. – radical7