THEwarrior333
Messages postés192Date d'inscriptionvendredi 19 mars 2004StatutMembreDernière intervention30 janvier 2008 25 nov. 2007 à 16:19
sam20, comment veux tu qu'on t'aide à debugger un code qu'on ne voit pas (ou partiellement). On ne peux pas deviner comment tu geres ton affichage, tes matrices, etc.
Quelqu'un t'as donné la fonction à utiliser, si ca ne marche pas c'est que quelque chose ne va pas dans ton code, alors ne t'attends pas à ce que quelqu'un arrive et te dise "tu as inversé les matrices à la ligne 234".
THEwarrior333
Messages postés192Date d'inscriptionvendredi 19 mars 2004StatutMembreDernière intervention30 janvier 2008 25 nov. 2007 à 16:46
Je t'ai donné plus haut une fonction à base de D3DXMatrixLookAtLH, tu m'as dit que cela ne fonctionnait pas: qu'est ce qui ne fonctionne pas?
c'est cette fonction qui te donne la matrice à multiplier à matworld. Tu n'as pas à utiliser de D3DXMatrixRotation.
Le point de direction (pAt) est-il bien défini?
Par contre n'oublie pas de réaffecter matworld d'origine aux autres meshes avant de les afficher.
<endl>Un clavier Azerty en vaut deux
</endl>
Vous n’avez pas trouvé la réponse que vous recherchez ?
car une fois la matrice world modifiée par ton g_pd3dDevice->SetTransform(D3DTS_WORLD, &W), tous les affichages, terrain compris, sont effectués avec W comme matrice de transformation.
THEwarrior333
Messages postés192Date d'inscriptionvendredi 19 mars 2004StatutMembreDernière intervention30 janvier 2008 25 nov. 2007 à 17:55
OK alors essaies plutot en placant ton objet au centre (vecteur E = (0,0,0) ) et ta camera un peu plus en arriere suivant Z: Eye = (0, 0, -10), avec Look = (0, 0, 0)
Au passage, peut etre les dimensions de ton objet sont elles trop grandes ou trop petites: si ta caméra est située 10 unités en arriere, une dimension de l'ordre de 5 est pas mal pour ton objet.
THEwarrior333
Messages postés192Date d'inscriptionvendredi 19 mars 2004StatutMembreDernière intervention30 janvier 2008 26 nov. 2007 à 17:27
Juste au passage: D3DXMatrixTranslation(&W,0,0,0) ne sert a rien (translation de 0 = identité).
Sinon peut etre ton objet regarde-t-il deja dans la direction de z (La = (0,0,5) ) donc la rotation n'a pas lieu.
Essaie avec La = (0,5,5) par exemple.
THEwarrior333
Messages postés192Date d'inscriptionvendredi 19 mars 2004StatutMembreDernière intervention30 janvier 2008 27 nov. 2007 à 13:17
Tu dois comprendre quelque chose: quand tu bouges un objet, c'est en fait le monde que tu fais bouger car tu manipules toujours la matrice World. Donc lorsque tu souhaites bouger un objet en particulier, tu changes matworld comme tu l'as fait, tu affiches ton mesh et après, comme je te l'ai deja dit au début de mes posts, tu dois remodifier ta matrice world (identité par exemple) pour afficher tes autres meshes.