My time step is fixed, but...

Started by
2 comments, last by RobM 11 years, 2 months ago
I've used gafferongames' page regarding fixing your time step and everything looks pretty good and as expected. I was wondering though, about whether my animation processing should go inside the internal while loop or outside it.

If I put it inside, it means that I may potentially call the animation update multiple times before I render it - as calculating skeleton poses isn't cheap, this seems redundant if the renderer is only drawing the last calculated pose. If I put it outside the while loop, I only calculate the skeleton poses once (with the correct delta), but it means no matter what speed my 'physics' step is, the animation will always render at the best frame rate - this is also ok I guess, but it doesn't feel right. If it goes outside the loop and uses the delta calculated by the loop, then what sort of things are meant to actually go inside the loop?
Advertisement

this is also ok I guess, but it doesn't feel right

But it is the right way. The physics engine needs to integrate over time, this is done by an approximation of an integral. Smaller steps will result in a better approximation, and therefore more stable behaviour. Animation on the other hand is just an interpolation between given points, your are able to define the exact interpolation at every time.

There's multiple parts to animation -

* choosing what animations are to be layered together at what time, is gameplay code.

* IK and rag-doll are probably physics code.

* Actually evaluating the animation layers to get a posed skeleton is rendering code (and is deterministic; you shouldn't need a dt here to advance a simulation).

* Using a skeleton to skin/render a mesh is rendering code.

You could put the first two in your fixed-step frame loop, and the bottom two in the rendering loop.

Thanks both, makes sense now

This topic is closed to new replies.

Advertisement