2010-12-04 46 views
0

Pourquoi les transformations vectorielles sont-elles effectuées dans l'ordre inverse dans OpenGL ES? Est-ce parce que les vecteurs sont stockés sous forme de matrice-colonne? Il semble qu'ils ont rendu les choses inutilement difficiles.Transformations vectorielles dans OpenGL ES

Répondre

1

Cela est probablement dû au fait que les transformations vectorielles ne sont pas commutatives. Changer la commande peut vous donner un résultat différent.

Une expérience simple pensée le prouve:

  1. Pour un vecteur unitaire (1, 0, 0), une rotation de degré 90 autour de l'axe z, suivi d'une rotation de degré 90 de la L'axe des x donne un vecteur (0, 0, 1).
  2. Si vous commencez avec la rotation de +90 degrés autour de l'axe des abscisses, suivie de la rotation de +90 degrés autour de l'axe des z, vous aurez un vecteur (0, 1, 0).
+0

Je sais que ce n'est pas commutatif. Je veux savoir pourquoi c'est fait en arrière. –

+0

"en arrière" implique qu'il existe une direction "vers l'avant" que vous pensez être plus correcte. Pouvez-vous clarifier cela? – duffymo