2012-10-08 148 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。