The soloution depends on what you want to achieve. 

The artifacts that you are seing is a result of drawing the triangles in an 
arbitrary order. Generally you want to draw transparent triangles from back to 
front. You need to implement a view dependent sort algorithm of the triangles 
in order to achieve this. If the number of triangles is large this may become 
too expensive in an interactive application.

However, if the triangles facing away from the camera (back-side of person) is 
of no interest then a quick fix is to disable drawing these triangles. You can 
easily achieve this using the osg::CullFace state attribute. In your example 
you seem to draw both the front and back side of your triangles. Set it so that 
only front facing triangles are drawn.

Using the latter approach only works for "simple" geometries where the 
triangles on the back-side also faces in the opposite direction. A torso like 
you show is mostly like that, but you will see arifacts if you for example move 
an arm in front or behind the torso. 

An improvement to the latter approach is to split the body into multiple parts 
(each with an associated bounding box) and then sort the different parts in a 
back to front fashion (osg does this automaticlly for the transparent bin). 
Each part must only draw the front facing triangles.

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=31000#31000





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

Reply via email to