先看效果:
代码就比较简单了:
void createMulitViewer() {
osg::ref_ptr<osgViewer::Viewer> viewer1 = new osgViewer::Viewer;
viewer1->setUpViewInWindow(0, 50, 320, 240);
viewer1->addEventHandler(new osgViewer::WindowSizeHandler());
osg::ref_ptr<osgViewer::Viewer> viewer2 = new osgViewer::Viewer;
viewer2->setUpViewInWindow(400, 50, 320, 240);
viewer2->addEventHandler(new osgViewer::WindowSizeHandler());
osg::ref_ptr<osgViewer::Viewer> viewer3 = new osgViewer::Viewer;
viewer3->setUpViewInWindow(800, 50, 320, 240);
viewer3->addEventHandler(new osgViewer::WindowSizeHandler());
viewer1->setSceneData(osgDB::readNodeFile("cow.osgt"));
viewer2->setSceneData(osgDB::readNodeFile("lz.osgt"));
viewer3->setSceneData(osgDB::readNodeFile("xyz.osgt"));
osg::ref_ptr<osgViewer::CompositeViewer> compViewers = new osgViewer::CompositeViewer;
compViewers->addView(viewer1);
compViewers->addView(viewer2);
compViewers->addView(viewer3);
compViewers->run();
}
aaa