In 2019 I took Dr. Stephen Guy's course on Real-Time Rendering Technologies, where we learned about algorithms to speed up rendering, including spatial data structures, resource management and compression, and GPU programming.
In 2018 I took Dr. Gary Meyer's course on advanced graphics, learning a variety of topics including relfectance functions, image-based rendering, spatial data structures, sampling theory, monte carlo integration, and hidden surface algorithms.
In 2017 I took Dr. Stephen Guy's course on introductory graphics, learning and implementing a basic raytracer, an image processing library, and OpenGL code.
Primary Language: C++
Using Liam's Progression engine-framework, we added support for a deferred rendering pipeline with directional shadow maps, SSAO, compressed specular and diffuse buffers, and octahedral encoding for normal maps in Vulkan.
Combined a spatial data structure (bounding-volume hierarchy) with view-frustum culling and level-of-detail switching to render 1,000,000 teapots (~2.5 billion triangles) at 60 frames per second.
By using render textures, a displacement image can be generated to bend the grass away from the ball, making for realistic physical interactions between objects and the foliage.
Combining the efforts of three skilled graphics students, a hologram was generated using the "Pepper's Ghost Illusion." A snowman was projected onto a holographic display, where it appeared to be floating in space. The snowman reacted to facial changes through a webcam, mimicking the user's smile.
A multi-threaded raytracer that handles reflection, refraction, shadows, and supersampling, for spheres and tris. A parser was also written to load the models and environments to render.
Designed, modeled, rigged, textured, and animated a character using Blender, utilizing artistic principles of animation to achieve convincing "lifelike" behavior.