我想用LWJGL
绘制一个模型,我知道在调用每个glVertex
方法时,会发生JNI
调用,这非常耗时。由于我在模型中有模型,我想只使用一个JNI
调用(向LWJGL
库添加本机方法),在本机端,从文件中获取模型顶点(使用c语言)并将它们全部绘制(避免每个顶点调用JNI
)。
所以,我想更改LWJGL
库源并添加一个函数来执行此操作。
我的问题是,LWJGL
,JOGL
或openGL
的任何可能的Java绑定中是否提供此功能?
答案 0 :(得分:3)
使用“顶点缓冲区对象”存储顶点数据,并调用绘制尽可能多的顶点/三角形,只需调用glDrawArrays,glDrawElements或类似内容即可。
This page解释了如何在LWJGL中使用它们。
请注意,OpenGL文档的LWJGL版本相当缺乏。检查OpenGL official site以获取能够很好地解释其功能的C版本。
答案 1 :(得分:1)
你可以使用OpenGL glVertexPointer函数,它在LWJGL中被glVertexPointer (link)包裹。
BUT!
如果您担心仅仅是JNI呼叫的速度,那么为什么不重新考虑在c / c ++中这样做呢?