查看: 2268|回复: 6

camera类的setViewport()方法无法正常工作事宜

[复制链接]

该用户从未签到

发表于 2011-11-2 12:49:53 | 显示全部楼层 |阅读模式
诸位,大家好:
本人是osg的初学者,在尝试使用camera类的setViewport()方法时候,发现下列调用函数不起作用,具体使用方式如下:
int main()
{
//...一些其它操作,本程序没有设置slave camera,只用一个主camera

osgViewer::Viewer viewer;
     viewer.setSceneData( root);                    //root 为根节点
viewer.getCamera()->setViewport(0,0,400,300);  //得到主摄像机,然后设置视口。
     return viewer.run();
}
在程序运行时候发现,语句viewer.getCamera()->setViewport(0,0,400,300);无论setviewport的四个参数如何设置,最终
屏幕显示的结果总是不变,就是全屏显示渲染结果,何视口大小方位设置没有任何关系。
不知道原因何在,请教诸位,非常感谢!

该用户从未签到

发表于 2011-11-2 14:30:33 | 显示全部楼层
view->getCamera()->setViewport(new osg::Viewport(0, 0, 400, 300));

该用户从未签到

 楼主| 发表于 2011-11-2 16:37:22 | 显示全部楼层
实验过,依然无效,渲染的图象还是充满整个屏幕.而且尺寸也照旧.

该用户从未签到

发表于 2011-11-2 18:19:58 | 显示全部楼层
据我的印象,主摄影机总是充满窗口大小,

该用户从未签到

 楼主| 发表于 2011-11-3 11:36:58 | 显示全部楼层
回复 4# fenma3422
非常感谢,不过,还是感觉没有彻底明白,看看还有哪位高手,帮忙! 多谢.

此致

该用户从未签到

发表于 2011-11-3 11:55:53 | 显示全部楼层
我觉得全屏显示与否,和视口大小方位就是没有关系的。不想全屏显示,你可以用 setUpViewInWindow,例如:
viewer->setUpViewInWindow(40, 40, WIDTH, HEIGHT);

该用户从未签到

发表于 2011-11-7 09:51:31 | 显示全部楼层
窗口和视口是两个概念,想改变窗口大小的话,设置Traits或者依据楼上的方法
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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