1 / 29

CO1301: Games Concepts

CO1301: Games Concepts. Lecture 15 Particle Systems. Dr Nick Mitchell (Room CM 226) email: npmitchell@uclan.ac.uk Material originally prepared by Gareth Bellaby. Particle systems. A particle system is a simulation of phenomenon such as smoke, rain or fire as a set of discrete particles .

Download Presentation

CO1301: Games Concepts

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CO1301: Games Concepts Lecture 15 Particle Systems Dr Nick Mitchell (Room CM 226) email: npmitchell@uclan.ac.uk Material originally prepared by Gareth Bellaby

  2. Particle systems • A particle system is a simulation of phenomenon such as smoke, rain or fire as a set of discrete particles. • Discrete means separate. • The different type of effects are created by changing: • textures • blending • colour • physics of the system

  3. Efficiency • Typically quads are used: • Faster than a model with depth. • Orientated towards the camera so that they always appear 3D.

  4. Emitters • A particle system has an emitter. • Particles come out of the emitter. • They have an initial velocity. • They have a lifetime. • This could be dependent upon time (e.g. die after a certain point) or location (e.g. die when they hit the ground) • You could re-use a particle after it has died. A particle that has died is re-emitted. In this way the particles cycle around and around. A system has been created.

  5. Basic physics of the system • The central concept is that particles have an initial velocity, and then gravityis then applied to them. • Gravity will change the velocity of the particle over time. • Different particles in the system will be moving at different speeds. • Gravity only affects the y-component. • You could apply other forces: • e.g. drag because of air resistance. • swirling because of wind.

  6. Types of particle systems • The appropriate physics is applied to the particles. • No hard and fast rules: • It is a matter of aesthetics and the effect you want to achieve...

  7. Fountain • Single point emitter. • Particles are emitted in a small fan. • Fast initial velocity. • Blue particles • Blend so that overlaid textures darken. • Physics is an initial velocity outwards. Gravity then pulls the particles downwards. • Gravity causes them to fall after a period. • Destroyed when hit the ground.

  8. Smoke • Single point emitter • Grey particles. • Blend so that overlaid textures darken • Smoke gently rises (because smoke is light and the emitter is a heat source) • The air is hot so it rises and the smoke is light and gets carried along. • A small amount of gravity. • Destroyed after a certain amount of time. • Could use swirling, e.g. employ noise.

  9. Rain • Surface emitter • Grey particle. • Maybe use a streak. • Blend with high transparency. • Probably little or no overlay. • Drop downwards with a constant velocity.

  10. Fire • Red/yellow particles • Blend so that overlaid textures lighten. • Single emitter • Short lifetime. • Higher velocity. • Die quickly.

  11. Explosion • Red/yellow particles • Single emitter. • May all be emitted at same time. Some may be delayed. • Emitted in all directions or in a wide fan. • High velocity. • See Steve Rabin, "Powerful Explosion Effects Using Billboard Particles", Game Programming Gems 5.

  12. Particle maths • Velocity v is distance d divided by time t.

  13. Particle maths • Constant acceleration is the rate of change in velocity: • So after a “period of time” the new velocity will be the old velocity plus the amount of change over that time period:

  14. Particle maths • Need to look at velocity and acceleration • Velocity is units per second, e.g. metres per second • Acceleration is units per second per second, e.g. metres per second per second • This is important when taking time into account. • Using the frame time, apply the velocity but multiply the velocity by the frame time.

  15. Particle maths • If we want to calculate the effect of acceleration: • calculate the new velocity using the frame time • apply the velocity and again multiply the velocity by the frame time. • Note the way that frame time is implicitly taken into account twice because it is units per second per second.

  16. Programming: data structure • We could use an array to store all of the particles • The particles cycle around • We can use a dynamic data structure such as the STL <vector> class. • The <vector> class is like a dynamic array. • Dynamic in the sense that you can change it’s size on-the-fly at run-time. • It has nothing to do with the vectors of 3D graphics despite its name. • Why not research this yourself. • I may well add it to the summer work...

  17. Euler integration • Stateful version. • Version you will use in the lab.

  18. Euler integration • Expressed as a position

  19. Varying the direction • Want all of the particles to have the same initial velocity. • Nice to have the particles "fan out" from the emitter. • Random element. • Offset in the along the x-axis. • Use the maths of right-angle triangles to calculate the components of the movement vector.

  20. Varying the direction

  21. Closed function • There is an alternative way of thinking about the maths of particle systems. • Stateless version. • Used by Luna in his chapter on particle systems. • Simple. • Drawback is that it only uses the one acceleration: so you can't apply other physics to the particles in mid-movement.

  22. Closed function • Do not need to record the velocity frame by frame. • Simply need the starting velocity, acceleration and the time passed since the particle was at that starting velocity.

  23. Closed function

  24. Maths • Want to find the average velocity over a period of time. Acceleration is a constant. Therefore can do a simple average. • Average velocity is displacement over time

  25. Maths • These are equivalent, so let's put them together.

  26. Maths • Can substitute one of the earlier equations into this (from slide 13)

  27. Other variants exist • May want sometimes to employ other variants. • Also useful to combine different accelerations. • See Latta and the maths books

  28. References • Jeff Lander, "The Ocean Spray in Your Face", http://www.double.co.nz/dust/col0798.pdf • Lutz Latta, "Building a Million Particle System." In GDC 2004 Proceedings, http://www.2ld.de/gdc2004/ • Lutz Latta, "Everything about Particle Effects", www.2ld.de/gdc2007 • More articles at his site: http://www.2ld.de/ • John van der Burg, "Building an Advanced Particle System". http://www.gamasutra.com/features/20000623/vanderburg_01.htm

  29. References • Van Verth, Essential Mathematics for Games and Interactive Applications: A Programmer's Guide. • Wendy Stahler, Beginning Math and Physics for Game Programmers • NVidia developers site • ATI developers site

More Related