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.