- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
d3d 骨骼动画1
第讲Root),其他的骨骼都直接或间接连接到根骨骼上,从而形成角色模型的整个骨骼框架,如图所示。
不含动画的普通X文件,有一个Mesh单元,保存了各顶点信息、各三角面的索引信息、材质种类及定义等。动画X文件,则在这个单元中增加了“各骨骼蒙皮信息”、“骨骼层次及结构信息”、“各时刻骨骼矩阵信息”等。)Directx中,用一个D3DXFRAME结构或者X文件中的Frame template来表示帧对象。下面看一下Frame template和D3DXFRAME结构的定义:
template Frame
{
??????? 3D82AB46-62DA-11cf-AB39-0020AF71E433
??????? FrameTransformMatrix frameTransformMatrix;????
? // 骨骼相对于父节点的坐标变换矩阵,就是一个matrix
??????? Mesh mesh;??????????????????????????????????????????????????
// 骨骼的Mesh
}?
typedef struct _D3DXFRAME
{
?LPSTR?????????????????? Name;??????????????????????????? // 骨骼名称
?D3DXMATRIX???????? TransformationMatrix;?? ?????// 相对与父节点的坐标变换矩阵 ?
?LPD3DXMESHCONTAINER???? pMeshContainer;? // LPD3DXMESHCONTAINER对象, ?用来加载MESH,?struct _D3DXFRAME??*pFrameSibling;??//兄弟节点指针
??? struct _D3DXFRAME?????? *pFrameFirstChild;????? // 子节点指针
} D3DXFRAME, *LPD3DXFRAME;
X文件产生动画,必须至少提供一个动画集,每个动画集都应具有一个对某个框架的引用。在X文件中,动画集由AnimationSet模板定义,其中由多个开放性模板Animation模板组成。AnimationSet模板及Animation模板的定义如下:
template AnimationSet
{
3D82AB50-62DA-11cf-AB39-0020AF71E433
[ Animation 3D82AB4F-62DA-11cf-AB39-0020AF71E433 ]
}
template Animation
{
3D82AB4F-62DA-11cf-AB39-0020AF71E433
[...]
}
AnimationSet模板只存储Animation对象,而Animation通常是由AnimationKey模板进行填充。这个模板用于存储动画关键帧这个模板的每一个实例都包含帧码的类型(位置,缩放,转动,矩阵)和帧码数组数组中的每一个元素包含帧码的值和一个DWORD型的值指出帧的持续时间AnimationKey模板的定义如下:
template AnimationKey //骨骼的各个动画帧时刻的动作数据模板
{
10DD46A8-775B-11CF-8F52-0040333594A3
DWORD keyType;
DWORD nKeys;
array TimedFloatKeys keys[nKeys];
}
template TimedFloatKeys
{
F406B180-7B3B-11cf-8F52-0040333594A3
DWORD time;
FloatKeys tfkeys;
}
其中,AnimationKey模板中的keyType表示当前关键帧的类型。若该值为0,则表示旋转键,表示将使用四个分量w、x、y、z存储模型的旋转值。其值为1表示缩放键,它表示分别对应x、y、z轴的模型缩放值。而对于平移键,其值将为2。该值为4,则表示变换矩阵键,此时关键帧的变换数组将使用16个浮点数实现该模型的各种变换。例如:
AnimationSet walk{
Animation {
AnimationKey {
4; //变换矩阵键
2; //2个动作
//第一个动作
0;16;1.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,
您可能关注的文档
最近下载
- 格力电器营运能力分析报告.docx VIP
- 小学英语三年级上学期期末模拟试题测试卷(含答案)(1).pdf VIP
- 基于5种罕见病可负担性评价我国罕见病保障机制研究.PDF VIP
- 自制《大学罗马尼亚语》词汇手册.doc
- 鼎信JB-QT-TS3200火灾报警控制器(联动型)安装使用说明书 XF2.900.029AS Ver.pdf VIP
- 中职语文高教版(2023)基础模块下册第三单元1.《祝福》教案.docx VIP
- 【MOOC】数字电路分析与设计实验-浙江大学 中国大学慕课MOOC答案.docx VIP
- 输血安全管理制度 课件.ppt VIP
- 宁远河橡胶坝建设工程环评报告 .doc VIP
- 王力《古代汉语》第一册(第三单元)第一部分PPT.pptx VIP
原创力文档


文档评论(0)