﻿ Game Programming

Free JavaScript Editor     Ajax Editor ﻿

Main Page

## Chapter 19. Particle Systems

"Electricity is actually made up of extremely tiny particles called electrons, that you cannot see with the naked eye unless you have been drinking."

Dave Barry, The Taming of the Screw

KEY TOPICS

• Anatomy of a Particle System

• The Particle Data Structure

• Some Notes on Architecture

• Speed-Up Techniques

• In Closing

In previous chapters, we discussed how to represent many different environments in a computer game. From a dungeon to a vast plain along with its populating characters, we have explored how to decompose graphics into triangle arrays, so they can be efficiently rendered by the graphics subsystem. The more triangles we use, the richer and more engaging the representation. As a clear sign of devotion to triangles, remember the famous quote by one of the founding members of Pixar way back in the 1980s, "Reality is 80M triangles per second."

However, some effects are hard to imagine in terms of triangles. How many triangles does a bonfire have? And how about the mist that clings to a mountain top? And a tree? These are items we need to represent, but are nontrivial to express in terms of triangles. We tend to think in terms of simple solid structures inherited from platonic solids (cubes, spheres, and so on). But everyday life continually challenges this simplicity, making us think of creative ways of depicting its richness.

This chapter (along with subsequent chapters) tries to explore techniques designed to render "advanced" effects such as the ones just mentioned as well as many others. In this chapter, we will explore particle systems, which are a mathematical formalism that can be used to represent dynamic, complex behaviors such as smoke and waves. The next chapter will specifically deal with organic rendering techniques, covering most natural phenomena, either static or dynamic in essence. The following chapter will deal with the procedural paradigm, which is a powerful tool used to represent complex geometry in an efficient way.

﻿

Ajax Editor     JavaScript Editor