关于编写DAE模型浏览器的相关问题

寒冬飞雪 2012-06-05 05:27:23
小弟我最近授命编写一个DAE骨骼动画浏览器,对与DAE文件的结构和解析方面问题不大,但是不知道里面的那堆数据究竟代表什么意思。
DAE文件中有很多连续的float类型的数据。比如,代表关节的JOINT,后面跟着16个float类型的数据,按照我的理解,这应当代表一个位置坐标。BVH骨骼动画的坐标都是三个一组,这样16个一组的坐标,小弟我真不知道是什么含义,又该如何使用。
与此类似的还有动画部分,有和帧数相同组数的数据,同样是16个一组(一行)。
求教这类数据是什么含义,应当如何使用。

小弟我是冥思苦想数日,百度了好久,都没有找到关于这些数据含义的解释。如果各位觉得解释起来很麻烦的话,能提供相关的资料或者代码也好。小弟在此先行谢过。

...全文
232 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kevin_qing 2012-07-26
  • 打赏
  • 举报
回复
那个是骨骼的初始矩阵吧。

因为顶点pos是相对于坐标原点的,蒙皮时需要转换到绑定骨骼的坐标系中计算。

用骨骼的初始矩阵的逆即可把一个vec转换到该骨骼的坐标系中




寒冬飞雪 2012-07-25
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
原始左边点是什么东西???


如果只是要画出动画的话,流程是这样的:

输入的数据
1.每个顶点的数据里面有该能顶点骨骼索引和权重。
2.每个骨骼有一个相对于父骨骼的变换矩阵(这个矩阵有可能是计算出来的,看模型格式)
3.所有骨骼根据层次组成一颗树。

处理流程,
1.根据骨骼层次,从根节点开始遍历骨骼树,用每个骨骼的父骨骼的矩阵变换子骨骼,处理完成后所有骨骼的变换矩阵就可……
[/Quote]
打错了,是原始坐标点
Kevin_qing 2012-07-07
  • 打赏
  • 举报
回复
原始左边点是什么东西???


如果只是要画出动画的话,流程是这样的:

输入的数据
1.每个顶点的数据里面有该能顶点骨骼索引和权重。
2.每个骨骼有一个相对于父骨骼的变换矩阵(这个矩阵有可能是计算出来的,看模型格式)
3.所有骨骼根据层次组成一颗树。

处理流程,
1.根据骨骼层次,从根节点开始遍历骨骼树,用每个骨骼的父骨骼的矩阵变换子骨骼,处理完成后所有骨骼的变换矩阵就可以直接用了。
2.每个顶点使用 骨骼索引找到影响他的矩阵,然后按权值做变换 ,pos ,normal都这样处理
vec=vec*mat1*weight1+vec*mat2+weight2+...;

3.处理完就可以画了。


寒冬飞雪 2012-06-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
joint的就是骨骼的变化矩阵(相对父节点)

动画里面的就是动画帧的变化矩阵。 一般动画的变化平移 旋转 缩放 是分开的。
[/Quote]
感谢,我找到了一些资料,确实是变换矩阵。
再请教一下,DAE文件的Controller节点里的骨骼绑定信息里,包含一个4x4的骨骼绑定矩阵,逆绑定矩阵(INV_BIND_MATRIX,貌似应该是这么翻译的),关节权值,再加上原始左边点(x,y,z)和joint的关节矩阵(4x4)的,它们之间怎么运算?
不太懂这个三维坐标,四阶矩阵和一个0到1的浮点数之间怎么个运算法。
网上资料说是计算是按照 坐标 += 坐标 X 绑定矩阵 X 逆绑定矩阵 X 关节变换矩阵 X 权值 这个公式来算的,但是我不明白,这三种数据类型之间该怎么运算,线性代数学得不好,见笑了。
Kevin_qing 2012-06-14
  • 打赏
  • 举报
回复
joint的就是骨骼的变化矩阵(相对父节点)

动画里面的就是动画帧的变化矩阵。 一般动画的变化平移 旋转 缩放 是分开的。

Kevin_qing 2012-06-14
  • 打赏
  • 举报
回复
16个浮点的应该是变化矩阵
寒冬飞雪 2012-06-07
  • 打赏
  • 举报
回复
貌似代码很难懂,找了半天也找不到显示dae的代码,继续求答案
寒冬飞雪 2012-06-07
  • 打赏
  • 举报
回复
多写提醒,已经下载了,正在看。文件解析的部分很好理解,目前还没找到代码里用于显示的部分,继续读代码中......
HollyCpp 2012-06-05
  • 打赏
  • 举报
回复
Irrlicht好像支持dae,又是开源的,应该可以看到源码中的解析过程.

8,303

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧