Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Rotation d'un objet en 3D [ Multimédia / DirectX ] (Choumoumou)

mercredi 4 juillet 2007 à 19:08:46 | Rotation d'un objet en 3D

Choumoumou

Bonjour à tous !
Je programme pour un projet 3D et je reste bloqué là-dessus :
mon personnage est une suite de vecteurs qui prend la forme d'un objet (complexe ou à l'état de cube, peu importe). Ce personnage se déplace sur un point x;z;y, point qui est aussi le centre de rotation de la caméra. Donc la caméra suit l'objet et tourne autour de lui à l'aide de la souris. C'est en quelque sorte une vue à la 3e personne, dont la formule est là suivante :
dx7.ViewMatrix matrice, vector(camX - Cos(angX) * 15, camZ - Sin(angX) * 15, camY - Sin(angY) * 15), vector(VueX, VueZ, VueY), vector(0, 0, 1), 0

Où :
- dx7 est l'objet de direct x,
- (camX; camZ; camY) la position du personnage et donc le centre de rotation de la caméra,
- (angX; angX; angY) l'angle de la caméra (je n'ai pas d'angle Z, l'angle X prend le relai)
- 15 est l'éloignement du centre de rotation.

précision: l'ordre des dimensions est x, z, y et non pas x, y, z. C'est plus simple pour là modélisation à même le code : longueur, profondeur, puis hauteur.

Tout cela marche impeccablement bien, seulement voilà : j'aimerai que mon personnage (pour l'instant à l'état de cube, pour simplifier les choses) puisse tourner sur lui-même en fonction de l'angle de la caméra ; que l'on ne puisse voir depuis la caméra que le dos du personnage / qu'une seule face du cube.

J'ai essayé plusieurs choses, plusieurs formules, par exemple :
vertex.x = camX + Cos(angX) * vertex.x
vertex.z = camZ + Sin(angX) * vertex.z
Pour faire une rotation de chaque point par rapport au centre camX, à l'angle angX et au rayon X...
Le résultat n'est pas très joli à voir :-\

Donc voilà, si vous aviez une fonction sous la main qui permettrai de faire une rotation sur un point x,y,z en fonction d'un angle, d'un axe, etc... Toutes les propositions seraient la bienvenue et remerciées infiniment !

vendredi 6 juillet 2007 à 12:34:49 | Re : Rotation d'un objet en 3D

rt15

Membre Club
Réponse acceptée !
Salut,

Je n'ai essayer DX sous VB que pour faire de la 2D... Je sais pas si tu as accès à tout ce qui est D3DX, sans compter que la version 7 commence à dater.

Il est préférable de ne pas toucher aux vertice (Rien que pour les performances, idéalement, il ne faut jamais les toucher).

Pour les déplacer, on applique des transformations dessus (C'est un des principes de base de DirectX. Cherche des tutos pour en savoir plus sur le sujet. Concrètemement on applique une transformation basée sur une combinaison des matrices vue (caméra), projection (la façon dont c'est plaqué sur l'écran) et monde (Position et rotation des vertices)).

Globalement, on parcourt les meshs à afficher, et on met en place la matrice de transformation pour chacun d'eux.

Il y a D3DXMatrixRotationAxis qui peut peut être t'intéresser (Ou une des routines en bas de la page.)

Il y a aussi des routines pour aider à la mise en place de la caméra (Se passer de tes calculs de sinus tout ça), mais idem, je sais pas si elles sont dispo en DX7/VB...

(Au passage, je te conseillerais presque de passer à DX8, normalement dispo sous VB6 aussi simplement que DX7, et un peu plus d'actualité)

Voilou voilou.




samedi 7 juillet 2007 à 15:11:42 | Re : Rotation d'un objet en 3D

Choumoumou

Merci beaucoup, je vais voir si je peux trouver l'équivalent en dx7.. et sinon, bah... je traduirais tout en dx8 :(



Cette discussion est classé dans : objet, caméra, rotation, angle, angx


Répondre à ce message

Sujets en rapport avec ce message

rotation objet directx7 [ par survcopt ] Salut j'ai crée une petite fenetre qui affiche un objet .X , je voudrais lui donner des consignes angulaires du style 3° sur X , 4° sur Y ... , la seu 3D rotation caméra [ par Radiohead4ever ] RadioHead4Ever Sauvegarde image apres rotation [ par alihome ] Bonjour à tous,J'ai trouver un code pour faire une rotation de mon image dans une picturebox et je souhaiterais pouvoir l'enregistrer par la suite ''à rotation d'objet [ par Ana31 ] Bonjour j'ai un objet, à chaque clik de souris, je voudrais que mon objet en 2D, pivote de 90 degré, et en plus jé 10 objet dans ma page, dc je voudra rotation d'objet [ par Ana31 ] Bonjour, J'ai un problème. J'ai un objet en 2D, je voudrais qu'à chaque click de souris mon objet pivote de 90 degré !!!! Et j'ai 10 objets dc je voud rotation d'objet [ par Ana31 ] bonjour j'ai un problème, j'ai un objet en 2d, j'ai merais qua chaque click de souris mon objet pivote de 90 degré !!! Comment faire ? rotation d'objet [ par LaTatadu91 ] Bonjour, suite à un problème pour tracer des rectangles de manière oblique je me demande si il n'existe pas une fonction permettant la rotation d'un o Propriete : angle de rotation [ par moony01 ] SalutJe travaille sous access 2000, et je me demande comment peut on ajouter la propriété : "angle de rotation" aux controles d'un formulaire?Qui peut Lien vers un fichier xml [ par guix ] Bonjour, j'ai une application qui affiche des données d'après un fichier xml. Je crée un objet xml qui prend en paramètre le chemin du fichier et il m Lien vers un fichier xml [ par guix ] Bonjour, j'ai une application qui affiche des données d'après un fichier xml. Je crée un objet xml qui prend en paramètre le chemin du fichier et il m


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,172 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.