Hi,

I work on a project for witch I need to remove/add nodes while OpenSceneGraph 
is rendering.
I created a rendering window with OpenScenegraph and then I would like to be 
able to load/unload objects in it.
I make the calls for OSG frame() function inside a draw function and I use a 
singleton to manage the creation of the viewer. That way I managed to have a 
single viewer and then load my OpenSceneGraph objects inside that same viewer.
It seems fine but the problem is that I have to set camera and viewer 
parameters each time I call frame(). If I don't nothing is displayed, except 
OSG font colour. 
Ideally I would like to set the viewer parameters only when I load an OSG 
object for the first time.

Currently when I load an OSG object I use my singleton to find the viewer and 
to add the loaded node to the root associated to my viewer.
instance()->find_or_create_viewer(); //creates a viewer if none have been 
created yet
instance()->addChild(loadedNode); 
viewer_ = instance()->viewer(); // return a pointer to the unique 
osgViewer::Viewer

In my draw function I have to do the following :
viewer_->setUpViewerAsEmbeddedInWindow(viewParams[0],viewParams[1],viewParams[2]
 ,viewParams[3]);
viewer_->getCamera()->setProjectionMatrix( osg::Matrix(glMat_projection) );
viewer_->getCamera()->setViewMatrix( osg::Matrix(glMat_modelview) );
viewer_->frame();

I have read that for dynamical rendering there was something to do about 
object's variance so I tried a few things but I didn't find how to solve my 
problem.

Thank you!

Cheers,
Sophie

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=63377#63377





_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to