每当我查看解释如何使用glDrawArrays和glVertexPointer命令的教程时,他们使用的参数都与我可用的参数不同。
例如:教程使用以下参数调用glVertexPointer :(顶点是一个浮点数组)
glVertexPointer(3, GL_FLOAT, 0, Vertices);
我可用的参数是:
glVertexPointer(int size, int stride, FloatBuffer pointer);
我的问题是:使用glVertexPointer()的正确方法是什么?
答案 0 :(得分:2)
glVertexPointer
,顾名思义,基于使用指针。你正在使用Java,指针不存在。因此,Java等价物必须以不同的方式工作。它必须采用一个特殊的内存数组对象,它可以在内部转换为一个C指针,该指针将被传递给实际的glVertexPointer
调用。
因为Java在缓冲区的内容上放置了一个类型,所以不需要显式类型字段。有several overloads of glVertexPointer
in LWJGL,每个都使用不同类型的缓冲区。