1

是否可以创建一个VBOglDrawElements并在同一渲染周期的调用之间重用它?(我尝试并获得了奇怪的结果)。下面的示例缺少绑定等。

初始化代码(只执行一次) * : *

glGenBuffers(...)

glBufferData(...)

渲染帧代码(每帧执行):

glMapBufferOES(...)
//... Update buffer from index 0 to X
glDrawElements(...)
//... Update buffer from index 0 to Y
glDrawElements(...)
[context presentRenderbuffer:GL_RENDERBUFFER_OES];
4

1 回答 1

0

您需要在绘制缓冲区之前取消映射。如果您不取消映射,这可能就是您使用glDrawElements.

http://www.opengl.org/sdk/docs/man/xhtml/glMapBuffer.xml

调用后glDrawElements,您可以重新映射缓冲区并再次填充它。

通过不立即重用缓冲区,您可能会获得更好的性能。抽签后立即重新映射可能会阻塞,直到抽签完成。

于 2013-03-07T07:09:58.780 回答