OSG多场景切换

背景:想要实现在osgEarth大场景和小场景的切换,初步尝试用view->setSceneData()函数直接把根节点替换掉,发现这样做小场景的模型需要放大数万倍才能显示出来(怀疑是空间系统的问题),并且在切换回大场景的时候,矢量拣选FeatureQueryTool也失效了,感觉到这不是一个正确切换场景的方式,于是就找到了osgViewer::CompositeViewer,这个viewer支持多个view,osg官方也有这个类的使用示例(example_osgcompositeViewer)。经过一番测试后,得出了两种实现场景切换的方法。

1.每个view的视口大小都设置成一样的大小,通过addView,removeView来控制场景的切换,实测最后addView的在最上面显示。

2.创建不同的GraphicsWindowQt上下文,和QStackedWidget结合,不同的上下文和对应的view绑定并添加到QStackedWidget中,通过控制QStackedWidget的index进行场景的切换。

第二种方法是控制的显示隐藏,第一种是控制的添加和删除,这种会更节省资源(内存)。当然第二种方法也可以通过insertWidget和removeWidget达到同样的效果

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值