next up previous
Next: The Implementation Up: Real-Time Ray Tracing on Previous: The Renderers

The Algorithm

The algorithm used is the standard screen-space subdivision ray tracing, where parts of the screen (in this case, pixels) are assigned to different processors for parallel processing. Each processor computes the initial ray depending on its position on the screen, then traces the way into the model, intersecting with the objects, reflecting and shading as necessary.

The outline for each processor's algorithm is as follows:

  ray <-- initial ray
  for each generation do
    MinT <-- MaxInt
    for each sphere do
      Enable this processor
      T <-- intersect Ray with Sphere
      if T is imaginary or T < 0 or T > MinT then
        Disable this processor
      endif
      MinT <-- T
      Pt <-- Ray * T
      Norm <-- (Pt - SphereCenter) / Radius
      Shade based on Normal dotted with light vector
      Ray <-- Reflection ray
      Disable this pixel for future calculations in this generation
    end
  end

The projection can be orthogonal, where the tail of the initial ray is variable but the direction is constant, or perspective, where the opposite is true.



Lawrence Kesteloot
Tue Jan 24 16:36:27 EST 1995