将C ++ OpenGl转换为Java(LWJGL),glBufferData();

我一直在搞乱LWJGL尝试创建一个.obj解析器,它将从blender导出的文件转换为OpenGL渲染代码。 我遵循了类似于我正在做的教程,但它是用c ++编写的,我很难理解。 我已经设法让一切都与解析器一起工作(我认为),但是当实际渲染到模型的时候,我很难创建一个与c ++代码相当的java。 本教程使用以下代码行:

glBufferData(GL_ARRAY_BUFFER, vertices.size() * sizeof(glm::vec3), &vertices[0], GL_STATIC_DRAW); 

然后(显然)它绘制数组。 我很确定我需要将Vecotor3f从我的列表(顶点)转换为FloatBuffer,而我不需要第二个参数(因为java会处理大小)。 但是,我不知道如何做到这一点,我仍然找到了解决java的方法,并且之前从未使用过这个类。

 FloatBuffer vertexData = BufferUtils.createFloatBuffer(amountOfVertices * vertexSize); vertexData.put(vertices); vertexData.flip(); glBufferData(GL_ARRAY_BUFFER, vertexData, GL_STATIC_DRAW); 

是等效的java代码,其中vertices是包含顶点数据的float数组, vertexSize是每个顶点的浮点数, amountOfVertices是自解释的。 如果你愿意,可以将amountOfVertices * vertexSizevertices.length一起切换,因为它们应该相等。