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".