Jump to content
  • Advertisement
Sign in to follow this  
Wardyahh

Particle System Design

This topic is 4160 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

hey again i have finished my (very) basic particle engine and am now in the design stage of my full system i have a first draft of features but just want to double check that i have all the essentials so if you think something is missing or needs to be changed please let me know or if you want to suggest a cool feature not already on there ..thats good too • Particle Grouping o Group Sizes o Rotation around centre o Attraction and repulsion within the group • Alpha Blending o Variable blending types • Variable emission rates o Emission rates that change over time o Emission to max particles o Emission to time limit • Variable particle sizes o Particles sizes that change over time o Different particles sizes for each particle o Random particle sizes within a range • Variable particle colours o Colour Cycle o Colour Change while running(on function call) o Colour change over time • Emission Patches o Particles emitted from lines, line strips and points o Particles emitted randomly from within a polygon  Possibly point weighting o Transformation of patches  On the fly and set pre-calculated transformations o Morphing  Morphing of individual points within the patch • Emission control o Emit towards a point o Emit away from a point o Emit in a direction o Emission flight paths  Possibly variable flight paths  Possibly Flight path cycle  Possibly Flight path change on the fly  Possibly emission flight path equation plug-ins • Velocity inheritance o Adjustable Percentage of velocity inheritance • Variable velocity and inheritance rates • Burst emission • Particle ribbons • Positional adjustments o Set up areas around the system that change the properties of the particles when they pass through it o Multiple areas o Multiple changes per area • Particles textures o Texture animations o Texture transformation o Decals o Support for shaders(height maps mainly) • Particles types o Quads, triangles , custom etc… • Constant systems • Particle attributes o Individual attraction/repulsion o Inter-particle collision detection • Pluggable or overridable control of particle movement o example sinusoidal motion or even AI • Pluggable or overridable particle renderer o a classic renderer might render each particle as a sprite or a geometry instance, another renderer might draw lines between particles for a lightening or web effect, another renderer might distort a nice blue shaded geometry-grid based on particle positions for a water effect. • Super emission(particles emitting particles) Thank You a lot of there were suggested in a previous thread so credit to original sugesters and not to me

Share this post


Link to post
Share on other sites
Advertisement
Hehe I remember this [smile]

Just an idea but how about conceptually...

Particle Emitter
• Emission Patches
o Particles emitted from lines, line strips and points
o Particles emitted randomly from within a polygon
 Possibly point weighting
o Transformation of patches
 On the fly and set pre-calculated transformations
o Morphing
 Morphing of individual points within the patch

• Emission control
o Emit towards a point
o Emit away from a point
o Emit in a direction
o Emission flight paths
 Possibly variable flight paths
 Possibly Flight path cycle
 Possibly Flight path change on the fly
 Possibly emission flight path equation plug-ins

• Variable emission rates
o Emission rates that change over time
o Emission to max particles
o Emission to time limit

• Velocity inheritance
o Adjustable Percentage of velocity inheritance

• Variable velocity and inheritance rates

• Burst emission


Particle Controller
• Particle Grouping
o Group Sizes
o Rotation around centre
o Attraction and repulsion within the group

• Variable particle sizes
o Particles sizes that change over time
o Different particles sizes for each particle
o Random particle sizes within a range

• Variable particle colours
o Colour Cycle
o Colour Change while running(on function call)
o Colour change over time

• Positional adjustments
o Set up areas around the system that change the properties of the particles when they pass through it
o Multiple areas
o Multiple changes per area

• Constant systems

• Particle attributes
o Individual attraction/repulsion
o Inter-particle collision detection

• Pluggable or overridable control of particle movement
o example sinusoidal motion or even AI

• Super emission(particles emitting particles)


Particle Renderer
• Alpha Blending
o Variable blending types

• Particle ribbons

• Particles textures
o Texture animations
o Texture transformation
o Decals
o Support for shaders(height maps mainly)

• Particles types
o Quads, triangles , custom etc…

• Pluggable or overridable particle renderer
o a classic renderer might render each particle as a sprite or a geometry instance, another renderer might draw lines between particles for a lightening or web effect, another renderer might distort a nice blue shaded geometry-grid based on particle positions for a water effect.


Particle System
• References a ParticleEmitter, ParticleController and ParticleRenderer
• Could be responsible for storing the particles?
• Mediates particles between the above 3 classes.

Share this post


Link to post
Share on other sites
aha...hello again

funnily enough i had just grouped them but looking at it yours makes more sense :)

thanks

Share this post


Link to post
Share on other sites
My idea of a particle system has been starting a bunch of pixels off with different positions and velocities and letting them fade away for blood splashes and stuff but apparently there is more to it than that 'eh? Can somebody enlighten me as to how you would use geometry primitives (triangles, quads, etc) as particles?

Share this post


Link to post
Share on other sites
Instead of drawing a pixel, draw a quad. In 2D its as simple as that, in 3D you probably want to transform each quad to face the camera.

Share this post


Link to post
Share on other sites
Maybe I need to pay more attention to particle effects in games, it just seems weird to have a bunch of shapes flying around after an explosion or something. Pixels look like dust but squares, triangles? I'm clearly wrong on this, it just seems strange to think about it.

Share this post


Link to post
Share on other sites
I think a fairly standard approach would be to render quads facing the camera, and use an alpha map to blur the particle (e.g. use a circular falloff gradient)

Share this post


Link to post
Share on other sites
Quote:
Original post by My_Mind_Is_Goingbut squares, triangles? I'm clearly wrong on this, it just seems strange to think about it.

They don't appear as quads/triangles onscreen -- the particles have textures with alpha so you can't see the borders! Using 'pixels' is almost useless; many modern engines don't even use/manipulate pixels directly, because resolution independence is so valuable.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!