PDA

View Full Version : [C++] openGL e texture


DesmoColo
14-01-2005, 01:34
Qualcuno di voi potrebbe dirmi dove trovare il codice che spiega come fare la seguente cosa:

Disegno una quad;
sopra ci appico la texture mytexture.jpg

Il codice della quad che ho è il seguente:
point3f V[4];

glBegin(GL_QUADS);
glNormal(n);
glTexCoord2f(0.05f,0.05f);
glVertex(V[0]);
glTexCoord2f(0.95f,0.05f);
glVertex(V[1]);
glTexCoord2f(0.95f,0.95f);
glVertex(V[2]);
glTexCoord2f(0.05f,0.95f);
glVertex(V[3]);

glNormal3f(0,-1,0);
glVertex (V[0]);
glVertex3f(V[0][0], V[0][1], 0);
glVertex3f(V[1][0], V[1][1], 0);
glVertex (V[1]);

glNormal3f(1,0,0);
glVertex (V[1]);
glVertex3f(V[1][0], V[1][1], 0);
glVertex3f(V[2][0], V[2][1], 0);
glVertex (V[2]);

glNormal3f(0,1,0);
glVertex (V[2]);
glVertex3f(V[2][0], V[2][1], 0);
glVertex3f(V[3][0], V[3][1], 0);
glVertex (V[3]);

glNormal3f(-1,0,0);
glVertex (V[3]);
glVertex3f(V[3][0], V[3][1], 0);
glVertex3f(V[0][0], V[0][1], 0);
glVertex (V[0]);
glEnd();

Come faccio adesso a metterci sopra una figurina? (Suponendo che è già convertita in una texture?)

DanieleC88
14-01-2005, 20:06
Devi prima caricare in memoria (anche in una unsigned char *) la texture che vuoi come sequenza di byte (dati grezzi, quindi fai prima se usi BMP) e poi genera le texture:

glGenTextures(numero_di_texture_da_generare, &variabile);
glBindTexture(GL_TEXTURE_2D, variabile);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); //usa il filtro lineare
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); //usa il filtro lineare
glTexImage2D(GL_TEXTURE_2D, 0, 3, larghezza, altezza, 0, GL_RGB, GL_UNSIGNED_BYTE, dati_grezzi_dell_immagine);

DesmoColo
15-01-2005, 13:54
Ok funziona!
Ancora 1000 grazie!

DanieleC88
15-01-2005, 22:43
Originariamente inviato da DesmoColo
Ok funziona!
Ancora 1000 grazie!

Non ringraziare me, ringrazia Jeff Molofee ("NeHe"). Guardati questo link: nehe.gamedev.net :)
È mitico, se ami le OpenGL.
Bye!