bugfix: tau/damping not linked up, this allows for solving some physics setup problems

This commit is contained in:
Erwin Coumans
2006-06-23 00:34:59 +00:00
parent 481364cc40
commit ce0436fb01
2 changed files with 6 additions and 6 deletions

View File

@@ -135,19 +135,19 @@ float resolveSingleCollision(
SimdScalar Kfps = 1.f / solverInfo.m_timeStep ;
float damping = solverInfo.m_damping ;
float Kerp = solverInfo.m_erp;
float tau = solverInfo.m_tau;
if (useGlobalSettingContacts)
{
damping = contactDamping;
Kerp = contactTau;
tau = contactTau;
}
float Kcor = Kerp *Kfps;
float Kcor = tau *Kfps;
//printf("dist=%f\n",distance);
ConstraintPersistentData* cpd = (ConstraintPersistentData*) contactPoint.m_userPersistentData;
ConstraintPersistentData* cpd = (ConstraintPersistentData*) contactPoint.m_userPersistentData;
assert(cpd);
SimdScalar distance = cpd->m_penetration;//contactPoint.GetDistance();
@@ -156,7 +156,7 @@ float resolveSingleCollision(
//distance = 0.f;
SimdScalar positionalError = Kcor *-distance;
//jacDiagABInv;
SimdScalar velocityError = cpd->m_restitution - rel_vel;// * damping;
SimdScalar velocityError = cpd->m_restitution - rel_vel * damping;
SimdScalar penetrationImpulse = positionalError * cpd->m_jacDiagABInv;

View File

@@ -22,7 +22,7 @@ struct ContactSolverInfo
inline ContactSolverInfo()
{
m_tau = 0.6f;
m_tau = 0.4f;
m_damping = 1.0f;
m_friction = 0.3f;
m_restitution = 0.f;