CS488 - Introduction to Computer Graphics - Lecture 28


Examples of Micromodelling

Human skin

Obviously the second strategy is better,

Note two different definitions of `agrees with reality'.

Newly cut grass

Parametrize the BRDF

if it's possible

Surface of CD

Close together linear scatterers

Calculate interference

Particle Systems

What are they?

  1. Collections of particles that taken together represent something
  2. Each particle has
    1. an initial state
      • position
      • velocity
      • size
      • colour and/or luminosity
      • etc
    2. an update function
      • changes the state
      • can have random perturbations
  3. Dynamics has

How to use them for animation.

  1. Something starts emitting particles at time t0
  2. At each subsequent time step
    1. Existing particles are updated
    2. Dead particles are removed
    3. New particles are created
    4. All particles are rendered.
  3. Until all particles are dead (for animation).

How to use them for visualization.

  1. Example. For visualizing motion in a fluid
    1. Add particles upstream
    2. Let them be carried by the fluid
    3. Until the fluid flows out of the scene.

How to use them for ray-tracing.

Two ways

  1. Let the particle system get into a steady state, then freeze and put into the scene.
  2. Accumulate the path of each particle, then use it as the shape of a linear primitive

Fractal Terrain Generation

What is it?

How is it done?

  1. Start with a polygon covering the terrain
  2. Divide each edge in two by positioning a new vertex in its middle.
  3. Add new edges.
  4. Iterate to 2 until it's good enough.


  1. Gets expensive fast. Do as few iterations as possible.
  2. Don't look directly down on it. Why?
  3. h(n) will need extensive tweaking. Don't get discouraged if you don't get the results you want right away.
  4. You could do the first few iterations by hand to control the large-scale result.

What is it good for?

  1. Mountains
  2. Rolling hills
  3. Sand dunes. You will want h(n) to depend on the direction of the edge.
  4. etc.

Return to: