jeff young  
  ::  home  ::  portfolio  ::  resume  ::  

     After a quarter studying the fundamentals of ray-tracing, I had built a raytracing application supported by all the required classes - points, vectors, rays, polygons and shape primitives.
     Dr. John McDonald provided the Win32 framework for the applications. The code was written to specification, demonstrating both graphics fundamentals and raytracing techniques. Topics discussed in class include:

  •  point and vector operations
  •  dot products and the law of cosines
  •  cross product and orthonormal axes construction
  •  rotation, scale and translation matrices
  •  rotation about an arbitrary axis
  •  order of operation with matrices
  •  Guass-Jordan elimination for solving matrices
  •  ray intersections with primitives
  •  determining the normal orientation of a polygon
  •  surface normal and tangent vector transformations
  •  the Phong illumination model
  •  distant and point light sources
  •  shadow calculation
  •  relection ray recursion
  •  refraction rays and Snell's Law
  •  Fresnel's Formula for reflectance transmission
  •  optimization with bounding boxes
  •  CSG operations
  •  procedural texturing (a checkboard pattern)
  •  antialiasing and signal sampling
     Some of the applications built during the class including the final raytracer are provided below.

:: raytracing ::
:: raytracing downloads ::

Instructions

     After extracting the zipped files, run the executables.

     :: Download raytracing applications ->

     The images to the left are screenshots of the applications. Here's a description of each application.

  •  PolygonTransform.exe - Demonstrates polygon transformation with scales, rotations and translations.
  •  RaySphereIntersect.exe - Demonstrates ray intersections with transformable spheres.
  •  RayPolygonIntersect.exe - Demonstrates ray intersections with transformable polygons.
  •  Raytrace.exe - Raytraces a complete scene, with reflection, refraction and shadows.

all content copyright © 2004-2005 jeff young