2012-10-08 149 views

回答

4
btDynamicsWorld::stepSimulation(
    btScalar timeStep, 
    int maxSubSteps=1, 
    btScalar fixedTimeStep=btScalar(1.)/btScalar(60.)); 

timeStep - 在上次模拟后经过的时间。

内部模拟是为一些内部常量步骤完成的。 fixedTimeStep

fixedTimeStep ~~~ 0.01666666 = 1/60

如果timeStep为0.1则它将包括6(timeStep/fixedTimeStep)内部的模拟。

为了使滑翔机运动BulletPhysics根据插值后提醒师(timeStep/fixedTimeStep

6

我知道我迟到了最后一步的结果,但我想接受的答案只比文件的描述稍微好一些。

timeStep:自上次调用stepSimulation以来经过的秒数(而非毫秒)。

maxSubSteps:通常应该停留在一个位置,以便Bullet自行插值当前值。值为零意味着变量的跳动率,这意味着Bullet将精确地推进模拟timeStep秒而不是插值。此功能有问题,不推荐。大于1的值必须始终为满足方程timeStep < maxSubSteps * fixedTimeStep或者您在模拟中损失时间。

fixedTimeStep:与模拟分辨率成反比。分辨率随着该值的降低而增加。请记住,更高的分辨率意味着需要更多的CPU。