Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Particle system
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Typical implementation == [[File:Dynamic Simulation of Air Particles (Bifröst).webm|thumb|Dynamic Simulation of Air Particles (Bifröst)]] Particle systems typically implement the following modules: * An '''emission stage''', which provides a location and generates new particles. * A '''simulation stage''', which update parameters and simulates how particles evolve. * A '''rendering stage''', which specifies how to render a particle. === Emission stage === An emitter implements a spawning rate (how many particles are generated per unit of time), the particles' initial velocity vector (the direction they are emitted upon creation). When using a mesh object as an emitter, the initial velocity vector is often set to be [[Surface normal|normal]] to the individual face(s) of the object, making the particles appear to "spray" directly from each face but this is optional. === Simulation stage === During the '''simulation''' stage, the number of new particles that must be created is calculated based on spawning rates and the interval between updates, and each of them is spawned in a specific position in 3D space based on the emitter's position and the spawning area specified. Each of the particle's parameters (i.e. velocity, color, etc.) is initialized according to the emitter's parameters. At each update, all existing particles are checked to see if they have exceeded their lifetime, in which case they are removed from the simulation. Otherwise, the particles' position and other characteristics are advanced based on a physical simulation, which can be as simple as [[Translation (geometry)|translating]] their current position, or as complicated as performing physically accurate trajectory calculations which take into account external forces (gravity, friction, wind, etc.). It is common to perform [[collision detection]] between particles and specified 3D objects in the scene to make the particles bounce off of or otherwise interact with obstacles in the environment. Collisions between particles are rarely used, as they are computationally expensive and not visually relevant for most simulations. === Rendering stage === After the update is complete, each particle is rendered, usually in the form of a [[texture mapped|textured]] [[sprite (computer graphics)|billboarded]] [[Quadrilateral|quad]] (i.e. a quadrilateral that is always facing the viewer). However, this is sometimes not necessary for games; a particle may be rendered as a single pixel in small resolution/limited processing power environments. Conversely, in motion graphics particles tend to be full but small-scale and easy-to-render 3D models, to ensure fidelity even at high resolution. Particles can be rendered as [[Metaballs]] in off-line rendering; [[isosurface]]s computed from particle-metaballs make quite convincing liquids. Finally, 3D mesh objects can "stand in" for the particles — a snowstorm might consist of a single 3D snowflake mesh being duplicated and rotated to match the positions of thousands or millions of particles.<ref>{{cite book | vauthors = Sims K | title = Proceedings of the 17th annual conference on Computer graphics and interactive techniques | chapter = Particle animation and rendering using data parallel computation | date = 1990-09-01 | chapter-url = https://www.karlsims.com/papers/ParticlesSiggraph90.pdf | volume = | pages = 405–413 | doi = 10.1145/97879.97923 | pmc = | pmid = | isbn = 0897913442 | s2cid = 2791741 | access-date = 2022-01-17 }}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)