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 :

Repère direct ou indirect


Sujet :

Moteurs 3D

  1. #1
    Rédacteur

    Repère direct ou indirect
    Salut,

    Je me rappelle l'avoir lu quelque part, mais je ne me souviens plus où, donc peut-être que quelqu'un s'en rappelle.
    En 3D, est-ce qu'on utilise un repère direct ou un repère indirect, de manière générale ?

  2. #2
    Expert éminent
    Citation Envoyé par Matthieu Brucher Voir le message
    Salut,

    Je me rappelle l'avoir lu quelque part, mais je ne me souviens plus où, donc peut-être que quelqu'un s'en rappelle.
    En 3D, est-ce qu'on utilise un repère direct ou un repère indirect, de manière générale ?
    Généralement, on utilise un repère "main droite" (je ne sais plus si c'est direct ou indirecte ) .. c'est a dire :
    X : axe horizontale, positif vers la droite
    Y : axe vertical, positif vers le haut
    Z : axe de profondeur, positif derrière nous .
    Mes Tutos DirectX, OpenGL, 3D : http://raptor.developpez.com/

  3. #3
    Rédacteur

    C'est bien ce que je me disais (main droite = direct, il me semble aussi). Merci !

    En fait, c'est pour bien être sûr que mon raytracer fonctionne bien avec la bonne norme (pour le moment, j'ai y qui descend et z qui "rentre" dans l'écran, faut que j'inverse les 2 )

    Ah oui, ça pourrait être bien de mettre ça dans la FAQ 3D ?

  4. #4
    Membre expert
    Salut,

    Il n'y a pas de standard, mais il y a 2 standard (désolé du calembour miteu, je suis déjà loin ):
    * OpenGL: main droite comme l'a décrit raptor70
    * Direct3D: main gauche, +Z est devant nous
    Sur d'autres soft comme Max, c'est le repère main gauche qui est utilisé.

    Par contre aucune idée pour direct/indirect, c'est la première fois que je vois ce terme

  5. #5
    Rédacteur

    Zut, c'est embêtant, ça... Tu es sûr que 3DS utilise le repère indirect/main gauche ? En méca, on nous disais toujours de prendre le direct car c'est le résultat du produit vectoriel

  6. #6
    Membre expert
    Bon, après vérif, j'ai la mémoire corrompue
    * 3DSMax : +Z est la hauteur, la profondeur (devant nous) est indiquée par +Y
    * Maya: comme OpenGL, ie +Z est vers l'observateur
    * Blender: idem à Maya/OpenGL
    * Softimage|XSI: idem à Maya/OpenGL
    * Renderman: +Z s'éloigne de l'observateur (DirectX, main gauche)

  7. #7
    Rédacteur

    On a tous la mémoire corrompue quand on n'a pas les applications devant les yeux
    Merci pour les compléments (qui rejoignent ceux que tu m'avais fait par MP il y a qqs temps, c'est une des raisons de cette question, en fait )

  8. #8
    Membre averti
    Citation Envoyé par Matthieu Brucher Voir le message
    En méca, on nous disais toujours de prendre le direct car c'est le résultat du produit vectoriel

    De memoire (corrompue elle aussi ?), quand tu fais un produit vectoriel, les deux vecteurs operandes forment un plan. Le resultat de l operation est un vecteur dont la direction est perpendiculaire au plan....

    ... et pour le sens , ca depend justement du repere (direct / indirecte) qui sera choisi.... donc a mon avis c'est pas la bonne raison de choisir directe en meca

  9. #9
    Expert éminent
    Oui, effectivement, comme te l'as dit Irmatden, il n'y absolument aucun standard, celui que je t'ai donné est le plus utilisé ...
    Mes Tutos DirectX, OpenGL, 3D : http://raptor.developpez.com/

  10. #10
    Rédacteur

    Citation Envoyé par smashy Voir le message
    ... et pour le sens , ca depend justement du repere (direct / indirecte) qui sera choisi.... donc a mon avis c'est pas la bonne raison de choisir directe en meca
    Si tu fais x * y = z, le repère (x, y, z) est direct.

  11. #11
    Rédacteur

    Autre question. Dans une scène OpenGL, on place donc les objets avec un z négatif si on veut les voir au départ (Sérieux, va falloir que je me remettre à OpenGL, il fut un temps où j'arrivais à répondr eà une telle question de débutant ) ?

  12. #12
    Expert éminent
    Citation Envoyé par Matthieu Brucher Voir le message
    Autre question. Dans une scène OpenGL, on place donc les objets avec un z négatif si on veut les voir au départ (Sérieux, va falloir que je me remettre à OpenGL, il fut un temps où j'arrivais à répondr eà une telle question de débutant ) ?
    Oui et non ... tout dépend de la facon dont tu place ta caméra.. (gluLookAt() )
    Mes Tutos DirectX, OpenGL, 3D : http://raptor.developpez.com/

  13. #13

  14. #14
    Expert éminent
    Citation Envoyé par Matthieu Brucher Voir le message
    Question bête de ma part...
    Mais non .. mais pour répondre plus précisement, je crois que la position initiale de la caméra est (0;0;0) ... et qu'elle regarde vers les Z négatif.. à vérifier..
    Mes Tutos DirectX, OpenGL, 3D : http://raptor.developpez.com/

  15. #15
    Membre expert
    C'est ça

  16. #16
    Rédacteur

    OK, merci pour le renseignement. Je vais donc partir du même principe, à savoir regarder vers les z négatifs afin de minimiser les sources de conflits si les gens veulent tester ma bibliothèque par la suite.

###raw>template_hook.ano_emploi###