Particle Collision
As for the update/creation of the texture. I'd still consider using a CPU approach or a CPU/GPU mix. When you build your terrain (at one point you do create those meshes anyway) create the height map as well. When your terrain changes you could then issue small update draw calls (e.g. point lists).
Good luck.
Edit: Google "toroidal update". I've seen this in conjunction with geo clipmaps (heightmapped terrain) to cut down height texture update.
How would you go about determine if a particle collided with something?
Many tomes of ancient knowledge have been compiled regarding this diverse subject matter. Writing your own collision detection system will in most cases be inefficient, so see if you can find preexisting third party libraries that can efficiently handle this for you before you excrete hours of strainful programming poop from a height over your codebase. It really is a fun subject matter to jump into as a programmer by pleasure, but before you make any decisions you need to assess how important your priorities in programming are.
How would you go about determine if a particle collided with something?
Many tomes of ancient knowledge have been compiled regarding this diverse subject matter. Writing your own collision detection system will in most cases be inefficient, so see if you can find preexisting third party libraries that can efficiently handle this for you before you excrete hours of strainful programming poop from a height over your codebase. It really is a fun subject matter to jump into as a programmer by pleasure, but before you make any decisions you need to assess how important your priorities in programming are.
what....
How would you go about determine if a particle collided with something?
Many tomes of ancient knowledge have been compiled regarding this diverse subject matter. Writing your own collision detection system will in most cases be inefficient, so see if you can find preexisting third party libraries that can efficiently handle this for you before you excrete hours of strainful programming poop from a height over your codebase. It really is a fun subject matter to jump into as a programmer by pleasure, but before you make any decisions you need to assess how important your priorities in programming are.
what....
what... (x2)
The first "new gen" stuff I recall is Lutz Latta's "Building a Million Particle System". Also called "UberFlow". The performance was nothing short of incredible, considering it run on midrange Shader Model 3. It apparently ran on Shader Model 2 as well but I'm not sure.
How would you go about determine if a particle collided with something? We finally got GPU particles working but for rain we want it to create a new particle on collision with the ground. How might one go about doing this?
I cannot find the original resource, but this presentation from AMD seems to include it.
Note that this system can make particles collide and react to height fields.
Another presentation from GDC2007 covers particle effects from a game in the Command & Conquer franchise. You might notice some similarities with Uberflow but it provides a major update and several artistic reasoning when it comes to why instead of how.
Main problem is essentially finding a way so particles can collide with arbitrary geometry without killing their perf. So far the only sure thing is that you cannot just push the whole collision geometry data to a PS. Will you go for the "subset" approach? Or maybe you'll prefer voxelization? I'm torn myself.