我们是否有任何方法可以为OpenGL中的GL_ELEMENT_ARRAY_BUFFER保留内存,例如在Cuda中std :: vector或thrust :: device_vector的.reserved(int)?
说,我在frame1上有200个三角形(600个索引),但在frame2上有250个全新的三角形(750个索引)。如何在开始时保留一次并在每一帧上更新它?
答案 0 :(得分:0)
一旦你分配了一个缓冲区对象并进行了glBufferData()
调用,就会分配回来的内存。您可以将空数据指针传递到第一个glBufferData()
调用,以创建一个没有数据上载的仅分配缓冲区。
您可以使用glBufferSubData()
修补现有缓冲区而无需重新分配,但只需确保不尝试修补现有绘制调用中仍引用的缓冲区。见......
了解更多详情。