I am writing a molecular viewer type program with Java 3D.

I allow up to 2,000 cylinders (bonds) to be displayed and
about 500 spheres (atoms).

I wrote my own cylinder geometry objects using quadarrays.

When I display the maximum number of cylinders, performance is very poor.
(Actually, performance is very poor well before I reach the maximum....)
Rotations are very choppy.  Resizing all the cylinder diameters takes
forever.

So I could use some help on programming Java 3D for *performance*.

I read the on-line performance suggestions (but I don't remember which one)
which recommended rotating the viewing platform rather than all the objects.
I did this and rotation of the scene is still very poor.

Is it better (performance wise) to define the geometry of one cylinder along
the z-axis, for example, and then add 2000 transforms to the scenegraph to
rotate and translate
the cylinder to each position, or is it better (as I have done) to  define
the
quadarray for each cylinder in its final position, so there is no transforms
in the
scene graph for positioning the cylinders, but there are lots (2000) of
cylinder Shape3D objects defined?

I am running on a Pentium 500 MHz processor.  Should I be experiencing
really bad
performance problems with 2,000 cylinders in the scene graph?

When I change the diameter of all the cylinders, I currently redefine all
the geometry,
creating new Shape3D objects with the new diameter.  A scale transform wont
work,
I think, because the lengths do not change.  It takes for ever....  Is there
a
better way to do this??

Bob Gray

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