最近在使用编译后的osg3.4.0的osgviewerMFC查看osg数据时,发现osg视图窗口总是不会全部显示,似乎视图上下文的坐标存在问题。
最后在osgChina的论坛一搜,发现已经有人解决了这个问题,核心问题在于下一段代码改变了视图的坐标:
//该构造函数内部修改了traits的x,y值!!!
osg::GraphicsContext* gc = osg::GraphicsContext::createGraphicsContext(traits.get());
所以下一段代码设置显示的视图范围的时候,坐标并不是以(0,0)开始的;
将下列代码:
camera->setViewport(new osg::Viewport(traits->x, traits->y, traits->width, traits->height));
改为:
camera->setViewport(new osg::Viewport(0, 0, traits->width, traits->height));
重新编译后,我们的牛可以正常显示了!