查看: 1387|回复: 7

关于模型的中心点

[复制链接]

该用户从未签到

发表于 2010-4-20 17:04:04 | 显示全部楼层 |阅读模式
我用3dmax画了一个圆柱,坐标系原点设置在圆柱顶,导出成ive。

然后我在程序里读入圆柱和cow.osg,没有设置位移。显示出来牛和圆柱顶在x,y,z三个方向都不重合,这是为什么呢?

该用户从未签到

发表于 2010-4-20 17:06:39 | 显示全部楼层
我不知道您要实验什么

该用户从未签到

 楼主| 发表于 2010-4-20 17:14:01 | 显示全部楼层
我想在一个房间里放上各种东西,比如顶上吊个灯啥的

我就试验一下新添加的节点相对于之前的节点相对位置怎么算。比如我先装载了room节点,然后我对light节点该怎样setposition,才能让light刚好出现在room的顶上。。。

该用户从未签到

 楼主| 发表于 2010-4-20 17:22:35 | 显示全部楼层
额,好像没说清楚……

这样说吧,我把一个模型直接添加到根节点里,那么是不是模型有一个“中心”会和根节点的坐标系原点重合呢?

如果我添加两个模型,那是不是两个模型的“中心”都会在坐标系原点重合?

我想问的就是是不是有这个“中心”的存在? 比如牛的模型中心就在牛肚子里。。。
但是我自己做了一个模型,和牛的模型一起加载到一个场景里,为什么它们俩会出现在不同的地方?

该用户从未签到

发表于 2010-4-21 08:29:20 | 显示全部楼层
是不是模型有一个“中心”会和根节点的坐标系原点重合呢
不一定
添加两个模型,那是不是两个模型的“中心”都会在坐标系原点重合
没有什么道理

模型的中心在哪里,是由模型本身决定的,譬如您在(x0,y0,z0)-(x1,y1,z1)的范围内构建了一个四边形,那么这个四边形模型的中心就在(0.5*(x0+x1),0.5*(y0+y1),0.5*(z0+z1))。
如果给这个四边形赋一个MatrixTransform父节点,那么虽然四边形模型节点的中心位置不变,但是它是定义在MatrixTransform节点的局部坐标系下的;此时计算整个子树的世界中心还需要级联父节点的位置姿态矩阵。
您可以用getBound()取得任何节点的中心位置和包围体信息,但它永远是定义在父节点的局部坐标系下的

该用户从未签到

 楼主| 发表于 2010-4-21 09:10:46 | 显示全部楼层
您可以用getBound()取得任何节点的中心位置和包围体信息,但它永远是定义在父节点的局部坐标系下的

这个我明白。。


我两个模型都是加载到同一个Group节点下面的。但是两个模型出现的位置却离得很远,就是这里不太明白= =

该用户从未签到

发表于 2010-4-21 13:05:38 | 显示全部楼层
那么就要看您自己的模型结构了,检查一下它们各自的中心位置到底在哪里;这是建模者决定的

该用户从未签到

 楼主| 发表于 2010-4-21 14:46:31 | 显示全部楼层
好的,谢谢array
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表