Hi everyone, I'm facing a problem I cannot solve by myself here, I thought I could just ask:
- I have a scene (so a scene graph) - I use multiple View on this single scene --> Currently I have an "homemade" mixture of customized osgViewer::Viewer objects to deal with everything so basically, for each View, I go through a complete (EventTraversal(), UpdateTraversal(), RenderingTraversals() ) loop sequentially. - Now I would like to switch to a CompositeViewer and thus go through the event/update traversals only once per Scene (If I understand the CompositeViewer design properly). But I have a very specific problem to solve here: In my scene graph I use shaders and uniforms. those uniforms have update callbacks, and in those update callbacks, I retrieve my currently rendering View and then the View matrix to generate eye coordinates. --> I assume using the osg_ViewMatrix uniform is not an option for me because I need to convert very big position vector and very big view matrix translation, and I would clearly get a problem here if I don't have double precision. --> With the CompositeViewer I can't access the individual "View" anymore in the update traversal() since this process is "View agnostic" I would say. --> Since my views will need different settings for the uniforms, I was thinking I would just need to do something in the cull traversal, but here I realized something which seems strange to me: there is no such method as uniform::setCullCallback(...) So, the question is, how would you update your uniforms properly in that case ? I mean, I could still put a cullcallback on the node owning the stateset containing the uniform for instance and "update" from here (assuming I can retrieve the Viewmatrix I need somehow in that Cullcallback...) but is this really the best option ?? - And generally speaking, would a uniform::setCullCallback() not make sense for some reason I'm apparently missing for now ? Bonus question by the way: How would I access the "master camera" ViewMatrix in a cullcallback ? i've seen we have osgUtil::CullVisitor::getCurrentCamera() but would this return the Master camera of the View or just the current camera in the scene graph (as I use DepthPartitionNode I have many sub cameras in my scene...) Thanks in advance is someone has any tip/advise/complete solution on those questions! Regards, Manu.
_______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

