hello
i found a simple tutorial
[s]
i like to use the gldrawobject and seach for
the right strategie to use it…
my problem is first when declaring
ov (vertex) and ono(vertex) i can use it with
byte and int but not a float var.
i didnt google/find a simple demo for it…something
like a mini demo using gldrawobject for a quad
without hundrets of confusing things around
vertex = 0,0,0, 100,0,0, 100,0,100, 0,0,100;
normal = 0,1,0, 0,1,0, 0,1,0, 0,1,0;
indices = 0,1,2 ,2,3,0;
color = 1,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1; // ARGB(alpha)
textureuv = 0.0,0.0, 1.0,0.0, 1.0,1.0, 0.0,1.0;
gl.glTexCoordPointer (2, GL.GL_FLOAT, 0, textureuv);
gl.glNormalPointer (GL.GL_FLOAT,0,normal);
gl.glVertexPointer (3, GL.GL_FLOAT, 0, vertex);
gl.glColorPointer (4, GL.GL_FLOAT, 0, color);
gl.glDrawElements(GL.GL_QUADS, 4, GL.GL_UNSIGNED_INT, indices);
…
//this are some of my trys
IntBuffer oc = BufferUtil.newIntBuffer(8000); // color (ok)
IntBuffer ot = BufferUtil.newIntBuffer(8000); // texture uv // FloatBuffer is not working?!
IntBuffer ov = BufferUtil.newIntBuffer(8000); //vertex // FloatBuffer is not working?!
IntBuffer ono = BufferUtil.newIntBuffer(8000); //normals // FloatBuffer is not working?!
IntBuffer indices = BufferUtil.newIntBuffer(8000); // indices (ok)
//vertex example
float[] varray = new float[(3*3) * 3];
int k = 0;
for (int ii=-1;ii<2;ii++)
{
for (int i=-1;i<2;i++)
{
varray[k++] = i*40;
varray[k++] = 20;
varray[k++] = ii*40;
}
}
ov.put(varray);
ov.rewind();
.. with color..texture and normals the same
and
display...
...
// *** Layer 0
texture[9].bind();
gl.glTexCoordPointer (2, GL.GL_FLOAT, 0, ot);
gl.glNormalPointer (GL.GL_FLOAT,0,ono);
gl.glVertexPointer (3, GL.GL_FLOAT, 0, ov);
gl.glColorPointer (4, GL.GL_FLOAT, 0, oc);
gl.glDrawElements(GL.GL_QUADS, flachen[0]*4, GL.GL_UNSIGNED_INT, indices);
gl.glDisableClientState (GL.GL_VERTEX_ARRAY);
gl.glDisableClientState (GL.GL_COLOR_ARRAY);
gl.glDisableClientState (GL.GL_VERTEX_ARRAY);
gl.glInterleavedArrays( GL.GL_T2F_C4F_N3F_V3F, 0, ov );
gl.glDisable( GL.GL_BLEND );
[/s]