所以我正在尝试实施VBO,但我找不到正确使用它们的好教程或文档。我猜你在一些物体需要它的时候做一个VBO然后当下一帧出现时它被绘制/重绘。但这里是我困惑的地方:
我很抱歉,我只是在学习OpenGL,请原谅我!但很难找到一个不只是制作一个VBO的教程,并且不会在绘制它的同时制作VBO。
主要是我要求的是更好地理解VBO如何工作,存储它们的方式以及如何绘制它们。有多少维生素生态系统太多了?当我调用glVertexPointer()
存储的VBO究竟发生了什么?如果我想绘制不同类型的VBO怎么办? (只使用三角形?)
答案 0 :(得分:0)
如何绘制多个VBO?
VBO是数据存储,就像纹理一样。有一个名为glBindBuffer
的函数,它绑定VBO以便通过glVertexAttribPointer
进行后续访问。
如何修改VBO?
glBufferSubData
或
buf = glMapBuffer(...);
modify_on(buf);
glUnmapBuffer(...);
我何时何地制作新的VBO?
每当现有的VBO不再能满足您的需求时。要么是因为它们很小,要么与您的数据类型不匹配。