PixelPipe

Technology: C++, Boost, Cmake, OpenGL, GLUT
Link: PixelPipe
References: Graphics Pipeline
A trip through the Graphics Pipeline

PixelPipe is a home-brewed, open source 3D graphics software pipeline written in C++. The software pipeline includes programmable fragment and vertex shader stages. Though the project is designed to be cross platform, the active development is happening on Linux and Mac OSX. I hope to include compiled binaries in future releases.

Normally, when you write 3D drawing code for OpenGL or DirectX, the command stream, textures, and geometry data are passed through the GPU drivers and to the graphics hardware. This whole process is usually made to be as smooth as possible to a application developer. After the graphics is on the hardware, it passes through a pipeline that has distinct stages of processing before an image is finished rendering. This project is essentially an open source graphics pipeline that runs on the CPU. Obviously, it isn't faster than any hardware graphics solution. But I find the algorithms involved to be very interesting. There is also no better primer for learning real-time graphics programming than having rolled your own!

For more information (or to check out the source), please visit the project page here: PixelPipe.

Gouraud style shading at the vertices of two spheres using two light sources
Phong based fragment shading
Phong shading with a texture fetch
The Stanford bunny
A simple cube with a texture