I'm using a TriangleStripArray for the entire set of particles in our particle system.  Every four verts make up a two triangle quad that is the particles geometry.  Everything is working great except for one thing.
When we have less than the "max" number of particles "live" in the scene, I would like to have the other particles not rendered.  To do this I am setting setValidVertexCount() to be only as many particles that are live (times 4- one for each vertex of the TriStrip).
However, setting setValidVertexCount does not seem to have any effect if there is valid data in the GeometryArray.  In other words, if I set some particles coords/colors etc. then later setValidVertexCount() to less than the valid data, I still set the "dead" triangles in the Shape3D's render.

Am I using this correctly?  Do I also need to use setInitialVertexIndex()?  I have tried that too but still didn't get it working correctly.
What is the correct way to limit the GeometryArray's render?  I considered using By-Ref but from what I understand, the direct copy set methods will be faster than By-Ref in this case because the TriStrip can be made into vertex bufferes(D3D) or display lists(OGL) and will get T&L acceleration.  Is that correct?  Or does all the set() methods just cause a complete recopy to the hardware anyway so then By-Ref could be used?
Any ideas on this one?
Thanks for any help.
I tried on DirectX1.2 beta and OpenGL 1.2 release, but it made no difference.

--
___________________________________________________________

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
___________________________________________________________
 

Reply via email to