查看: 3078|回复: 15

osgEarth的漫游器

[复制链接]

该用户从未签到

发表于 2013-9-4 22:05:05 | 显示全部楼层 |阅读模式
请问osgEarth可以使用自己定义的漫游器么? 就是自己写一个漫游器类 然后跟普通osg工程类似的 setcameraManipulator这种函数 设置一下 新手 刚开始学习osgEarth 请指教 谢谢!

该用户从未签到

发表于 2013-9-9 16:48:28 | 显示全部楼层
楼主你好,自己写的漫游器可以使用,需要比osgEarth自带的好些才有意义。我现在也想写,不过感觉写不好,现在只能一方面使用osgEarth的原来的球控制器,自己在写个事件处理函数,来处理新增加的自己定义的事件,或者osgEarth得事件。希望多交流

该用户从未签到

 楼主| 发表于 2013-9-10 14:38:45 | 显示全部楼层
ysw 发表于 2013-9-9 16:48
楼主你好,自己写的漫游器可以使用,需要比osgEarth自带的好些才有意义。我现在也想写,不过感觉写不好,现 ...

非常感谢,我现在打算用earth自带的漫游器了 现在打算自己加一些 按键响应 控制视点移动的 请问这个响应应该怎么加呢? 有代码么?

该用户从未签到

 楼主| 发表于 2013-9-10 14:48:30 | 显示全部楼层
是不是也是用 Viewer->addEventHandler 参数是自己写的类的实例 类里重载一下handle?

该用户从未签到

 楼主| 发表于 2013-9-10 14:49:31 | 显示全部楼层
ysw 发表于 2013-9-9 16:48
楼主你好,自己写的漫游器可以使用,需要比osgEarth自带的好些才有意义。我现在也想写,不过感觉写不好,现 ...


是不是也是用 Viewer->addEventHandler 参数是自己写的类的实例 类里重载一下handle?

该用户从未签到

 楼主| 发表于 2013-9-11 08:30:16 | 显示全部楼层
按照上边说的思路做了下 自己新建了类 继承了osgEarth::Util::EarthManipulator 然后handle里加了一个按键响应 运行后可以响应按键 但是原有的鼠标响应都没了 请问是什么原因? 如何改? 求指导 谢谢

该用户从未签到

发表于 2013-9-11 21:45:48 | 显示全部楼层
handle函数里在处理完按键响应后要重新调用父类的同名函数(这里有原有的鼠标响应)。


void MyEarthManipulator::handle(...)
{
    //
    // ... 自己的处理
    //
    return EarthManipulator::handle(...); // 父类的默认处理,不要忘了这句!!!
}

该用户从未签到

发表于 2013-9-11 21:46:05 | 显示全部楼层
handle函数里在处理完按键响应后要重新调用父类的同名函数(这里有原有的鼠标响应)。


void MyEarthManipulator::handle(...)
{
    //
    // ... 自己的处理
    //
    return EarthManipulator::handle(...); // 父类的默认处理,不要忘了这句!!!
}

该用户从未签到

 楼主| 发表于 2013-9-12 10:08:35 | 显示全部楼层
sunlb 发表于 2013-9-11 21:46
handle函数里在处理完按键响应后要重新调用父类的同名函数(这里有原有的鼠标响应)。


非常感谢! 已经解决 确实 最后不return父类同名函数 就不响应鼠标的 会被子类覆盖

该用户从未签到

发表于 2013-9-13 17:14:40 | 显示全部楼层
一大波蓝猫 发表于 2013-9-10 14:49
是不是也是用 Viewer->addEventHandler 参数是自己写的类的实例 类里重载一下handle?

是的

该用户从未签到

 楼主| 发表于 2013-9-21 22:14:12 | 显示全部楼层
问题又来了。。还是操作器的问题 就不新开帖子了

我想实现一种漫游方式 就是放一个飞机模型 然后视点跟踪飞机尾部 键盘控制飞机进行漫游 视点一直跟着飞机 请问如何实现?  求思路 谢谢。

该用户从未签到

发表于 2013-11-5 09:11:02 | 显示全部楼层
楼主,我也想实现的给你一样的效果,不知道你做的怎么样了

该用户从未签到

发表于 2013-11-5 09:13:47 | 显示全部楼层
我是这样做的,首先使用osgAnimation自定义一个球体动画,放置到球面上,先实现有动画,然后使用osg的节点跟随来实现摄像机跟随动画节点,这样就有一种效果,动画在走,摄像机再跟着,当然了这样还需要对摄像机进行一下偏转,否则看不见飞机模型

该用户从未签到

发表于 2013-11-5 09:15:11 | 显示全部楼层
不知道你有没有好的实现思路,估计主要的是,你首先在球面上放置一个飞机动画,还需要实时计算飞机头的朝向,来实现飞机头始终沿着路线。期待交流

该用户从未签到

 楼主| 发表于 2013-11-6 17:07:35 | 显示全部楼层
ysw 发表于 2013-11-5 09:15
不知道你有没有好的实现思路,估计主要的是,你首先在球面上放置一个飞机动画,还需要实时计算飞机头的朝向 ...

我这块功能还没实现 优先实现别的功能呢。。如果有什么思路会跟你讨论的! 谢谢!

该用户从未签到

发表于 2013-11-7 17:54:44 | 显示全部楼层
好的,最近正在研究这一块的内容。想要做复杂的动画还有很多需要算。以后有空讨论
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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