Java LWJGL中的VAO渲染错误

Java LWJGL中的VAO渲染错误,java,opengl,render,lwjgl,Java,Opengl,Render,Lwjgl,我正在尝试使用VAOs进行渲染,但渲染不正确时遇到问题。 我在这方面有一点经验,但不是很多 这是我的绑定代码: //RawModel is just a type to store vao id and number of indices. public RawModel loadToVao(float[] positions, int[] indices){ //create VAO and bind it int vaoID = GL30.glGenVertexArrays(

我正在尝试使用VAOs进行渲染,但渲染不正确时遇到问题。 我在这方面有一点经验,但不是很多

这是我的绑定代码:

//RawModel is just a type to store vao id and number of indices.
public RawModel loadToVao(float[] positions, int[] indices){
    //create VAO and bind it
    int vaoID = GL30.glGenVertexArrays();
    GL30.glBindVertexArray(vaoID);

    //create index buffer
    int indexVBO = GL15.glGenBuffers();
    GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, indexVBO);
    IntBuffer indexBuffer = BufferUtils.createIntBuffer(indices.length);
    indexBuffer.put(indices);
    indexBuffer.flip();
    GL15.glBufferData(GL15.GL_ELEMENT_ARRAY_BUFFER, indexBuffer , GL15.GL_STATIC_DRAW);

    //create vertex buffer
    int positionVBO = GL15.glGenBuffers();
    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, positionVBO);
    FloatBuffer vertBuffer = BufferUtils.createFloatBuffer(positions.length);
    vertBuffer.put(positions);
    vertBuffer.flip();
    GL15.glBufferData(GL15.GL_ARRAY_BUFFER, vertBuffer , GL15.GL_STATIC_DRAW);
    GL20.glVertexAttribPointer(0, 3, GL11.GL_FLOAT, false, 0,0);
    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0);

    GL30.glBindVertexArray(0);
    return new RawModel(vaoID, indices.length);
}
这是我的渲染代码:

GL30.glBindVertexArray(obj.getVaoID());
GL20.glEnableVertexAttribArray(0);
GL11.glDrawArrays(GL11.GL_POINTS, 0, sphere.getRawModel().getSize());
GL11.glDrawArrays(GL11.GL_TRIANGLES, 0, sphere.getRawModel().getSize());
GL20.glDisableVertexAttribArray(0);
GL30.glBindVertexArray(0);
我渲染点和三角形只是为了看看哪里出了问题。最终只会是三角形

这个代码似乎总是在对象中心给我一个不应该在那里的点。它还有不正确的元素分组,因此三角形渲染完全错误

如果有人能帮忙,那就太好了。
谢谢

如果有人需要更多的信息,请询问,我会尽力提供。有一件看起来很奇怪的事情是,您创建了一个索引数组,但不使用它。如果要使用索引绘制,则需要调用
glDrawElements()
,而不是
glDrawArrays()
。但根据症状,这可能不是你唯一的问题。@RetoKoradi谢谢。成功了:)我完全搞错了:P