没有合适的资源?快使用搜索试试~ 我知道了~
OSG/OpenGL 游戏人物动画的制作(二)
4星 · 超过85%的资源 需积分: 50 52 下载量 64 浏览量
2011-07-16
10:43:16
上传
评论 1
收藏 115KB PDF 举报
温馨提示
试读
3页
静态模型画出来了,如何让我们的 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 帧。下面给出大概代码描述,具体参看源 码和上面注解。
资源推荐
资源详情
资源评论
OSG/OpenGL 游戏人物动画的制作
杨晓康
电子邮件:kangkang116911@hotmail.com
接着上篇文章继续说
静态模型画出来了,如何让我们的 Md2 小人动起来呢?是不是不停的把模型文件中存
储的关键帧序列按顺序绘制出来就行了呢?答案是当然可以,他确实动了。不过如果这样做
你得到的将会是一个飞快运动的,快到几乎和音速小子刺猬索尼克有一拼的东东,那么如何
让他慢下来呢?减缓绘制速度?每绘制一帧让绘制进程歇一会?不错,他慢下来了,不过怎
么感觉动作一跳一跳的一点都不流畅呢?呵呵,插值算法终于派上用场了,这里由于是纯顶
点动画,线性插值就可以了,为了照顾一下初学的朋友,先讲一下线性插值算法,巨简单:
V
d
= V
0
+ (V
1
– V
0
) * t
上过初中的朋友都知道这个等式线性的,所以叫线性插值。V
d
就是我们要插的值。其中V
0
是
上一帧的一个顶点的坐标,
V
1
是这个顶点下一帧的坐标,t是插值参数,t∈[0, 1],关键就是
这个t的确定会影响到运动的质量。有时模型文件包中附带的说明文件会指出人物模型以每
秒多少关键帧绘制是流畅的正常速度。比如说这个值是 15,则关键帧之间间隔需要 1/15 =
0.06667s,而你的程序每次绘制之间的间隔可能只有 0.01389(72 帧)则dt = 0.01389 / 0.06667,
因此在两帧之间还应该添加 0.06667 / 0.01389 = 5 帧。下面给出大概代码描述,具体参看源
码和上面注解。
bool kkMD2Model::AnimateModel(int startFrame, int endFrame, float percent){
……
if (interpol >= 1.0) {
interpol = 0.0f;
……}
……
interpol += percent;
}
如果一个人物模型的跳动帧序列是从 17帧到 24帧,则 startFrame = 17,endFrame = 24,percent
用我们上面的例子就是 dt。其中 interpol 是我们说的插值参数
t。在你的绘制线程中不停的
调用,Md2 小人就动起来了!
Md2 就说到这吧。如果自己看代码还有不明白的可以和我联系。
Md3
总算轮到 Md3 上场了,不用说也知道 Md3 是被 Quake III 所采用的人物模型,游戏引
擎升级了当然也该让与其配套的东东也升一下,至于升级的模型有哪些好处,无非是模型格
式设计更成熟了,人物表现力强了,漂亮了,程序配置更灵活了。。。。。。,从全局上看当然是
好处大大的有,但是如果你为了载入一个人物而写一个程序的话,你会发现真的变的挺麻烦
资源评论
- zxzhst2012-07-05代码不是很详细!
- xujiayi25192011-11-12不是源代码。pdf写的不细致,没有什么帮助。
- 圣徒子2014-12-04只提供了思路啊
- jounny6522012-08-10pdf只提供了思路,不是很完整
- goodspeedxxx2013-05-16没有具体的实现代码,参考价值不大
chyzh1986
- 粉丝: 3
- 资源: 38
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Springboot集成Netflix-ribbon、Enreka实现负载均衡-源码
- 互联网产品项目管理流程-PPT.ppt
- 互联网大数据分析之《用户画像分析》ppt.ppt
- 毕业设计-基于PyQt5、CV、numpy实现的暗通道先验的方法进行图像去雾python源码+文档说明
- 基于暗通道先验的图像去雾算法,可以通过ESP32-CAM进行图像采集python源码+视频(课程设计)
- 基于Pyortch+python+三种卷积神经实现的深度神经网络的交通标志识别算法python源码+文档说明+数据集
- 深度学习课程设计-基于虚拟仿真环境下的自动驾驶交通标志识别python源码+文档说明+数据+模型权重
- 互联网金融第二章——互联网金融支付-PPT.ppt
- 基于OpenCV实现的交通标志识别C++源码+文档说明+测试图片(课程设计)
- 基于虚拟仿真环境下的自动驾驶交通标志识别python源码+文档说明+截图演示+数据集+使用教学(98分高分毕业设计)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功