3D Graphics Projects

In the early 2000s, I was very interested in 3D graphics and game programming. I took many online courses and wrote several applications to help me with the learning process. Here are some highlights.

Shadow Volumes Project

This is a project I worked on for a class I took at the now defunct viCampus. We were given an application that rendered an animated Quake II MD2 model and moved it through a small level. Our task was to add shadow volumes with falloff depending on how far from the light sources the character is.
There are four point lights located in the four corners of the room. Simple PVS was added so that only lights that can see the model form a shadow volume. I also added a bezier curved path so the model would move smoothly around the corners.
It is written in C++ using Direct3D 9.0

Advanced Rendering Project

This is a project I worked on for an Advanced Rendering class I took at viCampus taught by Wolfgang Engel. We were given an application that rendered an animated Quake III MD3 model using several shaders. Our task was to add shadow mapping and HDR using HLSL. First I added a floor and a shadow map effect. Then, I added HDR using an RGBE8 encoded render target and a Bloom filter with a user adjustable exposure factor.
It is written in C++ using Direct3D 9.0 with HLSL shaders.

Quake III Viewer

I wrote this Quake III level viewer to learn how the Quake III engine works.
It is written in C++ and uses Direct3D 9.0.
I implemented most of the Quake III shader functionality in the fixed function pipeline.
Features include BSP rendering using PVS and lightmaps.

Half-Life Level Viewer

I wrote this Half Life level viewer to learn how the Half Life engine works.
It is written in C++ and uses Direct3D 9.0.

Features include:

Quake II Viewer

I wrote this Quake II level viewer to learn how the Quake II engine works. It is written in C++ and uses OpenGL with extensions. Features include BSP rendering using PVS, lightmaps and skybox.

Quake Viewer

I wrote this Quake level viewer to learn how the Quake engine works. It is written in C++ and uses OpenGL.