zauonlok/renderer
FreeA shader-based software renderer written from scratch in C89
About zauonlok/renderer
A shader-based software renderer written from scratch in C89 with minimal dependencies, targeting Windows, macOS, and Linux. It implements a full rendering pipeline including homogeneous clipping, back-face culling, perspective-correct interpolation, depth testing, alpha testing, alpha blending, cubemapped skybox, skeletal animation, tangent space normal mapping, shadow mapping, ACES tone mapping, Blinn–Phong reflection, physically based rendering (PBR) with metallic-roughness and specular-glossiness workflows, and image-based lighting (IBL). It includes an orbital camera controller, a PBR material inspector, and supports loading scenes from OBJ and glTF files. The project is open-source and built for educational purposes.
Key Features
Pros & Cons
- Cross-platform with minimal dependencies
- Written in C89, widely compatible with compilers
- Comprehensive set of rendering features including PBR, shadow mapping, and skeletal animation
- Open-source and free to use
- Includes a viewer with orbital camera and material inspector
- Software renderer, not GPU-accelerated (performance may be limited for real-time applications)
- Requires compilation from source; no pre-built binaries for all platforms (but provided)
- No GUI for scene creation or editing beyond loading existing models