chucky_666
Messages postés6Date d'inscriptionmercredi 13 avril 2005StatutMembreDernière intervention29 avril 2005
-
28 avril 2005 à 17:16
dletozeun
Messages postés546Date d'inscriptionvendredi 13 février 2004StatutMembreDernière intervention 9 janvier 2008
-
7 mai 2005 à 20:06
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.
dletozeun
Messages postés546Date d'inscriptionvendredi 13 février 2004StatutMembreDernière intervention 9 janvier 20081 28 avril 2005 à 23:07
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!
barraq
Messages postés89Date d'inscriptionmercredi 25 juin 2003StatutMembreDernière intervention14 septembre 2007 29 avril 2005 à 08:57
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 :
chucky_666
Messages postés6Date d'inscriptionmercredi 13 avril 2005StatutMembreDernière intervention29 avril 2005 29 avril 2005 à 09:43
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
dletozeun
Messages postés546Date d'inscriptionvendredi 13 février 2004StatutMembreDernière intervention 9 janvier 20081 7 mai 2005 à 20:06
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.