Dans Ogre3D Je veux mettre l'orientation, ce qui donne un vecteur « normal » à la vue de la caméra (comme une flèche pointant vers l'avant mes yeux) et un angle qui tourne la caméra (comme l'inclinaison de ma tête). Je peux le faire fonctionner avec cette astuce:orientation de la caméra Ogre vecteur et un angle
float angle = 10; /* tilt my head 10 degrees to right */
Vector3 vector(0, 0, 1); /* z axis pointing forward */
Vector3 target = camera->getPosition() + vector;
camera->lookAt(target);
camera->roll(Degree(angle));
Je ne suis pas sûr que cela fonctionnera pour chaque valeur et il semble hacky. Je cherche quelque chose de plus correct, comme l'utilisation de quaternions et Ogre::Camera::setOrientation()
.
Cet exemple ne fonctionne pas:
Quaternion orientation(Degree(angle), vector);
camera->setOrientation(orientation);
parce que la caméra est mis en rotation par angle
le long vector
.
Notez que l'angle est en radians, puisque le péché() et cos() fonctions acceptent radians dans mon cas. Ajustez en fonction de vos besoins. – meyumer
J'ai déjà essayé avec un quaternion d'angle et d'axe (Ogre :: Quaternion fournit un constructeur pour cela), le problème est [Ogre :: Camera :: setOrientation] (http://www.ogre3d.org/docs/api/ html/classOgre_1_1Camera.html # ab6b87536a32e04638eb73f70034e811d): il n'utilise pas le quaternion passé comme je le veux. –
+1 J'ai cherché ça! – nurettin