Hi,

fausto wrote:
Hi JP,
it's impossible to show exactly my code, but what I basically do with the geode is:

1. Remove all drawables:
geode->removeDrawables((unsigned int)0, geode->getNumDrawables());

2. Create new ones:
osg::ref_ptr< osg::Geometry > geom;
geom = createGeom(parameters);
..

3. Add them to the geode:
if( geom.valid() ) geode->addDrawable( geom.get() );

I don't see anything strange. Does createGeom reuse any old osg data (arrays)? where in your frame loop do you do this? In between rendering calls (frame)? What happens if you just delete the geode and add a new one?

jp


I'm not sure the problem is there, because as I mentioned the new scene is properly shown if I load it with osgViewer.exe.

I think the problem is more with some missing settings, either to the drawables/nodes, or to the viewer (the original one, which doesn't get updated). I tried to set the drawables data variance to DYNAMIC, and other things but nothing worked. However, as Robert said, it seems this should work without any additional action.

The strange thing is, why the old drawables are properly deleted from the original viewer, but the new ones are not added? I would have preferred that the viewer didn't do anything, than just 1 part of the job.

Thank you all for your prompt replies, I really appreciate it.
Fausto


On Fri, Jan 22, 2010 at 7:55 AM, J.P. Delport <[email protected] <mailto:[email protected]>> wrote:

    Hi,

    can you give more detail on what you are adding/removing? Do you use
    the same vertex lists, but with new drawables. Do you change
    vertices, but keep the drawables? To get more help you'd probably
    need to make a very small example that shows the problem...

    jp

    fausto wrote:

        Thank you both for your inputs.

        To Robert:

            Try writing the subgraph they are in out to a file then load
            this file
into osgviewer to see if can view them.

        Yes, as I mentioned the new scene data is OK, I can see it while
        debugging and after saving->loading it with osgViewer.exe all
        new drawables appear in the scene, and previous ones are
        removed. So, the scene is OK, the problem is really with the
        original viewer. It renders OK, but doesn't update properly when
        drawables are added.

        I'm rendering in Qt widgets, could that be the problem?

        To D.J.
             I might recommend refactoring the code to
add/remove nodes instead of drawables.

        Unfortunately, I need nodes to be the same.

        I keep searching and testing.  Thanks again for your help.
        Cheers.
        Fausto


        On Thu, Jan 21, 2010 at 6:42 PM, D.J. Caldwell
        <[email protected] <mailto:[email protected]>
        <mailto:[email protected] <mailto:[email protected]>>>
        wrote:

           Hi Fausto and Robert,

           If the simple modification is due to some specific user event
        (button
           press, file dialog, etc.), I might recommend refactoring the
        code to
           add/remove nodes instead of drawables.  It sounds like you
        have no
           trouble initially getting the geometry into the scene; it is the
           simple modification that is the problem.

           What I am suggesting here is a work-around, and not a fix (on my
           system, it appears that there is no "bug" to fix).  Other
        than this, I
           believe the issue may be familiarity with the available
        patterns; that
           is, using the right tool for the right job.  No insult
        intended, but
           the only fix for that is research, time, and patience.

           The project I am part of uses visitors and/or swapping out
        vertices
           for time based changes, and adding/removing nodes for user based
           inputs.

           Fausto, as Robert said, you are the only one who can know what is
           appropriate for your project.

           Just some things to consider; I hope this helps...

           D.J.

           On Thu, Jan 21, 2010 at 12:12 PM, Robert Osfield
           <[email protected] <mailto:[email protected]>
        <mailto:[email protected]
        <mailto:[email protected]>>> wrote:
            > Hi Fausto,
            >
            > Dynamically modifying the scene graph shouldn't be that hard.
            > Removing drawables and adding news ones should perfect
        safe and
            > shouldn't require and extra steps from you, no need to
        dirty bounding
            > volumes or display lists, it should all just work.
            >
            > As to why your new drawables aren't appearing I can't say.
         Try
            > writing the subgraph they are in out to a file then load
        this file
            > into osgviewer to see if can view them.  It could be
        simply that
           there
            > is something wrong with the geometry data you've set up.  Only
           you has
            > your app and your data so you're the only one that can
        investigate.
            >
            > Robert.
            >
            > On Thu, Jan 21, 2010 at 4:41 PM, fausto <[email protected]
        <mailto:[email protected]>
           <mailto:[email protected] <mailto:[email protected]>>> wrote:
            >> Hi All,
            >> I'm struggling to have a simple modification of an osg scene
           working.
            >> I simply need to remove all drawables from a geode and
        add new
           drawables to
            >> the same geode.
            >>
            >> In the viewer, the geode just disappears after removing the
           drawables, but I
            >> can see that the scene contains the geode with the new
           drawables. So, it
            >> seems a rendering problem.
            >>
            >> I see that many people have similar problems with dynamic
           modifications.
            >> I've read plenty of posts about setting display list to
        false, using
            >> callbacks, dirtyBound(), etc....
            >>
            >> But I hope there is a clearer and easier way to achieve this.
            >>
            >> Please let me know.
            >>
            >> Thanks for any help.
            >> Fausto
            >>
            >> _______________________________________________
            >> osg-users mailing list
            >> [email protected]
        <mailto:[email protected]>
           <mailto:[email protected]
        <mailto:[email protected]>>

            >>
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
            >>
            >>
            > _______________________________________________
            > osg-users mailing list
            > [email protected]
        <mailto:[email protected]>
           <mailto:[email protected]
        <mailto:[email protected]>>

            >
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
            >
           _______________________________________________
           osg-users mailing list
           [email protected]
        <mailto:[email protected]>
           <mailto:[email protected]
        <mailto:[email protected]>>

http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org



        ------------------------------------------------------------------------

        _______________________________________________
        osg-users mailing list
        [email protected]
        <mailto:[email protected]>
        
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


-- This message is subject to the CSIR's copyright terms and
    conditions, e-mail legal notice, and implemented Open Document
    Format (ODF) standard. The full disclaimer details can be found at
    http://www.csir.co.za/disclaimer.html.

    This message has been scanned for viruses and dangerous content by
    MailScanner, and is believed to be clean.  MailScanner thanks
    Transtec Computers for their support.

    _______________________________________________
    osg-users mailing list
    [email protected]
    <mailto:[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

--
This message is subject to the CSIR's copyright terms and conditions, e-mail legal notice, and implemented Open Document Format (ODF) standard. The full disclaimer details can be found at http://www.csir.co.za/disclaimer.html.

This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean. MailScanner thanks Transtec Computers for their support.

_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to