Salut à tous.
J'ai un petit soucis avec une caméra sans mouvement prédéfini (un bête ICameraSceneNode).
J'essaye de lui faire faire une rotation toute simple via la méthode setRotation(), manque de pot, cela ne semble pas agir. Si j'affiche les coordonnées X, Y et Z du vector3df que je reçoit par getRotation(), ils sont bien mis à jour mais la caméra ne veut pas se tourner.
Voila les instructions que j'utilise, vous avez une idée sur le problème ?
scene::ICameraSceneNode *camera; camera = sceneManager->addCameraSceneNode(0,core::vector3df(0,2,-4)); camera->setRotation(core::vector3df(3,0,0));
Hors ligne
on peut pas tourner une camera mais avec un peut de math et set target sa devrai aller
Hors ligne
on peut pas tourner une camera
Ha oui quand même ! J'allais dire en plus que c'était suspect que les valeurs de rotation ne soient pas en radian...
En tout cas merci, je vais chercher avec setTarget.
Hors ligne
hop hop hop
il est désormais possible tourner une caméra avec un setRotation comme un node normal depuis Irrlicht 1.5.
Mais il faut tout d'abord activer cette fonctionnalité avec la commande:
virtual void bindTargetAndRotation (bool bound)=0
Binds the camera scene node's rotation to its target position and vice vera, or unbinds them.
Les caméra posséde désormais leur propre méthode de rotation (qui en vérité fonctionne exactement comme pour un sceneNode standant)
virtual void setRotation (const core::vector3df &rotation)=0
Sets the rotation of the node.
d'ailleurs c'était suspect que Irrlicht ne le permettait pas avant. l'erreur est désormais réparé.
voila
++
Hors ligne
Ha merci dragonblood, ça me rassure d'une certaine manière, setTarget est plus naturel (on "vise" l'endroit qu'on veut filmer) mais setRotation peut s'avérer largement plus pratique ^^
Hors ligne