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);