[3D] Animation sans tremblements

Hello,

Je travaille sur un moteur 3D (DirectX/C++) depuis quelques temps. J’ai un petit problème au niveau des mouvements de mes meshes:

En fait j’ai une classe qui prend des points clés dans la scéne puis interpolle le tout a l’aide d’une BSpline.

Je passe a cette classe à chaque frame le temps écoulé depuis la dernière frame (dt).
ça marche plutot pas mal, mais, il y a toujours quelques problemes de precisions, et lorsque je suis trop pres de mes objets j’aperçoit des tremblements.

J’ai amélioré la précision de mon timer en utilisant un timer haute définition, et ces problèmes ont diminués mais sont toujours la… car j’ai des valeurs de dt de ce genre la:
0.0123
0.0110
0.0093

Si au lieu de prendre le dt, je met une intervalle fixe genre 0.01. tout est parfait, mais alors la vitesse de ma trajectoire est dépendante du framerate… ce que je ne veux évidemment pas.

Comme je suis plutot novice dans le domaine des moteurs 3D, j’aimerai savoir quelle est la mèthode utilisées par les pro du milieu pour avoir une animation fluide et indépendante du framerate?

Voila, j’ai conscience que ma question est un peu vague, mais tout élément de reponse est le bienvenu… si vous avez des liens sur le sujet aussi…

merci de votre attention

ton dt a l’air correct, par contre :

  • tu tourne en d3d ou en ogl ?
  • tu framesync ? (genre fixe a Hrz) ou tu es en framerate libres ?

sinon, dans les truc a verifie :

  • ton interpolation, tu la fais bien en utilisant que des float et des valeurs qui finissent en .0f (fait gaffe, j’ai vue bien des compilo c tout te pourrir pour un (variable * 5866), en supprimant gaiement les operation en entier !)
  • et ton “monde” il a quelle echelle ? parce que si tout ton monde tiens dans une boite de 111 ou plus petits, tu risque de te retrouve avec se genre de problem !

et voilaaa !

je tourne sous d3d.
Au sujet du framerate, pour l’instant je tourne en framerate libre. Mais la aussi je me demande si c’est le mieux…
J’utilise mon moteur pour faire du demomaking (peut etre des jeux dans le futur, mais pour l’instant je fais de la demo) et je me dis que j’aurais sans doute de bien meilleures animations en frame rate fixe… je me demande comment font les autres…

Au niveau de l’interpolation et des variables en 0.0f ça je pense que c’est ok, car j’ai eu des problèmes avec ça et j’ai repassé dans le code pour être sur de ne plus avoir d’arrondis en entier…

En ce qui concerne la taille du monde, tu touches un point important: dans mes precedentes productions j’avais un “monde” assez petit… genre 100;100;100 , mais la le contexte de ma démo se passe dans l’espace, et du coup les dimensions sont plus grandes… j’ai d’ailleurs des problemes d’erreurs dans le ZBuffer a moyenne et longue distance…

C’est quoi les dimensions les plus adaptées?

Un autre truc c’est que dans mon systeme de camera mobile, j’utilise le “field of view” pour simuler le zoom, et c’est lorsque j’ai un zoom important (fov=~0.2) que j’ai les problemes de tremblements…

Bon… bon merci pour ces pistes count0. je vais tchecker tout ça…