Particle system improvements

edited Apr 14, 20:53 in General
I've seen a lot of discussion about changing the format of 3d models, but never about improving particle system. As a person dealing with the effects every day and working with the particles, I can offer some solutions.
1. First of all and most neat thing is a per_particle twist. We need to have a random {from, to} start angle at first. That will give us a great diversity in visual of the effect.
sg_rndTwist01.png
sg_rndTwist02.png
The model particles, or geometry already have that, but we need to have a billboarding (always rotating to camera) feature.

If we can have a runtime per-particle rotation option (say start angle {rnd-180,180}; end start_angle+60), what will give us additional benefits.

2. The next is scale in X and Y axis. Not all the particles need to be a square proportions. We may have a 1:10 proportional in some ray particles. And we need to have a start and runtime per-particle scale.

3. Particles pivot point. If we can have a pivot in normalized particle space, we can have a good-looking effect. That can affect one particle system once and all_the_time. No need to animate that parameter. Animation in X and Y scale (+ particle motion) will give us desired result.
sg_ptPivot00.png
sg_ptPivot01.png

That is not all I have to say about particles, but that is most important ones. I will write some more later.

Comments

  • Good suggestions. I'll put together a proposal page for the Roadmap.

    At this stage I can't say when exactly we have time to improve the particle renderer. It certainly needs an internal redesign, though; the current implementation does not scale well at all, and it doesn't take advantage of the GPU.
  • A particle system like this would be a drastic and much needed improvement. My current particle effects are really detracting from the rest of the assets.
  • The main issue with the existing particle system is that it is entirely CPU based right up until the point where individual particles need to be visualized (which are presently transformed by Doomsday itself, btw). This is one of the reasons why in recent times it hasn't seen much development because ideally, we'd shift most of the physics simulation for particles onto the GPU. This in itself requires significant changes elsewhere (i.e., we need to stop drawing the world in "immediate mode"). Consequently the particle system will likely be one of if not the last renderer subsystem to be given the 2.0 redesign treatment.
  • Also, don't know if this comes into it or is a separate issue, but it would be great to be able to design and made the particle effects in real time. Like a sort of Doomsday particle maker environment. This way we can change attibutes in real time and see their effects. At the moment having to jump in and out the game each time I tweak something is tedious. Maybe some of this can be done in the console I don't know, but I like editors of a sort?
  • bcwood16 wrote:
    Also, don't know if this comes into it or is a separate issue, but it would be great to be able to design and made the particle effects in real time. Like a sort of Doomsday particle maker environment.
    That is a great idea. I added it to the tracker: http://tracker.skyjake.fi/issues/1698
  • Note that it is already possible to edit a particle generator definition while Doomsday is running and then instruct the engine to update the generators when you're done, using the reset command.

    A built in particle effect editor would be pretty cool though.
  • Is it possible to make real time dynamic shadows for monsters and objects?That would be really cool.
  • Another good feature is a "world" and "local" particle spaces. Sometimes there needed not to spawn particles in world, but inherit generator's position and orientation. The good example is Psychikon's vial pickup, there bubble's self position with all dynamics need to be added to vial's position in each game tick.
    WorldLocal.gif
  • It would be neat if it was more real in the sense that the bubble always stay in the jar, but do respond to momentum.
  • gary wrote:
    It would be neat if it was more real in the sense that the bubble always stay in the jar, but do respond to momentum.
    Technically this is a world space particles with a movement inherit coefficient inside a volume collision feature. But that is not a gas in liquid realistic behavior.
  • Also It would be great to ged rid of indexes (pt_tex01 as Particle01.tga for example) and allow using of custom textures for particles, because if I have 2 packs, where each of them using pt_tex01, but Particle01.tga is different in each of them, the only way to use those 2 packs at the same time is modifying DED (changing indexes) and renaming "Particle01.tga" textures.
Sign In or Register to comment.