Voici ce que mon conférencier m'a dit au cours:
Nous ne considérons que les matrices 4 * 4. Ils sont utilisés pour faire pivoter, mettre à l'échelle ou traduire des objets (ou toute combinaison de ces opérations). Les matrices sont également utilisées plus tard dans la mise en œuvre du modèle de caméra virtuelle. Si vous ne connaissez pas la différence entre une transformation vectorielle et une transformation ponctuelle, recherchez-la.
Je n'arrive pas à trouver une réponse et j'ai créé un compte pour ce site Web juste pour cette question.
Réponses:
Voici la réponse simple.
Dans 4D, pour pouvoir les multiplier par une matrice 4x4, les vecteurs sont représentés comme (x, y, z, 0) et les points sont représentés comme (x, y, z, 1).
Étant donné que la 4ème ligne d'une matrice 4x4 représente la traduction de la matrice, les représentations ci-dessus font que les points sont affectés par la traduction, mais pas les vecteurs.
Les vecteurs et les points sont cependant affectés par la rotation, la mise à l'échelle, etc.
Caveat:
Il y a une discussion plus approfondie si vous vous attendez à ce que les vecteurs aient certaines propriétés. Par exemple, si vous transformez la normale d'un triangle par la même matrice que vous transformez les sommets du triangle, ce ne sera probablement plus le vecteur normal de ce triangle. En effet, les vecteurs normaux ont une sorte de relation inverse avec les sommets à partir desquels ils sont calculés.
la source
Maintenant, la question est: comment passer d'un système de coordonnées 3D à un système 4D ? La réponse est " coordonnées homogènes ".
Comment faisons-nous ça?
Nous distinguons les vecteurs de direction et de position . Les vecteurs de direction, comme leur nom l'indique, ont une direction vers laquelle ils pointent; nous nous soucions également de leur longueur, mais ils ne sont pas affectés par les traductions, car nous ne nous soucions pas de leur position. Les vecteurs de position (ou simplement «points») peuvent être déplacés ou déplacés; ils sont généralement représentés par rapport à l'origine, c'est-à-dire comme un vecteur de l'origine au point lui-même.
la source
Si vous recherchez la définition d'un vecteur et d'un point, alors un vecteur est:
Et un point est:
On pourrait donc dire qu'un vecteur est une direction avec une échelle et un point est un emplacement.
Donc, si vous transformez un vecteur, il vous suffit de le faire pivoter et de le mettre à l'échelle. Avec un point, vous le traduisez également (la rotation et la mise à l'échelle d'un point se font autour de l'origine, car il n'est qu'un emplacement où le point lui-même ne peut pas être tourné).
La plupart du temps, un vecteur et un point sont placés dans le même conteneur, un vecteur à 4 composantes. La seule différence est le composant w. Si la composante w est 0, alors c'est une direction. S'il vaut 1, alors le vecteur est un point.
La raison de ceci peut être trouvée dans la matrice elle-même. Il utilise la façon dont vous multipliez un vecteur à 4 composants avec une matrice 4x4. Si vous ne savez pas comment cela fonctionne, je suggérerais un rapide google.
Comme vous pouvez le voir, si le dernier composant est 0, alors vous avez une multiplication avec 0 et donc le résultat est 0 et il n'y a pas de traduction.
Cela le rend facile dans l'infographie avec des objets polygonaux. Vous avez la même matrice de transformation pour transformer les positions mais aussi les normales. Parce que les normales ont leur composant w mis à 0 et le composant w des positions est 1, les normales sont juste tournées (et également mises à l'échelle ce qui peut conduire à des trucs bizarres, donc la plupart du temps la normale est normalisée après. Ce n'est pas '' En fait, il est recommandé d'utiliser la même matrice pour les positions et les rotations à cause des trucs bizarres! Regardez le commentaire de @JarkkoL.) et les positions sont traduites (et pivotées et mises à l'échelle autour de l'origine).
J'espère que je n'ai pas fait d'erreur: P, et cela vous a aidé!
la source