OSG/OpenGL 游戏人物动画的制作(二)

时间:2014-08-05 04:29:56
【文件属性】:

文件名称:OSG/OpenGL 游戏人物动画的制作(二)

文件大小:115KB

文件格式:PDF

更新时间:2014-08-05 04:29:56

OSG/OpenGL 游戏人物动画的制作

静态模型画出来了,如何让我们的 Md2 小人动起来呢?是不是不停的把模型文件中存 储的关键帧序列按顺序绘制出来就行了呢?答案是当然可以,他确实动了。不过如果这样做 你得到的将会是一个飞快运动的,快到几乎和音速小子刺猬索尼克有一拼的东东,那么如何 让他慢下来呢?减缓绘制速度?每绘制一帧让绘制进程歇一会?不错,他慢下来了,不过怎 么感觉动作一跳一跳的一点都不流畅呢?呵呵,插值算法终于派上用场了,这里由于是纯顶 点动画,线性插值就可以了,为了照顾一下初学的朋友,先讲一下线性插值算法,巨简单: Vd = V0 + (V1 – V0) * t 上过初中的朋友都知道这个等式线性的,所以叫线性插值。 Vd就是我们要插的值。其中V0 是 上一帧的一个顶点的坐标,V1是这个顶点下一帧的坐标,t是插值参数,t∈[0, 1],关键就是 这个t的确定会影响到运动的质量。有时模型文件包中附带的说明文件会指出人物模型以每 秒多少关键帧绘制是流畅的正常速度。比如说这个值是 15,则关键帧之间间隔需要 1/15 = 0.06667s,而你的程序每次绘制之间的间隔可能只有 0.01389 (72 帧)则dt = 0.01389 / 0.06667, 因此在两帧之间还应该添加 0.06667 / 0.01389 = 5 帧。下面给出大概代码描述,具体参看源 码和上面注解。


网友评论

  • 只提供了思路啊
  • 没有具体的实现代码,参考价值不大
  • pdf只提供了思路,不是很完整
  • 代码不是很详细!
  • 不是源代码。pdf写的不细致,没有什么帮助。