Hi All,

Back on Wednesday I wrote:

> So... please test the SVN version of the OSG and let me know if you
> get lots of :
>
>   Warning: RenderBin::copyLeavesFromStateGraphListToRenderLeafList()
> detected NaN depth values, database may be corrupted.
>
> Spewing out, once per frame to your console.

As it turns out the Warning above was being emitted any time there was
a transparent bin, even when the bin had entirely correct depth values
on all leaves.  What was missing for this warning message was a :

   if (detectedNaN) ...

Pretty basic error on my part, something I spotted on Thursday
morning, fixed and checked in.  If you did see these errors and thick
that something was wrong try an svn update and then redo the tests.
Now CullVisitor/RenderBin should only emit warnings when something is
genuinely amiss.

The root of this investigation that led to the above warning addition
was looking into a crash in a std::sort<> when the list had NaN depth
numbers being compared against.  The actual cause was an invalid
DOFTransform containing a put matrix with nan's in it.  This put
matrix was in tern generated by the OpenFlight loader, which was
handling erroneous data but not catching the dodgy data, instead
attempting to do divide by zero.  This is now caught and a warning
emitted before any dodge transforms are created.  So this should
prevent the particular failure path that I was investigating.

The OpenFlight fix won't fix existing .ive or .osg models that have
erroneous DOFTransforms in them though, so you'd need to recreate this
files from the original .flt source.

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

Reply via email to