From 185d3bd39eb371c769c9e0958f5e143a1e5c9a47 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Sun, 8 Nov 2015 01:47:54 +0000 Subject: change maximum angular velocity to a value derived from heartbeat rate and Nyquist. --- OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs') diff --git a/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs b/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs index 2da2603..ebffda2 100644 --- a/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs +++ b/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs @@ -216,9 +216,11 @@ namespace OpenSim.Region.PhysicsModule.ubOde private float avMovementDivisorRun = 0.8f; private float minimumGroundFlightOffset = 3f; public float maximumMassObject = 10000.01f; - public float geomDefaultDensity = 10.0f; + public float maximumAngularVelocity = 12.0f; // default 12rad/s + public float maxAngVelocitySQ = 144f; // squared value + public float bodyPIDD = 35f; public float bodyPIDG = 25; @@ -493,6 +495,10 @@ namespace OpenSim.Region.PhysicsModule.ubOde } } + float heartbeat = 1/m_frameWorkScene.MinFrameTime; + maximumAngularVelocity = 0.49f * heartbeat *(float)Math.PI; + maxAngVelocitySQ = maximumAngularVelocity * maximumAngularVelocity; + d.WorldSetCFM(world, comumContactCFM); d.WorldSetERP(world, comumContactERP); @@ -502,7 +508,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde d.WorldSetAngularDamping(world, 0.002f); d.WorldSetAngularDampingThreshold(world, 0f); d.WorldSetLinearDampingThreshold(world, 0f); - d.WorldSetMaxAngularSpeed(world, 100f); + d.WorldSetMaxAngularSpeed(world, maximumAngularVelocity); d.WorldSetQuickStepNumIterations(world, m_physicsiterations); -- cgit v1.1