2013-03-07 84 views
1

是否可以創建一個VBO並在相同渲染週期內調用glDrawElements之間重用它? (我嘗試並得到奇怪的結果)。下面的例子是缺少綁定等重複使用與glDrawElements(iOS)相同的緩衝區

初始化代碼(僅執行一次) * *

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

您需要在繪製之前取消映射您的緩衝區。如果你沒有取消映射,這可能是你爲什麼看到奇怪的結果glDrawElements

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

glDrawElements被調用後,可以重新映射你的緩衝區,並重新填寫入。

通過不重新使用緩衝區,您可能會獲得更好的性能。在抽籤之後重新繪製可能會阻止,直到抽籤完成。

+0

確實,我怎麼會錯過這個。非常感謝! – user1727274 2013-03-07 07:36:12

相關問題