Vertex Array Cube
-
Hallo,
ich habe einen RGB Cube mit Hilfe eines indexed Vertex Arrays realisiert.
Hier die Deklaration :
float[,] cubeArray = { {0.0f, 0.0f, 1.0f}, // FRONT {1.0f, 0.0f, 1.0f}, {1.0f, 1.0f, 1.0f}, {0.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, // BACK {1.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 0.0f}, {0.0f, 1.0f, 0.0f}}; byte[,] cubeIndex = { {0, 1, 2, 3}, // front {7, 3, 2, 6}, // top {4, 0, 1, 5}, // bottom {4, 0, 3, 7}, // left {5, 1, 2, 6}, // right {4, 5, 6, 7}}; // back
Die Renderfunktion :
Gl.glEnableClientState(Gl.GL_VERTEX_ARRAY); Gl.glEnableClientState(Gl.GL_COLOR_ARRAY); Gl.glVertexPointer(3, Gl.GL_FLOAT, 0, cubeArray); Gl.glColorPointer(3, Gl.GL_FLOAT, 0, cubeArray); Gl.glDrawElements(Gl.GL_QUADS, 24, Gl.GL_UNSIGNED_BYTE, cubeIndex); Gl.glDisableClientState(Gl.GL_VERTEX_ARRAY); Gl.glDisableClientState(Gl.GL_COLOR_ARRAY);
Das funktioniert soweit super. Ich würde diesen Cube gerne noch Texturieren, aber mir fällt keine Möglichkeit ein, ein TexturArray so anzulegen, dass es
mit Hilfe des IndexArray auch die richtigen U, V Koordinaten ausspuckt.Hat vielleicht jemand ne Idee wie das zu realisieren ist bzw ob es überhaupt
möglich ist mit meinem Array?Vielen Dank schonmal.
MfG
Christian
-
Ich schätze mal das ist OpenGL, ich weiß nicht wie man da die Vertices zusammensetzt. Ich kann dir aber sagend as 8 Vertices nicht reichen um ein korrektes Ergebniss zu erhalten. Da sich 3 Seiten imer einen Eckpunt teilen sind 2 Seiten richtig, 2 Spiegelverkehrt und 2 haben nur Streifen, sie habend ann nur die oberen oder unteren Texturkorodinaten. Für ein korrektes Ergebniss brauchst du 24 Vertices, 4 für jede Seite.
-
Vielen Dank für die Antwort.
Das bestätigt nur meine Annahme. Dann werde ich wohl umsatteln auf 24 Verts.