Comment charger une image 1024x768?

Résolu
Slown Messages postés 37 Date d'inscription lundi 14 mars 2005 Statut Membre Dernière intervention 20 mai 2009 - 23 oct. 2005 à 14:51
Slown Messages postés 37 Date d'inscription lundi 14 mars 2005 Statut Membre Dernière intervention 20 mai 2009 - 23 oct. 2005 à 18:23
Bonjour. J'ai trouvé un tutorial traitant sur le mapping. Voici le code: http://www.linuxgraphic.org/section3d/openGL/didacticiels/didac6/didac5.html . Ce programme ne fonctionne que pour des images de taille 256x256. Je voudrais pouvoir afficher une image de taille 1024x768, mais je n'arrive pas à adapter le code source à mes besoins. Pourriez-vous me dire quelles modifications il faut faire pour pouvoir charger une image 1024x768 afin de faire un fond d'ecran de bonne qualité? j'crois que le probleme vient de la definition des tableaux du haut, enfin bon... Merci beaucoup cher Dieu de la prog!

PS: si vous connaissez un code source permetant de charger une image jpeg sans conditions de taille j'suis preneur!



Slown

2 réponses

MrdJack Messages postés 146 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 8 mars 2008 2
23 oct. 2005 à 16:29
il me semble qu'une texture sous opengl doit avoir des dimensions puissance de 2 : 2,4,8,16,32,64,128,256,512....

donc si tu souhaite afficher une image ayant des dimensions qui ne
correspondent pas a cette regle, il faut la stocker dans une texture
ayant les dimensions supérieures a l'image à texturer qui suivent la
regle.

donc pour un jpg en 1024*768, tu la stock en texture 1024*1024. la
partie de la texture qui est en trop est donc remplie de noir.

ensuite, il faut jouer sur la fonction glTexCoord2f(GLfloat u,Glfloat v) où u est entre 0 et 1 et le changement se fait sur v :

v est compris entre 0 et 0.75 (768/1024) ça te permet donc de tronquer la partie inutile de la texture.



dans le code source que tu utilise, ca implique quelques modifs de code :

la fonction loadJpegImage() doit etre retravaillée afin de charger des textures en puissance de 2 au lieu de 256*256 uniquement.

les tableaux doivent etre dimenssionnés en conséquence.

la fonction glTexImage2D(GL_TEXTURE_2D,0,GL_RGB,256,256,0,GL_RGB,GL_UNSIGNED_BYTE,texture);

doit etre modif aussi....



je ne suis pas certain que ca marchera comme tu l'entends...



mais avec ce code source, c'est tout ce que je peux faire pour t'aider vu mon niveau.



@++
3
Slown Messages postés 37 Date d'inscription lundi 14 mars 2005 Statut Membre Dernière intervention 20 mai 2009
23 oct. 2005 à 18:23
Merci beaucoup pour ta reponse MdrJack. J'peux enfin manipuler des jpeg pour ecran de fond!!! Merci.



Slown
0
Rejoignez-nous