查看: 974|回复: 4

获取节点的外包球:

[复制链接]

该用户从未签到

发表于 2016-5-18 10:09:57 | 显示全部楼层 |阅读模式
在父节点中做了变换,Z方向移动100米, 再使用如下方法计算子节点的外包球:

        pNode->dirtyBound();
        osg::BoundingSphere boundingSphere = pNode->getBound();
        float r = boundingSphere.radius();

但,结果中没有累计父节点的变换吧?

如何,将所有父节点的变换累计到子节点,再获取子节点的外包球?

该用户从未签到

 楼主| 发表于 2016-5-18 15:11:43 | 显示全部楼层
看来,论坛里的人很少啊,没人响应

该用户从未签到

发表于 2016-5-22 09:36:10 | 显示全部楼层
我也测试过,包围盒不会随父节点变换而变换,只是说明模型自身的属性,我采用的方法是向上找变换矩阵,然后包围盒与矩阵相乘后得出的最终包围盒。。。楼主若是有更好的方法,不妨共享下:lol

该用户从未签到

发表于 2016-5-22 22:18:29 | 显示全部楼层
直接使用ComputeBoundsVisitor 进行计算
osg::ComputeBoundsVisitor visitor;
getDataNode()->accept(visitor);

_boundBox = visitor.getBoundingBox();

该用户从未签到

 楼主| 发表于 2016-5-26 21:28:10 | 显示全部楼层
eugene 发表于 2016-5-22 22:18
直接使用ComputeBoundsVisitor 进行计算
osg::ComputeBoundsVisitor visitor;
getDataNode()->accept(vis ...

非常感谢,我试试看
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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