-
Une alternative a ... ?
Dans le RedBook (un bouquin que je trouve particulierement mauvais :roll: mais ca reste un avis subjectif !) les auteurs nous disent que la routine suivante peut servir de transforamtion de visualisation pour un simulateur de vol :
void pilotView(GLdouble planex, planey, planez, roll, pitch, heading)
{
glRotated(roll,0,0,1); //roulis
glRotated(pitch,0,1,0); ::tangage
glRotated(heading,1,0,0); //cap
gltranslated(-planex,-planey,-planez);
}
Ok, mais est-ce qu'il y a une autre alternative possible a cette fonction ? Je me demande si en modifiant directement les param de gluLookAt, on gagne en rapidite. (En fait, je me demande si en modifiant les parametres d'orientation de la camera ca peut remplacer le roulis).
-
yop,
je pense ke tu confonds un peu tout la,
lorske tu utilises glRotated ou glTranslanted() et meme gluLookAt(), tu modifies la meme chose, cad la matrice active modelview..
une info pour ton simulateur de vol..spa pour te faire peur mais il va t'arriver un truc bizarre avec les rotations le "gimbal-lock"...la solution est de passer par les quaternions..si tu ve plus d'info va voir la :
http://membres.lycos.fr/javamus/articles/mqfaq.html
@+
-
Quand tu dis : "lorske tu utilises glRotated ou glTranslanted() et meme gluLookAt(), tu modifies la meme chose, cad la matrice active modelview.."
Je suis tout a fait d'accord sur ce que tu dis. Mais ne pense que le code suivant :
gluLookAt(P.x,P.y,P.z,C.x,C.y,C.z,O.x,O.y,O.z); glRotatef(phi,1.0,0.0,0.0); glRotatef(theta,0.0,0.0,1.0); glTranslate(...);
est plus lent que celui-ci :
actualise_camera(phi, theta);
gluLookAt(P.x,P.y,P.z,C.x,C.y,C.z,O.x,O.y,O.z);
Sinon pas un vol..spa mais des voitures. J'avais fait un ancien en Delphi je n'avais pas de probleme de trajectoire. 8) Le lien a l'air interessant je vais le zieuter d'un peu plus pres
http://www.lighthouse3d.com/opengl/tutorials.shtml :wink:
-
justement tu n'as pas besoin du glulookat si tu utilise apres les translate et rotate
de plus si tu calcules les angles finaux et tout le mieux c encore d'agir directement sur la matrice (y a des fonctions pour ca) mé la encore je doute k ce soit plus rapide ke la solution rotate translate
et puis pour des voitures tu pourras supprimer 2 angles je crois (donc 1 rotate+ 1 translate = bcp mieux ke 1 lookat)en plus avec ca tu pourras virer le glu.h