gilimcce
Messages postés33Date d'inscriptionjeudi 2 septembre 2004StatutMembreDernière intervention27 septembre 2004
-
2 sept. 2004 à 16:35
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 2004
-
3 sept. 2004 à 14:22
Je dois plaquer une texture sur un corps quelconque, sous OpenGL.
Je dispose d'une image jpeg de 1440*720 ou tout format quelconque.
OpenGL nécessite une texture dont les dimensions sont des puissance de 2.
Comment passer du tableau 3D [720][1440][3] à [512][1024][3] par exemple ?
Un petit indice...
Sous IDL il s'agit de la fonction "CONGRID".
Personnellement, ça ne m'a pas vraiment aidé, mais...
Le corps est effectivement mappé, mais de manière imparfaite :
L'image semble déformée, striée...
je te livre partie du code, au cas où tu puisses y voir qq chose.
merci sans fin.
//////////////////////// Main \\\\\\\\\\\\\\\\\\\\\\\\\\
[...]
loadJpegImage(file);
[...]
/* Parametrage du placage de textures */
glPixelStorei(GL_UNPACK_ALIGNMENT,1);
gluBuild2DMipmaps(GL_TEXTURE_2D,3,1024,512,GL_RGB,GL_UNSIGNED_BYTE,texture);
//glTexImage2D est en commentaire puisque géré par gluBuild2DMipmaps
//glTexImage2D(GL_TEXTURE_2D,0,3,512,1024,0,GL_RGB,GL_UNSIGNED_BYTE,texture);
// rearangement de l'image scannee dans le tableau de texture 3D
for (i=0;i<720;i++)
for (j=0;j<1440;j++)
{
texture[i][j][0]=image[i*1440*3+j*3];
texture[i][j][1]=image[i*1440*3+j*3+1];
texture[i][j][2]=image[i*1440*3+j*3+2];
}