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 :

Position écran par rapport à la caméra en opengl 3D


Sujet :

OpenGL

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 298
    Points : 117
    Points
    117
    Par défaut Position écran par rapport à la caméra en opengl 3D
    Bonjour,

    En programmant et utilisant opengl, je me suis aperçu qu'on pouvait avoir une représentation physique de l'écran dans le repère 3D dans lequel sont la caméra et l'objet ou l'ensemble d'objets. Si on utilise glfrustum(-dh,dh,-dv,dv, near, far), alors, si l'écran 2D a pour unités à ses extrémités -dh, dh, -dv, dv, alors en le plaçant à la distance "near" de la caméra dans un plan perpendiculaire à l'axe de visée et de dimensions 2dh et 2dv, on aurait tout de suite les angles h et v de clipping de la caméra. Ceci peut être intéressant pour trouver les projections des points 3D sur l'écran et inversement montrer qu'un point de l'écran représente une droite bien définie (passant par le point 2D et la caméra) dans l'espace 3D.
    Qu'en pensez-vous ?

    Merci pour vos remarques et votre attention,

    cordialement,

    Fred

  2. #2
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    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 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Citation Envoyé par AlfredKr Voir le message
    Ceci peut être intéressant pour trouver les projections des points 3D sur l'écran et inversement
    Qu'en pensez-vous ?
    Non tu peux le savoir facilement (mais OpenGL 1 cache les calculs de perspectives ) il faut faire ceci :
    MatriceFinal * vertex = point3D
    ecran.x = point3D.x/point3D.w
    ecran.y = point3D.y/point3D.w
    ecran.z = point3D.z/point3D.w //Z ici pour le ZBuffer

    Et si tu as un point sur l'écran et que tu veux avoir ces coordonnée 3d original alors il faut faire l'inverse de la Matrice !

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 298
    Points : 117
    Points
    117
    Par défaut
    Bonjour Kannagi et merci pour votre prompte réponse.
    Je suis d'accord avec vous mais je ne voulais pas entrer dans les détails de calcul.
    Moi je travaille avec Delphi XE5 et utilise l'opengl fourni.
    Dans mon cas, je voulais, par exemple, tracer, dans un paintbox dans la même form qui me sert de table de digitalisation, l'impact de la variation des différents paramètres de la projection sur l'écran rastérisé 2D de l'objet 3D.
    Je me suis aperçu que tous les rayons reliant la caméra à chacun des vertex de l'objet coupait l'écran que j'ai défini (distant de "near" de la caméra) aux points qui seront ceux du résultat de la projection 2D vue de la caméra à la bonne échelle.
    Ceci a un intérêt pédagogique intéressant car cela m'a permis, quand je déplaçait la caméra (qui du reste faisait déplacer l'écran), je trouvais les traces horizontales des plans limites de vision (clipping planes). Ces lignes passaient par les vertex du rectangle de l'écran et par bien sûr la caméra.
    Si, par exemple la caméra est à l'origine du repère 3D, alors, ces plans limites ont des équations très simples, ceci permettrait de trouver et définir les parties des objets visibles et non visibles.

    Cordialement,

    Fred

  4. #4
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 298
    Points : 117
    Points
    117
    Par défaut
    De plus,
    Il est vrai qu'il y a les fonctions glunproject et glproject qui fournissent les coordonnées de l'un connaissant l'autre.

Discussions similaires

  1. Position DIV par rapport au centre
    Par 20cents dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 03/04/2011, 09h17
  2. Position souris par rapport à une div
    Par kohsaka dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/06/2010, 11h17
  3. Position fenêtre par rapport écran
    Par Ludo6 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 05/10/2009, 17h17
  4. Réponses: 1
    Dernier message: 07/05/2008, 06h55
  5. Position div par rapport à l'écran
    Par éloi_75 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 18/10/2007, 17h26

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