Je suis en train d'orienter un objet vers un point dans l'espace, en utilisant:Comment orienter vers le point objet en 3D sans rotations indésirables le long vecteur de direction
m_Z = glm::normalize(target - m_Position);
m_Y = glm::normalize(m_Y - glm::dot(m_Y, m_Z) * m_Z);
m_X = glm::normalize(glm::cross(m_Y, m_Z));
Et pendant que l'objet ne « regarde » la point en 3D, il semble tourner autour de son propre vecteur direct (m_X), ce qui signifie que le vecteur UP est dans une direction incorrecte. Donc l'objet regarde parfois le point tout en étant à l'envers ... Donc c'est comme une tête inclinée (pivotée autour d'un vecteur direct local)
Je sais orienter un objet vers un point en 2D - ce n'est pas ce que je suis après - je cherche un moyen de corriger l'upvector en 3d dans la mesure où le "top" de l'objet est toujours (plus ou moins) vers le haut, donc j'ai besoin que l'objet suive (regarde) le point non seulement à gauche et à droite, mais aussi & vers le bas.
m_X = left vector of object
m_Y = up vector of object
m_Z = forward vector of object
target = point's world position
m_Position = object's world position
Je viens d'essayer, il semble que les résultats sont ceux attendus, merci pour votre aide, marqué comme réponse, cela m'a beaucoup aidé! – Jack