Yep.. while rewriting my particle system from the ground up after noticing
that my LinkedList approach was.. *cough* a wee bit inefficient, I used this
method. A huge, huge speedup resulted (of course), and i'm happy for now.

I just really don't like the fact that I have to use a "hide/unhide" node
because of the inability of GeometryStripArray to setStripVertexCounts with
a null array, or an integer array with {0} (which would indicate that no
polygons should be rendered). We can do this for every other kind of
geometry by using setValidVertexCount(0), so why not strips?

>From: Daniel Selman <[EMAIL PROTECTED]>
>Reply-To: Discussion list for Java 3D API <[EMAIL PROTECTED]>
>To: [EMAIL PROTECTED]
>Subject: Re: [JAVA3D] Best way to go about a resizable
>TriangleStripArray...
>Date: Thu, 4 Apr 2002 07:08:00 -0700
>
>Chris,
>
>The approach I took in my particle code (checked into j3d.org) was to *not*
>dynamically create new particles. This is fairly standard, even with C/C++
>particle systems. You can create N particle systems, you can disable/enable
>them entirely - but you cannot add/remove particles dynamically. This
>ensures that you don't have to do lots of memory /geometry allocation while
>the particle system is running. The particles can however be marked as
>"dead" so that they are (optionally) recycled or not rendered.
>
>The general use case (for me anyway!) is that we want to have a fixed
>number
>of particle effects and we need to trade-off accuracy and performance. So
>on
>"high" detail we might create 1000 particles for smoke, 500 particles for
>"mist", 500 particles for "water" etc. etc. You can spawn a new particle
>system dynamically - when a "rocket" particle collides with a wall you
>spawn
>an "explosion" system at the point of collision.
>
>Sincerely,
>
>Daniel Selman
>
>Author - "Java 3D Programming"
>http://www.manning.com/selman
>
>-----Original Message-----
>From: Discussion list for Java 3D API
>[mailto:[EMAIL PROTECTED]]On Behalf Of Chris Forrester
>Sent: Thursday, April 04, 2002 6:20 AM
>To: [EMAIL PROTECTED]
>Subject: Best way to go about a resizable TriangleStripArray...
>
>
>Hey all. Foolish me forgot to check the bug parade so I've spent the last
>day rewriting my particle system to find out why the setValidVertexCount is
>now only increasing the size of a QuadArray's vertex count, and not
>decreasing. Seems this is a bug in j3d1.3beta.
>
>Anyhow - I'm wondering on the best way to implement this using
>TriangleFanArray.. setStripVertexCounts requires me to do a
>(int[])Array.newInstance(int.class, numParticles) and fill for each
>addition/removal of a particle (though these are batched so
>creation/deletion of a large number of particles in a single frame only
>needs to do this once).
>I'm thinking that a better way to do this would be to simply have the strip
>index list constantly as large as the initial max number of verticies / 3
>(for worse case scenario). Then a setValidStripCount(int numStrips) would
>be
>the equivilent of the setValidVertexCount that non-stripped geometry uses.
>Setting the number of verticies in a given strip then would be provided
>with
>get/setStripVertexCountAtIndex(int index)
>
>Or is this too complicated and the array newInstance'ing/filling isn't much
>of a hit at all?
>
>
>------------------------
>
>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".
>
>===========================================================================
>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


_________________________________________________________________
Chat with friends online, try MSN Messenger: http://messenger.msn.com

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