Hello, je me suis mis récemment à utiliser opengl version moderne (3.3+) et donc je ne dois plus utiliser le pipeline statique mais utiliser des shaders et donc mes propres matrices pour les transformations. du coup je crée une matrice de projection en perspective que je donne a tout les shaders, une matrice model par objet que je donne au shader de l'objet juste avant le rendu et une matrice view que je donne a tout les shaders sensibles au déplacements de la caméra.
Pour ce qui est du déplacement tout fonctionne, mais dés que je tourne le "regard" je me confronte à un problème:
- lorsque la caméra fait face à l'axe z tout fonctionne (pitch et yaw)
- lorsque la caméra fait face à l'axe x alors le pitch agit comme un roll (ce qui est plutôt logique)
Voici deux image pour illustrer la positon de la caméra:
et voici le résultat en jeu
-> on peux regarder en bas
-> le pitch agit comme un roll
le problème c'est que ce code fonctionnait avant d’utiliser de l'opengl moderne, mon hypothèse est que ça ne marche plus car model et view sont séparées, mais du coup quel est la meilleur solution ? Lier model et view ou utiliser un formule pour appliquer un rotation sur x et z en fonction du yaw ?