發現osg視圖窗口總是不會全部顯示,似乎視圖上下文的座標存在問題。
核心問題在於下一段代碼改變了視圖的座標:
//該構造函數內部修改了traits的x,y值!!!
osg::GraphicsContext* gc = osg::GraphicsContext::createGraphicsContext(traits.get());
所以下一段代碼設置顯示的視圖範圍的時候,座標並不是以(0,0)開始的;
將下列代碼:(MFC_OSG.cpp->void cOSG::InitCameraConfig(void) 函數修改)
camera->setViewport(new osg::Viewport(traits->x, traits->y, traits->width, traits->height));
改爲:
camera->setViewport(new osg::Viewport(0, 0, traits->width, traits->height));
即可得到在中心位置的osg圖像