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 :

Aberration géométrique dans OpenGL


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Juin 2007
    Messages : 15
    Par défaut Aberration géométrique dans OpenGL
    Bonjour,

    Je fais un petit programme de rendu du système solaire (appelé à évoluer, bien sûr )
    Mais j'ai un gros problème (gros parce que je ne sais pas d'où ça vient): mes sphères qui représentent mes planètes sont déformées (cf. screenshot). Cet effet n'apparaît que lorsque que l'on désaxe la visée du centre de la planète.

    Que faire?

    Merci d'avance
    Images attachées Images attachées  

  2. #2
    Membre très actif

    Profil pro
    Étudiant
    Inscrit en
    Décembre 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2004
    Messages : 499
    Par défaut
    salut

    peux-tu faire un code minimal (juste initiation opengl + draw sphere = 100 lignes max) qui montre le bug ?

    plusieurs possibilités : viewport, matrices (projection et modelview), géométrie affichée, bug ? ...

  3. #3
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Juin 2007
    Messages : 15
    Par défaut
    Oui très juste:

    Voici la méthode afficher de ma classe planete:
    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
    void  Planete::afficher(void) {
        float mat_emission[4] = {1.0f, 1.0f, 1.0f, 1.0f};
    	float mat_no_emission[4] = {0.0f, 0.0f, 0.0f, 1.0f};
     
    	if (Sname == "Soleil" ) {
    		glMaterialfv(GL_FRONT, GL_EMISSION, mat_emission);
    	} else {
    		glMaterialfv(GL_FRONT, GL_EMISSION, mat_no_emission);
    	}
     
    	glPushMatrix();
    	glTranslated(pos.get_x(), pos.get_y(), pos.get_z());
    	double R = radius;
    	glColor3ub(255, 255, 255);
    	glRotated(angle, rot.get_x(), rot.get_y(), rot.get_z());
    	GLUquadric* params = gluNewQuadric();
    	gluQuadricTexture(params,GL_TRUE);
    	glBindTexture(GL_TEXTURE_2D,text_day_map);
    	gluSphere(params, R, 50, 50); 
    	gluDeleteQuadric(params);
    	glPopMatrix();
    }
    Initialisation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    void InitGL(void) {
    	glewInit();
    	glMatrixMode( GL_PROJECTION );
    	glLoadIdentity();
    	double zNear = 70000;
    	double zFar = zNear*65536;
    	gluPerspective(70,(double)LARGEUR_ECRAN/HAUTEUR_ECRAN,zNear,zFar);
     
    	glEnable(GL_DEPTH_TEST);
    	glEnable(GL_TEXTURE_2D);
    	//glEnable(GL_LIGHTING);
    	//glEnable(GL_LIGHT0);
    }
    Le tout dans une fenetre SDL. Pour info: les nombres manipulés sont énormes (en mètres) (astronomiques, c'est le cas de le dire!!!), d'où l'initialisation de zNear à quelque chose qui peut sembler ne pas être "près".
    (D'ailleurs, j'aimerais le mettre à 1 à terme; mais bon. Il semble que ce ne soit pas possible vu les bugs que j'ai quand je fais ça. Mais bon. Mon post ne concerne pas ça)

    Merci d'avance

  4. #4
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 820
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 820
    Par défaut
    Change le fovy de gluPerspective. Met 45 au lieu de 70, pour voir...

    Pourquoi 70 d'ailleurs? il y a une raison particulière?
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

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

Discussions similaires

  1. insérer du 3ds dans opengl + collisions + tout quoi ;)
    Par Darknicosh dans le forum OpenGL
    Réponses: 5
    Dernier message: 22/04/2005, 16h14
  2. Objets 3Ds Max dans OpenGL
    Par Deedier dans le forum OpenGL
    Réponses: 5
    Dernier message: 24/03/2005, 15h21
  3. comment savoir définir les figure dans opengl
    Par romainhoarau2764 dans le forum OpenGL
    Réponses: 1
    Dernier message: 05/03/2005, 20h30
  4. Intégration 3DS dans OPENGL
    Par clara dans le forum OpenGL
    Réponses: 3
    Dernier message: 28/12/2004, 18h39
  5. Tableau de vertex dans OpenGL
    Par Guizmo57 dans le forum OpenGL
    Réponses: 5
    Dernier message: 11/04/2004, 10h15

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