GraphicsFinished

Tiny Renderer

A pure C++ software renderer built from scratch to understand 3D rendering fundamentals.

01Overview

A compact renderer written in pure C++ to explore the core ideas behind the 3D graphics pipeline without relying on a full game engine or rendering framework.

02Problem

Modern graphics APIs hide much of the rendering pipeline. This project was made to understand the lower-level process behind transforming 3D objects into 2D images.

03Solution

The renderer implements scanline triangle rasterization, bounding-box optimization, back-face culling, and basic lighting and shading calculations.

04Highlights

— Built a software renderer from scratch in pure C++. — Implemented scanline triangle rasterization, bounding-box optimization, and back-face culling. — Added basic lighting and shading calculations using vector math and transformations.

05What I learned

— How rasterization works internally — Vector math and transformations in graphics programming — Why rendering optimizations matter

06Architecture

The project uses a client-side image loop and dynamic project sections loaded from project data.

07Image carousel

Multiple images are displayed with a small fade transition and manual dot navigation.

const advance = () => goTo((current + 1) % images.length);