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 :

Positionnement de la scène pour un rendu en taille réelle


Sujet :

OpenGL

  1. #1
    Membre éclairé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par défaut Positionnement de la scène pour un rendu en taille réelle
    Bonjour à tous

    Je ne sais pas comment m'y prendre pour obtenir ce que je cherche.

    Je dois dessiner au milieu de l'écran une barre dont je connait la longueur et la largeur en centimètre. Je ne sais pas comment m'y prendre pour respecter ces dimensions (positionnement de la caméra, taille réelle de la barre). Pour le dessin de la barre aucun souci par contre.

    Est-ce que quelqu'un aurait une idée

    Merci d'avance pour votre aide

  2. #2
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    618
    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 : 618
    Par défaut
    Salut.

    Avec une camera orthographic.
    En utilisant glOrtho, tu fait correspondre les valeurs gauche et droite à -largeurViewportMm/2 et +largeurViewportMm/2 (largeur réel de ton viewport en mm), pareil pour les valeurs haut et bas, et tu laisse la matrice modelView à l'identité. Pour faire une ligne de 50mm, tu la dessine entre (-25, 0, 0) et (25, 0, 0).

    Pour connaitre la taille de ton viewport en mm, tu a besoin de connaitre sa taille en pixel (facile), ainsi que la résolution de ton écran (moins facile. Là je sais pas trop...), et ca devrait le faire

  3. #3
    Membre éclairé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par défaut
    Merci de ta réponse

    Ma barre fait 14 cm de long et non 15, j'ai surement du faire une erreur

    Je connait la résolution de mon écran en Pixel : 1024 x 768 pixels
    Je connait la taille en cm de mon écran (paramètres de l'application) 37,7 x 30,5 cm
    Je connait la largeur et la hauteur de la barre 15 x 2 cm

    J'ai donc fait ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    glViewport(0, 0, LargeurEcranPixel, HauteurEcranPixel);
     
    glOrtho(-(LargeurEcrancm / 2), (LargeurEcranCm / 2), -(HauteurEcranCm / 2), (HauteurEcranCm / 2), 0, 100);
     
    glMatrixMode(GL_MODELVIEW);
     
    glLoadIdentity;
    Et pour le dessin de la barre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    // On calcule les coordonnées du rectangle
    float x1 = -LargeurBarreCm / 2);
    float y1 = -LongueurBarreCm / 2);
    float x2 = (LargeurBarreCm / 2);
    float y2 = (LongueurBarreCm / 2);
     
    // On dessine la barre
    glRectf(x1, y1, x2, y2);

  4. #4
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    Par défaut
    Avec une camera orthographic.

    ce serait pas plutôt orthogonale ?
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  5. #5
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    618
    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 : 618
    Par défaut
    Nonon, orthographic (orthographique en français dans le texte)

    Pour ta barre de 14cm je ne vois pas d'où ça peut venir...
    Si tu dessine une barre entre -37.7/2 et +37.7/2, fait-elle bien toute la largeur du viewport ?

    Si ce n'est pas le cas, tu doit avoir un glMultMatrix ou autre glScale qui traine...

    tu fait bien cet enchainement ci ?:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    glViewport(0, 0, LargeurEcranPixel, HauteurEcranPixel);
     
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity(); 
    glOrtho(-(LargeurEcrancm / 2), (LargeurEcranCm / 2), -(HauteurEcranCm / 2), (HauteurEcranCm / 2), 0, 100);
     
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity;
     
    glRectf()

  6. #6
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Citation Envoyé par dragonjoker59 Voir le message

    ce serait pas plutôt orthogonale ?
    Il existe beaucoup de référence ou tu vois "orthographique", mais c'est vrai que ca sonne bizarre...
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    Par défaut
    Effectivement, méa culpa, c'est bien caméra orthographique.
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  8. #8
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Bah perso, t'as ptet bien raison en fait (même si pour moi les 2 signifie les même choses).

    Si on confere wikipedia, on voit qu'un ressemble plus a ce qu'on décrit ici que l'autre qui semble être plutôt orienter cartographie, mais c'est intéressant quand même:

    http://fr.wikipedia.org/wiki/Projection_orthogonale
    http://fr.wikipedia.org/wiki/Projection_orthographique

    Apres lecture je serais tente de maintenant utilisé orthogonale (bien que je sois calé sur mon orthographique ^^)
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    618
    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 : 618
    Par défaut
    En fait, une camera orthographic utilise une projection orthogonal, d'où l'amalgame entre les 2. Mais comme la doc OpenGL utilise "orthographic" (cf la doc de glOrtho), je préfère le terme de camera orthographic

  10. #10
    Membre éclairé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par défaut
    Bon alors cela fonctionne, en fait c'était un problème au niveau de mes paramètres écran, la taille que je passais en paramètre n'était pas la bonne d'où le taille de ma barre différente.

    Merci pour votre aide en tout cas

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

Discussions similaires

  1. Composant image pour un rendu optimal
    Par dacid dans le forum Composants VCL
    Réponses: 13
    Dernier message: 07/04/2010, 09h42
  2. [RAM] DDRII 800 Mhz, trop petit pour du rendu?
    Par Syzla dans le forum Composants
    Réponses: 3
    Dernier message: 24/03/2010, 16h42
  3. Réponses: 5
    Dernier message: 12/02/2010, 17h22
  4. Réponses: 2
    Dernier message: 01/05/2008, 11h03
  5. Directx 8 Probleme avec setrenderTarget pour un rendu du monde sur une texture
    Par zerailkiller dans le forum Développement 2D, 3D et Jeux
    Réponses: 7
    Dernier message: 14/01/2007, 13h50

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