当从先前位置插值到当前物理体位置时,Libgdx间歇性抖动

时间:2016-06-17 18:43:55

标签: libgdx game-physics jitter

我最近将渲染时间步长与物理时间步长分开。物理运行在20hz,客户端将精灵位置从前一个位置插入每个渲染调用的当前物理位置。我正在使用Gaffer on Games: Fix Your Timetep!中的技术。此代码位于渲染(delta)调用中。

if (delta > 0.25f) delta = 0.25f;
accumulator += delta;

while (accumulator >= physicsStep) {
    update(physicsStep); 
    accumulator -= physicsStep;
}

interpolate(accumulator / physicsStep);
renderWorld();

这是更新(physicsStep)

prevPosition.set(position);
physPosition.add(velocity.cpy().scl(physicsStep));
bounds.setCenter(physPosition);

这是插值(alpha)

position.set(prevPosition).lerp(physPosition, alpha);

它大部分时间都很顺利呈现,但正如我所说的那样,每个人都会开始抖动。一段时间后它再次变得光滑。关于如何处理这个的任何想法?

我一直在搞乱它,而且抖动是由插值和#34;减速"引起的。就在它到达目标位置(当前物理位置)之前。它运行平稳时不会减速,只有当它抖动时才会减速。

0 个答案:

没有答案