lundi 23 septembre 2019

Et on rebondit !

Voilà les principaux éléments mis en place: l'on a la balle, et la surface sur laquelle elle rebondit. Je lui ai donné un moment (c'est à dire une vitesse de rotation, pas une petite pause, hein...), histoire de rendre son mouvement plus intéressant.

J'ai modélisé la balle et la surface marbrée dans Blender, puis exporté au format GLTF. Ensuite, j'ai intégré les modèles au sein d'une architecture entité-composant-système où chaque entité (la balle et la surface) a un composant physique, utilisant le moteur physique Bullet, et un composant graphique, qui référence le modèle GLTF et l'affiche via mes primitives de rendu OpenGL.

L'on notera les bugs graphiques sur la balle. Je ne sais pas encore s'ils sont dus à mon modèle, à l'export, ou à mon lecteur de GLTF, il faudra que je creuse la question.

samedi 7 septembre 2019

Oeuf de canard - Petit exemple d'utilisation de la bibliothèque physique Bullet

Cela faisait longtemps que je n'avais pas pondu d'oeuf de canard. En voici un, qui n'est autre qu'une version simplifiée de l'exemple de base d'une balle rebondissant sur une boite.

Par rapport à l'original, je ne me suis tout d'abord pas embêté à construire les objets sur le tas. Bullet suit une règle simple: tout ce que l'on créé, on doit aussi le détruire. Il prend donc un peu partout des pointeurs à poil, et il ne faut surtout pas s'attendre à ce qu'il prenne la responsabilité d'en nettoyer la mémoire. Donc, pour faire plus simple, j'ai tout mis sur la pile, et passé les addresses là ou il fallait des pointeurs. Fuite mémoire impossible !

J'ai également apporté quelques changements supplémentaires, histoire de rendre la simulation un poil plus intéressante. Tout d'abord, j'ai défini une restitution, qui est grosso modo à quel point la surface rebondit. Et j'ai également donné une petite vitesse latérale.

En sortie, le vecteur position de la balle, que l'on peut tracer à l'aide du bon vieux Libre Office Calc.

Et voilà notre balle qui rebondit !

Prochaine étape : brancher Bullet dans mon moteur graphique, histoire de voir un peu ce que l'on fait. Mais ça, ce sera certainement un poil gros pour un oeuf de canard...