Author Topic: Collision sur surface de type TERRAIN_PATCH  (Read 3830 times)

0 Members and 1 Guest are viewing this topic.

angelcreat

  • Associate
  • Posts: 3
    • http://angel.free-heberge.com
Collision sur surface de type TERRAIN_PATCH
« on: February 27, 2006, 06:18:57 PM »
Bonjour à tous, voici mon problème: bien que ce moteur graphique, physique enfin bref super bien foutut soit très accesible à l'utilisateur moyen que je suis j'ai un problème  :D .
J'aimerais faire un pti jeux de voiture alors je m'entraine avec une sphère. Et tant que je la fais aller sur un plan, pas de problème les collisions sont gêrées à l'aide du moteur de Novodex mais lorsque j'essaie d'avoir une surface de collision plus complexe du type Terrain_patch alors les collisions de sont pas du tout gêrées, j'ai cherché, tenté de comprendre... en vain. Est ce que quelqu'un peut m'aider à résoudre mon problème, et si vous avez déjà fait un projet qui ressemble un peu, les conseils sont bienvenues.

Merci pour le travail que vous faites, c'est génial !

JeGX

  • Global Moderator
  • Capo Crimine
  • *****
  • Posts: 2357
    • oZone3D.Net
Collision sur surface de type TERRAIN_PATCH
« Reply #1 on: February 27, 2006, 07:21:39 PM »
je viens d'aller sur ton site et la page sur le moteur 3D est en erreur 404... dommage... :(


Mais revenons à nos moutons. Pour l'instant le novodex n'est utilisable qu'avec des formes simples comme le plan, la sphere et la box.
Mais de toute façon pour ce que tu veux faire, le novodex n'est pas la solution. La solution qui fonctionnerait parfaitement pour la sphere est donnée par le code sample 96.
Ce code montre l'utilisation de la fonction HYP_Mesh.GetElevation() qui te donne la hauteur d'un mesh (terrain) pour un (x,z) donné.

Pour la voiture, HYP_Mesh.GetElevation() n'est pas suffisant. Il faut en effet une fonction qui te donne l'inclinaison du sol (en gros le vecteur normal de la face du mesh)  en (X,z) de facon à orienter correctement la
voiture . Cette fonction n'est pas encore dispo  :oops:

Mais tu peux t'en sortir grace aux fonctions de bas niveau que sont HYP_Mesh.GetFaceIndexes() et HYP_Mesh.GetVertexPosition(). A partir de la position des trois vertices, tu peux calculer la normale de la face. Mais ça risque d'etre un peu galère. Mais je vais rajouter pour la prochaine release les quelques petites fonctions nécessaire pour ces pb de terrain...

Mais vas-y, poste des screenshost de ta petite demo avec le novodex, je suis curieux...

angelcreat

  • Associate
  • Posts: 3
    • http://angel.free-heberge.com
Collision sur surface de type TERRAIN_PATCH
« Reply #2 on: February 28, 2006, 01:33:24 PM »
oki, merci pour ta réponse, je vois un peu mieux dans quoi je me dirige... Je vais essayer de mettre quelques print-screen  :D  ça doit être bon d'ici demain. J'aurai surement encore quelques questions à te poser, merci pour ta réponse rapide aussi  :)  Bonne journée

angelcreat

  • Associate
  • Posts: 3
    • http://angel.free-heberge.com
Collision sur surface de type TERRAIN_PATCH
« Reply #3 on: February 28, 2006, 06:24:11 PM »
Hello, vala des nouvelles, alors j'ai recommencé le projet sans prendre pour le moment le temps de calculer la normale de chaque vertex... pour le moment je fais quasi que mumuse pour apprendre les facette de ce moteur  :D  j'ai une autre questions, j'ai ma voiture (une subaru  8) ) mais j'aimerais pouvoir la diriger malheureusement si je veux lui appliquer une vitesse je ne peux le faire que dans le sens des axes, et non pas dans le sens des axes à mon model... je sais pas trop si c'est compréhensible ce que je dis, bref j'aimerais pouvoir lui appliquer une vitesse toujours dans le sens de l'avant, même si elle prend un virage...  :cry:
Je me suis dis que ça serait faisable en lui appliquant une force mais ça fait rien du tout quand j'applique une force  :(  Alors si jamais tu pouvais jetter un pti coup d'oeil voici ou j'en suis :

http://www.angel.free-heberge.com/exemple_code/subaruV0-1.zip


P.S : j'ai commencé une galerie sur mon site web :
http://www.angel.free-heberge.com/galerie_hyperion3D.html

Bonne soirée

SoundCheck

  • Associate
  • Posts: 1
Animation véhicule
« Reply #4 on: March 01, 2006, 01:42:18 PM »
Ok, j'ai vu ta démo. Je te donnerai des indications d'ici peu (en fait le novodex n'a rien à voie là-dedans, il faut utiliser les fonctions de l'API LUA et implémenter les équations de cinématique d'un solide en mouvement). Je développerai plus en détail avec du code. A+

JeGX

  • Global Moderator
  • Capo Crimine
  • *****
  • Posts: 2357
    • oZone3D.Net
Collision sur surface de type TERRAIN_PATCH
« Reply #5 on: March 01, 2006, 02:23:36 PM »
je pense que ce topic là peut aider:
http://www.ozone3d.net/phpBB2/viewtopic.php?t=73