Physics engines

I recently came across the application of various numerical methods in building physics engines and I figured I will share them in this post. So generally every physics engine has 2 components, one for handling collisions while the other computes the results of these purturbations. Depending on the requirements of engines, this is generally done using 3 methods, which are explained in this article: http://en.wikipedia.org/wiki/Physics_engine
When developing engines for games, we always place importance in speed and we can afford to lose some accuracy in these simulations. As an example, soft body physics engines, used in games to simulate flexible objects attempt to create realistic illusions on soft bodies including clothes, hair etc. PhysX is one popular implementation of this that has been licensed by Sony for their PlayStation 3 console. Another cool implementation that does some robust approximations of large-scale simulations is the Fast Lattice Shape Matching technique, which claims to eliminate many of the restrictions that other proposed methods require.

Most soft body engines keep 2 meshes of every object, 1 being the object perceived while the other is just a lattice used for all the calculations. Thus, the engine has to be able to lattice shape match this mesh before determining the final position of each particle. Similarity in the regions in shape matching summations have been used to run an algorithm which approximates the matching transforms from their lattice positions and also in obtaining the final positions of the particles. A detailed implementation of this technique can be found here: www.fastlsm.com/files/flsm.pdf

While we haven’t really learnt about any of the convolution or transformation techniques used in this application, I think the application of various numerical methods and approximations to achieve really fast shape matching and transformations is really cool.

Posted in Topics: Uncategorized

Jump down to leave a comment.

Leave a Comment

You must be logged in to post a comment.



* You can follow any responses to this entry through the RSS 2.0 feed.