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 :

Problème étrange - shader multi texturing


Sujet :

OpenGL

  1. #1
    Membre actif
    Inscrit en
    Septembre 2010
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 73
    Par défaut Problème étrange - shader multi texturing
    Bonjour,

    J'ai un problème assez perturbant que je vous expose, j'ai ce code qui dessine un mesh avec 2 textures à l'aide d'un shader:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    void Renderer::draw(MeshBuffer * mb)
    {
        Material * material = mb->material();
     
        material->beginRender(mRender); //bind un shader, active les textures 1 et 2
     
        mb->vao()->bind(); //bind un VAO
        glDrawElements(GL_TRIANGLES, mb->indexSize() , GL_UNSIGNED_INT, 0);
        mb->vao()->unbind(); //bind un VAO avec l'id "0"
    }
    Ce qui me donne un résultat correct, un cube avec une texture verte et rouge me donne un cube marron.
    Le problème arrive maintenant, lorsque j'ajoute une fonction vide :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    void Renderer::draw(MeshBuffer * mb)
    {
        Material * material = mb->material();
     
        material->beginRender(mRender); //bind un shader, active les textures 1 et 2
     
        mb->vao()->bind(); //bind un VAO
        glDrawElements(GL_TRIANGLES, mb->indexSize() , GL_UNSIGNED_INT, 0);
        mb->vao()->unbind(); //bind un VAO avec l'id "0"
     
       material->endRender(mRender); //fonction vide
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void Material::endRender(RenderingContext * render) const
    {
     
    }
    Mon cube dessiné est alors vert au lieu de marron, aucun mélange ne se fait. Je crois que c'est l'un des mystères les plus grands que j'ai rencontré en programmation, je ne vois pas en quoi une fonction vide appelé sur le CPU pourrait affecté le comportement de la carte graphique.

    Si quelqu'un à une vague idée de ce qu'il se passe, je veux bien une explication.

    (J'ai déjà tout nettoyé et recompilé sans succès.)

  2. #2
    Membre actif
    Inscrit en
    Septembre 2010
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 73
    Par défaut
    Je crois avoir trouvé mon problème.
    Pour faire du multi texturage j'envoyais un tableau de 4 entiers représentant 4 sampler2D, parmi, j'en initialisais que 2, du coup les 2 autres ne l'étaient pas. Le problème dépendait donc de ces 2 valeurs aléatoires/non initialisées.

    Voilà, je crois que c'est tout.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de multi textures
    Par Moldix dans le forum OpenGL
    Réponses: 2
    Dernier message: 03/01/2014, 04h45
  2. Problème FBO rendu multi textures offscreen
    Par Cytior dans le forum OpenGL
    Réponses: 10
    Dernier message: 27/04/2011, 14h40
  3. Réponses: 0
    Dernier message: 24/02/2009, 04h36
  4. [libjpeg && opengl] problème "multi-texturing"
    Par pspflashsystem dans le forum OpenGL
    Réponses: 4
    Dernier message: 23/02/2009, 13h01
  5. Problème de requete multis-selections
    Par tripper.dim dans le forum SQL
    Réponses: 9
    Dernier message: 03/09/2003, 13h08

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