Page 1 of 1

Bullet 2.47 released, small constraint solver optimizations

Posted: Sat Mar 17, 2007 8:56 am
by Erwin Coumans
Bullet 2.47 is available.

Constraint solver has been optimized with a second path. Avoiding cross products during the iterations and gathering rigid body information into contiguous memory are the main changes. No huge benefits yet, but a good step in the right direction.

It can be disabled by removing 'SOLVER_CACHE_FRIENDLY' from

Code: Select all

solver->setSolverMode(SOLVER_RANDMIZE_ORDER | SOLVER_CACHE_FRIENDLY)
Another stability fix is enabled, that adds some damping for rigid bodies with linear/angular velocity below a treshold. This heuristic is experimental, and can be disabled using

Code: Select all

gJitterVelocityDampingFactor = 0.f;
No proper API for this, as it is experimental.

Enjoy,
Erwin

Posted: Mon Mar 19, 2007 12:22 pm
by Codepoet
Hi!

Compilation fails on linux / systems with case sensitive file names:
Rename
src/BulletDynamics/ConstraintSolver/btsolverbody.h to btSolverBody.h
src/BulletDynamics/ConstraintSolver/btsolverconstraint.h to btSolverConstraint.h

Posted: Mon Mar 19, 2007 11:25 pm
by Hamstray
is it just me or did setAngularFactor(0.0) become ineffective?

Posted: Wed Mar 21, 2007 3:24 pm
by Erwin Coumans
Codepoet, compiler issues have been solved in Bullet 2.48a.

Some features like setAngularFactor, and custom friction model callbacks don't work yet with the 'cache friendly' solver mode.

But you can switch to original (non-cache-friendly) solver mode, and then it should works again:

Code: Select all

btSequentialImpulseConstraintSolver* solver = new btSequentialImpulseConstraintSolver;
//default solverMode is  SOLVER_CACHE_FRIENDLY and SOLVER_RANDMIZE_ORDER.

//Switch back to original solver (non-cache friendly):

solver->setSolverMode(btSequentialImpulseConstraintSolver::SOLVER_RANDMIZE_ORDER);
Hope this helps,
Erwin