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

Moteurs 3D Discussion :

[OpenGL ES]Trouver les coordonées X et Y dans le monde 3D à partir de coordonnées écran.


Sujet :

Moteurs 3D

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 14
    Points : 10
    Points
    10
    Par défaut [OpenGL ES]Trouver les coordonées X et Y dans le monde 3D à partir de coordonnées écran.
    Bonjour,

    Je m'essaye au developpement d'un petit moteur 3D avec openGL ES 1.1 et je me retrouve face à un petit problème de math que je n'arrive pas à résoudre .

    Je cherche à déplacer un objet vers des nouvelles coordonnées X et Y calculées en fonction des coordonnées écran sX et sY obtenue par un clic de l'utilisateur.

    L'altitude (coordonée Z) de l'objet est connue et reste fixe.

    J'ai essayé avec Thalès (le théorème), avec de la trigo, mais il me manque toujours une donnée quelquepart.... Quelqu'un peut me donner un début de piste de solution, voire un fonction miracle qui fait ça toute seule et qui m'aurait échappée ?

    Merci d'avance, ça fait une semaine que je galère la dessus j'arrive plus à avancer dans mon projet.


    Edit : j'oubliais de préciser que le point de vue est toujours situé en (0, 0, altPOV) et dirigé vers les Z négatifs.

  2. #2
    Expert éminent
    Avatar de raptor70
    Inscrit en
    Septembre 2005
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3 173
    Points : 6 812
    Points
    6 812
    Mes Tutos DirectX, OpenGL, 3D : http://raptor.developpez.com/

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Merci. gluUnProject semble être ce que je cherchais, mais son fonctionnement à l'air obscur à un débutant comme moi. Bon je vais essayer et je reviendrais si je n'arrive pas à l'utiliser. Merci encore.

  4. #4
    Membre éprouvé Avatar de oxyde356
    Homme Profil pro
    Ingénieur Recherche Imagerie
    Inscrit en
    Février 2006
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Recherche Imagerie

    Informations forums :
    Inscription : Février 2006
    Messages : 797
    Points : 1 087
    Points
    1 087
    Par défaut
    Pour transformer des points 3D (ceux des objets de ton monde virtuel) en points 2D (points visualisable sur ton écran, celui-ci étant en 2D), OpenGL effectue ce que l'on appelle une opération de projection (qui est un simple produit matriciel). Toi ce que tu veux faire c'est une opération inverse de projection (point 2D => point 3D) et il faut bien utiliser la fonction gluUnProject qui effectue cette opération. Tu ne devrais pas avoir de problèmes pour trouver des tutos sur le Picking (fait de sélectionner un objet 3D à partir de coordonnées 2D [à l'aide de la souris le plus souvent]).

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

Discussions similaires

  1. Trouver les occurences d'un pattern dans un fichier donné
    Par chenwaZi dans le forum Général Java
    Réponses: 9
    Dernier message: 01/05/2015, 08h40
  2. trouver les valeurs d'une droite dans une matrice
    Par Liloucha dans le forum MATLAB
    Réponses: 1
    Dernier message: 11/05/2014, 17h24
  3. Trouver les occurences de mots entiers dans un texte
    Par lr dans le forum Général Java
    Réponses: 2
    Dernier message: 12/04/2012, 15h08
  4. Réponses: 6
    Dernier message: 31/01/2008, 15h06
  5. Réponses: 6
    Dernier message: 13/12/2007, 14h27

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