游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2828|回复: 2

请问各位大虾,OGRE代码中是怎么支持不带蒙皮的纯骨骼

[复制链接]

3

主题

4

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2008-3-25 11:12:00 | 显示全部楼层 |阅读模式
我是OGRE是新手,在看OGRE的源代码的时候,发现OGRE的Mesh类保存了mSkeleton指针,该Skeleton结构保存了所有的Bone,Bone中保存了每一个骨骼相对于父骨骼的位置。但是让我不理解的是,代码是如何把一每一个骨骼和附在它上面的Mesh联系起来的?我查看了Mesh类,Skeleton类,Bone类,和SubMesh类,没有发现有这种对应的联系。那么如果在纯骨骼动画中,(也就是只有骨骼动画,没有蒙皮信息).OGRE是怎么让网格运动起来的?
请各位大虾不吝赐教

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2008-3-26 00:40:00 | 显示全部楼层

Re:请问各位大虾,OGRE代码中是怎么支持不带蒙皮的纯骨骼

把 mesh 邦定到骨骼上。
顺便说一句,要学好骨骼动画,最好先把 max 中的骨骼动画的原理了解清楚。

6

主题

40

帖子

40

积分

注册会员

Rank: 2

积分
40
发表于 2008-3-31 15:53:00 | 显示全部楼层

Re:请问各位大虾,OGRE代码中是怎么支持不带蒙皮的纯骨骼

在mesh中有每个点和骨骼绑定的权重信息,你可以在submesh类中找到一些BoneAssignment的函数,这些函数就是用来组织这些信息的。
你可以用ogre提供的conv工具,把mesh和skeleton格式的文件转换成xml格式就可以很清楚地看到这种联系了
skeleton中保存了骨骼的名称、编号以及动画信息,动画信息是针对时间排列的每块参与动画的骨骼的转换矩阵,运动时,mesh中的每一点通过自身对各骨骼的权重来进行计算并移动。mesh文件中是构成这个mesh的所有点的信息,包括位置,颜色,uv,法线等,还有就是针对每块骨骼的权重,这里的骨骼是用的序号。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-20 15:48

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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