Bonjour à tous !
J'ai un petit probleme avec un programme.
Je ne connais pas encore trop les collisions mesh/terrain, etc... donc, j'ai géré les chutes moi même.
J'ai une camera, suivie par un mesh, qui tombe lorsqu'un bloc (oui, mon terrain est fait de cubes) n'est pas en dessous de lui.
J'utilise une caméra FPS, qui se déplace avec les touches fléchées, et s'oriente avec la souris.
Si ma caméra s'enfonce dans le sol, elle est remontée à la surface.
Le problème, c'est que si on essaie de faire descendre ou monter la camera, rien qu'un tout petit peu, l'image tremble.
En effet, la camera commence par monter/descendre, et le programme la repositionne.
Et si on avance en regardant ses pieds, la camera se transforme en marteau-piqueur ! ^^
Je pensais qu'en effectuant les calculs et les repositionnements d'abord et le smgr->drawAll() ensuite, il n'y aurait pas de problemes,
mais comme la caméra n'a pas besoin de l'appel de cette fonction pour bouger, ça engendre ce problème.
Quelqu'un pourrait il m'expliquer comment empêcher totalement la caméra de se déplacer sur l'axe Y, (voire toute seule),
ou bien me dire comment on peut utiliser le collisionResponseAnimator, j'ai trouvé sur un forum comment on fait pour un seul terrain,
mais pour 100, ou 1000 blocs, je suis pas sûr de savoir comment faire ça rapidement et proprement,
ou me donner encore une autre solution ?
Merci d'avance !
Hors ligne
Salut,
la solution la plus simple me parait être l'utilisation des collisionResponseAnimator, regarde dans les samples fournis dans le sdk il y en a un qui montre comment ça fonctionne.
(Ajouter un triangle selector à tes meshs de terrain "cubes" puis gérer la collision avec ta cam)
Si tu veux utiliser tes propres méthodes de collisions, je tenterai de smoother le résultat entre deux ou trois frames pour éviter les saccades... genre calculer ton résultat entre la frame précédente, l'actuelle et la nouvelle.
Hors ligne
Merci pour ta réponse.
Effectivement je pensais à me tourner vers collisionResponseAnimator, mais je me demandais si le fait d'ajouter un animator pour chaque cube n'allait pas faire tomber les FPS.
et samples = ?
Les exemples fournis dans les headers de irrlicht ?
Hors ligne
Pour tes cubes, pas la peine de rajouter un animator par cube, seule ta cam aurra un animator et tes cubes seront gérés par polygone pour les collisions grâce au triangle selector .
Irrlicht Example 07 Collision -> plusieurs type de collisions sont expliqués dans cet example.
Hors ligne
Je n'ai pas tout compris; un exemple commenté STP ?
[Edit] Et pourrais tu aussi m'indiquer à quoi servent les parametres Ellipsoid Radius et Ellipsoid Translation de createCollisionResponseAnimator ?
Dernière modification par cybrem (02-09-2012 18:51:47)
Hors ligne
Options | Liens officiels | Caractéristiques | Statistiques | Communauté |
---|---|---|---|---|
Corrections |
|
xhtml 1.0 css 2.1 Propulsé par FluxBB Traduit par FluxBB.fr |
882 membres 1429 sujets 11119 messages |
Dernier membre inscrit: LiseBuisson96 44 invités en ligne Aucun membre connecté RSS Feed |