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 :

Comment passer d'une position 2D à une position 3D?


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Mai 2003
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Mai 2003
    Messages : 72
    Par défaut Comment passer d'une position 2D à une position 3D?
    Bonjour,

    J'essais de trouver comment à partir d'une position de la souris cela pourrais correspondre comme position de la scène.

    J'explique pourquoi je veut faire ca. J'ai un objet que j'ai obtenu grâce à un procédé de picking et j'aimerais le déplacer dans la scène à l'aide de la souris. Je cherche un moyen pour obtenir la position dans la scène afin de le dirriger vers la bonne position.

    Est-ce que c'est possible ou je doit me dirriger vers une autre technique pour faire ca?

  2. #2
    Membre Expert
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Par défaut
    Des coordonnées 2D à la 3D il faut un autre paramètre en jeu, pourquoi pas la molette ?

    En 2D(x,y) qui peuvent correspondre à (x,y) en 3D et la molette de la souris peut représenter le (z) du point 3D.

    Je dirais qu'il existe plein de proposition sur le sujet, avec combinaison du clavier, tout dépend de ce que tu souhaites faire, et quelles données sont manipulées, et dans quel but elles le sont ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Mai 2003
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Mai 2003
    Messages : 72
    Par défaut
    Bonjour,

    Utiliser la molette de la souris ne serais pas très pratique... En fait c'est un petit jeu de pichenotte. Ca fonctionne comme le billard lorsqu'on veut placer la boule blanche en jeu après qu'elle soit empoché ou au début avant de casser. Je doit pouvoir prendre la pichenotte et la positionner dans la zone du joueur. Alors je doit trouver un moyen d'obtenir un vecteur qui indique vers ou je déplace l'objet pour faire la translation. Je ne bouge pas en hauteur donc les Y du système de coordonée du modèle est fixe. C'est dans les plans Z et X que je peut déplacer l'objet.

    Si mon plateau de jeu ne tournerais pas et que je resterais dans la même position ca serais plus facile de considérer le Z et le X, Z serais les y et X serais les x. Mais comme on peut tournée le plateau pour obtenir différent angle de vue ca devient plus complexe d'avoir la direction de déplacement. J'essais de trouver comment mais je n'ai pas trouver encore. Je connais la position de la caméra et la position de l'objet, j'essais de voir si je peut obtenir une direction avec la position 2D de la souris.

    En 2D(x,y) qui peuvent correspondre à (x,y) en 3D et la molette de la souris peut représenter le (z) du point 3D.
    Je pense que cette option pourrais s'envisager si la façon élégante ne fonctionne pas. Sauf que ca serais mieux si on pourrais déplacer l'objet mieux que ca.

    X de la fenêtre = déplacement horizontal de l'objet.
    Y de la fenêtre = déplacement en profondeur.

    Le seul problème c'est que le plateau de jeu tourne et parfois je me retrouve avec l'axe des x en face de moi et le z sur l'horizontal, alors si je déplace mon curseur vers le haut, ca va tasser sur le coté... Ca sort droit du paranormal

    S'il y en a qui ont de la facilité avec les coordonnées dans le plan et les vecteurs, vous avez peut-être la réponse à mon problème

    Votre aide est la bienvenu
    Merci

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Mai 2003
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Mai 2003
    Messages : 72
    Par défaut
    Je pense que je suis sur une piste.

    Si je prend le point de la caméra qui est l'oeil du joueur, le point central de l'objet et un point quelconque sur l'axe Y, mettons Y(0,1,0) je peut trouver la normale qui va être toujours perpendiculaire à l'oeil de la caméra. Comme ca j'obtient une direction sur laquelle je peut déplacer mon objet selon le X de la fenêtre.

    Maintenant il faut juste que je sache quoi faire avec la normale trouver

    Je continue à chercher...

    DestinyWar

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Mai 2003
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Mai 2003
    Messages : 72
    Par défaut
    Petit problème, je fait des transformations à ma caméra et je n'arrive pas à trouver les coordonnées de la caméra après transformation.

    Est-ce qu'il y a un moyen de capter cette position, un peu comme c'est possible d'obtenir les informations d'un viewport.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GL.glGetIntegerv(GL.GL_VIEWPORT, viewport);
    Je pense que ceci peut être profitable à d'autre qui aurait le même genre de défi.

    Merci de m'aider si vous savez comment.

    DestinyWar

  6. #6
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    gluProject/unproject va te faire ce que tu demande
    en plus, si tu a fait du picking, tu doit pouvoir avoir la profondeur du pixel cliqué, donc le passage de la 2D (à 3 composante ) à la 3D devrait se faire sans probleme
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Mai 2003
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Mai 2003
    Messages : 72
    Par défaut
    Une petite erreur de ma part, c'est seulement lorsque j'ai un angle de vu plus proche de 90 degrée avec l'objet ( vu du dessus ) que ca bouge bien dans toute les direction peu importe les axes x et z, mais lorsque je suis à 45 degrée seulement le déplacement dans la le sens gauche droite va bien peu importe les axes x et z.

    DestinyWar

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/03/2013, 13h00
  2. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  3. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  4. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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