文档介绍:帧动画和骨骼动画
模型和动画
单有场景是不行的,游戏中还存在有大量活动的游戏物体。
模型是用以描述这些游戏物体的外在表现的技术。
动画类型
在早期的机器上,渲染本身已经占用了很多CPU资源,因此,对于渲染,往往采取的是一种空间换时间的策略,以避免在模型的渲染中继续加重CPU的负担。
帧动画模型在这种条件下应运而生。比较著名的帧动画格式是Quake2所采用的MD2。
到今天为止,帧动画依然存在,只不过帧动画更多地是来描述小且动作相对少些的物体。
动画类型
GPU出现后,CPU的问题早已不像以前那么突出,一些新的手段和技术也可以被应用进来了。
骨骼动画相对于帧动画而言,更加灵活多变,但同时,骨骼动画需要更多的计算量,因此骨骼动画往往应用在需要着重体现动作细节的模型中。
帧动画原理
将每帧所需要的所有顶点的:顶点位置法线或顶点颜色纹理坐标等信息全部存储下来,在渲染的时候逐帧播放或插值播放,这就是帧动画的原理。
帧动画原理
帧动画
序列(Sequence)表
序列
序列名
开始帧
延续帧数
帧表
所有帧的数组
帧
顶点
纹理坐标
其他
用于渲染
帧动画实现:MD2
研究MD2能发现很多“旧社会”的痕迹。
帧动画的原理很简单,但是MD2却比较复杂,这中间主要是因为MD2的数据组织带有很浓烈的Quake2时代气息,而对于现在新的硬件技术,这种气息无疑有些过时。
但作为最经典的帧动画格式之一,MD2相对而言还是比较具有代表性的。
骨骼动画
骨骼动画技术后于帧动画技术出现。
最开始,骨骼动画仅用于非实时渲染的建模领域,如3DMax这类建模软件之中,以方便美工的建模。
后来,CPU从渲染中解放后,骨骼动画才用于实时渲染的游戏中。
骨骼动画原理
骨骼动画的想法来源于人体骨骼。
例如说,人的上肢所有肌肉和皮肤都受上肢骨胳的影响,而人的踝关节则分别承受小腿骨胳和脚骨的影响。
根据这个我们可以将骨骼动画理解为两个概念:骨骼:用以控制蒙皮的一种抽象的概念,如人体骨骼控制皮肤。蒙皮:被骨骼控制、并显示在外的因素,如人体的皮肤被骨骼所影响。
骨骼动画原理:蒙皮(SKINMESH)
在最终的渲染结果中,蒙皮将完全显示出来,蒙皮实际上就是顶点、法线和纹理坐标等将被渲染的元素。
而其中,最关键的当然是顶点,顶点将直接被骨头牵扯运动,因而使得整个模型呈现骨骼所决定的样子。