查看: 1142|回复: 6

关于getCameras(cameras)的问题

[复制链接]

该用户从未签到

发表于 2013-4-8 07:19:24 | 显示全部楼层 |阅读模式
本帖最后由 superwavelet 于 2013-4-8 07:20 编辑
  1.         viewer = new osgViewer::Viewer;
  2.         osgViewer::ViewerBase::Cameras cameras;

  3.         //viewer->setUpViewInWindow( 32, 32, settings->getWindowWidth(), settings->getWindowHeight());

  4.         viewer->getCameras(cameras);
复制代码
为什么发现运行到最后一行,cameras的个数是 0 ?我想,在new osgViewer::Viewer 之后,这个viewer至少有一个main camera,那cameras的个数应该是1才对?

但是uncomment viewer->setUpViewInWindow 这一行后,最后cameras的个数变为1。


viewer->setUpViewInWindow是创建了一个camera,还是active了那个一开始就已经有的main camera?

多谢

该用户从未签到

发表于 2013-4-8 08:18:21 | 显示全部楼层
默认是每个view有一个mastcamera 但是getCameras 这个函数获得的是camera有gc的情况下,所以不调用setUpViewInWindow 这个函数 是不会给camera关联gc的

该用户从未签到

 楼主| 发表于 2013-4-8 08:28:20 | 显示全部楼层
  1. osgViewer::Viewer viewer;
  2. viewer.setSceneData( root.get() );
  3. return viewer.run();
复制代码
那在这段代码里面,camera是在run()函数里面初始化的?

该用户从未签到

发表于 2013-4-8 08:31:52 | 显示全部楼层
您想说什么?

该用户从未签到

 楼主| 发表于 2013-4-8 09:03:24 | 显示全部楼层
liuzhiyu123 发表于 2013-4-8 08:31
您想说什么?

我想说,

osgViewer::Viewer viewer;
viewer.setSceneData( root.get() );
return viewer.run();

这段代码是在setSceneData的时候自动给camera关联gc吗?

该用户从未签到

发表于 2013-4-8 09:11:10 | 显示全部楼层
不是 是在run的时候 检查有没有gc 如果没有 然后会根据一些环境变量进行gc创建 Viewer::realize()

该用户从未签到

 楼主| 发表于 2013-4-8 09:18:50 | 显示全部楼层
本帖最后由 superwavelet 于 2013-4-8 09:19 编辑
liuzhiyu123 发表于 2013-4-8 09:11
不是 是在run的时候 检查有没有gc 如果没有 然后会根据一些环境变量进行gc创建 Viewer::realize()


多谢啦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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