I want to create particles in 3D, where shall I start

Should I create quads for each particle or is it too performance demanding I heard of something called point sprites, sounds nifty and somewhat limited, but how do I create a point sprite

And please don't point me to the Mercury project, I know they exist.


Re: XNA Game Studio Express 3D Particles?

Gregory English

Particle Systems are one of the funner, not-so-hard to create components in a lot of games. The general way to create a particle is to give a position, velocity, accel, and a couple of other properties to control its movement. The way you draw them would be to use a 4 vertex quad, or by using point sprites. If you google D3D point sprites you'll find a bunch of tutorials on it. It generally lets you pass a single vertex for each particle, and the system will generate everything else for you. The same states in D3D for point sprites are here in the graphicsdevice in XNA. hl=en&q=Point+Sprite+Tutorial

Re: XNA Game Studio Express 3D Particles?


Off the cuff, for point sprites, would it be better to do particles using a shader, so the GPU does the work I've seen a tutorial on using shaders for particle systems, but I was also thinking of creating a thread to do particles with to help speed things up. Thanks.

Re: XNA Game Studio Express 3D Particles?

Shawn Hargreaves - MSFT

Doing particle animation in the vertex shader is by far the fastest approach, as long as your particles are simple enough that they are possible to do in this way. Especially on Xbox, that will let you have orders of magnitude more particles than you could ever do on the CPU.

The limitations are that you can't so easily do more advanced effects like bouncing and physics interactions, but for the vast majorty of simple particle systems, vertex shaders are great.