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 :

Texture mapping multiple


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Texture mapping multiple
    Bonjour,
    Voici mon problème : Je dois réaliser un mapping avec plusieurs textures de format RGB pour chaque sommets de mon mesh. J'ai également pour chaque sommet et pour chaque texture une information alpha. Ce que je fait : 1 plaquage de la première texture avec mes premières valeurs de alpha, 2 plaquer ma seconde texture avec mes secondes valeurs de alpha pour chaque sommet.

    Voici le code grosso modo :
    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
    23
    24
    25
    26
    27
    28
    29
    30
     
    glDisable(GL_BLEND);
    // la premiere texture
    glEnable(GL_TEXTURE_2D);
    glBindTexture(GL_TEXTURE_2D,nomTexture1);
    // le VOB des sommets
    pglBindBufferARB(GL_ARRAY_BUFFER_ARB, bufferVerticesID);
    glVertexPointer(3, GL_DOUBLE, 0 , (char *) NULL );
    // le VOB des coord texture
    pglBindBufferARB(GL_ARRAY_BUFFER_ARB, bufferTexturesID);
    glTexCoordPointer(2, GL_DOUBLE, 0 , (char *) NULL);
    //le VOB des couleur avec la valeur alpha
    pglBindBufferARB(GL_ARRAY_BUFFER_ARB, bufferColorsID1);
    glColorPointer(4, GL_DOUBLE, 0 , (char *) NULL);
     
    glEnable(GL_BLEND);
    glBlendFunc(GL_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA);	
     
    // la seconde texture
    glEnable(GL_TEXTURE_2D);
    glBindTexture(GL_TEXTURE_2D,nomTexture2);
    // le VOB des sommets
    pglBindBufferARB(GL_ARRAY_BUFFER_ARB, bufferVerticesID);
    glVertexPointer(3, GL_DOUBLE, 0 , (char *) NULL );
    // le VOB des coord texture
    pglBindBufferARB(GL_ARRAY_BUFFER_ARB, bufferTexturesID);
    glTexCoordPointer(2, GL_DOUBLE, 0 , (char *) NULL);
    //le VOB des couleur avec la valeur alpha
    pglBindBufferARB(GL_ARRAY_BUFFER_ARB, bufferColorsID2);
    glColorPointer(4, GL_DOUBLE, 0 , (char *) NULL);
    Ce qui est alors affiché et très sombre et je n'ai pas l'impression que le alpha présent dans bufferColorsID* soit pris en compte.
    merci pour votre aide !

    NB : je ne veux pas utiliser les extensions ARB pour le multitexture, ni les shaders.

  2. #2
    Expert confirmé
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 524
    Points : 5 183
    Points
    5 183
    Par défaut Re: Texture mapping multiple
    Citation Envoyé par kikoland
    NB : je ne veux pas utiliser les extensions ARB pour le multitexture, ni les shaders.
    ce qui te simplifierai la vie comme pas 2
    tu utilises des VBO et tu ne veux pas utiliser le multitexture ARB, pas très logique
    à moins que tu ais une bonne raison derrière

    pour ton problème de texture sombre, est-ce que ta première texture s'affiche bien seule et pas trop sombre ?
    même question pour la seconde

    sauf erreur de ma part, pour ce qui est du color buffer, il ne sert pas à cela, il sert pour gérer les couleurs indexées (genre mode 256 couleurs)

    -normalement tu affiches ton premier objet sans blend (comme tu le fait)
    -ensuite tu actives le blend et tu changes la fonction de depth test pour GL_EQUAL (peut-etre pas obligé si ton depth test est d'origine configuré avec GL_LEQUAL ou GL_GEQUAL)
    -et tu affiches ton objet avec 'autre texture et 50% de transparence pour l'objet complet > glColor4f(1,1,1,.5)
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Merci pour ta réponse ! Voici quelques précisions
    1. Effectivement, je peux utiliser les VOB mais pas ARB (le wrapper openGL ne permet apparement pas de récupérer ces informations).
    2. L'affichage de la première texture seule se passe bien, mais la seconde génère un rendu très sombre.
    3. J'ai oublié de dire que le DEPTH buffer est bien desactivé entre les deux rendus.
    4. Enfin, le color buffer est utilisé pour avoir un alpha qui varie à chaque sommet du modèle. i.e. : le premier sommet est affiché avec glColor4f(1,1,1,.5), le second avec glColor4f(1,1,1,0) ... et ainsi de suite.

    A noter également qu'avant cette étape, je peux utiliser une texture masque solide (sans transparence) afin d'avoir un fond pour la transparence sur les deux textures plaqués ensuite.
    Voilà, j'espère que c'est un peu plus clair !

Discussions similaires

  1. Shadow Mapping - multiplication de matrice
    Par LaDeveloppeuse dans le forum OpenGL
    Réponses: 4
    Dernier message: 23/10/2009, 01h53
  2. Problème mapping multiple
    Par stof dans le forum Hibernate
    Réponses: 2
    Dernier message: 14/04/2009, 10h50
  3. Texture mapping et raytracer
    Par pouletchu dans le forum Projets
    Réponses: 8
    Dernier message: 03/06/2008, 08h57
  4. problème de texture mapped font - tuto Nehe
    Par clairouch dans le forum OpenGL
    Réponses: 1
    Dernier message: 28/06/2006, 12h02
  5. Texture Mapping
    Par EsKa68 dans le forum OpenGL
    Réponses: 1
    Dernier message: 06/04/2005, 10h13

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