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 :

Faces cachées pas entièrement cachées


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 72
    Par défaut Faces cachées pas entièrement cachées
    Bonjour à tous !


    Je développe un petit outil en ce moment et j'utilise OpenGL pour visualiser des bateaux (pour expliquer les images qui viennent). Mais récemment mon programme s'est mis à me donner des images qui ne me plaisent pas du tout :

    http://www.developpez.net/forums/att...1&d=1179921086


    Vous voyez, et c'est notable sur la première image, que normalement on ne doit pas voir la partie du pont du bateau qui est sous la cabine. Or comme le montre l'image précédente, il y a un certain problème, comme un crénelage et plus on s'approche plus il disparait..
    Donc je voulais savoir si quelqu'un avait déjà eu ce problème.

    Voici mon InitGL() :
    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
     
    	/* buffers setting */
    	glClearColor(0.0f, 0.0f, 0.0f, 0.0f);	// Black Background
    	glClearDepth(1.0f);				// Depth Buffer Setup
    	glEnable(GL_DEPTH_TEST);			// Active le test de profondeur
     
    	/* polygon render */
    	glPolygonMode(GL_FRONT,GL_LINE);		// Set the render mode to wireframe by default
     
    	glEnable(GL_CULL_FACE);				// Precises that backfaces don't have to be drawn
    	glCullFace(GL_BACK);
     
    	glShadeModel(GL_SMOOTH);			// Enable Gourand Shading
    	glEnable(GL_SHADE_MODEL) ;
     
    	glMatrixMode(GL_MODELVIEW);
    	glLoadIdentity() ;
    	glEnable(GL_LIGHTING);				// enable lighting
      	glEnable(GL_LIGHT0);				// enable light n°0
     
    		int MatSpec [4] = {1,1,1,1};
    		glMaterialiv(GL_FRONT_AND_BACK,GL_SPECULAR,MatSpec);
    		glMateriali(GL_FRONT_AND_BACK,GL_SHININESS,100);
     
    	glEnable ( GL_COLOR_MATERIAL ) ;
     
    	glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
    donc j'utilise normalement bien le depth test.. En plus avant je n'avais pas ce problème :

    http://www.developpez.net/forums/att...1&d=1179921434


    a noter qu'entre les 2 types de rendu le premier est en gouraud shading et l'autre en gouraud mais avec des normales foireuses.
    Images attachées Images attachées   

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Ca ressemble fort à un problème de profondeur.
    http://jeux.developpez.com/faq/3d/?p...MES_profondeur

    Comment sont définis tes plans de vue proche / lointain (avec glFrustum ou gluPerspective) ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 72
    Par défaut
    quelle réponse rapide c'est agréable !!

    mon ResizeGLScene()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    glViewPort(0, 0, width, height) ;
     
    glMatrixMode(GL_PROJECTION) ;
    glLoadIdentity() ;
     
    gluPerspective(45.0f, (GLfloat)width/(GLfloat)height, 0.1f, 4000.0f) ;
    Cam.gluPerspective(45.0f, (GLfloat)width/(GLfloat)height, 0.1f, 4000.0f) ;
     
    glMatrixMode(GL_MODELVIEW) ;
    glLoadidentity() ;
    Je sais pas si il faut faire les deux.. j'utilise une camera en fait. Une camera qui permet de faire le trackball rotate et tout le barda sympatoche.
    Merci pour le lien, donc d'apres toi ce serait un ratio trop grand entre mon nearplane et mon far plane ?

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Merci pour le lien, donc d'apres toi ce serait un ratio trop grand entre mon nearplane et mon far plane ?
    Si tu le réduis (genre de 1 à 1000) ça donne quoi ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 72
    Par défaut
    en passant le near à 2.0f et le far à 2000.0f, ce qui ne change rien vu que je bosse pas à des kilomètres, ça résoud mon problème.

    merci 1000.0f fois !

    non sérieusement j'étais à dix milles de penser que ça vennait de là, surtout que je n'ai pas changé ces valeurs entre mes 2 versions..


    merci merci encore

  6. #6
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    N'oublie pas de cliquer sur

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 29/08/2009, 11h44
  2. [SP-2007] Cache Asp.net ne cache pas dans un cas
    Par phfle1 dans le forum SharePoint
    Réponses: 0
    Dernier message: 22/07/2009, 22h07
  3. Cache Asp.net ne cache pas dans un cas
    Par phfle1 dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 22/07/2009, 22h03
  4. DIV caché pas caché
    Par madmax54 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 26/11/2008, 21h20
  5. Réponses: 3
    Dernier message: 13/11/2005, 13h36

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