This happens because correct rendering of transparent
triangles (iso-surfaces are made of lots of little
triangles) depends on sorting the triangles in depth order.
However, that order changes as the display is rotated in
3-D. This is not feasible within VisAD, although the Java3D
folks are thinking of doing something for this in a future
version. This applies to alpha blending transparency. You
can get better results with screen door transparency, but
the last time I tried making VisAD use Java3D's screen
door transparency it didn't work. Maybe I'll take another
crack at it. In general, I recommend against transparency
for iso-surfaces. We give the same advice with Vis5D, which
has the same problem (except that screen door transparency
does work in OpenGL).
Bill Hibbard, SSEC, 1225 W. Dayton St., Madison, WI 53706
hibbard@xxxxxxxxxxxxxxxxx 608-263-4427 fax: 608-263-6738
On Fri, 13 Jul 2001, Stuart Wier wrote:
> Transparency is working in 3d idossurfaces by making a
> ScalarMap to Display.RGBA and providing a color-alpha table
> of the form float [length], with the last element being alpha.
> Resetting the color table with a new value of alpha changes
> the transparency as expected.
> The surface is transparent to the VisAD wireframe box,
> some lines in black (contours of other data for example),
> and to other isosurfaces. It's cool seeing one isosurface
> inside another one.
> However the surface is always opaque to map background lines
> and pseudo-colored data surfaces on a level under the 3D surface.
> For these objects the isosurface at full transparency verges
> to an opaque VisAD background color, black for example (unless
> the background color is changed from black).
> Anyone one have any idea what is going on?
> Stuart Wier UCAR Unidata Program
> wier@xxxxxxxxxxxxxxxx P.O. Box 3000
> http://www.unidata.ucar.edu/staff/wier Boulder, CO 80307