J'ai besoin d'écrire un simulateur de physique 3D très simple en Java, cube et sphères qui se cognent les uns aux autres, pas beaucoup plus. Je n'ai jamais rien fait de tel, où devrais-je commencer? Toute documentation sur comment cela est fait? des bibliothèques que je pourrais réutiliser?Où puis-je commencer à écrire/utiliser un moteur de simulation physique 3D?
Répondre
Physics for Game Programmers By Grant Palmer (pas Java)
Phys2D (code Java)
En supposant que vous vouliez commencer à le faire, la meilleure façon de commencer est avec un stylo et du papier. Commencez à définir les points focaux de votre application (comme la sphère d'entités, le cube etc., les règles comme la gravité, la collision, etc., décider la hiérarchie des objets etc.)
Si vous savez comment faire cela, et que vous voulez une introduction à la technologie Côté, Swing est une bonne option pour créer des interfaces utilisateur en Java.
Jetez aussi un coup d'oeil ici: http://www.myphysicslab.com/
Que diriez-vous d'abord définir une classe pour objet physique? Il a la position, la vitesse, la masse et peut-être des sous-classes avec d'autres caractéristiques comme la forme, l'élasticité, etc.
Puis créez un univers (classe) où placer ces objets physiques. Ça sonne bien :)
Si vous n'avez besoin de simuler que des sphères/cercles et des cubes, tout ce dont vous avez besoin est un peu de maths Vector. Par exemple, pour simuler un jeu de billard simple, chaque bille (sphère) aurait une position, une vitesse linéaire 3D et un vecteur d'accélération linéaire 3D. Votre simulation impliquerait de nombreux petits cadres qui mettent à jour continuellement chaque balle. Si deux balles ou plus entrent en collision, additionnez simplement les vecteurs et calculez les nouvelles vitesses pour toutes les balles. Si une balle frappe un mur, par exemple, tout ce qui est nécessaire est de retourner le signe de la balle pour le faire rebondir ...
Si vous voulez faire cela à partir de zéro, ce qui signifie coder votre propre moteur physique, vous ' ll faut connaître les tenants et aboutissants des mathématiques derrière pour accomplir cela. Si vous avez de bons antécédents en mathématiques, vous aurez une longueur d'avance, sinon une courbe d'apprentissage abrupte est en avance.
Vous pouvez commencer sur ce forum communautaire pour recueillir des informations sur la façon dont les choses sont faites: gamedev.net
Ofcourse vous pouvez utiliser un moteur opensource comme Ogre si vous ne voulez pas coder votre propre.
Consultez les bulletphysics. bulletphysics.com est le forum ou check out the project on Sourceforge.
La leçon 39 de NeHe est un bon point de départ, c'est en C++ mais la théorie est assez facile à comprendre.
Une belle bibliothèque java physique est jmephysics (http://www.jmonkeyengine.com/jmeforum/index.php?topic=6459); il est assez facile à utiliser et se trouve au-dessus de ODE (http://www.ode.org/) et jmonkeyengine (http://www.jmonkeyengine.com) qui vous donne un scenegraph (http://en.wikipedia.org/wiki/Scene_graph), encore quelque chose dont vous aurez besoin pour autre chose qu'une simple application 3d.
Je ne l'ai pas utilisé depuis quelque temps, et je vois qu'ils n'ont pas été publiés depuis fin 2007, donc je ne sais pas à quel point la communauté est active maintenant.
Ce n'est pas de la physique: pas de gravité, pas d'élasticité, etc. Amusant à faire en entrée, mais limité. – PhiLho
La plupart d'entre eux ne sont que des vecteurs supplémentaires pris en compte dans chaque trame. Une fois que vous avez le simple travail, il n'est pas trop difficile d'ajouter de la gravité, coR, etc. –