是否可以创建 VBO 并在同一渲染周期中对glDrawElements
的调用之间重复使用? (我尝试并获得了奇怪的结果)。以下示例缺少绑定等。
初始代码(仅执行一次) * : *
glGenBuffers(...)
glBufferData(...)
渲染帧代码(为每个帧执行):
glMapBufferOES(...)
//... Update buffer from index 0 to X
glDrawElements(...)
//... Update buffer from index 0 to Y
glDrawElements(...)
[context presentRenderbuffer:GL_RENDERBUFFER_OES];
答案 0 :(得分:0)
在绘制缓冲区之前,您需要取消映射缓冲区。如果你没有取消映射,这可能就是你在glDrawElements
看到奇怪结果的原因。
http://www.opengl.org/sdk/docs/man/xhtml/glMapBuffer.xml
调用glDrawElements
后,您可以重新映射缓冲区并重新填充。
通过不立即重用缓冲区,您可能会获得更好的性能。在平局后重新映射可能会阻止,直到平局完成。