
A következő kódot kaphatjuk:
private void DrawCube() { Gl.glEnable(Gl.GL_TEXTURE_2D); Gl.glBindTexture(Gl.GL_TEXTURE_2D, texId); Gl.glBegin(Gl.GL_QUADS); { // A "piros" oldal Gl.glTexCoord2f(0f, 0f); Gl.glVertex3f(-0.5f, +0.5f, -0.5f); Gl.glTexCoord2f(0.5f, 0f); Gl.glVertex3f(+0.5f, +0.5f, -0.5f); Gl.glTexCoord2f(0.5f, 0.5f); Gl.glVertex3f(+0.5f, -0.5f, -0.5f); Gl.glTexCoord2f(0f, 0.5f); Gl.glVertex3f(-0.5f, -0.5f, -0.5f); // A "zöld" oldal Gl.glTexCoord2f(0.5f, 0f); Gl.glVertex3f(-0.5f, +0.5f, +0.5f); Gl.glTexCoord2f(1, 0); Gl.glVertex3f(+0.5f, +0.5f, +0.5f); Gl.glTexCoord2f(1f, 0.5f); Gl.glVertex3f(+0.5f, -0.5f, +0.5f); Gl.glTexCoord2f(0.5f, 0.5f); Gl.glVertex3f(-0.5f, -0.5f, +0.5f); // A "kék" oldal Gl.glTexCoord2f(0f, 0.5f); Gl.glVertex3f(-0.5f, +0.5f, +0.5f); Gl.glTexCoord2f(0.5f, 0.5f); Gl.glVertex3f(-0.5f, +0.5f, -0.5f); Gl.glTexCoord2f(0.5f, 1f); Gl.glVertex3f(-0.5f, -0.5f, -0.5f); Gl.glTexCoord2f(0, 1); Gl.glVertex3f(-0.5f, -0.5f, 0.5f); // A "lila" oldal Gl.glTexCoord2f(0.5f, 0.5f); Gl.glVertex3f(+0.5f, +0.5f, +0.5f); Gl.glTexCoord2f(1f, 0.5f); Gl.glVertex3f(+0.5f, +0.5f, -0.5f); Gl.glTexCoord2f(1, 1); Gl.glVertex3f(+0.5f, -0.5f, -0.5f); Gl.glTexCoord2f(0.5f, 1f); Gl.glVertex3f(+0.5f, -0.5f, +0.5f); // A "sárga" oldal Gl.glTexCoord2f(0, 0); Gl.glVertex3f(-0.5f, +0.5f, +0.5f); Gl.glTexCoord2f(1, 0); Gl.glVertex3f(+0.5f, +0.5f, +0.5f); Gl.glTexCoord2f(1, 1); Gl.glVertex3f(+0.5f, +0.5f, -0.5f); Gl.glTexCoord2f(0f, 1f); Gl.glVertex3f(-0.5f, +0.5f, -0.5f); // A "cián" oldal Gl.glTexCoord2f(0, 0); Gl.glVertex3f(-0.5f, -0.5f, 0.5f); Gl.glTexCoord2f(1, 0); Gl.glVertex3f(+0.5f, -0.5f, 0.5f); Gl.glTexCoord2f(1f, 1f); Gl.glVertex3f(+0.5f, -0.5f, -0.5f); Gl.glTexCoord2f(0, 1); Gl.glVertex3f(-0.5f, -0.5f, -0.5f); } Gl.glEnd(); Gl.glDisable(Gl.GL_TEXTURE_2D); }Ha lefuttatjuk, látjuk, hogy valóban négy oldalra kirakott 4 különböző képet.
Annyi csak a baj, hogy a képek fordítva vannak. Ezen úgy segíthetünk, hogy a pontok kirajzolását megfordítjuk (1.2.3.4 helyett 4.3.2.1), vagy pedig a textúra koordinátákat x, y irányban megcseréljük, de ezt már mindenki állítsa be magának! Ugye milyen egyszerű?
A példa teljes forrása itt tölthető le:
A fenti tutorial PowR által írt a http://free-pascal.extra.hu/ oldalon megtalálható OGL tutorial alapján készült el. Köszönet érte PowR-nek, valamint Kuba Attila - OGL Programozása jegyzetének!
0 megjegyzés :
Megjegyzés küldése