Hi Karen,

   There is a JDK1.3 bug 4369234 -
      GraphicsDevice.getConfigurations is very slow

which may related to the problem. This is fixed in JDK1.3.1
when it release. You may want give jdk1.3.1 beta a try.

Thanks.

- Kelvin
--------------
Java 3D Team
Sun Microsystems Inc.



>MIME-Version: 1.0
>Date: Thu, 22 Feb 2001 16:33:26 -0800
>From: Karen Dias <[EMAIL PROTECTED]>
>Subject: [JAVA3D] Slow start-up time for  simple Java 3D applications.
>To: [EMAIL PROTECTED]
>
>Hi people;
>
>I've been running some really simple Java 3D applications & the start-up
>time is quite slow. I've included an example that part of one of the on-line
>Java 3D tutorials on the net (I think I got it off the Sun site... anyway,
>it's not important).  I was surprised to find out that it took about 3-4
>seconds to start up.  Is this normal?  If so, I imagine the problem will be
>greatly magnified if I have 100's or 1000's of entities in the scene graph.
>Does anyone know why this happens?  Is it the time taken to compile the
>scene graph?  I'm running on a PII-350 with 128MB RAM and my graphics
>adapter is a Matrox Graphics MGA-G100 AGP with 4MB RAM.
>
>Karen Dias,
>Engineer, ISE
>
>
>Here's the dinky example that takes up to 4 seconds to start. --- A single
>rotating cube
>****************************************************************************
>******************************************************
>
>// HelloJava3Dd.java
>//
>
>import java.applet.Applet;
>import java.awt.BorderLayout;
>import java.awt.Frame;
>import java.awt.event.*;
>import java.awt.GraphicsConfiguration;
>import com.sun.j3d.utils.applet.MainFrame;
>import com.sun.j3d.utils.geometry.ColorCube;
>import com.sun.j3d.utils.universe.*;
>import javax.media.j3d.*;
>import javax.vecmath.*;
>
>import java.io.*;
>
>//   HelloJava3Dd renders a single, rotated cube.
>
>public class HelloJava3Dd extends Applet {
>
>// createSceneGraph method
>
>    public BranchGroup createSceneGraph() {
>
>        // Create the root of the branch graph
>        BranchGroup objRoot = new BranchGroup();
>
>        // rotate object has a composite transformation matrix
>        Transform3D rotate  = new Transform3D();
>        Transform3D tempRotate = new Transform3D();
>
>        rotate.rotX(Math.PI/4.0d);
>
>        tempRotate.rotY(Math.PI/5.0d);
>
>        rotate.mul(tempRotate);
>
>        TransformGroup objRotate = new TransformGroup(rotate);
>
>        // Create the transform group node and initialize it to the
>        // identity matrix.  Add it to the root of the subgraph.
>        TransformGroup objSpin = new TransformGroup();
>        objSpin.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
>
>        // First add objRotate, the static rotation of the cube to the
>        // root node.
>        objRoot.addChild(objRotate);
>
>        // Then add the transform that will be used to spin the cube to
>        // the Static Rotation Transform.
>        objRotate.addChild(objSpin);
>
>        // Create a simple shape leaf node and add it to the scene
>        // graph.  ColorCube is a Convenience Utility class.
>        objSpin.addChild(new ColorCube(0.4));
>
>        // Next, create the Behavior object that performs the desired
>operation
>        // on the specified transform object and add it to the scene graph.
>        Transform3D yAxis = new Transform3D();
>        Alpha rotationAlpha = new Alpha(-1, 500);
>
>        RotationInterpolator rotator = new
>RotationInterpolator(rotationAlpha,
>                objSpin, yAxis, 0.0f, (float) Math.PI*2.0f);
>
>        // a bounding sphere specifies the region a behavior is active in
>        BoundingSphere bounds = new BoundingSphere();
>        rotator.setSchedulingBounds(bounds);
>        objSpin.addChild(rotator);
>
>        return objRoot;
>    } // end of CreateSceneGraph method of HelloJava3Dd
>
>
>
>    // Create a simple scene and attach it to the virtual universe
>
>    public HelloJava3Dd() {
>        setLayout(new BorderLayout());
>        GraphicsConfiguration config =
>           SimpleUniverse.getPreferredConfiguration();
>
>        Canvas3D canvas3D = new Canvas3D(config);
>        add("Center", canvas3D);
>
>        BranchGroup scene = createSceneGraph();
>
>        // SimpleUniverse is a Convenience Utility class
>        SimpleUniverse simpleU = new SimpleUniverse(canvas3D);
>
>        // This will move the ViewPlatform back a bit so the
>        // objects in the scene can be viewed.
>        simpleU.getViewingPlatform().setNominalViewingTransform();
>
>        simpleU.addBranchGraph(scene);
>    } // end of HelloJava3Dd (constructor)
>    //  The following allows this to be run as an application
>    //  as well as an applet
>
>    public static void main(String[] args) {
>        Frame frame = new MainFrame(new HelloJava3Dd(), 256, 256);
>    } // end of main (method of HelloJava3Dd)
>
>} // end of class HelloJava3Dd
>
>****************************************************************************
>******************************************************
>
>===========================================================================
>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