#0 

02-09-2012 11:43:02

cybrem
Membre
Date d'inscription: 30-07-2012
Messages: 12

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


#1 

02-09-2012 12:22:44

Copland
Modérateur
Lieu: ZarbiLand
Date d'inscription: 22-09-2006
Messages: 657
Site web

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.


Config : I5 2400, ATI HD6870 1Go DDR5, 4Go DDR3.
Single Boot : Windows Seven.

Hors ligne


#2 

02-09-2012 12:59:55

cybrem
Membre
Date d'inscription: 30-07-2012
Messages: 12

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


#3 

02-09-2012 13:57:53

Copland
Modérateur
Lieu: ZarbiLand
Date d'inscription: 22-09-2006
Messages: 657
Site web

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 smile.
Irrlicht Example 07 Collision -> plusieurs type de collisions sont expliqués dans cet example.


Config : I5 2400, ATI HD6870 1Go DDR5, 4Go DDR3.
Single Boot : Windows Seven.

Hors ligne


#4 

02-09-2012 15:12:35

cybrem
Membre
Date d'inscription: 30-07-2012
Messages: 12

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
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
882 membres
1429 sujets
11119 messages
Dernier membre inscrit: LiseBuisson96
66 invités en ligne
Aucun membre connecté
RSS Feed