Slt,
Le titre parle de lui-même.
Je voudrai connaitre les outils OpenGL pour afficher une image bitmap (au préalable il faudra que je la charge - Python - mais sa si vous ne savez pas j'irai me renseigner ailleurs)
Merci
Slt,
Le titre parle de lui-même.
Je voudrai connaitre les outils OpenGL pour afficher une image bitmap (au préalable il faudra que je la charge - Python - mais sa si vous ne savez pas j'irai me renseigner ailleurs)
Merci
tu peux :
-afficher ton image en brut avec glDrawPixels -> lent donc pas pour s'amuser avec du temps réel
-ou alors en faire une texture, ton image doit alors être de dimensions puissance de 2 (sinon il faut la découper, voir http://www.developpez.net/forums/vie....php?t=476225)
et dans ce cas tu te sert de glVertex et glTexCoord pour l'afficher
J'ai un exemple de texturage dans mon code mais le bitmap est monochrome c pas nécessaire qu'il le soit pour faire une texture ??
il faut que ton bitmap soit d'un format connu par OpenGL (voir glTexImage2D) sinon il faudra convertir
Bonjour,
arretez moi si je dis une bétise, mais ne faut il pas dabord mettre l'image dans un glubytes avant de la faire afficher par gldrawpixel ?
Pour l'instant je vais essayer avec les textures.
Est-ce que le format .bmp est reconnu ??
Normalement oui puisque mon exemple se fait ac un .bmp monochrome, je pense pas que le fait qu'il soit en couleur change qqchose. Non ??
Ces paramètres sont-ils correct ??
Code : Sélectionner tout - Visualiser dans une fenêtre à part glTexImage2D(GL_TEXTURE_2D, 0, 4, taille_x, taille_y, 0, GL_RGB, GL_UNSIGNED_BYTE, image)
non, ils ne sont pas corrects vis à vis de ce que t udisais à propos de ton image
pour commencer, opengl ne sait pas lire des images, il faut que tu la charge et que tu passes un tableau contenant les informations des pixels (le dernier paramètre de glTexImage2D)
9 paramètres :
Code : Sélectionner tout - Visualiser dans une fenêtre à part glTexImage2D(GL_TEXTURE_2D, 0, 4, taille_x, taille_y, 0, GL_RGB, GL_UNSIGNED_BYTE, image)
-1er : GL_TEXTURE_2D : ok
-2ème : 0 : ok
-3ème : 4 composantes = rouge, vert, bleu, alpha, c'est pas monochrome déjà, à ma connaissance OpenGL ne gère pas les textures monochromes, il faut la convertir en niveaux de gris
-4ème : taille_x : ok
-5ème : taille_y : ok
-6ème : 0 : ok, pas de bordure
-7ème : GL_RGB : comme pour le 3ème, tu définis l'image en rouge, vert, bleu, ou est passé l'alpha ?
-8ème : GL_UNSIGNED_BYTE défini le contenu du 9ème paramètre
-9ème : qu'est-ce que "image" ? si c'est :
alors c'est bon
Code : Sélectionner tout - Visualiser dans une fenêtre à part GL_UNSIGNED_BYTE* image
sinon, c'est pas bon
pour conclure, je me répète mais, tu dois convertir ton image monochrome au moins en niveaux de gris, auquel cas tu pourras utiliser glTexImage2D comme suis :
Code : Sélectionner tout - Visualiser dans une fenêtre à part glTexImage2D(GL_TEXTURE_2D, 0, 1, taille_x, taille_y, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, image)
Je fais déjà l'affichage d'une image monochrome, le problème n'est pas là.
Ce que je souhaite faire maintenant, c'est affiché une image couleur bitmap.
J'ai fait qq recherche et est-ce que pour un .bmp je doit mettre ça ??
J'utilise le langage Python donc mes variables n'ont pas de type explicite.
Code : Sélectionner tout - Visualiser dans une fenêtre à part glTexImage2D(GL_TEXTURE_2D, 0, 4, ix, iy, 0, GL_COLOR_INDEX, GL_BITMAP, image)
si ton image est en couleurs indexées (256 couleurs) alors GL_COLOR_INDEX est appropriéEnvoyé par Corpio
pour les images en 24 ou 32 bits, c'est GL_RGB, GL_RGBA, ect
et GL_BITMAP n'est pas un type OpenGL connu
C'est bon j'ai réglé le problème, j'avais des problèmes d'affichage parcequ'il manquait des paramètres pour le texturage.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 glPixelStorei(GL_UNPACK_ALIGNMENT,1) glTexImage2D(GL_TEXTURE_2D, 0, 3, ix, iy, 0, GL_RGB, GL_UNSIGNED_BYTE, image) glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST) glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST) glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager