1

我想绘制一个模型,LWJGL并且我知道在调用每个glVertex方法JNI时都会发生调用,这很耗时。由于我将模型放在一个文件中,因此我只想使用一个JNI调用(向LWJGL库中添加本机方法),并在本机端从文件中获取我的模型顶点(使用 c 语言)并将它们全部绘制(避免JNI每个顶点调用)。所以,我想更改LWJGL库源并添加一个函数来做到这一点。我的问题是,此功能是否在LWJGLJOGL任何可能的 java 绑定中可用openGL

4

2 回答 2

3

使用顶点缓冲区对象来存储您的顶点数据,并调用绘制尽可能多的顶点/三角形,只需调用glDrawArraysglDrawElements或类似函数即可。

本页解释了如何在 LWJGL 中使用它们。

请注意,OpenGL 文档的 LWJGL 版本相当缺乏。查看OpenGL 官方网站以了解 C 版本,这些版本很好地解释了它们的功能。

于 2012-05-01T10:27:12.713 回答
1

您可以使用 LWJGL 中由glVertexPointer (link)包装的 OpenGL glVertexPointer 函数。

但!

如果您担心 JNI 调用的速度,那么为什么不重新考虑在 c/c++ 中执行此操作呢?

稍后编辑:glVertexPointer 的文档

于 2012-05-01T10:21:20.560 回答