Retro Renderer

Feeling a bit nostalgic I thought it would be fun to try and recapture the visual style of 8 and 16 bit console gaming. Given a cell shaded rendering with depth info I do a post process which pixelates the scene based on distance from the camera so far away and close objects should have roughly the same pixel density as if they were an image being scaled based on distance. The other retrofication operation I do reduces the color palette to that supported by the NES and SNES. Rather than just lowering the color bit depth, I also detect when colors are between two supported colors and I dither the two.

Ray Tracer

These images were taken from a full featured recursive ray tracer I created from scratch in C++. In addition to the standard ray tracing features I also added soft shadows, accurate refraction and a scene graph with bounding spheres for acceleration. The program takes as input a list of spheres, polygons or meshes in the form of .obj files, as well as any list of translations, rotations and/or scales that need to be applied. Like all good hobby projects it comes complete with plenty of bugs and half finished features.

Depth of Field

Depth of field rendering in real time on the GPU.

Parallax & Shadow Mapping

Here we see Parallax, Normal and Shadow Mapping all working toegether.

Toon Shading

I know this isn't very impressive, I just really like toon shading...

Cloud Rendering

3D cloud rendering project, part of a larger game engine project.