镜头以及各种运动的缓动效果
Posted dolaham
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了镜头以及各种运动的缓动效果相关的知识,希望对你有一定的参考价值。
如果使用物理学的匀加速(减速)运动,会发现实际效果显得迟缓,而且代码还很复杂,不如使用简单的“逐渐插值靠拢”的办法。
就是在每帧更新中,cur = lerp(cur, dst, factor)
其中 cur 是当前值,dst 是目的值,factor 则是一个很小的浮点数。这样插值的结果作为新的当前值,下一帧继续插值。实际产生的缓动效果比匀加速(减速)效果更好。
可以加入两个控制参数,以调节变化的速度。
一个是 lerpSpeed,用来生成上面的 factor:
factor = lerpSpeed * deltaTime;
一个是 inputScale。
如果案例是根据鼠标拖动控制镜头转动,可以用 inputScale来缩放鼠标移动的距离,由此产生 dst 值。
onMouseDrag(mouseDelta)
{
dst = cur + mouseDelta * inputScale;
}
有了dst值,剩下的就是在每帧更新中让 cur “逐渐插值靠拢” dst 了。
以上是关于镜头以及各种运动的缓动效果的主要内容,如果未能解决你的问题,请参考以下文章