Je suis actuellement en train d'apprendre l'algèbre linéaire dans les jeux et je me sens presque prêt à utiliser mes nouvelles connaissances dans un espace 2D simple. Je prévois d'utiliser une bibliothèque mathématique, avec des vecteurs/matrices, etc. pour représenter les positions et directions, contrairement à mon dernier jeu, qui était assez simple pour ne pas en avoir besoin.
Je veux juste une clarification sur ce point. Tout d'abord, est-il valide d'exprimer une position dans un espace 2D avec des coordonnées homogènes 4x4, comme ceci :
[400, 300, 0, 1]
Ici, je suppose, pour simplifier, que nous travaillons dans une résolution fixe (et dans l'espace écran) de 800 x 600, donc ceci devrait être un point au milieu de l'écran.
Est-ce valide ?
Supposons que cette position représente la position du joueur, si j'utilisais un vecteur, je pourrais représenter la direction vers laquelle le joueur est tourné :
[400, 400, 0, 0]
Donc ce vecteur représenterait que le joueur est tourné vers le bas de l'écran (si nous travaillons dans l'espace écran.
Est-ce valide ?
Enfin, si je voulais tourner le joueur de 90 degrés, je sais que je devrais multiplier le vecteur par une matrice/quaternion, mais c'est là que je suis confus. Je sais que les quaternions sont plus efficaces, mais je ne suis pas exactement sûr de la manière dont je procéderais pour tourner la direction vers laquelle mon joueur est tourné.
Est-ce que quelqu'un pourrait expliquer les mathématiques derrière la construction d'un quaternion et sa multiplication par mon vecteur de direction ?
J'ai également entendu dire qu'OpenGL et D3D représentent les vecteurs d'une manière différente, comment cela fonctionne-t-il ? Je ne le comprends pas exactement.
J'essaie de commencer à maîtriser les bases de l'algèbre linéaire dans les jeux avant de passer dans un espace 3D dans plusieurs mois.