I took a peek but still I am not extremely familiar with the code I will need to test it although it might be a good idea to expose the numbers of substeps for Bullet Physics.
It seems by default it is trying to be adaptive based on fps. If maxSubSteps is exposed it will be really neat for greater control over the solver.
[code]void PhysicsWorld::Update(float timeStep)
{
PROFILE(UpdatePhysics);
float internalTimeStep = 1.0f / fps_;
delayedWorldTransforms_.Clear();
if (interpolation_)
{
int maxSubSteps = (int)(timeStep * fps_) + 1;
world_->stepSimulation(timeStep, maxSubSteps, internalTimeStep);
}
if (manualSubstep)
{
int maxSubSteps = 10;
world_->stepSimulation(timeStep, maxSubSteps, internalTimeStep);
}
else
{
timeAcc_ += timeStep;
while (timeAcc_ >= internalTimeStep)
{
world_->stepSimulation(internalTimeStep, 0, internalTimeStep);
timeAcc_ -= internalTimeStep;
}
}[/code]