Ian Washburne's Final Project

Little Drummer Boy


This project is an exploration into the world of hierarchical modeling. The scene shows 5 hierarchies (3 of which revolve around the bass drum, the other 2 are the combination of forearm and drumstick).

Everything is built out of either a robot obj (provided by Cal Poly's ART students) or out of a cylinder obj file.


WASD - Move Camera

Scroll mouse - Rotate Camera

N - Toggle Normal Shading

Drum Set

Spacebar - Bass Drum

F - Snare Drum

G - Crash Cymbal

U - High Tom

I - Low Tom

J - High Hat

H - Open/Close High Hat

Note about Audio

The audio can only play one sound at a time (as threading is too much effort, as well as out of scope for a graphics class) so don't expect to fully simulate a drum set with this program.


The following image shows the starting view:

This next image shows the drummer in one of his poses:

Here is another example of the Hierarchical Modeling. The base is the base and there is a pedal and beater attached to it. On the beater is a head:

In fact, behind the bass pedal you can see the other hierarchical component, the high hat pedal.



The audio library is OpenAL. Download from http://kcat.strangesoft.net/openal.html

Example code for running OpenAL from http://ffainelli.github.io/openal-example/

Example code for loading WAV files from http://www.cpp-home.com/tutorials/333_1.htm *NOTE* The WAV webpage doesn't incorporate other various headers that WAV files may use. It also is incorrect. There are instances where the webpage reads in a short when 4 bytes are desired or when the webpage reads in an int when only 2 bytes are desired. The code in this project has been corrected to work.

The wav clips were found at http://www.freedrumkits.net/drum-kits/1323-krush-sound-drum-kit


The robot obj was provided by Zoe Wood, and was originally created by a Cal Poly student. Slight modifications were made using MAYA, so as to make loading easier.