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