2012-10-08 1 views

답변

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

timeStep - 마지막 시뮬레이션 후에 경과 된 시간.

일부 내부 상수 단계에 대해 내부 시뮬레이션이 수행됩니다. fixedTimeStep

fixedTimeStep ~~~ 0.01666666를

=

timeStep 0.1 1/60 인 경우는 다음 6 (timeStep/fixedTimeStep) 내부의 시뮬레이션을 포함 할 것이다.

는 글라이더 운동의 BulletPhysics은 내가 늦었 알고 부문 ( timeStep/fixedTimeStep)

6

후 알림을 따라 마지막 단계의 결과를 보간하기 위해,하지만 허용 대답이 문서의 설명에 비해 미미한 더 나은 생각했다.

timeStep : 마지막 호출 이후 경과 된 시간 (밀리 초가 아님)은 stepSimulation입니다.

maxSubSteps : 일반적으로 Bullet이 현재 값을 자체적으로 보간하도록해야합니다. 값 0은 변수 틱 속도를 의미합니다. 즉, Bullet은 보간 대신 정확히 timeStep 초의 시뮬레이션을 진행합니다. 이 기능은 버그가있어 추천하지 않습니다. 1보다 큰 값은 이어야하며 항상이 식 timeStep < maxSubSteps * fixedTimeStep을 만족해야합니다. 그렇지 않으면 시뮬레이션에서 시간을 잃게됩니다.

: 시뮬레이션의 해상도에 반비례합니다. 이 값이 감소하면 해상도가 증가합니다. 해상도가 높을수록 더 많은 CPU가 필요하다는 것을 명심하십시오.

관련 문제