查看: 2640|回复: 6

OSG动态改变视口请教?

[复制链接]

该用户从未签到

发表于 2010-4-12 11:02:51 | 显示全部楼层 |阅读模式
问题描述: 我做了一个多视图相机渲染程序,我想在运行的过程中改变视口大小,就是诸如:按下某个键,然后其余的视图都变小,某个视图变大。 我的部分代码短:
        osg::Camera *    camera=mViewer1->getCamera();

camera->setViewport(new osg::Viewport(traits->x,traits->y,
                                          traits->width,traits->height) );

问题:发现这样改变视口的大小,并没有反映到界面上来?请问应该如何动态改变某一个视口的大小?谢谢!

该用户从未签到

发表于 2010-4-12 11:24:00 | 显示全部楼层
个人觉得这样没有什么不可以,您不妨更详细地进行试验和跟踪您的问题

该用户从未签到

 楼主| 发表于 2010-4-12 11:36:14 | 显示全部楼层
问题解决了,谢谢阿锐,是调用方法的问题,我应该对视图节点设置回调,就是
  view1->addEventHandler(new ChangeView); 而不应该直接调用改变视口的代码。

该用户从未签到

发表于 2011-1-18 14:59:55 | 显示全部楼层
请问你改变视口怎么实现的啊,如果两个视口之间变换,应该怎样实现啊。请多多指教
感谢

该用户从未签到

发表于 2011-1-18 17:31:03 | 显示全部楼层
我是刚学OSG的菜鸟啊,很多很多很多还不知道
关于这个问题,通过看书,我的理解是OSG中事件是需要事件响应的,不是单纯的调用代码,而需要一个重载一个类,去重写handle去实现自己的功能,也就是说在ActionAdept中调用相应的事件响应,从而完成用于自己定义的一些操作,不知道是否正确。请各位指点一二。

该用户从未签到

发表于 2011-1-18 20:14:41 | 显示全部楼层
这个我也知道啊,就是得使用事件触发,就是不知道具体程序怎样实现啊,俺的编程水平很不行啊

该用户从未签到

发表于 2012-3-27 22:02:38 | 显示全部楼层
CWorld 发表于 2010-4-12 11:36
问题解决了,谢谢阿锐,是调用方法的问题,我应该对视图节点设置回调,就是
  view1->addEventHandler(ne ...

可以具体说下不?我也遇到这个问题了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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