Software Rasterizer
2023
Graphics Demo
Javascript
C
WebAssembly
url - https://gnikoloff.github.io/software-renderer/
code - https://github.com/gnikoloff/software-renderer
3D renderer written as an exercise to learn C and how graphics APIs such as OpenGL are implemented under the hood. Supports native and web via Emscripten.

Features
- Software rasterization
- Pure C17 implementation
- Right hand Y-up coordinate system
- Uses SDL for access to graphics hardware, mouse, keyboard, etc.
- Supports native and web via emscripten
- Perspective correct interpolation
- Support for vertex and fragment shaders
- Depth buffer
- Face culling
- Viewport clipping
- Loading and parsing Wavefront .OBJ files and PNG images
- Cube map sampling
References and readings

Geometry demo

Visualised depth buffer

Environment mapping

Plasma demo

Tunnel demo

2D Physics demo