Kelvin,
I have investigated the problem more and have been able to localize it. I have an OrderedGroup object on top of my scene graph (not on the level of transparent objects) and that seems to be the reason for transparency problems. If I replace an OrderedGroup instance with a regular Group then everything works fine. Moreover, I have been able to reproduce it on the demo example. Please see attached AppearanceTest.java from the Appearance demo modified to demonstrate the problem. Orbit the scene and you can see the transparent tetrahedron obstructing the red unlit tetrahedron (and/or possibly others).
Java3D v1.2.1_03 has exactly the same problem. v1.3beta1 still has the problem but the rendering order seems to be different and so are the obstructed objects (did not try to switch on the transparency sorting).
Also I would appreciate very much if you can suggest some work-around for this problem. I cannot get rid of OrderedGroup since I need it to enforce rendering order to make some objects seen-through. And I need to be able to correctly show the transparent shapes at least in one branch of the OrderedGroup. Presently I can do one or the other but not both together.
Thanks,
Yuri.
-----Original Message-----
From: Kelvin Chung [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, January 15, 2002 3:06 PM
To: [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Subject: Re: [JAVA3D] Transparency problem in 1.2.1
Hi Yuri,
If you are using v1.2.1, please try v1.2.1_03 and v1.3 beta1.
If the problem still exists, send us a test program to
investigate.
Thanks.
- Kelvin
--------------
Java 3D Team
Sun Microsystems Inc.
>Delivered-To: [EMAIL PROTECTED]
>MIME-Version: 1.0
>Date: Tue, 15 Jan 2002 12:49:17 -0500
>From: Yuri Nikishkov <[EMAIL PROTECTED]>
>Subject: [JAVA3D] Transparency problem in 1.2.1
>To: [EMAIL PROTECTED]
>
Hi all,
I have a problem with transparent shapes in Java3D 1.2.1. It is not a sorting
problem, I'm aware that transparency sorting is not implemented in that version.
I have
a single transparent shape in my SG and the problem is that some of the opaque
shapes that has to be seen through the transparent shape are not shown. You can
still see some of the other opaque shapes, depending on the rendering order. As
far as I understand, transparency in Java3D 1.2.1 works like this: first, all
opaque
shapes are rendered, then, in the next pass, all transparent shapes are rendered
with depth buffer frozen. In my application, however, it looks like transparent
shape
is rendered together with the opaque shapes and depending on the rendering order
the transparent shape blends its color with previously rendered opaque shape or
it doesn't if the opaque shape is not yet rendered.
You can see the example picture in the attachement. The transparent shape is in
front, and you can see only one opaque shape and axis through it. Four other
shapes
that are partially behind the transparent shape are not there.
I have tried the AppearanceTest applet in Java3D demos, and it works correctly.
So it means that I have a problem in some of my SG settings. What are the
possible
reasons for transparent shapes not to be rendered in a separate pass?
Thanks,
Yuri.
AppearanceTest.java
Description: Binary data