VertexArray

I’m stuck with VertexArrays, I can’t get it to work. :’( Does anyone have a small working example (for jogl)? :stuck_out_tongue:


  if (normals != null) {
                gl.glEnableClientState(gl.GL_NORMAL_ARRAY);
                gl.glNormalPointer(gl.GL_FLOAT, 0, normals);
            }

            if (vectors != null) {
                gl.glEnableClientState(gl.GL_VERTEX_ARRAY);
                gl.glVertexPointer(3, gl.GL_FLOAT, 0, vectors);
            }

            if (texCoords2D != null) {
                gl.glEnableClientState(gl.GL_TEXTURE_COORD_ARRAY);
                gl.glTexCoordPointer(2, gl.GL_FLOAT, 0, texCoords2D);
            }

            if (texCoords3D != null) {
                gl.glEnableClientState(gl.GL_TEXTURE_COORD_ARRAY);
                gl.glTexCoordPointer(3, gl.GL_FLOAT, 0, texCoords3D);
            }

            gl.glDrawArrays(mode, 0, numVertices);


Yes, that’s been clear. :slight_smile:
Now please show how you define your arrays (?) named normals, vectors, etc.
I didn’t manage to use just a float array for example (like in “float vectors[] = new float[dim]”).
For static data I use display lists now. :slight_smile:

I thought this code would paint something to the screen, what did i do wrong?


ByteBufferbb = ByteBuffer.allocateDirect(9 * 4);
bb.order(ByteOrder.nativeOrder());
FloatBuffer bufPoints = bb.asFloatBuffer();
bufPoints.put(-1f);
bufPoints.put(-1f);
bufPoints.put(1f);
bufPoints.put(1f);
bufPoints.put(-1f);
bufPoints.put(1f);
bufPoints.put(1f);
bufPoints.put(1f);
bufPoints.put(1f);
gl.glEnableClientState(GL.GL_VERTEX_ARRAY);
g.glVertexPointer(3, GL.GL_FLOAT, 0, bufPoints);

gl.glDrawArrays(GL.GL_TRIANGLES, 0, 1);

I got it to work when I changed

gl.glDrawArrays(GL.GL_TRIANGLES, 0, 1);

to

gl.glDrawArrays(GL.GL_TRIANGLES, 0, 3); 

I’ll try to think before I post next time ;D