Block Image Transfer

Replicating the “Blitter” hardware of old consoles to efficiently transfer image data from one memory area to another.

3D Perspective

This application was developed with no additional APIs. It’s written in pure C++ and utilizes many linear algebra topics. Perspective, Rotation and Translation were all achieved by creating a custom math library which includes Matrix and Vector multiplication, and Linear Interpolation.

UV Texture Mapping

A continuation of the 3D perspective, this moves a step forward and converts texture data in BGRA format to ARGB, and then using Barycentric coordinates, maps each pixel to the texture and project it onto the cube.

Scene Lighting

In this application, given geometry data, I converted texture data from BGRA to ARGB, and applied it to the world view. I also then used linear interpolation from Normal data and applied it per pixel to create lighting for the scene. You can see in the rotation how the scene will slowly go from light to dark.