Hello!

I try to load a 3DS-object but the object will not be visible at all. I have
also add some light but I still can't see the object.

On each side where the 3DS-object should appaer I have added a Cone, just
for reference and se if the light works.

I'm not so good at 3D-studio so I downloaded a object from the Internet so I
have something to test with.

That object can be found at:
http://medlem.spray.se/fredand44/questions/girl.3DS
I also have an other one that I have developed my self at:
http://medlem.spray.se/fredand44/questions/test.3DS
But my own object doesn't seems to have any Shape3Ds? Perhaps any one could
give a hint about that as well.

I use the Import3DS from:
http://www.j3d.org/utilities/loaders/3ds/mulder.html
to load my objects. So if you would like to test this I think you have to
download it.

So if any one could give me a hint I would be most thankfull!

Best regards
Fredrik Andersson

My code to test this is:

import java.applet.*;
import java.awt.*;
import java.awt.Frame;
import java.awt.event.*;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.universe.*;
import com.sun.j3d.utils.geometry.*;
import com.sun.j3d.utils.behaviors.keyboard.*;
import javax.media.j3d.*;
import javax.vecmath.*;
import javax.swing.*;
import com.sun.j3d.loaders.*;

import java.util.*;

import java3d.loaders.*;

public class TestLoad extends Applet
{
        BranchGroup branchGroup;


        public void init()
        {
                setLayout(new BorderLayout());
                GraphicsConfiguration config = 
SimpleUniverse.getPreferredConfiguration();
                Canvas3D canvas3D = new Canvas3D(config);
                add("Center", canvas3D);
                SimpleUniverse simpleUniverse = new SimpleUniverse(canvas3D);
                branchGroup = new BranchGroup();

                TransformGroup transformGroup1 = new TransformGroup();
                Transform3D transform3D1 = new Transform3D();
                transform3D1.set(new Vector3f(-2.0f, 0.0f, -20.0f));
                transformGroup1.setTransform(transform3D1);
                Appearance appearance1 = new Appearance();
                Color3f objColor1 = new Color3f(0.7f, 0.7f, 0.7f);
                Color3f black1 = new Color3f(0.0f, 0.0f, 0.0f);
                appearance1.setMaterial(new Material(objColor1, black1, objColor1, 
black1,
80.0f));
                Cone cone1 = new Cone(0.4f, 0.4f);
                cone1.setAppearance(appearance1);
                transformGroup1.addChild(cone1);
                branchGroup.addChild(transformGroup1);

                TransformGroup transformGroup2 = loadTransformGroup();
                Transform3D transform3D2 = new Transform3D();
                transform3D2.set(new Vector3f(0.0f, 0.0f, -20.0f));
                transformGroup2.setTransform(transform3D2);
                branchGroup.addChild(transformGroup2);

                TransformGroup transformGroup3 = new TransformGroup();
                Transform3D transform3D3 = new Transform3D();
                transform3D3.set(new Vector3f(2.0f, 0.0f, -20.0f));
                transformGroup3.setTransform(transform3D3);
                Appearance appearance2 = new Appearance();
                Color3f objColor2 = new Color3f(0.7f, 0.7f, 0.7f);
                Color3f black2 = new Color3f(0.0f, 0.0f, 0.0f);
                appearance2.setMaterial(new Material(objColor2, black2, objColor2, 
black2,
80.0f));
                Cone cone2 = new Cone(0.4f, 0.4f);
                cone2.setAppearance(appearance2);
                transformGroup3.addChild(cone2);
                branchGroup.addChild(transformGroup3);

                addDirectionalLight(new Vector3f(0.0f, 0.0f, -20.0f), new Color3f(0.9f,
0.9f, 0.9f));
                addDirectionalLight(new Vector3f(0.0f, 0.0f, -20.0f), new Color3f(0.9f,
0.9f, 0.9f));

                branchGroup.compile();
                simpleUniverse.addBranchGraph(branchGroup);
        }

        public TransformGroup loadTransformGroup()
        {
                TransformGroup transformGroup = null;
                try
                {
                        Loader loader = new ThreeDSLoader();
                        Scene scene = loader.load("girl.3ds");
                        BranchGroup branchGroup = scene.getSceneGroup();
                        transformGroup = new TransformGroup();

                        System.out.println();

                        Enumeration enumeration = branchGroup.getAllChildren();
                        int i =0;
                        while(enumeration.hasMoreElements())
                        {
                                i++;
                                Object obj = enumeration.nextElement();
                                Class cl = obj.getClass();
                                System.out.println(cl.getName());

                        }
                        System.out.println(i);
                        System.out.println();

                        transformGroup = (TransformGroup) branchGroup.getChild(1);
                        branchGroup.removeChild(1);

                        enumeration = transformGroup.getAllChildren();
                        i =0;
                        Appearance appearance = new Appearance();
                        Color3f objColor = new Color3f(0.9f, 0.9f, 0.9f);
                        Color3f black = new Color3f(0.0f, 0.0f, 0.0f);
                        appearance.setMaterial(new Material(objColor, black, objColor, 
black,
80.0f));

                        while(enumeration.hasMoreElements())
                        {
                                i++;
                                Shape3D obj = (Shape3D)enumeration.nextElement();
                                Class cl = obj.getClass();
                                System.out.println(cl.getName());
                                obj.setAppearance(appearance);
                        }
                        System.out.println(i);
                }
                catch(Exception e)
                {
                        e.printStackTrace();
                }

                return transformGroup;
        }

        public void addDirectionalLight(Vector3f direction, Color3f color)
        {
                BoundingSphere bounds = new BoundingSphere();
                bounds.setRadius(1000d);

                DirectionalLight lightD = new DirectionalLight(color, direction);
                lightD.setInfluencingBounds(bounds);

                branchGroup.addChild(lightD);
        }

        public static void main(String[] args)
        {
                Frame frame = new MainFrame(new TestLoad(), 600, 400);
    }
}

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