Gestion camera [Résolu]

Signaler
Messages postés
6
Date d'inscription
mercredi 13 avril 2005
Statut
Membre
Dernière intervention
29 avril 2005
-
Messages postés
546
Date d'inscription
vendredi 13 février 2004
Statut
Membre
Dernière intervention
9 janvier 2008
-
Voila mon pb :
je modelise un terrain 3D et g fixe une camera au dessus avec gluLookAt().

Je me sert de la souris pour effectuer des rotation de la camera et du clavier pour les deplacements de celle-ci .

Mon pb c kune voi une rotation de la camera effectué, les déplacements au clavier ne changent pa et donc mes touchent peuvent avoir la fonction inverse que celle de base (avancer, reculer ....)

G lu deux trois trucs avec le pitch et le heading de la camera mai g pa tt compri.

Si klkun peut mexpliquer ca serai cool.

Merci davance

6 réponses

Messages postés
546
Date d'inscription
vendredi 13 février 2004
Statut
Membre
Dernière intervention
9 janvier 2008
1
si j'ai bien compris tu veux toujours te deplacer dans la direction vers laquelle la camera regarde. alors que toi pour le moment ta touche haut par exple est fixé sur l'axe z quelque soit la direction vers laquelle tu regarde.

Je ne sais pas du tt ce qu'est le pitch ou le heading mais ce que tu peux faire c'est calculer les coordonnées du vecteur direction en soustrayant les coordonnées de la cible que fixe la camera a celle donnat la position de la camera.

Ensuite tu rend la norme de ce vecteur egale a 1 c'est a dire : tu divise toute les coordonnées du vect direction par la norme de ce vecteur ainsi le vecteur est toujours de la meme taille quelque soit la position ou tu est.

Finalement pour obtenir le deplacement tu ajoute les coordonnées de ce vecteur dir a celle de la cam en multipliant le vecteur par un coeff afin d'obtenir un deplacement plus ou moins rapide.

Voila j'espere avoir ete assez clair...mais peut etre qu'il y a une methode plus simple!
Messages postés
89
Date d'inscription
mercredi 25 juin 2003
Statut
Membre
Dernière intervention
14 septembre 2007

Le pitch c'est les trois dernier element que tu met dans gllookat? je
crois mais pas sur, mais si c'est ceula ben il ne serve pas a grand
chose au debut, c'est rare les jeux qui l'utilise, c'est un peu
comparable au tangage :)



Sinon pour ton problem de camera, oui il fau faire comme dletozeun dit.

A premirere vue c'est un peu etreange, alors moi je te conseil plutot
de lire et de comprendre un source déja commantée, si tu trouve pas dit
je te passerai la miene, sinon va voir sur :

http://gametutorial.com

http://nehe blabla



Alors ty arrive ?
Messages postés
6
Date d'inscription
mercredi 13 avril 2005
Statut
Membre
Dernière intervention
29 avril 2005

Ok je vous remercie
je vai regarder ca
Messages postés
6
Date d'inscription
mercredi 13 avril 2005
Statut
Membre
Dernière intervention
29 avril 2005

Ben ca marche nickel pour un deplacement en avant de la camera.

Mai g un petit probleme (encore...) Je voudrai egalement pouvoir gerer le strafe de ma camera... cad un deplacement lateral.

G essayer deffectuer le deplacement (avec le vecteur position calculé) de ma camera que pour la position en X mai evidemment laxe des X ne bouge pas et le deplacement lateral est toujours selon la meme direction !!

Que puis-je faire? Fo - til que je mette des coefficients differents selon les axes?

En tout cas merci dletozeun et barraq, ca marche nickel pour un deplacement en avant
Messages postés
6
Date d'inscription
mercredi 13 avril 2005
Statut
Membre
Dernière intervention
29 avril 2005

C bon g trouvé commen il fallai faire, en fait ma classe camera que g recupere du net avait deja presque tt gerer....

C moi ki savai pa lutiliser ....

Merci keu meme
Messages postés
546
Date d'inscription
vendredi 13 février 2004
Statut
Membre
Dernière intervention
9 janvier 2008
1
ben sinon pour le strafe il suffit de faire un produit vectoriel entre le vecteur direction dont je te parlais precedement avec le vecteur selon y (0,1,0) si bien sur ta camera est toujours horizontale!
parce que si ta camera tourne selon z ca sera plus le meme vecteur!

en tout cas avec le vecteur trouvé par le produit vectoriel tu l'ajoute a la position de la camera en le multipliant par un coeff plus ou moins grand pour obtenir une vitesse plus ou moins elevée, positif ou negatif pour aller vers la gauche ou vers la droite.