查看: 1656|回复: 2

OsgOcean碰撞检测

[复制链接]

该用户从未签到

发表于 2013-1-13 17:10:57 | 显示全部楼层 |阅读模式
我现在在MFC框架的OSG中调用OsgOcean.dll库加载海浪已经实现,但是怎样加入船与ocean的碰撞检测??在oceanExample中的application中是可以实现碰撞检测,有没有人移植过这段代码??
   if (testCollision)
    {
        osgDB::Registry::instance()->getDataFilePathList().push_back("resources/boat");
        const std::string filename = "boat.3ds";
        osg::ref_ptr<osg::Node> boat = osgDB::readNodeFile(filename);

        if(boat.valid())
        {
            boat->setNodeMask( scene->getOceanScene()->getNormalSceneMask() |
                scene->getOceanScene()->getReflectedSceneMask() |
                scene->getOceanScene()->getRefractedSceneMask() );

            osg::ref_ptr<osg::MatrixTransform> boatTransform = new osg::MatrixTransform;
            boatTransform->addChild(boat.get());
            boatTransform->setMatrix(osg::Matrix::translate(osg::Vec3f(0.0f, 160.0f,1.0f)));
            boatTransform->setUpdateCallback( new BoatPositionCallback(scene->getOceanScene()) );

            scene->getOceanScene()->addChild(boatTransform.get());   
        }
        else
        {
            osg::notify(osg::WARN) << "testCollision flag ignored - Could not find: " << filename << std::endl;
        }
    }

该用户从未签到

发表于 2013-1-14 07:52:00 | 显示全部楼层
BoatPositionCallback 这里面就是collision test吧

该用户从未签到

 楼主| 发表于 2013-1-14 09:55:20 | 显示全部楼层
liuzhiyu123 发表于 2013-1-14 07:52
BoatPositionCallback 这里面就是collision test吧

是啊 ,这个在ocean里是可以的。但现在我移植的时候就是不行啊,牵扯太多了,搞乱了都,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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