Ich bin neu in OpenGL und versuche derzeit, einen Würfel mit vier Flächen, jede mit einer anderen Textur.LWJGL OpenGL Sprite Blatt
Wie Sie alle wissen, ist die Verwendung einer separaten Textur für jeden Gesichtstyp sehr speicherintensiv und verlangsamt die Anwendung.
Im Moment versuche ich ein Texturblatt für das Sprite zu verwenden. Ich habe die Grafikdatei mit jeder Textur 16x16 Pixel mit 256 Sprites in einem Quadrat (16x16) angeordnet.
Ich weiß, dass
GL11.glTexCoord2f(1.0f, 0.0f);
GL11.glVertex3f(1.0f, 1.0f, 1.0f);
GL11.glTexCoord2f(0.0f, 0.0f);
GL11.glVertex3f(0.0f, 1.0f, 1.0f);
GL11.glTexCoord2f(0.0f, 1.0f);
GL11.glVertex3f(0.0f, 0.0f, 1.0f);
GL11.glTexCoord2f(1.0f, 1.0f);
GL11.glVertex3f(1.0f, 0.0f, 1.0f);
gibt mir ein Rechteck mit dem ganzen Blatt Sprite so u
und v
von glTexCoord2f
haben als 1.0f weniger.
Was ich jetzt brauchen, ist eine Formel, die die u
und v
jeder Sprite-ID in der Textur berechnen wird.
Die IDs gehen wie folgt in der Textur Bitmap:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
17 18 16 20 21 22 23 24...
und ich möchte eine u
und v
für jede dieser IDs haben. Das letzte bisschen ist nicht sehr gut erklärt, also werde ich es besser erklären, wenn Sie möchten.
Vielen Dank im Voraus!
Das Problem, das ich jetzt habe, ist die ID, die von 0 unten links bis 15 oben links geht und so weiter. – s5d
In diesem Fall sind die Werte für Zeile und Spalte wahrscheinlich: row = (16 - texNo)% 16; col = texNr/16; –