0

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

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

glVertexPointer(3, GL_FLOAT, 0, Vertices);

我可用的参数是:

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

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

4

1 回答 1

2

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

因为 Java 在缓冲区的内容上放置了一个类型,所以您不需要显式类型字段。LWJGL中有几个重载glVertexPointer,每个重载都采用不同类型的缓冲区。

于 2013-03-24T20:33:46.927 回答