All,

I am running into the multiple transparent objects problem listed on the
j3d.org site (text at the bottom of this mail).

I learned everything mentioned in the first paragraph on my own by trial
and error before looking up the problem.

I think I understand what he is asking me to do in the second paragraph
by ordering the objects.  I think that means explicitly setting their
Z-buffer positions???? If that is correct, what is the easiest/best way
to order the geometry so that the correct objects come out in front?

I've also tried the BLENDing solution listed, but it whacks out my
Appearances in many ways, so I'd rather find a different solution.

Also, it mentions that there might be other solutions in Java3D 1.3
which I am using...did any new solution appear in the latest release?

thanks in advance for the help,

kddubb

_Transparency not working with multiple transparent objects_

The basic problem is that transparency is inherently an order-dependent
operation. For the rendering to be correct in all cases, all triangles
must be rendered from back to front. In cases without a lot of
overlapping transparent objects, you can usually get good results by
rendering all of the opaque objects, freezing the Z-buffer, and then
rendering all of the transparent objects. However, this sometimes has
the side-effect of causing transparent objects that are further away to
look like they are in front of transparent objects that are closer.
Turning on the Z-buffer (by disabling DepthBufferFreezeTransparent)
fixes this, but creates other problems.

Without sorting your geometry--and breaking it up in the case of
intersecting objects--there is no solution. In Java 3D 1.2 we have new
blending modes that will allow you to blend transparent objects in a
truly order-independent manner, but with the side effect that you get an
additive effect where two objects intersect.

The blend modes to look for are found in the TransparencyAttributes.
Look for the methods setTransparencyMode() and
set[Src|Dst]BlendFunction().

Sun have acknowledged a bug in Java 3D 1.2 with multiple transparent
objects. There is a work-around:

TransparencyAttributes t_attr =
    new TransparencyAttributes(
          TransparencyAttributes.BLENDED,
          transparencyValue,
          TransparencyAttributes.BLEND_SRC_ALPHA,
          TransparencyAttributes.BLEND_ONE);

Appearance windowApp = new Appearance();
windowApp.setTransparencyAttributes( t_attr );
windowApp.setRenderingAttributes( new RenderingAttributes() );

However, this will not work for all cases - particularly transparent
textures applied to objects. A more complete solution should be
forth-coming in Java3D v1.3 and 1.4.

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to