Game Boy Color (TM)

This is a screen shot of a Game Boy Color (TM) game that I made using GBC assembly. The screen shot shows it running in an emulator called No$gmb. I implemented background scrolling, collision detection, and animation. The player can run and jump onto and off of platforms. There are a number of screens that are not shown here. The player just has to get a key without dying.

Click to enlarge.

Game Boy Advanced (TM)

These are screen shots from a Game Boy Advanced (TM) game that I made using the HAM GBA SDK. The screen shots on the left show title screens that set up a story, and the screen shot on the right shows what the game play looks like. It is shown running in an emulator program called vbawin. I used most of the RAM in order to make two detailed backgrounds that scroll at different speeds in order to create a parallax effect. One background has transparency so that it hangs over the other. The sprites have a rather large amount of key frame animation that was rendered in 3ds Max in order to make them appear to be 3D. There's also collision detection, palette animation for the water, and a life bar.

Click to enlarge.Click to enlarge.

2D Software Graphics

This is a screen shot from a real time 2D software graphics project that I worked on. The project uses windows drawing functionality. I implemented linear interpolated shading, picking, collision detection, and animation. The polygons are constructed of triangles. There are two balls that move inside of the hexagon and collide with the shapes inside. The green polygon in the center rotates and knocks the balls in different directions.

Click to enlarge.

AFD Level Editor

This is a screen shot from a level editor that I made for my sophomore game project called Appetite for Destruction. It exports text files with level data that is parsed by a 2D graphics engine. The level editor is built with Direct3D in C++. It allows the user to position and rotate level geometry such as obstacles and spawn points.

Click to enlarge.

3D Software Graphics

This is a screen shot from a real time 3D software graphics project that I worked on. The project uses windows GDI drawing functionality. I implemented all transformations, a camera, interpolated shading, wire frame drawing, clipping, picking, shadow, and perspective correct texture mapping.

Click to enlarge.

3D Software Graphics

This is a screen shot from another real time 3D software graphics project that I worked on. The project uses OpenGL drawing functionality. I implemented transformations and various special effects. The software rasterizer that I implemented handles concave polygons. The top left window shown in the screen shot displays flat shading, the top right window shows Phong shading with attenuation, the bottom left window shows mipmapping, and the bottom right window shows bump mapping. The window with the torus shows reflection mapping.

Click to enlarge.

Ray Tracer

The following are screen shots from a ray tracer that I made. Windows functionality is used to render pixels on the screen. I implemented specular lighting, attenuation, reflection, transmission, shadows, and texture. I used CSG in order to ray trace spherical lenses and boxes. I implemented an arbitrary implicit parametric root finder using Sturm Sequences and False Position. It currently handles implicit equations up to degree 12, but I have only used it for equations up to degree 6. I ray traced the last image for my senior project. See the documents for more information.

Click to enlarge.Click to enlarge.Heart Tracing
Click to enlarge.Click to enlarge.Piriform Tracing
Click to enlarge.Click to enlarge.Click to enlarge.

Curves

The following is a screen shot taken from two applications that I made for a math class. One demos Bezier Curves and the other demos De Boor Splines. The user can choose to calculate the Bezier Curves by using linear interpolation or midpoint subdivision. An arbitrary number of control points can be generated for both applications and the control points can be picked and moved while rendering the curves.

Click to enlarge.
mouseover