阜阳骨骼动画的载入:网格数据、索引数据以及
阜阳骨骼动画的载入:网格数据、索引数据以及骨架层次制作分析说明
3.2.5 骨骼动画的载入 静态模型的载人过程实际上是对网格数据、索引数据以及骨架层次三类信息的载人过程。对这三 类信息予以管理对于骨骼动画的生成十分重要,因为骨骼动画的驱动过程就是依靠这些结构来现实的 。下面将对它们分别予以分析。
1)网格数据的载入和管理 对于单个顶点而言,需要保持的信息是相当多的,比如纹理坐标信息、颜色信息、顶点信息等, 其中用于渲染的顶点信息是对称的,即每个顶点所需要的存储空间是一样的。 此外,为了实现骨骼动画算法,顶点需要保持与骨骼动画相关的信息,如与该顶点相关联的骨骼 索引组,以及每个骨骼的影响权值组等。值得注意的是,并不是所有皮肤顶点所关联的骨骼数目都是 统一的,比如在关节处的顶点所关联的骨骼数肯定要多于非关节处顶点所关联的骨骼数目。 数据的保存可以通过两个不同的顶点结构来实现。这样做的好处在于,用于渲染的顶点结构,直 接记录了渲染所需要的信息;而用于骨骼动画计算的顶点信息,则包含了骨骼动画实时运算所需要的 顶点数据。
2)索引数据的载入和管理 索引数据主要用来保存顶点之间的连接关系,在这种联系中,每三个顶点构成一个三角形面,而 三角形面是用于渲染的基本图元,索引数据每三个为一组记录了这种三角面的相互关系。
3)骨骼层次信息的载入管理 为了实现骨骼动画,每个角色都有一个骨架层次结构,一般是树形结构。
图3.3是角色模型的骨架 层次结构,按照不同的细节要求可以对骨架进行更细微的分解。其中向下箭头表示父子关系,向右箭 头表示兄弟关系。 对所有的骨骼有一个统一的编号。在载人过程中,只需记录每块骨骼的父骨骼信息和子骨骼信息 ,这实际上是一个双向链式树形结构。这样,当在应用程序实时运行的时候,一旦需要获得父骨骼的 平移旋转信息,凭借父骨骼编号,就可以迅速地找到对应的父骨骼节点。 可以定义下面的数据结构予以保存: 骨骼数据结构 { 骨骼编号; 父骨骼; 局部变换矩阵; 全局变换矩阵; }; 后面章节巾将会看到,骨骼动画驱动的过程中,将通过动耐数据更新i亥结构巾的局部变换
(责任编辑:卓想动画http://www.zxgzs.com)