Ingo,
        Thanks for your bug reports. Here are the breakdown of our
finding :

Bug 1 : It is not a bug.
You've constructed a RenderingAttributes with alpha testing disable. That
is why you've to do make a separate setAlphaTestFunction() call.

RenderingAttributes.ALWAYS - pixels are always drawn, irrespective of the alpha
value. This effectively disables alpha testing. This is the default setting.

Replace :

RenderingAttributes ra =
            new RenderingAttributes(false, false,
                                    0.0f, RenderingAttributes.ALWAYS);

with :

RenderingAttributes ra =
            new RenderingAttributes(false, false,
                                    0.0f, RenderingAttributes.GREATER);


Bug 3 : This is a Java3D bug and it will be fixed in Java3D 1.3beta2 release.



> I was not able to reproduce the depth buffer problem in a simple test
> program. I also think, that it is not a Raster specific problem. I
> have not used setDepthBufferEnable(false) before I started playing
> with Raster. But my understanding is, that objects, which have the
> depth buffer disabled, should always be drawn on top of all other
> objects with an enabled depth buffer, regardless of their z-location
> in the world. Is this assumption right?

Yes, depth test is disabled.


- Chien Yang
  Java 3D Team.


> When I tested disabling the depth buffer on a LineStripArray in my
> applet, where this would be quite usefull, I noticed, that it did not
> work either. But again, for me it's difficult to isolate the problem.
>
> Regards,
>
> Ingo
>
>
> ===File ~/RasterTest.java===================================
> import java.awt.image.BufferedImage;
> import java.awt.*;
> import javax.swing.JFrame;
> import javax.media.j3d.*;
> import javax.vecmath.*;
> import com.sun.j3d.utils.universe.*;
> import com.sun.j3d.utils.behaviors.mouse.*;
> import com.sun.j3d.utils.geometry.Sphere;
>
> public class RasterTest extends JFrame {
>     public RasterTest() {
>         Canvas3D canvas = new Canvas3D(
>             SimpleUniverse.getPreferredConfiguration());
>         SimpleUniverse universe = new SimpleUniverse(canvas);
>         universe.addBranchGraph(createSceneGraph());
>
>         Transform3D vpLocation = new Transform3D();
>         TransformGroup vptg = universe.getViewingPlatform(
>             ).getViewPlatformTransform();
>         vptg.getTransform(vpLocation);
>         vpLocation.setTranslation(new Vector3d(0.0, 0.0, 8.0));
>         vptg.setTransform(vpLocation);
>         canvas.setSize(300, 300);
>         getContentPane().add(canvas);
>         setDefaultCloseOperation(EXIT_ON_CLOSE);
>         pack();
>     }
>
>     public static void main(String[] args) {
>         RasterTest frame = new RasterTest();
>         frame.show();
>     }
>
>     private BranchGroup createSceneGraph() {
>         BranchGroup branch = new BranchGroup();
>
>         // TransformGroup for MouseBehaviors
>         TransformGroup tg = new TransformGroup();
>         tg.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
>         tg.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
>         branch.addChild(tg);
>
>         MouseZoom myMouseZoom = new MouseZoom();
>         myMouseZoom.setTransformGroup(tg);
>         myMouseZoom.setSchedulingBounds(new BoundingSphere());
>         branch.addChild(myMouseZoom);
>
>         DirectionalLight light = new DirectionalLight();
>         light.setInfluencingBounds(new BoundingSphere(new Point3d(), 1000));
>         branch.addChild(light);
>
>         // Add a Background
>         Background background = new Background(new Color3f(1.0f, 0.0f, 0.0f));
>         background.setApplicationBounds(new BoundingSphere(new Point3d(),
>                                                            1000));
>         branch.addChild(background);
>
>         // Add a lit Sphere
>         Appearance app = new Appearance();
>         app.setMaterial(new Material());
>         Sphere sphere = new Sphere(1.0f, app);
>         tg.addChild(sphere);
>
>         // Add the Raster
>         tg.addChild(createLabel("Cl"));
>
>         return branch;
>     }
>
>     private Shape3D createLabel(String text) {
>         Point3f rasterPos = new Point3f(0.0f, 0.0f, 0.0f);
>         Color textColor = new Color(0, 255, 255, 255); // cyan
>         Color bgColor = new Color(255, 255, 255, 0); // transparent white
>         BufferedImage bufferedImage = new BufferedImage(
>             35, 15, BufferedImage.TYPE_INT_ARGB);
>         Graphics2D g = bufferedImage.createGraphics();
>
>         // Appearance for Raster
>         Appearance labelApp = new Appearance();
>         RenderingAttributes ra = new RenderingAttributes(
>             false, false, 0.0f, RenderingAttributes.ALWAYS);
>         // To get a real transparent background, uncomment the following line!
>         //ra.setAlphaTestFunction(RenderingAttributes.GREATER);
>         labelApp.setRenderingAttributes(ra);
>
>         // Clear the background
>         g.setBackground(bgColor);
>         g.clearRect(0, 0, 35, 15);
>
>         // Draw the text
>         g.setColor(textColor);
>         g.drawString(text, 2, 12);
>         g.dispose();
>
>         ImageComponent2D imageComponent2D = new ImageComponent2D(
>             ImageComponent2D.FORMAT_RGBA, bufferedImage);
>         Raster labelRaster = new Raster(rasterPos, Raster.RASTER_COLOR, 0, 0,
>                                         35, 15, imageComponent2D, null);
>         labelRaster.setDstOffset(0, 50); // This has no effect!!!
>         // To see the effect of the y-offset, you also have to set the
x-offset!
>         //labelRaster.setDstOffset(-50, 50);
>
>         return new Shape3D(labelRaster, labelApp);
>     }
> }
> ============================================================
>
>
> >Ingo,
> >       Please send us test programs for all 3 cases. It will be great
> >if we can have them ASAP; we're near to our next code freeze for j3d1.3beta2
> >release.
> >
> >thanks,
> >
> >- Chien Yang.
> >  Java 3D Team.
> >
> >>
> >> Hi all,
> >>
> >> after playing with Raster for labelling objects to get rid of my
> >> Text2D/OrientedShape3D combination and getting it to work, I want to
> >> tell you about three things I have noticed with j3d 1.3b1. I don't
> >> know if these are intended or bugs.
> >>
> >> 1) To make transparency work with the Background node you have to set
> >>    another alpha test function in your Rendering Attributes than the
> >>    default function ALWAYS (assuming you have an ImageComponent2D with
> >>    a transparent background).
> >>
> >> 2) If you disable the depth buffer in the RenderingAttributes in order
> >>    to have your label staying always on top but you set your Raster
> >>    position to (0, 0, 0) the depth buffer is enabled regardless of
> >>    your settings.
> >>
> >> 3) If you use setDstOffset(x, y) with x = 0, the y-coordinate is also
> >>    ignored.
>
> ===========================================================================
> 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".

===========================================================================
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