A CPU-based 3D software renderer written in C.
All rendering is done on the CPU; SDL2 is used only for window creation,
input handling, and displaying the final framebuffer.
- Custom 3D rendering pipeline (no OpenGL / Vulkan / DirectX)
- Perspective projection
- Triangle rasterization
- Z-buffer (depth testing)
- Barycentric coordinate interpolation
- Texture mapping
- Flat lighting
- OBJ mesh loading
- Left-handed coordinate system
2026-01-24.15-28-30.mp4
The renderer follows a traditional software pipeline:
- Model → World → View → Projection transforms
- Perspective divide and viewport mapping
- Triangle setup and rasterization
- Per-pixel depth testing
- Texture sampling and shading
SDL2 is used only as a platform layer; all math, rasterization, and visibility logic is implemented manually.
This project was developed on Windows using MinGW and SDL2. The repository focuses on demonstrating rendering techniques rather than providing a fully portable build system.
Prebuilt binaries are included for convenience.
This project was built to deeply understand how 3D rendering works at a low level, without relying on GPU APIs.


