JOGL 中顶点缓冲对象的问题

Posted

技术标签:

【中文标题】JOGL 中顶点缓冲对象的问题【英文标题】:Troubles with Vertex Buffer Objects in JOGL 【发布时间】:2013-09-28 12:30:22 【问题描述】:

我对 JOGL 有疑问。我这里有一本书解释了 C++ 中的 OpenGL,但我的任务是在 JOGL 中完成。我现在正在处理顶点缓冲区对象,这本书告诉我:

glGenBuffers(1, &m_vertexBuffer);
glBindBuffer(GL_ARRAY_BUFFER, m_vertexBuffer);

我在 Java 中所做的是:

IntBuffer vertex_Buffer;
gl.glGenBuffers(1, vertex_Buffer);
gl.glBindBuffer(GL.GL_ARRAY_BUFFER, vertex_Buffer);

第一行是eclipse建议的,但这不符合glBindBuffer的参数。有人能告诉我我必须在这里做什么吗?

【问题讨论】:

【参考方案1】:

glBindBuffer 只接受一个 int 作为其第二个参数,因为它只绑定一个缓冲区(而 glGenBuffers 可以一次生成多个缓冲区)。因此,像这样只传递一个缓冲区:

gl.glBindBuffer(GL.GL_ARRAY_BUFFER, vertex_Buffer[0]);

【讨论】:

以上是关于JOGL 中顶点缓冲对象的问题的主要内容,如果未能解决你的问题,请参考以下文章

JOGL/OpenGL VBO - 如何渲染顶点?

在 Java 中为 JOGL 释放直接缓冲区本机内存

Swizzling 顶点数组、顶点缓冲区对象和着色器

在两个不同的顶点数组对象中使用顶点缓冲区

使用 JOGL GL3 核心的第一人称相机

绑定到“顶点数组对象”后,我应该删除“顶点缓冲区对象”吗?