OpenGL - VBO 内部的顶点数组和外部的索引和纹理数组?

标签 opengl vbo

是否可以将一组顶点放入 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/

相关文章:

c++ - 具有缩放拉伸(stretch)纵横比的 glm 旋转

c++ - 将顶点缓冲区对象附加到顶点数组对象

c++ - OpenGL 线条未着色

java - LWJGL - 如果我使用 VBO,我可以对单独的纹理做些什么?

java - 为什么我的模型没有在 LWJGL 中使用着色器和 VBO 渲染任何内容

c++ - 如何在顶部 2D 小 map 上显示以 3D 视角呈现的平面世界的可见部分?

java - 如何在 LWJGL 中将不同的纹理应用于多个多边形?

c++ - 顶点缓冲对象(删除进程)opengl

opengl - 在opengl中绘制具有粗边的多色三角形

opengl - cudaFree - 无效的设备指针错误