## Ray Tracing

Course: CS500

Instructor: Jason Hanson, Ph.D.

Type: Solo project

Language: C++

## Overview

This part focuses on rendering techniques used for ray tracing. The course culminates with an implementation of a path-tracing algorithm able to generate images demonstrating lighting and modeling techniques not found in traditional real-time graphics. Topics include solid modeling, intersection calculations, and illumination models.

## Surface intersections

Now we need to know how to test whether a given ray intersects an object in the scene or not. We do this for various elementary mathematical entities: spheres, quadrics, boxes, polygons, and cubics. Other, more complicated, objects can be built up from these basic types.

## Spheres test

Ray caster render

Ray tracer render

## Ellipsoid test

Ray caster render

Ray tracer render

## Mesh test - DP logo

Ray caster render

Ray tracer render

## Camera test

Ray tracer render

Ray caster render

## Reflection test

Ray tracer render

## Transmission test

Ray tracer render

## Fresnel test

Ray tracer render

## Attenuation test

Object attenuation

## Learning Outcomes

After the completion of this course, I understand the various ray intersection techniques discussed: implicit surfaces, the intersection of two or more surfaces, using modeling transforms. And I understand the physical basis of illumination models: the effects of the particle and wave properties of light, how light interacts with materials, radiance and solid angles, the Fresnel equations.