Example usage for javax.media.j3d TransparencyAttributes BLENDED

List of usage examples for javax.media.j3d TransparencyAttributes BLENDED

Introduction

In this page you can find the example usage for javax.media.j3d TransparencyAttributes BLENDED.

Prototype

int BLENDED

To view the source code for javax.media.j3d TransparencyAttributes BLENDED.

Click Source Link

Document

Use alpha blended transparency.

Usage

From source file:RedGreenGriffin.java

public BranchGroup createSceneGraph(int i) {
    System.out.println("Creating scene for: " + URLString);
    // Create the root of the branch graph
    BranchGroup objRoot = new BranchGroup();
    try {/*from  w  w w. j  a  v  a  2  s  .  c o  m*/
        Transform3D myTransform3D = new Transform3D();
        myTransform3D.setTranslation(new Vector3f(+0.0f, -0.15f, -3.6f));
        TransformGroup objTrans = new TransformGroup(myTransform3D);
        objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
        Transform3D t = new Transform3D();
        TransformGroup tg = new TransformGroup(t);
        tg.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
        tg.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
        objTrans.addChild(tg);
        URL url = new URL(URLString);
        ObjectFile f = new ObjectFile();
        f.setFlags(ObjectFile.RESIZE | ObjectFile.TRIANGULATE | ObjectFile.STRIPIFY);
        System.out.println("About to load");

        Scene s = f.load(url);
        Transform3D myTrans = new Transform3D();
        myTrans.setTranslation(new Vector3f(eyeOffset, -eyeOffset, 0F));
        TransformGroup mytg = new TransformGroup(myTrans);
        //mytg.addChild(s.getSceneGroup());
        tg.addChild(mytg);
        Transform3D myTrans2 = new Transform3D();
        myTrans2.setTranslation(new Vector3f(-eyeOffset, +eyeOffset, 0F));
        TransformGroup mytg2 = new TransformGroup(myTrans2);
        //mytg2.addChild(s.getSceneGroup());
        Hashtable table = s.getNamedObjects();
        for (Enumeration e = table.keys(); e.hasMoreElements();) {
            Object key = e.nextElement();
            System.out.println(key);
            Object obj = table.get(key);
            System.out.println(obj.getClass().getName());
            Shape3D shape = (Shape3D) obj;
            //shape.setCapability(Shape3D.ALLOW_APPEARANCE_WRITE);
            Appearance ap = new Appearance();
            Color3f black = new Color3f(0.0f, 0.0f, 0.0f);
            Color3f red = new Color3f(0.7f, .0f, .15f);
            Color3f green = new Color3f(0f, .7f, .15f);
            ap.setMaterial(new Material(green, black, green, black, 1.0f));
            Appearance ap2 = new Appearance();
            ap2.setMaterial(new Material(red, black, red, black, 1.0f));
            float transparencyValue = 0.5f;
            TransparencyAttributes t_attr = new TransparencyAttributes(TransparencyAttributes.BLENDED,
                    transparencyValue, TransparencyAttributes.BLEND_SRC_ALPHA,
                    TransparencyAttributes.BLEND_ONE);
            ap2.setTransparencyAttributes(t_attr);
            ap2.setRenderingAttributes(new RenderingAttributes());
            ap.setTransparencyAttributes(t_attr);
            ap.setRenderingAttributes(new RenderingAttributes());
            // bg.addChild(ap);
            shape.setAppearance(ap);
            mytg2.addChild(new Shape3D(shape.getGeometry(), ap2));
            mytg.addChild(new Shape3D(shape.getGeometry(), ap));
        }
        tg.addChild(mytg2);
        System.out.println("Finished Loading");
        BoundingSphere bounds = new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 100.0);
        Color3f light1Color = new Color3f(.9f, 0.9f, 0.9f);
        Vector3f light1Direction = new Vector3f(4.0f, -7.0f, -12.0f);
        DirectionalLight light1 = new DirectionalLight(light1Color, light1Direction);
        light1.setInfluencingBounds(bounds);
        objTrans.addChild(light1);
        // Set up the ambient light
        Color3f ambientColor = new Color3f(1.0f, .4f, 0.3f);
        AmbientLight ambientLightNode = new AmbientLight(ambientColor);
        ambientLightNode.setInfluencingBounds(bounds);
        objTrans.addChild(ambientLightNode);

        MouseRotate behavior = new MouseRotate();
        behavior.setTransformGroup(tg);
        objTrans.addChild(behavior);
        // Create the translate behavior node
        MouseTranslate behavior3 = new MouseTranslate();
        behavior3.setTransformGroup(tg);
        objTrans.addChild(behavior3);
        behavior3.setSchedulingBounds(bounds);

        KeyNavigatorBehavior keyNavBeh = new KeyNavigatorBehavior(tg);
        keyNavBeh.setSchedulingBounds(new BoundingSphere(new Point3d(), 1000.0));
        objTrans.addChild(keyNavBeh);

        behavior.setSchedulingBounds(bounds);
        objRoot.addChild(objTrans);
    } catch (Throwable t) {
        System.out.println("Error: " + t);
    }
    return objRoot;
}

From source file:GeometryByReferenceTest.java

public void actionPerformed(ActionEvent e) {
    Object target = e.getSource();
    GeometryArray geo;/*from   www.  j  a  v  a  2s .  c  o m*/
    boolean setColor = false, setVertex = false;
    if (target == geomType) {
        geo = geoArrays[geomType.getSelectedIndex()];
        // Set everything to null, and set it later ..
        geo.setColorRefFloat(null);
        geo.setColorRef3f(null);
        geo.setCoordRefFloat(null);
        geo.setCoordRef3f(null);
        shape.setGeometry(geoArrays[geomType.getSelectedIndex()]);

        setColor = true;
        setVertex = true;

    } else if (target == transparency) {
        if (transparency.isSelected()) {
            transp.setTransparencyMode(TransparencyAttributes.BLENDED);
        } else {
            transp.setTransparencyMode(TransparencyAttributes.NONE);
        }

    } else if (target == updates) {
        updateIndex = updates.getSelectedIndex();
        if (updateIndex == 1) {
            System.out.println("Doing coordinate update");
            ((GeometryArray) (shape.getGeometry())).updateData(this);
        } else if (updateIndex == 2) {
            System.out.println("Doing color update");
            ((GeometryArray) (shape.getGeometry())).updateData(this);
        }

    } else if (target == vertexType) {
        geo = ((GeometryArray) shape.getGeometry());
        if (vertexIndex == 0) {
            geo.setCoordRefFloat(null);
        } else if (vertexIndex == 1) {
            geo.setCoordRef3f(null);
        }
        vertexIndex = vertexType.getSelectedIndex();
        setVertex = true;
    } else if (target == colorType) {
        geo = (GeometryArray) shape.getGeometry();
        if (colorIndex == 0) {
            geo.setColorRefFloat(null);
        } else if (colorIndex == 1) {
            geo.setColorRef3f(null);
        }
        colorIndex = colorType.getSelectedIndex();
        setColor = true;
    }

    if (setVertex) {
        geo = (GeometryArray) shape.getGeometry();
        if (vertexIndex == 0) {
            if (geo instanceof IndexedGeometryArray)
                geo.setCoordRefFloat(indexedFloatVerts);
            else
                geo.setCoordRefFloat(floatVerts);
        } else if (vertexIndex == 1) {
            if (geo instanceof IndexedGeometryArray)
                geo.setCoordRef3f(indexedP3fVerts);
            else
                geo.setCoordRef3f(p3fVerts);
        }

    }
    if (setColor) {
        geo = (GeometryArray) shape.getGeometry();
        if (colorIndex == 0) {
            if (geo instanceof IndexedGeometryArray)
                geo.setColorRefFloat(indexedFloatClrs);
            else
                geo.setColorRefFloat(floatClrs);
        } else if (colorIndex == 1) {
            if (geo instanceof IndexedGeometryArray)
                geo.setColorRef3f(indexedC3fClrs);
            else
                geo.setColorRef3f(c3fClrs);
        }
    }

}

From source file:GeometryByReferenceNIOBuffer.java

public void actionPerformed(ActionEvent e) {
    Object target = e.getSource();
    GeometryArray geo;/*from  w w w  . j  av a  2s . co m*/
    boolean setColor = false, setVertex = false;
    if (target == geomType) {
        geo = geoArrays[geomType.getSelectedIndex()];
        // Set everything to null, and set it later ..
        geo.setColorRefBuffer(null);
        geo.setCoordRefBuffer(null);
        shape.setGeometry(geoArrays[geomType.getSelectedIndex()]);

        setColor = true;
        setVertex = true;

    } else if (target == transparency) {
        if (transparency.isSelected()) {
            transp.setTransparencyMode(TransparencyAttributes.BLENDED);
        } else {
            transp.setTransparencyMode(TransparencyAttributes.NONE);
        }

    } else if (target == updates) {
        updateIndex = updates.getSelectedIndex();
        if (updateIndex == 1) {
            System.out.println("Doing coordinate update");
            ((GeometryArray) (shape.getGeometry())).updateData(this);
        } else if (updateIndex == 2) {
            System.out.println("Doing color update");
            ((GeometryArray) (shape.getGeometry())).updateData(this);
        }

    }

    if (setVertex) {
        geo = (GeometryArray) shape.getGeometry();
        if (geo instanceof IndexedGeometryArray)
            geo.setCoordRefBuffer(indexedFloatBufferCoord);
        else
            geo.setCoordRefBuffer(floatBufferCoord);

    }
    if (setColor) {
        geo = (GeometryArray) shape.getGeometry();
        if (geo instanceof IndexedGeometryArray)
            geo.setColorRefBuffer(indexedFloatBufferColor);
        else
            geo.setColorRefBuffer(floatBufferColor);
    }
}

From source file:InterleavedNIOBuffer.java

public void actionPerformed(ActionEvent e) {
    Object target = e.getSource();
    if (target == geomType) {
        shape.setGeometry(geoArrays[geomType.getSelectedIndex()]);

    } else if (target == transparency) {
        if (transparency.isSelected()) {
            transp.setTransparencyMode(TransparencyAttributes.BLENDED);
        } else {/*from   w  ww .  j ava 2s  . c  om*/
            transp.setTransparencyMode(TransparencyAttributes.NONE);
        }
    } else if (target == textureBox) {
        if (textureBox.isSelected()) {
            app.setTextureUnitState(textureUnitState);
        } else {
            app.setTextureUnitState(null);
        }
    }
}

From source file:KeyNavigateTest.java

void createWater(Group mapGroup, int nPixelX, int nPixelY) {
    Point3d point = convertToWorldCoordinatesPixelCenter(nPixelX, nPixelY);

    if (m_WaterAppearance == null) {
        m_WaterAppearance = new Appearance();
        m_WaterAppearance.setPolygonAttributes(
                new PolygonAttributes(PolygonAttributes.POLYGON_FILL, PolygonAttributes.CULL_NONE, 0, false));
        m_WaterAppearance//from w  w w .  j a v  a2  s.co m
                .setTransparencyAttributes(new TransparencyAttributes(TransparencyAttributes.BLENDED, 1.0f));
        m_WaterAppearance.setTextureAttributes(new TextureAttributes(TextureAttributes.REPLACE,
                new Transform3D(), new Color4f(0, 0, 0, 1), TextureAttributes.FASTEST));

    }

    Land water = new Land(this, mapGroup, ComplexObject.GEOMETRY | ComplexObject.TEXTURE);
    water.createObject(m_WaterAppearance, new Vector3d(point.x, m_kFloorLevel + 0.1, point.z),
            new Vector3d(40, 1, 40), "water.gif", null, null);
}

From source file:KeyNavigateTest.java

protected Group createGeometryGroup(Appearance app, Vector3d position, Vector3d scale, String szTextureFile,
        String szSoundFile) {/*from w w  w.  java 2s.c o m*/
    Group g = new Group();

    app.setPolygonAttributes(
            new PolygonAttributes(PolygonAttributes.POLYGON_FILL, PolygonAttributes.CULL_NONE, 0, false));
    app.setTransparencyAttributes(new TransparencyAttributes(TransparencyAttributes.BLENDED, 1.0f));

    m_TextureAttributes = new TextureAttributes(TextureAttributes.REPLACE, new Transform3D(),
            new Color4f(0, 0, 0, 1), TextureAttributes.FASTEST);
    app.setTextureAttributes(m_TextureAttributes);

    if ((m_nFlags & ComplexObject.TEXTURE) == ComplexObject.TEXTURE)
        setTexture(app, szTextureFile);

    Cone cone = new Cone(1, 1, Primitive.GENERATE_TEXTURE_COORDS, app);

    g.addChild(cone);

    attachBehavior(new TextureAnimationBehavior(m_TextureAttributes));

    return g;
}

From source file:AppearanceTest.java

public void onBLENDED() {
    getTransparencyAttributes().setTransparencyMode(TransparencyAttributes.BLENDED);
}

From source file:AppearanceExplorer.java

TransparencyAttributesEditor(TransparencyAttributes init) {
    transpAttr = init;//from w  ww .  java  2  s . c o  m
    transparency = transpAttr.getTransparency();
    mode = transpAttr.getTransparencyMode();
    srcBlendFunction = transpAttr.getSrcBlendFunction();
    dstBlendFunction = transpAttr.getDstBlendFunction();

    setLayout(new GridLayout(4, 1));

    FloatLabelJSlider transparencySlider = new FloatLabelJSlider("Transparency", 0.1f, 0.0f, 1.0f,
            transparency);
    transparencySlider.setMajorTickSpacing(0.1f);
    transparencySlider.setPaintTicks(true);
    transparencySlider.addFloatListener(new FloatListener() {
        public void floatChanged(FloatEvent e) {
            transparency = e.getValue();
            transpAttr.setTransparency(transparency);
        }
    });
    add(transparencySlider);

    String[] modeNames = { "NONE", "SCREEN_DOOR", "BLENDED", "NICEST", "FASTEST" };
    int[] modeValues = { TransparencyAttributes.NONE, TransparencyAttributes.SCREEN_DOOR,
            TransparencyAttributes.BLENDED, TransparencyAttributes.NICEST, TransparencyAttributes.FASTEST };

    IntChooser modeChooser = new IntChooser("Mode:", modeNames, modeValues, mode);
    modeChooser.addIntListener(new IntListener() {
        public void intChanged(IntEvent event) {
            mode = event.getValue();
            transpAttr.setTransparencyMode(mode);
        }
    });
    add(modeChooser);

    String[] blendNames = { "BLEND_ZERO", "BLEND_ONE", "BLEND_SRC_ALPHA", "BLEND_ONE_MINUS_SRC_ALPHA" };
    int[] blendValues = { TransparencyAttributes.BLEND_ZERO, TransparencyAttributes.BLEND_ONE,
            TransparencyAttributes.BLEND_SRC_ALPHA, TransparencyAttributes.BLEND_ONE_MINUS_SRC_ALPHA, };
    IntChooser srcBlendFunctionChooser = new IntChooser("Src Blend Func:", blendNames, blendValues,
            srcBlendFunction);
    srcBlendFunctionChooser.addIntListener(new IntListener() {
        public void intChanged(IntEvent event) {
            srcBlendFunction = event.getValue();
            transpAttr.setSrcBlendFunction(srcBlendFunction);
        }
    });
    add(srcBlendFunctionChooser);
    IntChooser dstBlendFunctionChooser = new IntChooser("Dst Blend Func:", blendNames, blendValues,
            dstBlendFunction);
    dstBlendFunctionChooser.addIntListener(new IntListener() {
        public void intChanged(IntEvent event) {
            dstBlendFunction = event.getValue();
            transpAttr.setDstBlendFunction(dstBlendFunction);
        }
    });
    add(dstBlendFunctionChooser);
}