Rendering engine

This is a software renderer which tries to emulate the OpenGL API, so you will find that uniform uploading, vertex attributes definition, texture mapping and vertex/fragment shader programming is very similar to what one would do in OpenGL. It uses NanoGUI for window management and TinyObjLoader for .OBJ handling.

Make sure to check my voxel ambient occlusion project, which was coded entirely within this lil’ software renderer.

Source code

A bronze Cow rendered in software (background) vs. OpenGL rendering (small window in bottom left). ~24 FPS.

The well-known Breakfast room scene rendered using Normal shading.

The Stanford Bunny model drawn using a raycasting shader for voxel rendering.