Jacob, I took another look at your code and ran it on my machine here. I couldn't help myself... ;-)
1. You are setting the clipping distances correctly. 2. We don't seem to be getting any real appreciable benefit from compilation, and I can't get the compilation debug properties to output any info either. Perhaps someone from SUN can comment on this? 3. On my machine the frame-rate is being limited by the V-sync on the monitor. When you disable V-sync the framerate goes from ~85 Hz to ~320 Hz. Presumably this does not explain your performance differences however, as all the OpenGL applications should have been subject to the same limitation. As you can see below all the other changes I made had no appreciable effect - the scene is too simple for my GeForce II Ultra. Original: Elapsed time: 36.353 sec. Average frame rate: 82.52414 fps. === Disabled compile - no change in framerate! === Using a Behavior to move the Camera: Elapsed time: 35.982 sec. Average frame rate: 83.37502 fps. === Using ColorCubes instead of texture mapped cubes: Elapsed time: 35.952 sec. Average frame rate: 83.444595 fps. === Switch off V-Sync for the card Elapsed time: 9.463 sec. Average frame rate: 317.0242 fps. Sincerely, Daniel Selman -----Original Message----- From: Daniel Selman [mailto:[EMAIL PROTECTED]] Sent: Wednesday, March 06, 2002 1:06 AM To: [EMAIL PROTECTED] Subject: Java 3D performance. Jacob, Nice work on the report. Very professionally done. I'm curious about the considerable performance gap you saw between GL4Java and Java 3D. Here are some thoughts: Ensure frustum is set correctly (common error) - it is NOT defined using virtual coordinates: http://www.starfireresearch.com/services/java3d/supplementalDocumentation.ht ml#alternate "In simple terms this means that for a 1024x768 screen all clipping distances are actually seven times further than what you set them at. - John Wright" I didn't check your other code, but it could be that Java 3D is actually rendering more of the scene than you think. display method seems like it could be optimized. It performs several trig functions, calls lookAt and invert on a matrix etc. Presumably this is called on every frame. Turn on the scenegraph compilation debug flags to ensure compilation is happening: http://www.j3d.org/implementation/properties.html + Javax.media.j3d.compileStats=true + Javax.media.j3d.compileVerbose=true You could play with the j3d.renderlock property as well... Using QuadArray for geometry may not be the fastest option. Why not try an IndexedTriangleArray for example? A test using BY_REF with j3d.optimizeForSpace=false would be interesting as well. Anyway, good work! Sincerely, Daniel Selman Author, Java 3D Programming http://www.manning.com/selman =========================================================================== 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".