fix bug in deformable replulsion force and adjust parameter in deformable self collision

This commit is contained in:
Xuchen Han
2020-06-26 11:49:23 -07:00
parent 4317ddc285
commit 70a0ef65d8
3 changed files with 8 additions and 5 deletions

View File

@@ -93,7 +93,7 @@ void DeformableSelfCollision::initPhysics()
{
///create a ground
btCollisionShape* groundShape = new btBoxShape(btVector3(btScalar(150.), btScalar(2.5), btScalar(150.)));
groundShape->setMargin(0.0001);
groundShape->setMargin(0.02);
m_collisionShapes.push_back(groundShape);
btTransform groundTransform;
@@ -152,6 +152,7 @@ void DeformableSelfCollision::addCloth(btVector3 origin)
clothTransform.setOrigin(btVector3(0,0.2,0)+origin);
psb->transform(clothTransform);
psb->m_cfg.collisions = btSoftBody::fCollision::SDF_RD;
psb->m_cfg.collisions |= btSoftBody::fCollision::SDF_RDN;
psb->m_cfg.collisions |= btSoftBody::fCollision::SDF_RDF;
psb->m_cfg.collisions |= btSoftBody::fCollision::VF_DD;
getDeformableDynamicsWorld()->addSoftBody(psb);
@@ -164,6 +165,7 @@ void DeformableSelfCollision::addCloth(btVector3 origin)
btVector3 gravity = btVector3(0, -9.8, 0);
btDeformableGravityForce* gravity_force = new btDeformableGravityForce(gravity);
getDeformableDynamicsWorld()->addForce(psb, gravity_force);
getDeformableDynamicsWorld()->setUseProjection(true);
m_forces.push_back(gravity_force);
}