je suis actuellement an train de programmer un (pseudo)"moteur" de rendu 3D et j'ai recemment attaqué la partie "camera".
Là où je bloque est lorsque qu'il s'agit de redefinir le repere/referentiel (local) de la camera à partir du deplacement de la souris. En effet, la souris se deplace dans un repere 2D (l'ecran), et il faut à partir de la varition en 2D de la souris, definir une direction dans un repere 3D, direction dans laquelle pointera la camera.
Si on considere le repere "global" etant y+ vers le haut, z+ vers l'avant et x+ vers la droite, je trouve un peu partout sur internet que:
direction en x = cos(tangage) * cos(lacet)
direction en y = sin(tangage)
direction en z = cos(tangage) * sin(lacet)
Bien evidement, tangage et lacet sont deduis à partir des variations de la souris.
Autant la direction en y, j'arrive à comprendre, autant la direction en x et z c'est le flou total.
Donc ,si quelqu'un a quelque(s) piste(s) de demonstration, voir même (dans l'ideal) me guider, pour que je la fasse moi même (oui, l'école me manque déja), ce serait sympa.
les formule que tu indiques correspondent à un repérage de la direction caméra en coordonnées sphériques par un vecteur unité oc(x,y,z) où le tangage est l'angle entre oc et le plan perpendiculaire (ox,oz) à l'axe oy ( angle (oc,oy)=pi/2-tangage) , d'où le sin(tangage) pour la composante selon oy et le lacet correspond à l'angle entre la projection de oc sur le plan (ox, oz) ( soit cos(tangage) ) et l'axe ox d'où la composante sur ox: cos(tangage)*cos(lacet) et la composante sur oz : cos(tangage)*sin(lacet).
- Edité par Sennacherib 4 juillet 2018 à 10:33:27
tout ce qui est simple est faux, tout ce qui est compliqué est inutilisable
Orientation 3D
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Eug