Shawn:

Does each particle in the system have to be coplanar?  Would it be possible
to assemble the particles in a cylinder around a point and rotate the
particles, keeping each particle facing the image plate?

Dave Yazel
Cosm Development Team

> ----------
> From:         Shawn Kendall[SMTP:[EMAIL PROTECTED]]
> Reply To:     Discussion list for Java 3D API
> Sent:         Tuesday, October 24, 2000 9:24 PM
> To:   [EMAIL PROTECTED]
> Subject:      [JAVA3D] Particles System and GeometryArrays
>
> <<File: particle-by-ref.jpg.jpe>>
> Ok, kudos to Uma and Kelvin for helping me work through this one!
> Thank you, thank you.
>
> Here is a short explanation of what we are doing and the results.
>
> We implemented a "Particle System" (I prefer Manager, it's not really a
> system) in Java3D.
> Our first attempt was simple using TransformGroups, Shape3D's and
> behaviors for every particle object.
> This works, but of course, is way to slow.  However, it is no too slow
> because of Java3D or something else, it is simply because using many
> Transforms and Behaviors is going to be expensive.
>
> In gaming, a particle system is usually two classes may be even one, the
> particle, and the particle updater or manager.
> We reviewed several straight OpenGL and D3D particle systems before
> implementing our second system.  All of the systems we found only use a
> Quad or TriStrip for each particle.  When that is the particle's geometry,
> optimizations can be set up to take advantage, so only TWO full vector
> transformations need to be computed for the entire system to be
> "BillBoarded" correctly.  So we knew we would try this technique using no
> TransformGroups, one Shape3D, and one Behavior.  To do it right we needed
> to get as close to the GL_TRIANGLE level that we could in Java3D.  With
> help from Uma and Kelvin, we have implemented two different version, one
> using the direct set methods in GeometryArray and one using the by-ref
> mode of GeometryArray.
>
> First off all, both methods where orders of magnitude faster than the
> multiple TransfromGroup/Shape3D/Behavior method.  We still had some
> rendering problems, but that is practically fixed in the pre-beta.
> Second, once the by-ref method was up and running we got another 100%
> increase in frame rate (for our particular particles test case anyway and
> on a GeForce H/W T&L).  Needless to say it was much faster and looks
> great!
>
> Now making a particle system like this is not nearly as versatile as the
> full TransfromGroup/Shape3D/Behavior system.  It can only do billboarded
> and usually alpha textured quads.  This is the classic particle engine in
> games.  Sometimes you need real geometry that had independent rotation,
> etc.  I call that Debris (from my simulation days)  so we are planning to
> keep the original system and improve it to complement the particle system
> when that kind of look is wanted.
>
> I attached a picture for fun.
> For those interested, I plan on writing all of this up more formally with
> code and benchmarks soon.
>
> --
> ___________________________________________________________
>
> Shawn Kendall               Full Sail Real World Education
> Course Director             3300 University BLVD
> Real Time 3D for Gaming     Winter Park FL 32792
> [EMAIL PROTECTED]       http://www.fullsail.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