Supposez DirectX comme plate-forme, si cela est important. (À peu près sûr que ce n'est pas le cas)
En supposant que je dispose d’une matrice d’échelle, de rotation et de traduction appropriée, dans quel ordre les multiplie-t-on pour obtenir une matrice mondiale appropriée et pourquoi?
Par "correct", je veux dire "je pourrais les jeter directement dans DirectX et obtenir le cadre 3D le plus utilisé."
Réponses:
Habituellement, c'est l'échelle, puis la rotation et enfin la traduction. Avec une dénotation de matrice (T pour la matrice de traduction, R pour la matrice de rotation et S pour la matrice de mise à l'échelle):
T * R * S
Toutefois, si vous souhaitez faire pivoter un objet autour d'un certain point, il s'agit d'une échelle, d'une translation de point, d'une rotation et enfin d'une traduction d'objet.
Pourquoi: Tout d'abord, vous souhaitez redimensionner l'objet pour que les traductions fonctionnent correctement. Ensuite, vous faites pivoter les axes pour que la translation se fasse sur les axes ajustés. Enfin, vous traduisez l'objet à sa position.
Dans OpenGL, vous pouvez utiliser gluLookAt pour obtenir une transformation complète de la caméra en un seul appel. Il existe probablement un appel similaire pour DirectX.
la source
rotation de rotation et mise à l'échelle est la séquence pour effectuer l'opération
la source
Je crois que c’est la rotation et la numérotation de la traduction
la source