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 d'interprétation de coordonnées en OpenGL


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    465
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 465
    Par défaut Problème d'interprétation de coordonnées en OpenGL
    Bonjour,
    J'utilise des coordonnées réelles pour dessiner des polygones. Le prolème que j'arrive pas à afficher ces polygones. Voilà le code:

    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
     
     gl.glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);       //Clear The Screen And The Depth Buffer
    gl.glLoadIdentity();									// Reset The Current Modelview Matrix
             gl.glTranslatef(723936.743f, 146310.999f,  45.719f);						// Move Right 1.5 Units And Into The Screen 7.0
             gl.glRotatef(rquad,1.0f,1.0f,1.0f);					// Rotate The Quad On The X axis ( NEW )
             gl.glBegin(GL_QUADS);									// Draw A Quad
             gl.glColor3f(0.0f,1.0f,0.0f);						// Set The Color To Blue
             gl.glVertex3f( 723936.743f, 146310.999f,  45.719f);					// Top Right Of The Quad (Top)
             gl.glVertex3f(723906.414f, 146331.310f,  45.962f);					// Top Left Of The Quad (Top)
             gl.glVertex3f(723904.008f,  146342.015f,  43.725f);					// Bottom Left Of The Quad (Top)
             gl.glVertex3f( 723948.246f,  146312.876f,  43.645f);					// Bottom Right Of The Quad (Top)
     
             gl.glEnd();											// Done Drawing The Quad
     
             rtri+=0.2f;											// Increase The Rotation Variable For The Triangle ( NEW )
             rquad-=0.15f;										// Decrease The Rotation Variable For The Quad ( NEW

  2. #2
    Membre chevronné
    Inscrit en
    Février 2008
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Février 2008
    Messages : 413
    Par défaut
    Salut,

    il faut voir comment tu positionnes ta camera / viewport / projection, sans celà tes coordonnées n'indiquent rien.

    Par exemple si tu crées un viewport de -100 à 100 en X et Y, tout ce qui dépasse ca sera "hors" de ta scene

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    465
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 465
    Par défaut
    Citation Envoyé par ShevchenKik Voir le message
    Salut,
    il faut voir comment tu positionnes ta camera / viewport / projection, sans celà tes coordonnées n'indiquent rien.
    Voila comment la caméra est positionnée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    glu.gluLookAt(723930.743f, 146305.999f,  45.715f,723936.743f, 146310.999f,  45.719f,0,1,0);
    Et le viewport est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    	gl.glViewport(999999, 999999, width, height);
    Et pour la projection, j'utilise glperspective comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    glu.gluPerspective(60.0, (float)width/height, 0.5, 100.0);
    Tu trouves un soucis quelque part dans ces variables?????

  4. #4
    Membre chevronné
    Inscrit en
    Février 2008
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Février 2008
    Messages : 413
    Par défaut
    Tu trouves un soucis quelque part dans ces variables?????
    eh ben oui.....

    Dans ta definition de viewport, les deux premier parametres ne peuvent pas être corrects... ils indiquent la position de ton viewport PAR RAPPORT AU COIN IN FERIEUR GAUCHE DE LA FENETRE le contenant.

    typiquement, si tu veux remplir toute ta fenêtre tu utiliseras un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    glViewport(0,0, largeur_fenetre, hauteur_fenetre)
    Je pense que tu voulais utiliser les valeurs 999.999 comme coordonées maximales pour ta scene, dans ce cas ca se passe dans la transfo de projection, par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    glOrtho(-999999, 999999, -999999, 999999, 100, -100)
    Dans ton cas tu utilises gluPerspective. Ca fait un bail que je ne m'en sers plus et en relisant la doc je vois qu'on y précise un angle de vue et un aspect ratio plutôt que les valeurs des bornes. Essaie avec glFrustum sinon.

  5. #5
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2005
    Messages : 249
    Par défaut
    Et puis autre chose, dans ta routine d'affichage, tu fais un "gl.glTranslatef(723936.743f, 146310.999f, 45.719f);" suivi de l'affichage des vertices genre "gl.glVertex3f( 723936.743f, 146310.999f, 45.719f);", ce qui revient à multiplier par deux la position, j'imagine que ce n'est pas ce que tu recherches. Si tu veux faire le glTranslate(x,y,z), il faut ensuite soustraire ce vecteur (x,y,z) aux coordonnées des vertices.

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

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 594
    Par défaut
    comme kremvax, je remarque que tu dessines un polygone à des coordonnées très lointaines de l'origine ET qu'en pus tu le déplaces encore plus loin
    j'ajouterai que tu fais aussi une rotation, hors ton triangle va effectuer cette rotation par rapport à... l'origine
    autant dire que tu ne verra rien

    habituellement on dessine un objet centré sur l'origine, puis on le place à sa position via un translate après l'avoir éventuellement orienté via un rotate
    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.

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

Discussions similaires

  1. Problème d'interprétation de * avec javac, rm, ls
    Par julienOriano dans le forum Administration système
    Réponses: 8
    Dernier message: 12/07/2006, 17h23
  2. Réponses: 2
    Dernier message: 12/07/2006, 12h13
  3. Problème de Titre de fenêtre en OpenGl
    Par Fionat dans le forum GLUT
    Réponses: 4
    Dernier message: 20/06/2006, 16h32
  4. Problème d'interprétation XSL XML
    Par ForceTranquille dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 22/03/2006, 16h53
  5. Coordonnées souris OpenGL
    Par goutbouyo dans le forum OpenGL
    Réponses: 3
    Dernier message: 26/11/2004, 11h27

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