This is an old and well known problem with all
3-D graphics libraires that are fast enough for
interaction. Efficient 3-D graphics libraries,
such as Java3D, use a Z-buffer algorithm for
depth precedence and for this to render correctly
with multiple transparent layers the layers must
be rendered in an ordered sorted from rear to
front. But the sort order changes as the user
rotates the surfaces in 3-D, and dynamically
re-sorting as the user rotates (and dynamically
changing the geometry used by the graphics
library) would be too slow for interaction.
We have from time to time experimented with an
alternate implementation of transparency, known
as screen door transparency, available in Java3D.
But it seems not to work (it does work in OpenGL
and is used by Vis5D). But screen door images
look a bit weird viewed close up, even if it did
work in Java3D.
On Fri, 28 Oct 2005, Surekha Chandran wrote:
> I have an irregular 3D surface - a head with some EEG
> signal plotted on the top of the head. I use
> DelaunayCustom to set up the Irregular3DSet. Now
> instead of making it an RGB ScalarMap I am using RGBA
> and I want to make the whole image partially
> transparent. There is a seconday contour plot but that
> is RGB and is fine as you can see in the images
> Look at the images included. It is funky. When I
> rotate the image in certain directions I find that
> there are some wierd artifacts. It is like the colors
> are painted on the inside of the head rather than on
> the outside. Then there are places where I can see
> clear triangles on the inside and holes. It does not
> make any sense. Why are there holes in the colors? Why
> are there light gray bands across the face when I know
> I have set all the values in that area to be the same
> exact gray color(the darker shade of gray).
> Please help. I looked at Test20 but it does not seem
> to be describing this problem. I could not find any
> similar problems in the archives.
> Do You Yahoo!?
> Tired of spam? Yahoo! Mail has the best spam protection around