School Projects

Deferred Shading Pipeline with SSAO and Motion Blur


Advanced graphics class independent study project
  • Set up a deferred shading pipeline in DirectX 9.0 using multiple render targets
  • Implemented a screen space ambient occlusion pass using the g-buffers
  • Developed my own method for applying motion blur which is more accurate for animated objects and creates fewer depth errors than commonly used methods.
Click here to view my final presentation slides for the project (PDF format)

CS460 - Advanced Animation Projects

Heirarchical Animation with Motion along a Path
An animated skeleton hierarchy is loaded from a .X file and animated using OpenGL and a custom quaternion library.
The user can then define a cubic spline loop of several control points. The distance along the curve is evaluated dynamically to ensure constant speed as the skeleton walks along the path.
Inverse Kinematics using Cyclic Coordinate Descent(CCD)
Inverse Kinematics calculations are done on a variable-length chain of bones using CCD to enable it to smoothly reach randomly positioned points in 3d space.
Cloth Simulation
A textured cloth is simulated by a network of point masses connected by springs.
The cloth is affected by gravity, wind, and collision with other objects.

Hover over each image for project descriptions.

CS350 - Graphics Optimization Projects

Efficient View Frustum Culling
An optimal hierarchy of axis-aligned bounding boxes is generated from a scene populated with objects.
Several heuristics are used during the construction of the hierarchy and at runtime for fast view frustum culling.
View Cell Generation
A large number of potential visibility sets (PVS) are generated for a given 3D environment.
The PVS's are then merged together into optimal sized view cells.
Then for any given position, a list of potentially visible objects can be retrieved without much additional processing or memory overhead at runtime.

Hover over each image for project descriptions.

S4 - 2010


Statistics class project built with PHP and XML/MySQL

Generates detailed statistics from a database of rhythm game scores. Includes dynamic charts and sorting.