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.

© 2019 By Wonjae Jung