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 :

[GLSL] Calculer un angle entre deux vecteurs.


Sujet :

OpenGL

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 6
    Points : 4
    Points
    4
    Par défaut [GLSL] Calculer un angle entre deux vecteurs.
    Bonjour,
    Je voudrais pouvoir calculer l'angle qu'il y a entre le pixel que je regarde et un autre pixel (celui qui sera analysé par le vertex shader) et ensuite passer cet angle à mon fragment shader.
    La seule donnée que j'ai est le vecteur de direction de ma caméra qui est de type vec3 (équivalent de float3).

    Explication avec un schéma :



    Le rond vert est la caméra, le carré noir est mon terrain, le trait rouge est l'endroit ou je regarde, le trait violet est un point sur mon terrain aléatoire. Je veux donc calculer l'angle (le trait bleu).

    Pourriez vous m'éclairer sur la question car je ne sais absolument pas comment m'y prendre.

    Merci.

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 386
    Points : 4 962
    Points
    4 962
    Par défaut
    j'ai pas tout compris mais je peux déjà te dire que le produit scalaire (dot product) de 2 vecteurs unitaires donne le cosinus de l'angle entre ces 2 vecteurs.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 32
    Points : 41
    Points
    41
    Par défaut
    Bonjour,

    Une idée qui me vient de suite :
    - soit "vec3 dir" un vecteur représentant la direction du regard
    - soit "vec3 pix" un vecteur de l'oeil vers le pixel
    - normaliser les 2 vecteurs
    - alors on a : angle = acos(dot(dir, pix))

    Il faut juste faire attention à ce que dir et pix soient dans le meme espace.

  4. #4
    Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci !
    Je vais essayer de me débrouiller avec ça .

    EDIT :
    Bon j'ai fait ce que tu m'as dit, mon shader s'exécute normalement.
    Juste une question, l'angle est en radians ou en degrés ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 32
    Points : 41
    Points
    41
    Par défaut
    L'angle est en radians

  6. #6
    Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci, j'ai trouvé ça dans la journée.
    Il m'a ensuite été simple de le convertir en degrés.

Discussions similaires

  1. calculer l'angle entre deux segments
    Par Riham Darine dans le forum Mathématiques
    Réponses: 5
    Dernier message: 22/04/2011, 00h39
  2. Programmation Python angles entre deux vecteurs
    Par Manudu38 dans le forum Calcul scientifique
    Réponses: 3
    Dernier message: 18/11/2009, 18h17
  3. Calcul d'angle entre deux segments pour algo de Jarvis
    Par Niko_de_bordo dans le forum Mathématiques
    Réponses: 14
    Dernier message: 25/06/2009, 23h36
  4. Calcul d'angle entre deux vecteurs
    Par feynman dans le forum Fortran
    Réponses: 8
    Dernier message: 22/09/2007, 13h59
  5. Calcul d'angle entre 2 vecteurs - direction
    Par lothei dans le forum Développement 2D, 3D et Jeux
    Réponses: 4
    Dernier message: 03/09/2007, 19h29

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