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 :

Dimension des objets pour que ca corresponde avec la réalité


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Par défaut Dimension des objets pour que ca corresponde avec la réalité
    Bonjour,

    je voudrais faire un rendu qui me donne l'impression de regarder par la fenêtre. Je défini que les objets dans l'espace monde ont pour unité 1 = 1 millimètre.

    Si mon écran d'ordinateur a un pixel tous les 0.25 mm , il faut donc 4 pixels pour faire un millimètre, est ce que c'est juste de dire que pour avoir l'effet que je cherche il faut que je scale *4 ma scène ?

    Si on fait une projection orthographique un cube de 60 de coté dans la scène devrait avoir 60 mm sur l'écran.

  2. #2
    Expert confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 226
    Par défaut
    Et qu'est qui te pose souci exactement ?
    A part que OpenGL ne travaille pas avec des pixels mais en nombre flottant.
    Mais rien ne t’empêche de faire une conversion flottant -> nombre de pixel.

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Par défaut
    Je voulais juste une confirmation de ma logique

  4. #4
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 549
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 549
    Par défaut
    Citation Envoyé par Alec6 Voir le message
    je voudrais faire un rendu qui me donne l'impression de regarder par la fenêtre. Je défini que les objets dans l'espace monde ont pour unité 1 = 1 millimètre.
    Si mon écran d'ordinateur a un pixel tous les 0.25 mm , il faut donc 4 pixels pour faire un millimètre, est ce que c'est juste de dire que pour avoir l'effet que je cherche il faut que je scale *4 ma scène ?
    Si on fait une projection orthographique un cube de 60 de coté dans la scène devrait avoir 60 mm sur l'écran.
    non ça ne fonctionne pas comme cela.
    D'une part un pixel sur l'écran en 3d n'égale pas une unité en 3d dans un repère orthonormé cartésien il faudrait peut-être un peu faire des révisions en math.
    Ensuite l'unité vectorielle ça dépend des paramètres de la caméra donc du View Frustum
    -de l "aspect ratio'
    -du plan proche ( near plane)
    -du plan éloigné ( far plane)
    -du champs de vue ( Field Ov View)

    En 2d et en utilisant le GDI notamment sous Windows il faut calculer les Dot Per Inch pour cela

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Par défaut
    Dans ma logique j'ai une projection orthographique, donc je n'ai pas à prendre en compte (si je ne me trompe) la FOV et les paramètres d'une projection perspective.

    Dans OpenGL il n'y a pas de notion de grandeur physique. Donc je défini que une unité dans le repère monde correspond à un millimètre physique. (Je me demande comment on fait quand on prend des objets 3d sur le net pour savoir quelle est
    l'échelle de modélisation). Ensuite je fais le lien avec la grandeur physique de l'écran donc si il faut par exemple 4 pixel pour un millimètre, ben je fais un scale *4 de la scène avant la projection orthographique.

    En faite a ce stade je trouve le scale que je dois appliquer à ma scène.

    Ensuite pour la projection perspective, je considère que l'utilisateur est à une distance focale de l'écran (c'est le paramètre Near si j'ai bien compris), qui fait que l'angle de la FOV correspond parfaitement aux bords de l'écran.

    En openGL, je comprend pas bien pourquoi il y a un rapport à fournir height/width. La FOV défini un cône de vision non ? Le Height et le Width c'est juste pour calculer le frustrum je suppose.

Discussions similaires

  1. Réponses: 21
    Dernier message: 03/06/2010, 19h26
  2. Installer des bibliothèques pour python 2.4 avec python 2.5
    Par zabibof dans le forum Déploiement/Installation
    Réponses: 3
    Dernier message: 31/07/2008, 17h49
  3. Réponses: 6
    Dernier message: 28/06/2008, 16h40
  4. [MySQL] lister des champs et faire la correspondance avec leur description
    Par missnouvelle dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/06/2007, 10h16
  5. [debutant][JNI]Stocker des objet pour les rappeler plus tard
    Par Celenor dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 28/03/2004, 03h28

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