Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Hiérarchie de transformations + scale = problème  (Lu 1549 fois)

0 Membres et 1 Invité sur ce sujet

CINEfilHD77

  • Newbie
  • *
  • Messages: 38
    • Voir le profil
Hiérarchie de transformations + scale = problème
« le: Juillet 11, 2014, 04:37:57 pm »
Bonjour à tous !  :)

Voilà, j'implémente pour un projet de jeu le système de Noeuds de Scène, avec transformations relatives aux parents, tout ça tout ça. Du coup, chaque Noeud stocke un sf::Transform, et quand on dessine l'ensemble des Noeuds, ça passe à la fonction draw() la transformation résultant de la multiplication de chaque transformation Noeud-à-Noeud, enfin le principe de base du truc quoi.
Du coup, et bien, la position, ça fonctionne, la rotation aussi, ça me hiérarchise tout comme il faut, aucun problème.
Mais, si je fais un scale, ça me fout un de ces bordels, comme si je passais dans un espace 3D.

Illustration :

Au départ j'ai ça :


Je fais une rotation sur le rectangle racine (Le Rouge) :


Puis là, je scale le rectangle racine :


Et puis, maintenant, quand je fais une rotation, bah ça me fait ça : (Le gif a un souci quand il repart en boucle, faites pas attention)


Comment faire pour éviter cet effet de déformation avec cette configuration de Nœuds hiérarchisés ?
Merci d'avance ! :)

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Hiérarchie de transformations + scale = problème
« Réponse #1 le: Juillet 11, 2014, 05:08:54 pm »
Tu dois sûrement appliquer ton scale au mauvais moment. N'oublie pas que A suivi de B n'est pas équivalent à B suivi de A lorsqu'on parle de transformations. L'ordre a donc de l'importance.
Laurent Gomila - SFML developer

CINEfilHD77

  • Newbie
  • *
  • Messages: 38
    • Voir le profil
Re : Hiérarchie de transformations + scale = problème
« Réponse #2 le: Juillet 11, 2014, 05:31:22 pm »
(click to show/hide)

EDIT : C'est bon, j'ai trouvé !!! Merci pour l'explication en tout cas :)
(C'est marrant que j'ai réussi à me concentrer grâce à "Look at my Horse Amazing Horse")
« Modifié: Juillet 11, 2014, 06:07:57 pm par CINEfilHD77 »

 

anything