[Opensim-dev] Prospective ODE physics changes
Teravus Ovares
teravus at gmail.com
Wed Jan 4 19:53:33 UTC 2012
ODE Documentation and examples :)
Regards
Dan
On Wed, Jan 4, 2012 at 2:46 PM, Justin Clark-Casey <jjustincc at googlemail.com
> wrote:
> Hi Teravus, nice to hear from you again!
>
> Yes, more testing is needed, hopefully on OSGrid. But it seems there may
> be a tradeoff between having super smooth physics objects and being able to
> get more avatars in a scene without encountering cpu limits. My perception
> is having more avatars is a more common use case then lots of physics
> objects, particularly as OpenSim's current ODE use does not seem to provide
> a good physics simulation). Anybody who does want to try for better
> physics could always turn the collision number back up.
>
> In any case, what was the rationale for choosing 80 as the default?
>
>
> On 03/01/12 22:30, Teravus Ovares wrote:
>
>> With ODE, it depends on the physics situation.
>> With Tri-Mesh and the heightfield collider specifically, ODE generates
>> lots of small effect contacts and then the
>> stepper integrates them all into a contact resolution force. With
>> tri-mesh and the heightfield, depending on how an
>> object collides with another, there could be 20 or 30 contacts that all
>> factor into getting the object to react
>> normally. So, to test, you're going to want to use a stack of
>> 'active'(physical in the client) tri-mesh objects. You
>> may also want two or more trimesh LINKSETS to see how they react.
>> My guess, is the first thing that you're going to notice is that a
>> tri-mesh object sitting on another object will become
>> more unstable (vibrate more). Each mini-contact represents a part of the
>> force to keep the object from rotating from
>> the other parts of the contact resolution force. As the effect gets
>> worse, you're going to notice 'rotation anomolies'
>> that occur when objects collide.
>> Think of it like... you have a cube shaped trimesh... and the cube's
>> corners are touching a flat ground. In
>> theory, that would generate 4 contact points for each of the vertices
>> touching the flat ground. If you cut one off,
>> then only three of the corners are being held above ground. On a larger
>> scale, If you do that enough, then the
>> object will partially fall through the ground and then bounce back up
>> from an excessive contact resolution force
>> creating instability and vibrating.
>> Those are the indicators that I would use to determine if it's OK to make
>> that change. Are 8 contacts enough for ODE
>> to react properly in our usage? That remains to be seen :).
>> Regards
>> Teravus
>>
>> On Tue, Jan 3, 2012 at 4:58 PM, Adams, Robert <robert.adams at intel.com<mailto:
>> robert.adams at intel.com**>> wrote:
>>
>> > ...
>> > According to [2], the maximum reported scripting collision contacts
>> is 8.
>> >
>> > Testing with 8 on Wright Plaza today in the Tuesday meeting seemed
>> to greatly reduce physics scene time compared to
>> > previously without any apparent loss of required fidelity (50ms
>> with 18 avatars, albeit mostly sitting down -
>> > unfortunately I didn't record previous week's numbers but they were
>> higher. Nebadon tested one of his vehicles).
>>
>> Looking at the code, contacts_per_collision is the number of collision
>> points reported by ODE for each collision --
>> like a prim sitting on rough terrain and touching multiple places on
>> the ground. Reducing the count to 8 means that
>> no more than 8 contact points will be reported by ODE and, if there
>> are more, you can't be sure you get the 'best' ones.
>>
>> I suspect that most of the time there are only a few contact points so
>> it doesn't make sense that reducing the
>> number from 80 to 8 would significantly reduce the compute time. If it
>> is the number of contact points causing the
>> computation overhead then ODE must be normally returning more than 8
>> contact points. Is this really the case? Or is
>> something else going on?
>>
>> -- ra
>> ______________________________**_________________
>> Opensim-dev mailing list
>> Opensim-dev at lists.berlios.de <mailto:Opensim-dev at lists.**berlios.de<Opensim-dev at lists.berlios.de>
>> >
>> https://lists.berlios.de/**mailman/listinfo/opensim-dev<https://lists.berlios.de/mailman/listinfo/opensim-dev>
>>
>>
>>
>>
>>
>> ______________________________**_________________
>> Opensim-dev mailing list
>> Opensim-dev at lists.berlios.de
>> https://lists.berlios.de/**mailman/listinfo/opensim-dev<https://lists.berlios.de/mailman/listinfo/opensim-dev>
>>
>
>
> --
> Justin Clark-Casey (justincc)
> http://justincc.org/blog
> http://twitter.com/justincc
> ______________________________**_________________
> Opensim-dev mailing list
> Opensim-dev at lists.berlios.de
> https://lists.berlios.de/**mailman/listinfo/opensim-dev<https://lists.berlios.de/mailman/listinfo/opensim-dev>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://opensimulator.org/pipermail/opensim-dev/attachments/20120104/a3dac122/attachment-0001.html>
More information about the Opensim-dev
mailing list