CS488 - Introduction to Computer Graphics - Lecture 23

Ray Tracing

Distribution Ray Tracing

What's wrong with

  1. Beam tracing
  2. Super sampling
  3. Stochastic sampling

It doesn't try explicitly to put the work into the places that make the most difference.

Trying to do so we should get heuristics like

Here are a few such heuristics

Distribute carefully over

  1. Reflection directions <==>
  2. Area lights <==>
  3. Time <==>
  4. Anti-aliasing

These techniques are hard!


Constructive Solid Geometry (CSG)

Geometric primitives can make other geometric primitives by

  1. union
  2. intersection
  3. subtraction

This is like sculpting.

The result of doing CSG modelling is a complex Boolean expression to be evaluated.

E.g. Cylinder, A, with stretched cube, B, subtracted unioned with a small sphere, C.

build the expression tree
for each CSG primitive
   find entry and exit intersections
   recursively evaluate the expression tree

Texture Mapping


  1. Start with a 2D image: pixellated or procedural
  2. Map 2D image onto primitive using a 2D affine transformation
  3. Backwards map intersection point with ray into the image to get the surface properties

Normal Mapping, aka Bump Mapping

  1. Start with a difference surface, defined with respect to the surface
  2. Calculate the normals to the difference surface and map them onto the surface of the primitive
  3. Use the mapped surface models for lighting
  4. No occlusion, shadows are wrong, silhouettes are wrong, nobody notices!

Solid Textures

  1. Solution to mapping texture onto curved surfaces
  2. Usually procedural

Return to: