Ben Axelrod wrote on Thursday, September 03, 2009 4:25 PM:

> I am trying to view transparent objects inside of other transparent
objects. 
> My objects are simple ShapeDrawables with some color and alpha
transparency. 
> I am seeing strange behavior where the inner object is sometimes
completely
> hidden by the outer object depending on camera angle.  Also, some of
the
> object edges that should be visible are not. (Again, depending on
camera
> angle).     
> 
> In the attached images: "badalpha.png" there is a small red cube
partially
> inside of a larger green cube.  they both have some transparency and
you
> should be able to see through both objects.  however, some edges of
the green
> cube are completely hidden by the red cube.  The desired behavior can
be seen
> in "badalphamodbyhand.png" in which I modified to show what should be
shown. 
> 
> This must be a common problem, but I searched the archives and it did
not
> turn up much. 
> 
> my GL_DEPTH_TEST attribute is on as well as GL_BLEND.  I am using OSG
2.6.0
> with an NVidia series 7 graphics card. 
> 
> Is there some way to improve the transparency visualization?

This is a common problem: OSG sorts at the granularity of Drawables and
according to the bounding sphere's center, so it can get the rendering
order wrong from certain points of view (for proper blending, distant
transparent objects need to be rendered before nearer objects). For
intersecting Drawables, there is no correct order, which is what you're
seeing.

To get correct behavior, you'd have to split your objects into separate
Drawables so that they can be sorted, which may require splitting
polygons (and for dynamic objects, splitting the polygons every time the
objects move or change shape).

HTH,
-- 
Bryan Thrall
FlightSafety International
bryan.thr...@flightsafety.com
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to