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

Langage Delphi Discussion :

Transparence opengl delphi


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2007
    Messages : 146
    Points : 48
    Points
    48
    Par défaut Transparence opengl delphi
    Bonjour,

    J'ai un soucis avec OpenGL et les textures.
    Comment afficher une texture png , en gérant les couleurs transparantes?

    Car lorsque j'affiche une texture elle s'affiche mais avec un contour blanc, comment pourrais-je l'enlever ?

    Merci beaucoup

  2. #2
    Membre du Club
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2007
    Messages : 146
    Points : 48
    Points
    48
    Par défaut
    Bonsoir,

    je suis toujours bloqué pour la transparence.

    Je suis sur une piste, c'est ajouté une couche alpha grace a Gimp et l'importé sous forme de TGA bien entendu.

    Donc a ma classe voiture, je voudrais ajouter la texture tga avec la couche alpha activé, comme c'est possible ? Car j'ai vu sur un tuto d'utilisé par exemple GLbmp pour les tga mais il reste introuvable (lien mort). Alors peut etre que graphicEx ?

    mais je ne sais pas du tout l'utilisé, je vous remercie d'avance.

    Bonne soirée

  3. #3
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 448
    Points
    28 448
    Par défaut
    Oui sous OpenGL la transparence c'est en fait du blending...que peut être basé sur l'Alpha

    les fonctions clés sont donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      glEnable(GL_BLEND);
      glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
    là tu actives le blending et tu déclares que celui-ci est basé sur le canal Alpha de la source, mais tu as des tas d'autres combinaisons possible
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  4. #4
    Membre du Club
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2007
    Messages : 146
    Points : 48
    Points
    48
    Par défaut
    Je te remercie pour cette réponse.

    Pour cela je doit gérer quel format d'image ? le TGA ? ou le BMP passe très bien :S

    Car je n'arrive qu'a importé du bmp malheureusement.

    Cordialement

  5. #5
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 448
    Points
    28 448
    Par défaut
    Citation Envoyé par Rian83 Voir le message
    Je te remercie pour cette réponse.

    Pour cela je doit gérer quel format d'image ? le TGA ? ou le BMP passe très bien :S

    Car je n'arrive qu'a importé du bmp malheureusement.

    Cordialement
    peu importe le format du fichier, de toute façon tu devras le présenter sous forme binaire à OpenGL

    tu as des exemples ici et sur le site Sulaco.co.za
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  6. #6
    Membre du Club
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2007
    Messages : 146
    Points : 48
    Points
    48
    Par défaut
    Mais je comprend pas un truc, je ne peu pas mettre de canal alpha sur mon bmp non ?

    Je vais allez voir tes liens.

    Moi j'ai entendu dire que je pouvais charger les pixels de l'image et que le pixel :

    0,255,42,255 je le transformais en 0,255,42,0
    Cela peu marcher ?


    EDIT : Pour l'exemple, je suppose que son TGA a une couche alpha ?
    Mais je vois pas comment il l'active, car j'ai commenté les lignes :

    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
    glEnable(GL_BLEND);

    Et ca marche toujours :S

  7. #7
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 448
    Points
    28 448
    Par défaut
    Citation Envoyé par Rian83 Voir le message
    Mais je comprend pas un truc, je ne peu pas mettre de canal alpha sur mon bmp non ?
    oui et non sur un Bitmap pf32bit, tu as la places pour stocker le canal Alpha, par contre si tu fais un copier/coller dans Paint par exemple, tu vas perdre ce canal...il faut un logiciel qui soit capable de le gérer c'est tout

    Citation Envoyé par Rian83 Voir le message
    Je vais allez voir tes liens.

    Moi j'ai entendu dire que je pouvais charger les pixels de l'image et que le pixel :

    0,255,42,255 je le transformais en 0,255,42,0
    Cela peu marcher ?
    si tu accèdes au ScanLine de ton bitmap tu peux venir changer tout ce que tu veux...tu peux par exemple calculer la valeur du canal alpha en fonction de la couleur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    var
      b: TBitmap;
      x,y:integer;
      p:pcardinal;
    begin
      b := TBitmap.Create;
      b.LoadFromFile('...');
      b.PixelFormat := pf32bit;
      for y := 0 to b.Height-1 do
      begin
        p := b.ScanLine[y];
        for x := 0 to b.Width-1 do
        begin
         if p^ and $FFFFFF = TransparentColor then
          p^ := 0
         else
          p^ := p^ or $FF000000
         inc(p);
        end;
      end;
    end;
    Citation Envoyé par Rian83 Voir le message
    EDIT : Pour l'exemple, je suppose que son TGA a une couche alpha ?
    Mais je vois pas comment il l'active, car j'ai commenté les lignes :

    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
    glEnable(GL_BLEND);

    Et ca marche toujours :S
    étonnant ...
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  8. #8
    Membre du Club
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2007
    Messages : 146
    Points : 48
    Points
    48
    Par défaut
    Merci pour tes aides
    La transparence est gerer sur tga avec le canal alpha et 3 / 4 commandes openGl par contre le sol de mon jeu (la map quoi) est devenu bluet, mystere ^^

  9. #9
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 448
    Points
    28 448
    Par défaut
    ah oui, en effet, c'est au niveau de la texture qu'on lui indique de faire du blend

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  10. #10
    Membre du Club
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2007
    Messages : 146
    Points : 48
    Points
    48
    Par défaut
    wow, c'est quoi ca ? cela sert a quoi ?

Discussions similaires

  1. La transparence opengl
    Par choko83 dans le forum OpenGL
    Réponses: 7
    Dernier message: 09/03/2010, 14h54
  2. Sphère en Opengl Delphi
    Par epita2012 dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 14/04/2009, 15h43
  3. Cherche tuto HUD OpenGL/Delphi
    Par User Name dans le forum Débuter
    Réponses: 16
    Dernier message: 19/06/2008, 08h01
  4. Equivalent GLSCENE (OpenGl-Delphi) en DirectX-C# ?
    Par Graffito dans le forum Windows Forms
    Réponses: 5
    Dernier message: 07/01/2008, 12h00
  5. Réponses: 5
    Dernier message: 18/03/2005, 20h10

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