begin process at 2010 02 10 07:27:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Linux

 > 

OpenGL

 > 

texture avec une seule couleur transparente


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

texture avec une seule couleur transparente

dimanche 13 janvier 2008 à 13:38:17 | texture avec une seule couleur transparente

thespartan

Bonjour. J'affiche un bmp pour lequel le noir ne doit pas être affiché et pour cela j'utilise du blending (il me semblait qu'on pouvait y parvenir avec...). Mais dans toutes mes tentatives, c'est toute l'image qui a tendance à devenir transparente : si le noir n'est plus opaque comme je voulais, le reste de l'image non plus...
quels seraient les bons arguments de glBlendFunc? (j'en ai essayé pas mal déjà...)

Spartan
dimanche 13 janvier 2008 à 13:52:31 | Re : texture avec une seule couleur transparente

acx01b

le plus simple serait de faire une texture rbga avec a = 0 pour le noir et a = 0.5 (ou un peu plus un peu moins) pour les autres couleurs

après y'a d'autres techniques mais je ne m'y connais pas trop

note que si tu stockes ta texture dans un bmp (ou jpg que tu décompresses en bmp) tu peux d'abord parcourir le bmp rgb 24 bit pour voir quels pixels sont noirs et calculer la valeur a de ton nouveau pixel rgba en fonction, enfin c'est comme ça que je ferais
dimanche 13 janvier 2008 à 14:31:35 | Re : texture avec une seule couleur transparente

thespartan

j'y ai pensé mais ça me rebutait un peu étant donné que ce n'est pas moi qui ai écrit le loader bmp que j'utilise...
Donc voici la structure de l'image :
struct Image {
  unsigned long sizeX;
  unsigned long sizeY;
  char *data;
};

donc quand je charge l'image , je transforme :
glTexImage2D(GL_TEXTURE_2D, 0, 3, image1->sizeX, image1->sizeY, 0, GL_RGB,
            GL_UNSIGNED_BYTE, image1->data);
en
en glTexImage2D(GL_TEXTURE_2D, 0, 4, image1->sizeX, image1->sizeY, 0, GL_RGBA,
            GL_UNSIGNED_BYTE, image1->data);
il faut que tout les 3 éléments de data, j'insère une composante alpha cest bien ça?

puis quand je sélectionne la texture : glBindTexture(GL_TEXTURE_2D, texture[?]), l'affichage se fera en RGB donc il faut que j'active l'alpha testing avant pour passer en RGBA, c'est ça?

Spartan
mardi 15 janvier 2008 à 22:50:37 | Re : texture avec une seule couleur transparente

acx01b

oui au moment de l'affichage il faut activer gl_apha test ou gl_blend
mais au moment de la création de la texture il faut juste remplacer le GL_RGB par GL_RGBA comme tu as fait
(les couleurs sont entre 0 et 255 si tu es en mode GL_UNSIGNED_BYTE)



Cette discussion est classée dans : couleur, transparente, texture, seule, noir


Répondre à ce message

Sujets en rapport avec ce message

conversion couleur noir & blanc [ par scudi ] Bonjour! j aimerai savoir comment faire pour changer une image en couleur en noir et blanc. Je sait qu il faut changer la palette de l image (je trait Couleur et texture en opengl [ par smoove5198 ] bonjour, je suis un peu newbie en opengl et je n'ai toujours pas bien compris comment faire pour colorer les objets qu'on affiche sans que cela influ Transparence avec glBlend [ par smoove5198 ] Bonjour, A l'aide d'un tutorial j'ai crée une classe qui affiche du texte sous opengl a partir d'une texture bmp listant tous les caracteres. Dans c lire la couleur d'un point d'une texture opengl [ par kawito ] Bonjour,j'ai crée des texture opengl a partir de fichier TGA.une fois les textures crées comment puis je reccuperer les information d'un pixel de la t allegro [ par mat74 ] salut a ts ,avec allegro la couleur transparente est le violet . cad que si on met du violet ds un dessin il n'apparait pas a l'écran . j'ai merai sav OpenGL : Couleur Transparente (composante alpha) [ par smoove5198 ] Bonjour, Je fait de l'affichage 3D avec opengl et je souhaite utiliser le principe de couleur transparente. Apres m'etre un peu renseigné j'ai appri couleur transparente cliquable [ par ndubien ] Bonjour,Je souhaiterais rendre une couleur de ma fenêtre tout en laissant la zone de la fenêtre cliquable comme si elle y était...Pour rendre transapr récupération de la couleur d'un pixel [ par njo80 ] Bonjour,Je suis en train de créer un petit jeu style zelda (en light), j'ai affiché ma carte ainsi que mon sprite qui bouge.Pour gérer la collision j' [WinAPI] fonctions graphiques [ par riked ] Bonjour (ou bonsoir), Je suis nouveau sur cppfrance et je vient vous exposer mon problème. Je fait actuellement un programme qui à pour but d'affich OpenGL et textures [ par Jackyzgood ] Bonjour à tous ! Maintenant que je commence à être à l'aise en SDL, je me suis dis : ça pourrait être bien de passer à l'OpenGL. J'ai suivis un tuto


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales