OpenSim changes physics and meshing defaults September 16, 2009Posted by justincc in opensim, opensim-dev, opensim-news, secondlife, virtual-environments, virtual-worlds.
After a week of discussion on the OpenSim user and development mailing lists we’ve decided to change the default physics and meshing engines. If you already have a working OpenSim installation with explicit settings for these defaults then you won’t notice any changes.
The physics engine change
The old default physics engine was something called “basicphysics”. If anything, the name is a bit misleading since basicphysics actually does no physics at all! Not only did it not implement any dynamic effects such as gravity, but all objects were phantom no matter what their settings.
As of Git revision 077d01 (16th September 2009, post 0.6.6), this has been replaced by the Open Dynamics Engine (ODE) physics plugin as the new default in bin/OpenSim.ini.example. ODE isn’t perfect in OpenSim, but it is enormously better than basicphysics, since it handles solid objects, collisions and all other kinds of goodies.
One drawback with ODE is that the DLL cannot currently be compiled for a 64 bit Window system. Therefore, people using a 64 bit version of Windows will need to execute
to launch the region simulator. We felt that the advantages of changing to ODE outweighed the disadvantages.
The mesher change
The other default that we changed at the same time as the physics plugin is something called the mesher (as set in the meshing parameter under the [Startup] section of the OpenSim.ini/OpenSim.ini.example file). The mesher provides the mesh that governs collision detection between objects.
The old default was the ‘ZeroMesher’. Like ‘basicphysics’, it actually does no meshing at all but punts the decision to the physics engine. Unfortunately, this means you can end up with very basic meshes (possibly just boxes) which don’t even rotate with the object.
The new default is the Meshmerizer as developed by Dahlia Trimble, a fellow OpenSim core developer. This properly handles complex prims using triangle meshes. In other words, it allows you to create objects with holes in the middle that you can actually walk through :). It’s a little more memory and processor hungry than ZeroMesher but again the advantages of proper object meshing by default outweigh the disadvantages.
As usual, these changes have been made to the bleeding edge Git trunk version of OpenSim. However, hopefully they will make the initial user experience in the next released verson of OpenSim a little smoother.