把物体的运动关联起来就是动画处理。动画对象有一个或者多个动画作为对象定义的一部分和动画对象存储在一起。一个动画可以看做是子对象相对于物体主对象位置变化的一个基于时间的序列。例如人体的动画有奔跑、跳跃、蹲下、战斗等等。动画的速度通常以每秒多少帧来定义。给定一个速度和动画持续的时间,我们就能计算出给定的动画需要多少帧。我们也可以计算出两帧之间需要多少时间。调和(reconcile the values between the animation time step and the rendering time step)动画的速度和渲染器的速度很重要。如果两个速度值不一样,动画速度则依渲染器的速度而定,动画播放速度可能会变慢或者变快。此问题的解决方案叫做补间(The solution to this problem is called tweening)。
补间是在动画位置之间插值的处理。想象一下在每对顶点位置的直线上进行线性插值。人体动画通常基于骨骼系统。骨骼由人体网格(mesh)里不可见的骨架组成。每一个骨骼都是人体对象的一个子对象,一个或者多个骨骼影响指定的网格的顶点。使用这种方法,在动画中随着骨骼的位置变化网格便被操纵。此方法的另一个优点是定义一个动画所需要的数据量。我们不必要为动画每一帧里每一个顶点都定义位置,而是为动画的每一帧定义骨骼位置信息。随着动画的进行,运动的骨骼决定了当前渲染的帧的网格的每一个顶点的位置。此处理的一个例子是Microsoft提供的SDK里的SkinnedMesh例子。在这个处理中,此刻重要是我们必须决定动画的当前帧(或者计算出补间值)和网格的顶点位置。