IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenGL Discussion :

creer 1 tex rgba a partir d'1 tex rgb et d'1 tex alpha


Sujet :

OpenGL

  1. #1
    Membre habitué
    Inscrit en
    Avril 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 11
    Par défaut creer 1 tex rgba a partir d'1 tex rgb et d'1 tex alpha
    bonjours a tous,
    j'aurais besoin d'un coup de pouce concernant la creation d'un texture rgba sous gl a partir de deux textures chargé via SDL_image en jpg...
    mon but est d'utilisé la première (Color 24 bits) pour remplir les canaux rgb de la tex puis d'ultilisé la deuxième (N&B 8 bits) pour remplir le canal alpha...

    donc pour la première y a pas de soucis les canaux rgb se remplisse bien et je peu voir ma texture par contre dès que j'effectue une opération de dessin dans l'alpha via la deuxième texture afin de controler ma transparence, ça part en live...

    que se soit avec glDrawPixels ou glTexSubImage2d en GL_ALPHA, ça me remplace complètement la texture par une tex en alpha au lieu d'etre en rgba...?!!

    voila donc merci d'avance en espérant que qqn puisse help me...!!!

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 108
    Par défaut
    Le problème que tu rencontres est tout à fait normal puisque tu utilises deux textures différentes. Il ne faut pas oublier que OpenGL est une machine à état.

    En faites, si j'ai bien compris, tu créés une texture avec GL_RGB et une autre avec GL_ALPHA et tu desires appliquer ces deux textures sur le même objet.

    Première possibilité :
    Utiliser le multi-texture : regarde sur le site de nehe, c'est très bien expliquer.

    Deuxième solution :
    Tu créés une image à partir de t'es deux images en RGBA. Tu peux aussi stocker ces images initialialement dans un format RGBA (par exemple le TGA).
    Ensuite, tu n'as plus qu'à créer ta texture avec GL_RGBA.

  3. #3
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    je vait expliquer un peu plus la deuxieme solution qui me parrait la plus adaptée :

    tu a une image 24 bits (donc 3 * 8 bits)
    une autre en 8 bits

    tes 2 images doivent avoire la même taille (sinon ca ne peut pas marcher...)

    tu crée un buffer en 32 bits (donc 24 bits + 8 bits) qui fait :
    4 * height * width... (le 4 vient du fait qu'un unsigned char fait 8 bits donc 4*8 bits = 32 bits...)

    et ensuite tu parcourt tes 2 texture (avec la fonction qui te retourne les donnée de la texture (c'est celle que tu utilise comme parametre de glTexImage2D(...)), en ajoutant 3 octet de la premiere dans le buffer, puis un octet de la seconde etc... puis ensuite tu crée ta texture en RGBA...
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  4. #4
    Membre habitué
    Inscrit en
    Avril 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 11
    Par défaut
    ok merci pour ces reponses plus que limpide mais je voulais etre en jpeg car c quand meme bcp plus léger que le tga... vu que c un jeu open source qu'on est en train de developper...

    sinon j'avais deja implémenter la deuxieme methode qui est parfaitement effective mais j'aurais aimé que ça marche qu'avec des fonction gl sans passer par un tampon car en fait je cré le texture en GL_RGBA en la ramplissant en GL_RGB avec la première texture et j'pensait qu'il serais possible d'ecrire dans l'alpha déja declaré via l'autre image et une methode en GL_ALPHA...

    mais bon... merci

  5. #5
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    non non c'est pas possible de crée une texture RGBA, de lui filler les velaure RGB puis apres les ALPHA... et puis de toute facon pour openGL, jpeg ou TGA c'est la même chose, la seule difference c'est sur le disque dur...

    Une fois que ton TGA ou ton Jpeg sont pret a etre chargé en memoire, ils on le même format poue openGL et prennent donc la même place en memoire... Le seul interet que tua a utiliser du Jpeg c'est de gagner le la place sur le disque dur, par contre tu perd en qualitée et tu perd aussi ce merveilleux canal alpha... Pour info, a l'heure actuelle, la quasi totalitée des jeux n'utilise plus le Jpeg mais des formats qui, comme le TGA, peuvent contenire un canal alpha...

    et donc la seul solution à ton probleme est de passer par un buffer temporaire...
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

Discussions similaires

  1. Créer un paquet debian à partir d'un prog Java
    Par sylsau dans le forum Debian
    Réponses: 1
    Dernier message: 12/10/2006, 08h37
  2. Comment créer une page HTML à partir du code behind ?
    Par totoche9 dans le forum ASP.NET
    Réponses: 6
    Dernier message: 01/08/2006, 13h52
  3. creer un tableau sur word à partir de delphi.
    Par solitaire dans le forum Langage
    Réponses: 4
    Dernier message: 12/02/2006, 10h51
  4. [VBA]possible ou pas ? creer une image jpg a partir 7 jpg
    Par sakuraba dans le forum Général VBA
    Réponses: 5
    Dernier message: 03/01/2006, 10h45
  5. [reseaux] Comment creer un compte user à partir d'un formul avec perl
    Par oulai_evado dans le forum Programmation et administration système
    Réponses: 4
    Dernier message: 01/10/2002, 19h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo