I found that the default simulation values in Bullet give the best performance. Whenever I try to mess with fancy parameters like split impulse, erp, linear slop and damping, instability arises where blocks don't stack properly or contacts are not resolved consistently.
There is no proper documentation for the following values:
btScalar m_tau;
btScalar m_damping;
btScalar m_friction;
btScalar m_timeStep;
btScalar m_restitution;
int m_numIterations;
btScalar m_maxErrorReduction;
btScalar m_sor;
btScalar m_erp;//used as Baumgarte factor
btScalar m_erp2;//used in Split Impulse
btScalar m_globalCfm;//constraint force mixing
int m_splitImpulse;
btScalar m_splitImpulsePenetrationThreshold;
btScalar m_linearSlop;
btScalar m_warmstartingFactor;
int m_solverMode;
int m_restingContactRestitutionThreshold;
int m_minimumSolverBatchSize;
I can figure out some of them myself but some of the factors listed above are above my level of understanding.
Can anyone please explain how these values affect the simulation and how to go about setting them to customize the solver?
Thanks
Customizing the dynamic solver in Bullet ???
-
- Posts: 77
- Joined: Thu Nov 26, 2009 6:32 pm
-
- Site Admin
- Posts: 4221
- Joined: Sun Jun 26, 2005 6:43 pm
- Location: California, USA