Therion__
|
 |
«
Posted
2008-04-03 18:02:18 » |
|
hello  i found a simple tutorial 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); ...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| IntBuffer oc = BufferUtil.newIntBuffer(8000); IntBuffer ot = BufferUtil.newIntBuffer(8000); IntBuffer ov = BufferUtil.newIntBuffer(8000); IntBuffer ono = BufferUtil.newIntBuffer(8000); IntBuffer indices = BufferUtil.newIntBuffer(8000);
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... ... 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 );
|
|
|
|
|
|