This is a project developed to better understand and explore the theory and practice behind many computer graphics fundamentals. Project was developed entirely in C++ as a rendering pipeline that is implemented completely in software. The only call made to OpenGL is glDrawPixels. However, later in the project, as I started shifting my interests towards writing shaders, extensions were made to accomodate support for GPU acceleration via OpenGL4 and GLSL. Click on image below to see a demo.
Computer Graphics Basics
- Vectors, matrices, transformations
- Basic analytical geometry (e.g. points, lines, segments, planes, triangles, intersections)
- Camera models, projection, navigation
Classic feed-forward rendering
- Rasterization
- Screen space and model space interpolation
- Basic shading
- Texture mapping, projective texture mapping
- Shadow mapping
- Environment mapping
- GPU programming support
Disclosure: Project was developed while taking CS 535 Interactive Computer Graphics at Purdue University with the great professor Voicu Popescu. Kudos to him and his class. I now understand the inner workings of graphics API libraries thanks to him. I highly recommend taking his class.