Ogre的mesh和skeleton数据格式分析

来源:互联网 发布:淘宝网男鞋 编辑:程序博客网 时间:2024/06/10 14:58

Ogre的mesh和skeleton数据格式分析

  这两天研究Ogre的骨骼动画,先从mesh和skeleton文件入手,了解一下,这两个文件记录了什么。就拿Orge里自带的ninja开刀,好歹也是人形的。

   首先看一下skeleton文件,skeleton文件描述和记录了物体的骨骼和动画情况。

  从上图可以得知,整个skeleton文件分成了三部分bones,bonehierarchy,animations。

  1.bones部分描述了每一块骨头的具体情况:

 

从上图可知,其实一块骨头,实际上真正的有效数据仅是一个起始位置,和一个起始的转向。当然骨骼还包括骨骼的编号和名字这样的数据。

2.bonehierarchy,即骨骼的继承关系,描述了骨骼是怎么样组成骨架的。

至此skeleton文件已经完整的描述了一整个骨架。

3.animations动画集部分。动画集,由多个动画组成。  每个动画由一系列的track组成,每个track由一系列的Keyframe组成。一个track描述了单块骨头在每个keyframe所描述的时间点的位移和旋转。

 

上图显示名为"Attack1"的动作,时长为1s, 由多个track组成,其中一个track所表示的是名为"Join1"的骨头的运动情况。各种Keyframe表示在指示时间点的位移和旋转。

   我们再来看看mesh文件。

<mesh>

     <submeshes>

          <submesh materail="Examples/Ninja" usesharedvertices="fase" use32bitindexes="fase" operationtype ="trangle_list">  

           <faces count="904">

                  <face v1="0" v2="1" v3="2"/> 

                  ..........................

          </faces>

          <geometry vertexcount="781">

                    <vertexbuffer positions="true" normals="true">
                         <vertex>
                             <position x="0" y="179.594" z="-16.0094" />
                             <normal x="1.66615e-008" y="0.160267" z="-0.987074" />
                        </vertex>

                        ..................................... 

                  </vertexbuffer>

                   <vertexbuffer texture_coord_dimensions_0="2" texture_coords="1">
                          <vertex>
                                 <texcoord u="0.44849" v="0.141284" />
                         </vertex>

                         .......................

                    </vertexbuffer>

          </geometry>

           <boneassignments>
                <vertexboneassignment vertexindex="0" boneindex="7" weight="1" />
                <vertexboneassignment vertexindex="1" boneindex="7" weight="1" />

                ..................

            </boneassignments>

     </submeshes>

     <skeletonlink name="ninja.skeleton" />
</mesh>

 每个mesh由多个submesh组成,每个submesh由faces部分, geometry 部分,boneassignments部分组成。faces部分用 顶点索引描述了物体的每一个三角形面。geometry部分由两个vertexbuffer组成,第一个描述了每个顶点的坐标和法线,每二个描述了顶点的UV,boneassignments部分描述了每个顶点所附着的骨头组及权重。

 

 

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小恩爱账号忘了怎么办 华为账号更换后游戏账号怎么办 注册游戏账号需要身份证怎么办 英雄联盟被裁决了怎么办 百度网盘密码重置不了怎么办 sap密码输入被锁怎么办 dnf二级密码错10怎么办 大网卡网速慢了怎么办 小米路由器无线速度慢怎么办 小米手机无线速度慢怎么办 电脑网卡驱动没了怎么办 电脑显示网卡驱动不正常怎么办 微信别人拒收消息怎么办 电脑无线网卡速度慢怎么办 网吧吃鸡更新慢怎么办 手机号注册不了微信怎么办 小米账号密码忘了怎么办 小米手机账号密码忘了怎么办 华为手机账号密码忘记了怎么办 老年机开不了机怎么办 天谕没有顺网登陆怎么办 苹果密保问题忘了怎么办 密保手机没用了怎么办 qq密保手机没用了怎么办 手机开机按钮坏了怎么办 改了账号游戏角色消失怎么办 华为开机键坏了怎么办 抖音账号已重置怎么办 抖音账号被重置怎么办 吃鸡账号密码忘了怎么办 微信只记得账号忘了手机号怎么办 红米3开机键失灵怎么办 晚自习教室有许多虫子怎么办 泰迪吃草又呕吐怎么办 手机不断收到验证码信息怎么办 樱桃吃多了上火怎么办 过年不想回婆婆家过怎么办 旅行箱提手坏了怎么办 影棚人物后面有影子怎么办 微信运动图标不见了怎么办 逆光拍摄人黑了怎么办