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 :

Ordre affichage mauvais & Z-Buffer activé


Sujet :

OpenGL

  1. #1
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 114
    Par défaut Ordre affichage mauvais & Z-Buffer activé
    Bonjour,

    J'ai bien initialisé le Z-Buffer avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    glClearDepth(1.0f);
    glEnable(GL_DEPTH_TEST);
    glDepthFunc(GL_LEQUAL);
    glClearStencil(0);
    A chaque display j'appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    glClearColor(0, 0, 0, 0);
    glClearDepth(1.0f);
    glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
    Malgré tout ça l'ordre d'affichage ne respecte pas le positionnement dans l'espace 3D. L'affichage correspond a l'ordre d'insertion dans ma collection d'objet...

    Je pense que le probleme est basique mais je seche...
    Avez vous des pistes ou idées pouvant m'aider ?
    Merci d'avance

  2. #2
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 608
    Par défaut
    Salut,

    glDepthMask ?

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 114
    Par défaut
    je l'ai également activé lors de l'init... sans succès

  4. #4
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 608
    Par défaut
    Tes matrices modelview et proj ont quelle tête ?
    Tu utilise des shaders ? Des fbo ?
    Peux-tu envoyer un screenshot du résultat ?

    Ca fait beaucoup de question mais là je vois pas trop... Tu es sûr que tu n'a pas un glDisable(GL_DEPTH_TEST) qui traine ?

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 114
    Par défaut
    j'utilise des VBO

    qu'entends tu par matrice modelview et proj ?
    j'utilise les commandes de bases
    glMatrixMode(GL_PROJECTION)
    glMatrixMode(GL_MODELVIEW)

    Pour la capture d'ecran, je le ferai ce soir, je n'ai pas tt ce qu'il faut pour l'instant

    Autrement, j'ai des objets animés : terre-lune.
    La lune est positionné par rapport à la terre :

    glPushMatrix
    transformation currentObject
    draw currentObject
    idem pour ses enfants
    glPopMatrix

    La lune reste toujours devant la terre, si je modifie l'ordre ci-dessus, la lune reste toujours derriere la terre... Ca tend à prouver que le z-buffer fonctionne non ?

  6. #6
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 114
    Par défaut


    la lune doit s'afficher derriere la terre.
    Le cube est sensé etre en dessous de la grille rouge...

  7. #7
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 608
    Par défaut
    Hum... Tu as activé le backface culling (glEnable(GL_CULL_FACE)) ?
    Si oui, desactive le (sinon, désactive le aussi pour être sûr )
    Si c'est bien un problème de ZBuffer, sans backface culling tes sphères doivent être moche (ce qui n'est pas le cas ici).

    Tu utilise glutPerspective pour ta matrice de projection ? En tout cas, ta perspective à l'air bonne, et ton repère est direct, donc je ne pense pas que le problème vienne d'une matrice bancale.

    Tu ne fait bien q'un seul glClear par frame ? Tu ne clear pas le ZBuffer à chaque rendu d'objet ?

    Tu peux aussi utiliser gDEBugger pour tracer tes appels openGL. En gros tu fait un nouveau projet en lui donnant ton executable, Breakpoint->add/remove breakpoint et tu ajoute glEnable et glDisable en breakpoint et tu lance ton programme (flèche lecture). Ca te permettra de voir s'il n'y a pas un glDisable(GL_DEPTH_TEST) de caché quelque part. Si il est bien luné, il peut même t'afficher ce qu'il y a dans le depth buffer.

  8. #8
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 114
    Par défaut
    j'ai désactivé le CULL_FACE et les spheres sont tres moches.
    j'utilise gluPerspective(60, w/h, 0.1, 900)

    je fais bien un seul glClear par frame

    je vais activer glDebugger

  9. #9
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 114
    Par défaut
    Je suis sur MacOS X et fenetre SWT donc je ne pourrai pas utiliser glDebugger

  10. #10
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 608
    Par défaut
    Arf, un bouffeur de pomme !!!

    Sinon, lorsque tu crées ta fenètre, tu lui dis bien d'en créer une avec depth buffer ? (par ex avec glut: glutInitDisplayMode(GLUT_DEPTH | ....);

    J'ai trouvé ça sur SWT: http://blog.richeton.com/2007/05/09/...lem-in-opengl/, mais comme je ne connais pas du tout je sais pas si ça peut t'aider.

  11. #11
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 114
    Par défaut
    Wowww énorme ! tout fonctionne correctement
    Un grand merci et un grand soulagement !

  12. #12
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 608
    Par défaut
    Content de l'apprendre

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

Discussions similaires

  1. Affichage des données d'un activ Directory
    Par PrinceMaster77 dans le forum ASP
    Réponses: 6
    Dernier message: 16/12/2008, 16h35
  2. ordre affichage controle etat
    Par moicats dans le forum IHM
    Réponses: 3
    Dernier message: 06/07/2007, 13h59
  3. Réponses: 8
    Dernier message: 21/09/2006, 23h33
  4. [DX9][C#] Affichage cube avec vertex buffer
    Par lancer83 dans le forum DirectX
    Réponses: 43
    Dernier message: 30/06/2006, 12h16
  5. affichage dans le front buffers ne marche pas!
    Par jamal24 dans le forum OpenGL
    Réponses: 3
    Dernier message: 22/08/2003, 19h14

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