Andre, could you send some test code so we can do some tests and help you ?
Nick http://www.linkedin.com/in/tnick Sent from Gümüşsuyu, İstanbul, Turkey On Tue, Dec 15, 2009 at 12:27 PM, Robert Osfield <[email protected]>wrote: > Hi Andre, > > Block diagrams won't help as that most likely not at issue. What are > you doing with the depth buffer/depth test? What you are doing the > with the depth of each of the objects? > > Robert. > > On Mon, Dec 14, 2009 at 6:17 PM, Andre Simoes <[email protected]> > wrote: > > Hello Robert. > > Sorry about the bad explanation of my problem. > > I think is better to start from scratch and just explain the problem to > you. > > I'm making a widget system, on Ortho2D, that separates levels of parents > > from childs by osg::Groups ( osg::PositionAttitudeTransform, osg::Switch > ... > > ) > > There are two png files attached (a block diagram and its osg scene ) > that > > gives a better idea of this groups.... > > - The children position is always related to the bottom top vertex of > the > > parent ( i.e, a text inside a box ). > > --------------------- > > | | > > | | > > |text (at 0,0) | > > ---------------------- > > box at (20,20) > > - Children have to be drawn on top of the parent ( the parent area can be > > hidden by the child but the child cannot be hidden by the parent drawing > ). > > ( i.e white child text on a black box ) > > |----------------------- | > > |------------------------| > > |------------------------| > > |---WHITE TEXT--| > > |------------------------| > > ------------------------ > > My problem is to always make all kinds of Geometries that are on the > leafs > > of my tree as the top most visible. > > For example: If i have a tree in the following sequence > > root -> Rectangle1 > > child -> Rectangle2 > > child -> Triangle3 > > OpenGL should draw Rectangle1 than Rectangle2 and on the end Triangle3 to > > the FrameBuffer. > > On the monitor: Triangle2 will be above Triangle1 and Triangle3 will be > > above Triangle2 (in case those are being drawn at the same place ). > > --------------------------------- > > | -------------------- | > > | | / \ | | > > | | / \ | | > > | | / \ | | > > | | --------- | | > > | | Triangle3 | | > > | --------------------- | > > | Rectangle2 | > > | (below triangle3) | > > -------------------------------- > > Rectangle1 ( goes below everyone ) > > I've made some separate tests and noticed that if my geometries have just > > the same StateSet configuration ( i.e all geometries with > > StateSet::setGlobalDefault ) I can make this result on the frame buffer. > > But when i add a osgText::Text element for example as: > > root -> Rectangle1 > > child -> Rectangle2 > > child-> osgText::Text > > ----------------------------------------- > > | -------------------------------- | > > | | "no osgText::Text" | | > > | | inside | | > > | |_________________ | | > > | | > > |_______________________| > > The text will only appear if i make > > _child_text->getOrCreateStateSet()->setGlobalDefaults(); that makes me to > > loose transparency and other configurations for the osgText::Text > component. > > I've already tried to use "setRenderBinDetails" ( version 2.9.5 ) and > > worked... But if I simply use setRenderBinDetails i will have to rebuild > > all the binNum for every visual on my graph after a simply insertChild > > because they will be not in the right draw order. > > For our system this is not good. Because the number of components that my > > co-workers generally draw are very large and it would take very long to > > rebuild the number for the graphs just because of a removal or an > insertion > > of component. > > Is there anything that i could use to ensure that they will always be > > processed in the order that they are being added as child bypassing the > > state set configuration ? > > Regards > > Andre > > 2009/12/14 Robert Osfield <[email protected]> > >> > >> Hi Andre, > >> > >> I'm finding it difficult to guess what your after/what problems your > >> seeing. The best I can do is say as a general note, one would > >> typically use control the rendering order via > >> StateSet::setRenderingDetails(..) from within the scene graph rather > >> attempting to set globals. > >> > >> Robert. > >> > >> On Mon, Dec 14, 2009 at 2:06 PM, Andre Simoes <[email protected]> > >> wrote: > >> > Hello There. > >> > > >> > I've been reading alot of e-mails regarding drawing of objects in > >> > sequence, > >> > like a simple OpenGL program that draws each Geometry independently of > >> > its > >> > complexibility and cost to the GPU. > >> > > >> > And for now I'm working in an OSG scenario in which I'm doing a > toolkit > >> > that > >> > generates widgets in 2D Orthographic mode. Almost all of the > components > >> > are > >> > being drawn with LIGHTING disabled because they are unecessary for the > >> > case. > >> > And with or without RenderBin::TRAVERSAL_ORDER option enabled I can > add > >> > a > >> > widget as a child of other widget without problems by using > >> > osg::Group::insertChild( 0, child ). > >> > > >> > The problem is when I try to draw osgText::Texts inside components as > >> > children. They simply not appear on the screen. > >> > - if i create them and set their StateSet as setGlobalDefaults the > text > >> > appears as a Child of other widgets ( But in this case i loose color > and > >> > background transparency control of the text and is something i would > not > >> > like to loose ). > >> > - If i draw them without a widget on the screen the Text appears. > >> > > >> > After that I thought that TRAVERSAL_ORDER could solve the problem. But > >> > TRAVERSAL_ORDER is not solving the problem. > >> > > >> > I'm doing on the initial part of my code before creating any X Window > >> > with > >> > osgViewer::View... : > >> > > >> > int main( void ) > >> > { > >> > using namespace osgUtil; > >> > RenderBin::setDefaultRenderBinSortMode( > >> > RenderBin::TRAVERSAL_ORDER > >> > ); > >> > RenderBin::SortMode s = > >> > RenderBin::getDefaultRenderBinSortMode(); > >> > > >> > /// window init > >> > /// widget init > >> > > >> > return viewer.run(); > >> > } > >> > > >> > My questions are: > >> > - Am I looking to the right option (RenderBin::TRAVERSAL_ORDER ) ? > >> > - Am I setting TRAVERSAL_ORDER in the right way ? > >> > > >> > Sorry to ask but i already lost one week searching for documentation > >> > about > >> > this problem and no good results. > >> > > >> > Kind Regards > >> > Andre > >> > > >> > > >> > _______________________________________________ > >> > osg-users mailing list > >> > [email protected] > >> > > >> > > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > >> > > >> > > >> _______________________________________________ > >> osg-users mailing list > >> [email protected] > >> > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > > > > > > _______________________________________________ > > osg-users mailing list > > [email protected] > > > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > > > > > _______________________________________________ > osg-users mailing list > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org >
_______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

