Accueil > Forum > > > > Matrice View DirectX
Matrice View DirectX
jeudi 1 mars 2007 à 17:13:01 |
Matrice View DirectX

BobTSMSI
|
Salut tout le monde!
Bon c'est pas faute d'avoir cherché mais j'ai un problème de 3D avec DirectX 8... Je débute sous Direct3D alors vous pourrez peut-être m'expliquer...
Mon prob c'est de faire bouger le point de vue de la scène... Je comprend le principe de transformation par des matrices... Je cherche à faire une caméra totalement libre sur les trois axes en rotation et en translation... Je précise que les axes sont les axes du repère de la caméra biensûr pas ceux du repère de la scène...
Ma méthode: J'initialise une matrice identité, je lui applique successivement 3 rotations pour les 3 axes puis une translation... La translation semble fonctionner impec mais les rotations nada....
Voici mon code:
D3DXMatrixIdentity matView D3DXMatrixRotationAxis matRoll, MVertex(matView.m13, matView.m23, matView.m33), camRoll * (pi / 180) D3DXMatrixMultiply matView, matRoll, matView D3DXMatrixRotationAxis matPitch, MVertex(matView.m11, matView.m21, matView.m31), camPitch * (pi / 180) D3DXMatrixMultiply matView, matPitch, matView D3DXMatrixRotationAxis matYaw, MVertex(matView.m12, matView.m22, matView.m32), camYaw * (pi / 180) D3DXMatrixMultiply matView, matYaw, matView transX = camRight * matView.m11 + camUp * matView.m12 + camLook * matView.m13 transY = camRight * matView.m21 + camUp * matView.m22 + camLook * matView.m23 transZ = camRight * matView.m31 + camUp * matView.m32 + camLook * matView.m33 D3DXMatrixTranslation matTrans, transX, transY, transZ D3DXMatrixMultiply matView, matTrans, matView d3dDevice.SetTransform D3DTS_VIEW, matView
Voilà...
Donc camRoll, camPitch et camYaw bah c'est pour les angles de rotation et puis camRight, camUp et camLook c'est pour la translation... Tout ça s'exécute dans la boucle principale. La translation semble fonctionner comme il faut mais curieusement la rotation donne l'impression que les objets tournent autour du point (0,0,0) alors que je voudrais qu'ils tournent par rapport à la position de la caméra.... Je sèche.... Trois jours que je cherche et rien...
Merci d'avance pour votre aide!!
|
|
jeudi 1 mars 2007 à 19:37:22 |
Re : Matrice View DirectX

AnteManoclis
|
Salut, Je pense qu'en ajoutant une translation à ta matrice de vue qui correspondrait à la position de la caméra, ton point (0,0,0) autour duquel tes objets tournent, deviendrait au final l'origine de ta caméra. Tchô AnteManoclis 
|
|
jeudi 1 mars 2007 à 19:47:27 |
Re : Matrice View DirectX

BobTSMSI
|
Oui mais j'ai une translation vers la position de ma caméra est dans le code que j'ai posté:
transX = camRight * matView.m11 + camUp * matView.m12 + camLook * matView.m13 transY = camRight * matView.m21 + camUp * matView.m22 + camLook * matView.m23 transZ = camRight * matView.m31 + camUp * matView.m32 + camLook * matView.m33 D3DXMatrixTranslation matTrans, transX, transY, transZ D3DXMatrixMultiply matView, matTrans, matView
Tu parles de cette translation?
|
|
vendredi 2 mars 2007 à 20:03:18 |
Re : Matrice View DirectX

AnteManoclis
|
Ben j'en sais rien en fait, je sais pas trop à quoi elle correspond cette translation, camRight, camUp et camLook je ne sais pas bien à quoi correspondent ces trois variables... Ce que j'ai compris de ton premier message, c'est que la rotation que tu effectues se passe autour de l'origine. De mon point de vue, c'est normal, quand tu appliques une rotation, c'est toujours le repère qui sert de référence, alors mon idée était la suivante : en ajoutant une translation à ta matrice "générale" (et cela même s'il y en a déjà une, c'est pas grave), tu "déplaces" l'ensemble du repère, et par conséquent, l'origine aussi. Alors une rotation autour d'un point (x, y, z) revient à une rotation autour de (0, 0, 0) à laquelle tu vas ajouter une translation de vecteur (x, y, z). Tchô AnteManoclis 
|
|
Cette discussion est classée dans : axes, translation, matview, d3dxmatrixmultiply, camright
Répondre à ce message
Sujets en rapport avec ce message
comment incrementer une plage en VBA? [ par stef ]
bonjour,c'est l'histoire d'un mec qu'a 1 pb:débutant VBA, je cherche sur excel à creer autant de graph que j'ai de ligne de donnée, mais je ne trouve
c'est possible : incrementer un plage en VBA ? [ par stef ]
bonjour,c'est l'histoire d'un mec qu'a 1 pb:débutant VBA, je cherche sur excel à creer autant de graph que j'ai de ligne de donnée, mais je ne trouve
Commentaire sur les axes d'un mschart [ par Stoomm ]
Bonjour, Je cherche à mettre des infos sur les points de mon graphique (MsChart).Je n'y arrive pas. Quelqu'un peut il m'aider ?Merci d'avance. A+.Stoo
position 4D du joystick [ par Stephane ]
salut a tousquelqu'un pourrait il me dire comment on a les positions de 4 axes sur un joystick. parcke avec les apis getjoypos on a que 3 axes et getj
Changement des axes d'un MSChart par le code [ par Cyrus ]
Comment changer les valeurs MIN/MAX des axes d'un objet MSChart par le code ?Apparemment, on peut uniquement les changer par la fenêtre de propriétés
Tres urgent !!! MsChart pour faire un histogramme 3D avec plusieur axes d'abscisse [ par asmf ]
Bonjour tout le mondej'ai un pti pb avec le control mschart, je dois generer des graphe de suivi de production, et l'un de mes graphe doit etre un his
VBA et EXCEL [ par ElCochonDInde ]
Salut tlm,voila j'ai une macro a programmer et je dois tracer un graphique. Jusque la rien de bien compliqué mais je dois placer des labels dessus, la
Creer un Graphique sous excel [ par Tetris42 ]
bonjour voila 1 semaine que je cherche a contruire un graph ss excel.Je realise mon graph a partir de 3 colones (deux qui varient et une fixe juste l
chartspace avec plusieurs graphiques et des axes différents: c'est possible? [ par math85 ]
bonjour,j'utilise dans un projet vb les chartspaces d office xp.j'ai réussi à mettre plusieurs graphiques dans un seul en utilisant la propriété Chart
bah probleme graphique :) [ par MrDarkVelvet ]
Voila, je tape un code pour creer un graphique a partir d'un tableau excel qui se presente sous la forme d'un tableau à 2 colonnes et plusieurs lignes
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|