Hi Robert,
 
Completely understandable :-)
 
Regards,
Viggo
> Date: Fri, 25 Jul 2008 14:00:09 +0100> From: [EMAIL PROTECTED]> To: 
> [email protected]> Subject: Re: [osg-users] Robert: I 
> figured it out :-) (was: Is it possible to know when the node-graph is 
> 'dirty'?)> > Hi Viggo,> > I am trying to get a release out the door. I'm 
> afraid I don't have the> the time tot go chasing up experimental user code.> 
> > Robert.> > On Fri, Jul 25, 2008 at 1:33 PM, Viggo Løvli <[EMAIL PROTECTED]> 
> wrote:> > Hi Robert,> >> > I have a very strange bug.> >> > The code I have 
> written to render one bin twice works fine in the project> > code-base that I 
> am working on. I took the class and integrated into the> > OSGForest example, 
> and there it does not work as expected.> >> > In the OSGForest example:> > - 
> The bin is rendered two times, as expected.> > - The state-set that is added 
> to only one of the bins are now used when both> > bins are rendered. And 
> there is the bug :-/> >> > I would appreciate it if you could take a look at 
> the code and try it out.> >> > I have attached my class to this mail, and 
> below here is the new main> > function for OSGForest. Just keep the rest of 
> the osgforest.cpp file as it> > is. Only add the include and the green code 
> at the bottom of main.> >> >> > #include "TransparencyGlitchFixNode.h"> >> > 
> int main( int argc, char **argv )> >> > {> >> >> >> > // use an 
> ArgumentParser object to manage the program arguments.> >> > 
> osg::ArgumentParser arguments(&argc,argv);> >> >> >> > // construct the 
> viewer.> >> > osgViewer::Viewer viewer(arguments);> >> >> >> > float 
> numTreesToCreates = 10000;> >> > 
> arguments.read('--trees',numTreesToCreates);> >> >> >> > 
> osg::ref_ptr<ForestTechniqueManager> ttm = new ForestTechniqueManager;> >> >> 
> >> > viewer.addEventHandler(new TechniqueEventHandler(ttm.get()));> >> > 
> viewer.addEventHandler(new> > 
> osgGA::StateSetManipulator(viewer.getCamera()->getOrCreateStateSet()));> >> 
> >> >> > // add model to viewer.> >> > TransparencyGlitchFixNode* root = new 
> TransparencyGlitchFixNode();> >> > root->addChild( ttm->createScene((unsigned 
> int)numTreesToCreates) );> >> > viewer.setSceneData( root );> >> >> >> >> >> 
> > return viewer.run();> >> > }> >> >> > Here is what to expect:> > - The 
> forest will be rendered twice.> > - First pass will be additive blend without 
> depth-buffer write.> > - Second pass shall be a normal render of the forest.> 
> > - The bug is so that the state-set is used both times, so both get> > 
> additive-blend.> >> > The additive-blend is something I have added only to 
> ease the visual> > debugging. The final code shall only have the state for 
> turning off> > depth-buffer write. If everything works smoothly then you are 
> supposed to> > see the forest as normal but with high-lighting due to the 
> additive blend at> > all places where the trees are transparent.> >> >> > 
> Regards,> > Viggo> >> >> >> > ________________________________> > From: 
> [EMAIL PROTECTED]> > To: [email protected]> > Date: Fri, 25 
> Jul 2008 10:42:08 +0200> > Subject: Re: [osg-users] Robert: I figured it out 
> :-) (was: Is it possible> > to know when the node-graph is 'dirty'?)> >> > Hi 
> Robert,> >> >> Hi Viggo,> >>> >> The rendering backend uses ref_ptr<>'s so 
> there shouldn't be any leak,> >> assigning the new RenderBin will lead to the 
> previous one being> >> deleted.> >>> > Yep I figured out that one :-)> >> >> 
> Rather than second guess what will be need might I suggest you> >> maintain a 
> recycling list of ref_ptr<> to your custom RenderBin, then> >> traverse this 
> list to find an entry that has a referenceCount() of> >> one, then take 
> ownership of this.> >>> > I took into usage a std::list which starts off 
> empty. I am currently> > counting how many times cull-traverse is called and 
> increasing the list at> > need.> >> > Your idea of checking the reference 
> count is better. It will make the system> > more robust.> > I will continue 
> using a std::list for this.> > I will keep track of what was the last used 
> element of the list, so when I> > need a new one then I will traverse the 
> list from that point. This should> > increase the chance of finding a free 
> entry immediately.> > If I parse through the whole list, then I will insert a 
> new element to the> > list and use that one.> > The list will thus grow to 
> the maximum needed size and stay there until the> > class is deleted. Future 
> changes of number of cameras or what ever> > re-configurations that can cause 
> one thread to hold data longer will thus> > automatically work.> >> > I am 
> also ensuring that the original RenderBinList of RenderStage is not> > 
> changed anywhere else than for element 10. I used to add a new bin to> > 
> element 9, but that may be in usage already. Element 10 will instead point> > 
> to a new bin that contain it's own bin #9 and #10. Both will point to the> > 
> original content that RenderStage pointed to in it's bin #10.> >> >> Robert.> 
> >> _______________________________________________> >> osg-users mailing 
> list> >> [email protected]> >> 
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org> >> 
> >> >> > ________________________________> > Få Hotmail du også. Windows Live 
> Hotmail nå med 5000 MB gratis> > lagringsplass.> >> >> > 
> ________________________________> > Windows Live Messenger på mobilen. Hold 
> kontakten - hvor som helst når som> > helst.> > 
> _______________________________________________> > 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
_________________________________________________________________
Hold kontakten med Windows Live Messenger.
http://clk.atdmt.com/GBL/go/msnnkdre0010000003gbl/direct/01/
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to