zauonlok/renderer logo

zauonlok/renderer

Free

A shader-based software renderer written from scratch in C89

FreeFree tier
Type
Open Source

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

Cross-platform (Windows, macOS, Linux)
Minimal dependencies
Shader-based rendering pipeline
Homogeneous clipping and back-face culling
Perspective-correct interpolation
Depth testing, alpha testing, and alpha blending
Cubemapped skybox
Skeletal animation
Tangent space normal mapping
Shadow mapping

Pros & Cons

Pros
  • 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
Cons
  • 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

Best For

Learning computer graphics and rendering pipelinesEducational tool for understanding shader-based software renderingVisualizing 3D scenes with PBR materials via a built-in viewerPrototyping and experimenting with rendering techniques