[DirectX] Collisions avec un terrain

Le côté programmation du développement d'un jeu vidéo.

Collisions avec un terrain

Messagepar Kinju » 13 Déc 2005, 18:57

Bonjour à tous,

Je suis actuellement en train d'implémenter les commandes de ma voiture sur un terrain.

Pour le moment, j'ai fais évoluer X et Z et le cap selon les touches appuyées par l'utilisateur, avec une vitesse etc...

Là ou ça se complique, c'est pour régler le Y, le tangage et le roulis... Je sais pas trop comment m'y prendre.
J'ai fait une première ébauche:

J'ai les coordonnées X, Y et Z de la voiture.
J'ai sa BoundingBox.

Avec ça, je récupère les coordonnées X, Y et Z de chacunes des roues.
Je fait un p'tit test de collision: pour chacune des roues, je fait du picking. Si la hauteur du sol est trop élevée, il y a collision, je modifie la vitesse selon un coeficient de rebond multiplié par le produit scalaire de la face du sol touché et du vecteur de tranlation de la roue, et la voiture rebondit.

Ensuite, je passe donc au tangage, roulis et Y.
Pour ça, j'ai la hauteur du sol pour chacune des roues. Donc je me retrouve avec X, Y et Z de chacunes des roues. Avec ça, je dois déterminer le tangage, le roulis et le Y de la voiture.

C'est là où je sais pas trop comment m'y prendre. Vous feriez comment à ma place?

Je fais d'abord ça, et ensuite je ferai intervenir la gravité pour les chuttes etc...

Merci

A bientôt
Kinju
Hello World, I'm new !
 
Messages: 60
Inscription: 19 Nov 2005, 08:12

Messagepar Kinju » 13 Déc 2005, 19:09

En plus, toutes les roues ne touchent pas forcément le sol...

Imaginez un tremplin. La voiture passe à moitié dessus, y'aura 1 roue dans le vide. Alors pour déterminer la bascule de la voiture, faudra jongler avec le centre de la bounding box, et la droite d'intersection du sol avec la voiture pour savoir y'a chutte ou pas.

Mais pour trouver la droite d'intersection... j'peux pas faire du picking et tester si on est sur le tremplin ou le sol et faire bouger le rayon partout...

J'ai du passer à côté de quelque chose, d'une technique plus simple et moins "bidouille"
Kinju
Hello World, I'm new !
 
Messages: 60
Inscription: 19 Nov 2005, 08:12


Retourner vers Programmation

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 29 invités

cron