是否可以将一组顶点放入 VBO 中,但采用索引和纹理坐标。来自常规内存的数组?如果是,使用哪种语法?
最佳答案
是的,这是可以做到的。但你不应该这样做。
使用缓冲区对象的原因是为了提高性能。执行您的建议只会降低通过正确使用缓冲区对象获得的性能。
此外,这是大多数驾驶员不常看到的驾驶员路径。人们要么使用缓冲区对象来存储顶点数据,要么使用客户端内存数组。由于这是一条人迹罕至的道路,因此您更有可能遇到驱动程序错误。
语法只是常规语法。 gl*Pointer
调用是否使用缓冲区对象取决于缓冲区对象是否在 gl*Pointer
时绑定(bind)到 GL_ARRAY_BUFFER
> 已调用电话。因此,您可以将缓冲区绑定(bind)到 GL_ARRAY_BUFFER
,使用偏移量进行 gl*Pointer
调用,然后将 0 绑定(bind)到 GL_ARRAY_BUFFER
并进行使用实际指针进行 gl*Pointer
调用。
类似地,如果缓冲区绑定(bind)到 GL_ELEMENT_ARRAY_BUFFER
,则 glDraw*Elements*
调用将使用缓冲区对象。因此,如果您想将客户端内存用于这些功能,请将 0 绑定(bind)到该内存。
关于OpenGL - VBO 内部的顶点数组和外部的索引和纹理数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7786759/