每当我查看解释如何使用glDrawArrays和glVertexPointer命令的教程时,它们使用的参数就与我可用的参数不同。

例如:教程使用如下参数调用glVertexPointer:(顶点是一个浮点数数组)

glVertexPointer(3, GL_FLOAT, 0, Vertices);


我可用的参数是:

glVertexPointer(int size, int stride, FloatBuffer pointer);


我的问题是:使用glVertexPointer()的正确方法是什么?

最佳答案

顾名思义,glVertexPointer是基于使用指针的。您正在使用Java,而指针不存在。因此,Java等效项必须以不同的方式工作。它必须带有一个特殊的内存数组对象,该对象可以在内部转换为C指针,该指针将传递给实际的glVertexPointer调用。

因为Java在缓冲区的内容上放置了一个类型,所以您不需要显式的类型字段。有several overloads of glVertexPointer in LWJGL,每个都有不同类型的缓冲区。

10-04 13:33