[C++][DirectX] Billboarding

Billboarding [C++][DirectX] - C++ - Programmation

Marsh Posté le 29-12-2007 à 21:32:11    

Bonjour à tous !
J'ai besoin q'un objet qui suive (d'orientation) ma caméra avec un pas d'angle, pour sa je prend la matrice de vue et je l'inverse. Là mon objet se tourne vers ma caméra en temps réel, mais ce que je veux c'est qu'il se tourne avec sacade selon un pas déterminé par rapport à l'axe X et Y. C'est à dire qu'au lieu qu'il se tourne de façon fluide vers la caméra et bien il ne doit se tourner que quand la caméra a tourner d'un angle > à PI/2 autour de l'axe X et retourner de PI/2 en Y si la caméra a tourner d'un angle supérieur a PI/2 autour de l'axe Y. Et je n'y arrive pas :/
Si quelqu'un avait une idée merci d'avance :)

Reply

Marsh Posté le 29-12-2007 à 21:32:11   

Reply

Marsh Posté le 30-12-2007 à 00:16:19    

Pour simplifier je veux juste un moyen de faire un billboard en déduisant les angles de la matrice de vue inversée selon les axes X, Y et Z puis de reconstituer cette même matrice avec ces 3 nouvelles matrices. Comme sa je peux y effectuer des modifications intermédiaires :D

Reply

Marsh Posté le 30-12-2007 à 02:35:39    

Reply

Marsh Posté le 30-12-2007 à 02:38:04    

sinon le plus simple est de stoquer initialement l'orientation sous forme d'angles d'euler.
 
tu veux quoi ? animer les streums de doom ou les vaisseaux de wing commander ?

Reply

Marsh Posté le 30-12-2007 à 03:00:27    

Je veux qu'un terrain "sphérisé" suive ma caméra par pas pour que les points ne soient pas mis à jour à chaque mouvement de caméra ce qui fait gagné en performance et evite que mes montagnes bougent inexplicablement vu que l'altitude doit être calculé par rapport à l'angle :D
Merci pour le lien, j'implémente et je feedback :p

Reply

Marsh Posté le 30-12-2007 à 03:21:32    

Ok sa marche merci beaucoup, il me faut plus qu'une chose :D
Pour que je puisse mettre en place mon système de pas d'angle il me faut que 2 angles et pas 3 sinon sa va donnée n'importe quoi, a ton avis comment je pourrais exprimé un angle autour d'un axe (Z par exemple) en fonction des 2 autres axes (X et Y) ?
Je sais pas si ce que je dis est correcte mais au final j'aimerai avoir que 2 angles au lieu de 3 et j'avoue ne pas trop savoir comment faire :/
Merci ;)

Reply

Marsh Posté le 30-12-2007 à 17:52:26    

j'ai du mal a visualiser ce que tu veux faire, mais pour "exprimeR un angle autour d'un axe" tu devrais regarder des cotés du quaternion.
mais bon c'est peut être une mauvaise piste.

Reply

Marsh Posté le 30-12-2007 à 18:30:24    

Ouai j'y est pensé au quaternion mais je vois pas en quoi sa pourrait m'aider étant donné que de toute façon mon système de pas d'angle s'applique sur les angles d'Euler.
Pour bien comprendre mon problème il faut que t'imagine une sphere comme on en fait en programmation avec des anneaux et des segments. Et bien moi j'ai un plan ki se plaque contre cette sphere et j'aimerai que ce plan regarde en direction de la caméra tout en restant plaqué à cette même sphere. Pour ça il doit donc se déplacer sur la sphere (enfaite mon plan c'est un peu un morceau de sphere). Le truc compliqué à comprendre c'est qu'il faut imaginer les anneaux et segments de la sphere comme une grille et moi avec mon plan j'aimerai faire un "SNAP TO GRID" quand il se déplace, c'est à dire qu'il se déplace pas fluidement mais de carreau en carreau tu comprend à peu pres ?


Message édité par styl26 le 30-12-2007 à 18:32:42
Reply

Marsh Posté le 30-12-2007 à 22:46:36    

ouais je vois un petit peu.
 
tu veux faire un moteur de terrain de planète ?

Reply

Marsh Posté le 31-12-2007 à 00:55:47    

Oui c'est exactement ça !

Reply

Marsh Posté le 31-12-2007 à 00:55:47   

Reply

Marsh Posté le 02-01-2008 à 00:10:51    

Quelqu'un aurait-il une idée ? :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed