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 :

Mise à l'échelle d'objets 3D dans un repere différent


Sujet :

Moteurs 3D

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 85
    Points : 49
    Points
    49
    Par défaut Mise à l'échelle d'objets 3D dans un repere différent
    Salut!
    J'utilise ogre3d pour coder un petit modeleur.
    J'ai mis en place des fonctions de mise à l'échelle de mes objets 3D.
    Ces mises à l'échelles doivent donc etre faisable dans le plan camera. C'est à dire etirement/contraction verticale, etirement/contraction horizontal et etirement/contraction globals.
    Le probleme est que ogre ne permet pas une mise à l'echelle dans le repere monde, mais seulement dans le repere local de l'objet. Or mes axes de transformation sont connus dans le repere monde.
    Il me semble que les quaternions soient une solution pour resoudre mon probleme, mais je but un peu sur la question.
    Il me semble qu'un bon debut soit de multiplier l'orientation de l'objet (ici un node) avec l'axe de mise à l'echelle souhaité, afin d'obtenir un nouvel axe de transformation dans le repere local (est ce que j'ai raison? parce que la c'est 100% experimental :p ).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Vector3 v = (Quaternion.Multiply(node.GetWorldOrientation(), axis));
    Cela doit me donner un espce de triedre avec des longueurs d'axes normalisées correspondant à la "puissance" de la mise à l'echelle dans le repere local de l'objet (est ce que je me trompe?).
    Apres je ne voit pas vraiement comment faire pour définir si la mise à l'échelle est un retrecissement ou une extension.....
    Est ce que quelqu'un pourrait m'eclairer sur tout ca (peut etre existe t-il une methode super simple pour arriver au resultat).

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 85
    Points : 49
    Points
    49
    Par défaut
    up!

  3. #3
    Membre éclairé
    Avatar de N_I_C_S
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 450
    Points : 681
    Points
    681
    Par défaut
    Salut,
    Je pense que tu vas chercher trop loin :
    si tu veux faire la mise à echelle dans le repère monde, tu l'applique AVANT d'appliquer la transformation de l'objet.
    si tu veux mettre à l'échelle dans le repère local, tu l'applique APRES la transformation de l'objet.

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/02/2010, 09h05
  2. Mise à jour d'un objet dans un schéma dbml
    Par boby62423 dans le forum Linq
    Réponses: 1
    Dernier message: 25/06/2009, 13h51
  3. [VB6] Modification objet OLE dans Word sous VB
    Par zworg dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 23/02/2004, 08h20
  4. [Vb.net] Indexé un objet crée dans une boucle
    Par picpic dans le forum Windows Forms
    Réponses: 10
    Dernier message: 17/12/2003, 14h37
  5. Réponses: 3
    Dernier message: 09/02/2003, 01h09

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