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 :

soucis de compréhension sur des conversions de vecteur par la matrice vue


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    médical
    Inscrit en
    Septembre 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : médical

    Informations forums :
    Inscription : Septembre 2007
    Messages : 144
    Par défaut soucis de compréhension sur des conversions de vecteur par la matrice vue
    bonjour, alors voilà, en 3d, il y a un truc qui n'est pas clair...

    voilà quelques soucis dont j'aimerais être éclairci.

    1) dans le vertex shader, je retrouve des fois
    vWorldVertex = ModelMatrix * vec4(Vertex * ModelScale, 1.0);
    vec4 viewVertex = ViewMatrix * vWorldVertex;
    vViewVec = normalize(-viewVertex.xyz);

    - vViewVec si je comprends bien est le vecteur entre la le vertex (dans l'espace vue) et la camera dans l'espace vue (il le multiplie par -1 car la position est inversée lors de la multiplication par la matrice vue)

    c'est correct ?

    - et un gars le corrige en lui disant que :

    vViewVec = normalize(vec3CameraWorldPos - vWorldVertex);

    là si je comprends bien, il calcule le vecteur entre la caméra et le vertex sans l'avoir mis dans l'espace vue.

    c'est correct?

    2) au final on arrive dans le fragment shader,et là si je comprends bien il faut mettre toutes les coordonnées (positions vertex, lumière, normales, ...) dans le même espace soit l'espace vue soit l'espace originel (avant de l'avoir multiplié par la vue)

    c'est bien ça?

    - pourquoi certains calcul avec les normales (par ex) se font sans que la normal soit convertit dans cet espace alors ?



    merci, pour vos réponses

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 157
    Billets dans le blog
    152
    Par défaut
    Bonjour,


    Citation Envoyé par dark poulpo Voir le message
    vViewVec = normalize(vec3CameraWorldPos - vWorldVertex);

    là si je comprends bien, il calcule le vecteur entre la caméra et le vertex sans l'avoir mis dans l'espace vue.

    c'est correct?
    Oui, car d'après les noms des variables, les calculs sont effectués avec deux entités dans l'espace monde, donc "c'est correct"

    2) au final on arrive dans le fragment shader,et là si je comprends bien il faut mettre toutes les coordonnées (positions vertex, lumière, normales, ...) dans le même espace soit l'espace vue soit l'espace originel (avant de l'avoir multiplié par la vue)

    c'est bien ça?
    Pour faire les calculs, notamment de lumière, il faut que toutes les coordonnées/vecteurs soient dans le même espace, sinon, les calculs sont incohérents. Finalement, on utilise l'espace vue, car c'est la plus simple pour avoir tous les vecteurs dans cet espace, mais ça marche très bien dans le monde aussi.

    - pourquoi certains calcul avec les normales (par ex) se font sans que la normal soit convertit dans cet espace alors ?
    Premièrement, on les convertit, grâce à une matrice spécifique. Notamment car la normale n'a que trois coordonnées valides (W ne sert à rien). De plus, comme la normale est une direction, il suffit de transformer que son orientation.


    Source :
    http://www.lighthouse3d.com/tutorial...normal-matrix/
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

Discussions similaires

  1. Réponses: 31
    Dernier message: 07/07/2015, 16h19
  2. Souci de lecture sur des fichiers
    Par clojo dans le forum MATLAB
    Réponses: 4
    Dernier message: 10/03/2013, 18h43
  3. Souci de performance sur des grosses tables - optimisation possible ?
    Par patate_violente dans le forum Administration
    Réponses: 3
    Dernier message: 07/08/2011, 09h16
  4. Réponses: 1
    Dernier message: 08/07/2010, 12h23

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