Comment charger une image 1024x768?

[Résolu]
Signaler
Messages postés
37
Date d'inscription
lundi 14 mars 2005
Statut
Membre
Dernière intervention
20 mai 2009
-
Messages postés
37
Date d'inscription
lundi 14 mars 2005
Statut
Membre
Dernière intervention
20 mai 2009
-
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

Messages postés
146
Date d'inscription
jeudi 22 avril 2004
Statut
Membre
Dernière intervention
8 mars 2008
2
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.



@++
Messages postés
37
Date d'inscription
lundi 14 mars 2005
Statut
Membre
Dernière intervention
20 mai 2009

Merci beaucoup pour ta reponse MdrJack. J'peux enfin manipuler des jpeg pour ecran de fond!!! Merci.



Slown