CONNEXION
  • RetourJeux
    • Tests
    • Soluces
    • Previews
    • Sorties
    • Hit Parade
    • Les + attendus
    • Tous les Jeux
  • RetourActu
    • Culture Geek
    • Astuces
    • Réalité Virtuelle
    • Rétrogaming
    • Toutes les actus
  • RetourHigh-Tech
    • Actus JVTECH
    • Bons plans
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTECH
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch
    • Xbox Series
    • Overwatch 2
    • FUT 23
    • League of Legends
    • Genshin Impact
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • PS4
  • One
  • Switch
  • Wii U
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Etoile Abonnement RSS

Sujet résolu : [OpenGL 3.3+] Problème de rotation caméra

DébutPage précedente
1
Page suivantePage suivante
VivaFidel VivaFidel
MP
Niveau 10
23 mai 2015 à 18:35:14

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:

https://www.noelshack.com/2015-21-1432398686-paintestmonami1.png
https://www.noelshack.com/2015-21-1432398710-paintestmonami2.png
et voici le résultat en jeu
https://www.noelshack.com/2015-21-1432398728-screen1.png -> on peux regarder en bas
https://www.noelshack.com/2015-21-1432398739-screen2.png -> 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 ?

SaigonoRyu SaigonoRyu
MP
Niveau 5
23 mai 2015 à 18:45:33

Je suppose que tu fait la rotation haut-bas autour de l'axe X du repère monde plutôt que l'axe X du repère local de la caméra qui possède les transformations.

Edit: ce serait peut-être plus simple à résoudre avec un aperçu du code.

Message édité le 23 mai 2015 à 18:48:15 par SaigonoRyu
VivaFidel VivaFidel
MP
Niveau 10
23 mai 2015 à 18:47:29

Le 23 mai 2015 à 18:45:33 SaigonoRyu a écrit :
Je suppose que tu fait la rotation haut-bas autour de l'axe X du repère monde plutôt que l'axe X du repère local de la caméra qui possède les transformations.

Tu est génial, en fait il suffisait de faire la tranformation de l'axe Y avant celle de l'axe X pour que les coordonnées de la caméra soient adaptés.

Merci beaucoup

DébutPage précedente
1
Page suivantePage suivante
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
La vidéo du moment