I’m stuck with VertexArrays, I can’t get it to work. :’( Does anyone have a small working example (for jogl)?
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.
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.
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