![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMsNIVezc_IM5jy40h5aqV-MIYSQBxtmaBWzHHnbve_j5VijCVWQ5DdEwPUTfyXoN9lfmCwDP_vi_Ug0bxfF_jLhYoB2Ei__djSI217OLG9IRt0GJt20WXxn65YMrGwBAxm4rT8EKv_YE/s400/opengl.png)
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