Bonjour, j'ai récemment appris la bibliothèque graphique SFML et j'aimerais utiliser ou créer un système de physique 2D de corps non rigide à utiliser avec. J'ai trois questions:
La définition de corps rigide dans Box2d est
Un morceau de matière qui est si fort que la distance entre deux bits de matière sur le morceau est complètement constante.
Et c'est exactement ce que je ne veux pas car je voudrais faire des corps élastiques, déformables, cassables et de reconnexion. 1. Existe-t-il des moteurs physiques 2D simples, mais avec ce genre de caractéristiques? de préférence gratuit ou open source?
2. Sinon, pourrais-je utiliser box2d et travailler dessus pour le créer même s'il est basé sur des corps rigides?
3. Enfin, s'il existe un moteur physique simple comme celui-ci, devrais-je tout de même passer par le processus de création d'un nouveau, simplement pour l'expérience et pour améliorer les connaissances en mathématiques physiques? Je pense que cela aiderait si je voulais modifier le code d'un moteur existant ou créer un jeu avec une physique vraiment unique.
Merci!
Réponses:
Vous pouvez utiliser des systèmes de corps rigides pour créer un corps souple et une dynamique fluide. Raison physique derrière ça? Eh bien, essentiellement, les atomes sont de petits corps rigides. Ce n'est pas tout à fait vrai bien sûr, mais pour plus de simplicité, vous pouvez les voir comme tels. Et les corps mous sont évidemment fabriqués à partir d'atomes.
Alors, comment créez-vous des "corps souples" en utilisant un moteur de corps rigide comme Box2D?
La technique essentielle consiste à lier ensemble des points de votre corps à l'aide d'articulations. Par exemple, si vous connectez les extrémités d'une liste de lignes à l'aide de joints de distance (ce qui signifie que la distance entre deux joints doit être constante), elle se comportera grossièrement comme un morceau de tissu.
Mais ce n'est qu'une description approximative. Beaucoup de "travaux élémentaires sur le terrain" avec Box2D ont été effectués par ewjordan, l'un des développeurs du port Java de Box2D. Voici un bon point de départ: http://www.box2d.org/forum/viewtopic.php?f=8&t=1978
la source
Le terme que vous recherchez est la physique des corps mous.
Wikipédia a une belle liste. Ils sont tous 3D AFAICS, mais devraient être bons.
Consultez également cette question SO.
Un grand livre (c'est un corps rigide, mais tous les mathématiques et la physique sont là; c'est aussi en 3D, mais il est trivial de les transférer en 2D) est Game Physics Engine Development . Il implémente un système à base de particules avant de passer sur des corps rigides et de collision.
la source
Une façon simple de simuler des corps mous est de relier entre eux de petits corps rigides avec des joints élastiques. Ensuite, la partie difficile consiste à affiner les paramètres de votre modèle et à mapper la texture au modèle sous-jacent.
Le billet de blog suivant fournit une implémentation d'une boule déformable avec le moteur cocos2d: http://2sa-studio.blogspot.com/2014/05/soft-bodies-with-cocos2d-v3.html
la source