reduce avatars terminal velocity to less than 30m/s or colisions with basic boxs fail badly. (ode lib problem. chode just may support a bit higher velocity due to the use of tilt).
parent
d0c0d37d24
commit
3c37bc2851
|
@ -734,9 +734,9 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
d.JointSetAMotorParam(Amotor, (int)d.JointParam.Vel2, 0);
|
d.JointSetAMotorParam(Amotor, (int)d.JointParam.Vel2, 0);
|
||||||
d.JointSetAMotorParam(Amotor, (int)d.JointParam.Vel3, 0);
|
d.JointSetAMotorParam(Amotor, (int)d.JointParam.Vel3, 0);
|
||||||
|
|
||||||
d.JointSetAMotorParam(Amotor, (int)dParam.FMax, 5e6f);
|
d.JointSetAMotorParam(Amotor, (int)dParam.FMax, 5e8f);
|
||||||
d.JointSetAMotorParam(Amotor, (int)dParam.FMax2, 5e6f);
|
d.JointSetAMotorParam(Amotor, (int)dParam.FMax2, 5e8f);
|
||||||
d.JointSetAMotorParam(Amotor, (int)dParam.FMax3, 5e6f);
|
d.JointSetAMotorParam(Amotor, (int)dParam.FMax3, 5e8f);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -784,6 +784,8 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
// the Amotor still lets avatar rotation to drift during colisions
|
// the Amotor still lets avatar rotation to drift during colisions
|
||||||
// so force it back to identity
|
// so force it back to identity
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
d.Quaternion qtmp;
|
d.Quaternion qtmp;
|
||||||
qtmp.W = 1;
|
qtmp.W = 1;
|
||||||
qtmp.X = 0;
|
qtmp.X = 0;
|
||||||
|
@ -1004,9 +1006,9 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (velLengthSquared > 2500.0f) // 50m/s apply breaks
|
if (velLengthSquared > 625.0f) // 25m/s apply breaks
|
||||||
{
|
{
|
||||||
breakfactor = 0.16f * m_mass;
|
breakfactor = 0.31f * m_mass;
|
||||||
vec.X -= breakfactor * vel.X;
|
vec.X -= breakfactor * vel.X;
|
||||||
vec.Y -= breakfactor * vel.Y;
|
vec.Y -= breakfactor * vel.Y;
|
||||||
vec.Z -= breakfactor * vel.Z;
|
vec.Z -= breakfactor * vel.Z;
|
||||||
|
|
|
@ -536,7 +536,8 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
// This is in addition to the step size.
|
// This is in addition to the step size.
|
||||||
// Essentially Steps * m_physicsiterations
|
// Essentially Steps * m_physicsiterations
|
||||||
d.WorldSetQuickStepNumIterations(world, m_physicsiterations);
|
d.WorldSetQuickStepNumIterations(world, m_physicsiterations);
|
||||||
d.WorldSetContactMaxCorrectingVel(world, 100.0f);
|
|
||||||
|
d.WorldSetContactMaxCorrectingVel(world, 50.0f);
|
||||||
|
|
||||||
spacesPerMeter = 1 / metersInSpace;
|
spacesPerMeter = 1 / metersInSpace;
|
||||||
spaceGridMaxX = (int)(WorldExtents.X * spacesPerMeter);
|
spaceGridMaxX = (int)(WorldExtents.X * spacesPerMeter);
|
||||||
|
|
Loading…
Reference in New Issue