i'm playing with soft body - rigid body collisions and i'm not able to get them working. My soft body just goes through any rigid body (even btStaticPlaneShape).
I see "warning btcollisiondispatcher::needsCollision: static-static collision!" in console. Is it related?
Here is my world initialization:
Code: Select all
m_collisionConfiguration = new btSoftBodyRigidBodyCollisionConfiguration();
m_collisionDispatcher = new btCollisionDispatcher(m_collisionConfiguration);
m_broadphase = new btDbvtBroadphase();
btSequentialImpulseConstraintSolver * sequentialImpulseSolver = new btSequentialImpulseConstraintSolver();
m_solver = sequentialImpulseSolver;
m_dynamicsWorld = new btSoftRigidDynamicsWorld(m_collisionDispatcher, m_broadphase, m_solver, m_collisionConfiguration);
m_dynamicsWorld->setGravity(btVector3(0.0f, M_GRAVITY, 0.0f));
m_dynamicsWorld->getWorldInfo().m_gravity.setValue(0.f, -9.8f, 0.f);
m_dynamicsWorld->getBroadphase()->getBroadphaseAabb(aabbMin,aabbMax);
m_dynamicsWorld->getDispatchInfo().m_enableSPU = true;
and there is soft body creation:
Code: Select all
btSoftBody* elipsoid1 = btSoftBodyHelpers::CreateEllipsoid(m_dynamicsWorld->getWorldInfo(), btVector3(0.0f, 17.0f, 0.0f), btVector3(1.0f, 0.3f, 0.8f), 100);
elipsoid1->m_cfg.collisions += btSoftBody::fCollision::CL_RS;
elipsoid1->m_materials[0]->m_kLST = 0.7;
elipsoid1->m_cfg.kDF = 1;
elipsoid1->m_cfg.kDP = 0.001; // fun factor...
elipsoid1->m_cfg.kPR = 250;
elipsoid1->setTotalMass(30,true);
elipsoid1->generateClusters(20);
elipsoid1->generateBendingConstraints(2);
elipsoid1->getCollisionShape()->setMargin(0.1);
m_dynamicsWorld->addSoftBody(elipsoid1);