Hi, I have a MFC MDI osg project. Every child window has the same model and ligthing and teh sequence of initialization. I have attached a screenshot to show how it looks as we open more child windows. The structure of the project is as below. View.cpp doc.cpp mainframe.cpp childframe.cpp myosgviewer.cpp
The sequence of operations are as below. A new instance of myOSGViewer is created in OnCreate() of the view class. In OnInitialUpdate() of view class myOSGViewer is initialized as below. osg::ref_ptr<osgGA::KeySwitchMatrixManipulator> keyswitchManipulator = new osgGA::KeySwitchMatrixManipulator; keyswitchManipulator->addMatrixManipulator('1', "Trackball", new osgGA::TrackballManipulator()); keyswitchManipulator->addMatrixManipulator('2', "Flight", new osgGA::FlightManipulator()); keyswitchManipulator->addMatrixManipulator('3', "Drive", new osgGA::DriveManipulator()); keyswitchManipulator->addMatrixManipulator('4', "Terrain", new osgGA::TerrainManipulator()); keyswitchManipulator->addMatrixManipulator('5', "Orbit", new osgGA::OrbitManipulator()); keyswitchManipulator->addMatrixManipulator('6', "FirstPerson", new osgGA::FirstPersonManipulator()); keyswitchManipulator->addMatrixManipulator('7', "Spherical", new osgGA::SphericalManipulator()); viewer = new osgViewer::Viewer(); viewer->setCameraManipulator(keyswitchManipulator.get()); viewer->addEventHandler(new osgViewer::WindowSizeHandler); viewer->addEventHandler(new osgViewer::StatsHandler); mEvents = new KeyboardEventHandler(this); viewer->addEventHandler(mEvents); viewer->setLightingMode(osg::View::HEADLIGHT); ConstructModel(); //scene is created. light transform is also created added to the scene graph osg::ref_ptr<osg::GraphicsContext::Traits> traits = new osg::GraphicsContext::Traits; osg::ref_ptr<osg::Referenced> windata = new osgViewer::GraphicsWindowWin32::WindowData(m_hWnd); osg::GraphicsContext* gc = osg::GraphicsContext::createGraphicsContext(traits.get()); osg::ref_ptr<osg::Camera> camera = viewer->getCamera(); camera->setGraphicsContext(gc); camera->setViewport(new osg::Viewport(traits->x, traits->y, traits->width, traits->height)); camera->setClearMask(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT); camera->setClearColor(osg::Vec4f(0.2f, 0.2f, 0.4f, 1.0f)); camera->setProjectionMatrixAsPerspective( 30.0f, static_cast<double>(traits->width) / static_cast<double>(traits->height), 1.0, 1000.0); viewer->setCamera(camera.get()); viewer->setCameraManipulator(keyswitchManipulator.get()); viewer->realize(); viewer->getCameraManipulator()->setHomePosition(eyeP, centreP, upP); viewer->home(); Then mThreadHandle1 = new CRenderingThread1(myOSGViewer); mThreadHandle1->start(); For every OnFileNew the above steps happen. I find that the child windows dont have the same level of brightness. I have attached a screenshot of the problem. Hope I have been clear in putting the problem. In case any more detail is required I will be happy to provide. Any thought or idea is will be appreciated. ... Thank you! Cheers, Rakesh ------------------ Read this topic online here: http://forum.openscenegraph.org/viewtopic.php?p=70986#70986 Attachments: http://forum.openscenegraph.org//files/mdiscreen1_228.jpg _______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org