1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
/// ouverture de la texture au format RAW
char buffer[128*128*3];
FILE *f = fopen("Textures/crate.raw", "rb");
if (f){
fread(buffer, 128*128*3, 1, f);
fclose(f);
printf("texture chargée\n");
}else printf("Il y a un problème de fichier!!!!\n");
}
/// texturing
glColor3ub(255,255,255);
glGenTextures(1,&Nom);
glBindTexture ( GL_TEXTURE_2D, Nom );
glTexImage2D(GL_TEXTURE_2D,0,3, 128, 128, 0, GL_RGB, GL_UNSIGNED_BYTE, buffer);
glEnable(GL_TEXTURE_2D);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
/// afficher un cube avec les vertex array
glEnableClientState( GL_VERTEX_ARRAY ); /// activation du tableau de vertex
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glVertexPointer( 3, GL_FLOAT, 0, VertexArray );///tableau de coordonnées de vertex
glTexCoordPointer(2, GL_FLOAT, 0, texCoord );///tableau des coordonnées de texture par vertex
glDrawElements(GL_QUADS, 24, GL_UNSIGNED_BYTE, IndiceArray);/// creation de la géométrie
glDisableClientState( GL_COLOR_ARRAY );///tableau à désactiver
glDisableClientState( GL_VERTEX_ARRAY );
glFlush();
} |
Partager