2013-03-25 96 views
0

使用下面的方法来呈现与维也纳组织,我得到这个错误:错误渲染维也纳组织

Exception in thread "main" org.lwjgl.opengl.OpenGLException: Cannot use offsets when Array Buffer Object is disabled 

渲染方法:

GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, this.vertexHandle); 
    GL11.glVertexPointer(3, GL11.GL_FLOAT, 0, 0L); 

    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, this.normalHandle); 
    GL11.glNormalPointer(GL11.GL_FLOAT, 0, 0L); 

    GL11.glEnableClientState(GL11.GL_VERTEX_ARRAY); 
    GL11.glEnableClientState(GL11.GL_NORMAL_ARRAY); 

    GL11.glDrawArrays(GL11.GL_TRIANGLES, 0, this.faces.size() * 3); 

    GL11.glDisableClientState(GL11.GL_VERTEX_ARRAY); 
    GL11.glDisableClientState(GL11.GL_NORMAL_ARRAY); 

    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0); 

谁能帮助?

+0

您是否曾尝试在数组指针调用之前放置启用?你不应该*有*,但LWJGL似乎更喜欢你。 – 2013-03-25 00:59:28

+0

什么使我必须投入? – 2013-03-26 18:13:02

+0

'glEnableClientState':启用。 – 2013-03-26 18:13:53

回答

0

这意味着数组缓冲区对象,在您的情况vertexHandle或normalHandle没有链接到任何数据源。尝试检查你的数组缓冲区对象的初始化。