游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3856|回复: 17

骨骼矩阵的疑问

[复制链接]

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
发表于 2005-3-25 21:23:00 | 显示全部楼层 |阅读模式
今天我做出了简单骨骼动画了,但出来结果有些怪异,矩阵并没包括缩放,但一乘完之后就出问题了,我骨骼矩阵间乘法公式是:
目标矩阵=世界矩阵(rotation)*骨骼应到位置矩阵(translation)*父骨骼世界矩阵;
出来明显愈来愈大,像经过缩放的样子。
结果截图1(前数帧时):
sf_2005325212345.bmp

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
 楼主| 发表于 2005-3-25 21:24:00 | 显示全部楼层

Re: 骨骼矩阵的疑问

结果截图2(最后数帧时):
sf_2005325212458.bmp

96

主题

529

帖子

539

积分

高级会员

Rank: 4

积分
539
发表于 2005-3-25 21:51:00 | 显示全部楼层

Re:骨骼矩阵的疑问

目标矩阵=世界矩阵(rotation)*骨骼应到位置矩阵(translation)*父骨骼世界矩阵


骨骼到顶点位置的偏移矩阵 不需要乘 父骨骼的世界矩阵.

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
 楼主| 发表于 2005-3-25 21:59:00 | 显示全部楼层

Re:骨骼矩阵的疑问

即:目标矩阵=世界矩阵(rotation)*骨骼应到位置矩阵(translation)
会像脱臼的样子的。

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
 楼主| 发表于 2005-3-27 13:06:00 | 显示全部楼层

Re: Re:骨骼矩阵的疑问

再发几副清楚点的图。
前数帧:
sf_200532713644.bmp

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
 楼主| 发表于 2005-3-27 13:08:00 | 显示全部楼层

Re: Re: Re:骨骼矩阵的疑问

最后数帧,明显比开始时大了:
sf_200532713836.bmp

96

主题

529

帖子

539

积分

高级会员

Rank: 4

积分
539
发表于 2005-3-27 13:40:00 | 显示全部楼层

Re:骨骼矩阵的疑问

我不知道你的代码具体是个什么思路

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
 楼主| 发表于 2005-3-27 14:00:00 | 显示全部楼层

Re:骨骼矩阵的疑问

w=现在帧/总帧
目标矩阵=w(mat 11、22、33、44除外)*文件载入矩阵(rotation)
目标矩阵=目标矩阵*骨骼应到位置矩阵(translation)*父骨骼世界矩阵
for( i )
顶点.x=x*目标矩阵.11+.........

96

主题

529

帖子

539

积分

高级会员

Rank: 4

积分
539
发表于 2005-3-27 14:02:00 | 显示全部楼层

Re:骨骼矩阵的疑问

目标矩阵=目标矩阵*骨骼应到位置矩阵(translation)*父骨骼世界矩阵

公式改为

目标矩阵=目标矩阵*骨骼应到位置矩阵(translation)*父骨骼世界矩阵的逆矩阵

因为骨骼是反向运动,不是正向运动.

不过我的DEMO里没乘的,格式里也没存储各个层级的父子关系,处理的方式有点不一样

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
 楼主| 发表于 2005-3-27 14:20:00 | 显示全部楼层

Re:骨骼矩阵的疑问

3ds MAX骨骼矩阵默认有没有父矩阵的?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-25 00:59

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表