0
我生成了一個名爲object_A
, 的vbo緩衝區(頂點緩衝區)對象,我們假設object_A
包含10個頂點(30個浮點數)。 現在我想更新object_A
使用glMapBuffer
與 20個頂點(60浮點數),我可以使用glMapBuffer
?如何更新大於當前vbo緩衝區大小的vbo數據?
我生成了一個名爲object_A
, 的vbo緩衝區(頂點緩衝區)對象,我們假設object_A
包含10個頂點(30個浮點數)。 現在我想更新object_A
使用glMapBuffer
與 20個頂點(60浮點數),我可以使用glMapBuffer
?如何更新大於當前vbo緩衝區大小的vbo數據?
您不能使用glMapBuffer()
,這只是爲了將緩衝區的數據映射到客戶端地址空間。
如果要調整緩衝區大小,則必須使用glBufferData()
。
glBufferData(GL_ARRAY_BUFFER, 60 * sizeof(GLfloat), NULL, GL_DYNAMIC_DRAW);
如果是因爲你想類似的東西realloc()
(重新分配緩衝區,保持原有的內容)。然後你可以利用glCopyBufferSubData()
並在緩衝區之間複製數據。