This list is from my personal experience and whatever i've read on the
internet about the various formats. That said:

IndexedQuad/Triangle/StripArray -

A poor option to use, since java3d must unindexify the data each frame to
send it to the card. But dead simple to work with, and the nicest format for
the data to be in from a beginners perspective.
Memory - D
Speed - D
Ease - A

1.3.1beta update:
The UseCoordIndexOnly flag is the saviour for this once-hurting geometry
type. This flag allows java3d to send the data in a continous stream to the
card.
Memory - B
Speed - B(A+ in IndexedTriangleStrip/FanArray's case)
Ease - B (A little more complicated due to the packing required)

QuadArray -

Mostly used in particle systems due to the billboard nature of a single
quad, works nicely in OpenGL. DirectX has issues however, since it doesn't
natively support quads and java3d must support this with
DrawPrimitiveStrided. Tested and true, don't use this geometry type if you
are planning on letting users use the DirectX version of java3d.
*GL*
Memory - B
Speed - B+
Ease - A
*DX*
Memory - B
Speed - D+
Ease - A

TriangleStrip/FanArray:

Full speed ahead! Triangle strips are a widely supported feature of video
cards now and this format makes for the most triangle throughput. Be careful
however to not overflow the DirectX vertex buffers with > 65535 verts.
Memory - A
Speed - A
Ease - B

PointArray:

Under the OpenGL implementation, there is an option for antialiasing points.
Using this, you can get really simple, really fast single-colored particles.
But that is about it.
Memory - A
Speed - A
Ease - A

BYREF geometry notes:

Using the BYREF flag indicates that the data used within the geometry is
accessed through user arrays. Really the only way to go for volatile meshes,
particle systems, bones animation, and multi/sub material objects, add two
grades for memory, one grade for ease, but lower one grade from speed
because of the fact that java3d (without a command-line option) cannot build
vertex lists out of this data.

Conclusions: (1.3.1 info mixed in)
For particle systems, BYREF PointArray/QuadArray is a great start if you're
using OpenGL, and TriangleFanArray is the best way for DirectX that I've
found so far if you are using 1.3.1beta (since the inclusion of
SetStripCounts is instrumental here), or else just use plain TriangleArray,
and bear with it.
For bones animation and multi/sub material objects, BYREF TriangleStripArray
is the way to go.
For regular static meshes, I'd go with non-BYREF TriangleStripArrays for any
java3d under 1.3.1beta, and IndexedTriangleStripArrays with
UseCoordIndexOnly for the latest and greatest java3d.

And as an afterthought -
Why is Sun's team even supporting DirectX at all? OpenGL has the better
feature set by far and doesn't get crippled with high vertex strip counts.
Plus, OpenGL is the only option under Solaris and probably the other
platforms when they are completed as well. DirectX adopts the latest and
greatest in hardware much more quickly, but since java3d will be playing
catch up anyhow, I'm sure that supporting only one graphics environment
would free up man hours to get us better features now, no?

Of course, I could be not focusing enough on the point that the DirectX
runtime has always had better *general* performance on my system
(pIII600/Geforce2MX).


>From: Brad Christiansen <[EMAIL PROTECTED]>
>Reply-To: [EMAIL PROTECTED]
>To: [EMAIL PROTECTED]
>Subject: [JAVA3D] Geometry Types
>Date: Mon, 22 Apr 2002 10:02:07 +0800
>
>Hi,
>
>I was wondering if anybody could point me at a good (detailed)
>discussion of the advantages and disadvantages of the various geometry
>array types. I would like info on things such as the relative
>performance and memory usage of indexed versus non index, triangle fan
>vs triangle strip etc.
>
>I have done some searching and looked in a few books but can't find a
>good summary of these issues. A good tutorial on creating geometry with
>all the various array types would be great too. All the tutes I have
>found have been focused on the complete novice and have only covered one
>simple type.
>
>Cheers,
>
>Brad
>
>
>----------------------------------------------------------------------------
>This Email may contain confidential and/or privileged information and is
>intended solely for the addressee(s) named. If you have received this
>information in error, or are advised that you have been posted this Email
>by
>accident, please notify the sender by return Email, do not redistribute it,
>delete the Email and keep no copies.
>----------------------------------------------------------------------------
>
>===========================================================================
>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".




------------------------

Chris Forrester

http://www.geocities.com/Psionic81


_________________________________________________________________
MSN Photos is the easiest way to share and print your photos:
http://photos.msn.com/support/worldwide.aspx

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