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

Reply via email to