游戏开发论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: loserwang

矩阵也可以进行插值

[复制链接]

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
发表于 2008-12-26 21:15:00 | 显示全部楼层

Re:矩阵也可以进行插值

是我的表述有问题,权重不需要传递,只是要混合到顶点上但还是要乘权重影响骨骼的矩阵然后相加
最近也在写自定义的骨骼导出插件,如果矩阵直接插值那也很好啊,但四元素没有缩放只有旋转信息
我在考虑导四元素还是矩阵,毕竟四元素真的是有够节约空间的插值计算有现成的方法提供,矩阵貌似没有提供插值计算的方法

22

主题

309

帖子

353

积分

中级会员

Rank: 3Rank: 3

积分
353
QQ
发表于 2008-12-26 22:00:00 | 显示全部楼层

Re:矩阵也可以进行插值

四元数能省几个空间啊-_-貌似每根骨头省24字节?还不如省一张512的贴图..就可以有一万多根骨头奢侈一下了...
骨骼动画其实不插值也挺流畅的-_-!

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
发表于 2008-12-27 11:00:00 | 显示全部楼层

Re: Re:矩阵也可以进行插值

神秘的猫: Re:矩阵也可以进行插值

四元数能省几个空间啊-_-貌似每根骨头省24字节?还不如省一张512的贴图..就可以有一万多根骨头奢侈一下了...
骨骼动画其实不插值也挺流畅的-_-!


关键帧的数据啊,那可不是每根骨头省24个字节
而是每个骨头“每帧”省(16-4)*4=48个字节,帧数一多,占用空间还是有些庞大的。

22

主题

309

帖子

353

积分

中级会员

Rank: 3Rank: 3

积分
353
QQ
发表于 2008-12-27 13:23:00 | 显示全部楼层

Re:矩阵也可以进行插值

算上缩放和位移...就是24字节了-_-

多占几M内存和几十M硬盘,玩家不会有意见的~~~ [em2]
看各自的需求了...

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
发表于 2009-1-1 16:17:00 | 显示全部楼层

Re:矩阵也可以进行插值

这两天认真全面研究了一下自定义骨骼以及3DMAX骨骼导出,感觉MAX为我们做了很多事情,bone空间蒙皮mesh顶点的offset和NodeTM matrix 3dmax都为我们提供了,导出混合权重也非常简单,感觉不需要骨骼父子关系,直接导出每块骨骼每帧的世界矩阵顶点的offset以及weight这三大要素就可以了,而且都不用更新骨架的矩阵了,估计楼上就是这样做的

那微软的相对父骨骼的差值矩阵以及骨架矩阵递归的更新机制是否可以省略掉了呢

这个问题我认真的思考了一翻,后来还是舍弃了简单的方法,还是决定采用X格式里面的父子骨骼相对矩阵逐帧更新的方式

也就是保存 每帧的:GetNodeTM(TimeValue)*Inverse(GetParentTM(TimeValue))
而不是直接存GetNodeTM(TimeValue)

理由很简单,如果想用程序来控制骨骼的某个部分的变化,比如简单的点点头的动作,肢体刚体式自由碰撞,程序完全可以控制了,这样可以让骨骼蒙皮不仅仅只是个动画,程序对肢体动作有很强的可控性,所以还是需要导出相对父骨骼变换的数据的好,以便今后的扩展,感觉自己的数据组织形式越来越像X格式了,都说X格式很繁琐,其实里面的数据都很精要啊。

等基本成型以后,打算马上也搞个shader版本的出来

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-20 14:34

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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