Last Update: October 2019
CPU-Based Rasteriser
Can rasterise triangles and perspective-projected ellipses both with perspective-correct vertex colour interpolation.
Multi-threaded rendering via OpenMP
Processes packets of 2x2 pixels in parallel using SIMD instructions (SSE2 instruction set).
Can render realtime shadows as stenciled shadow volumes.
Can render a toon-shading effect by generating an inverted shell mesh.
Able to load OBJ (and MTL), PLY, and OFF mesh formats.
Has Lua integrated as a scripting language, which can also be used for vertex deformation effects.
Scripts can export models in PLY format.
Written in C99.
Download
- Includes C sourcecode, Windows binary, and example Lua scripts
Screenshots
Timings shown here were measured on an Intel Core i7-7700HQ CPU @ 2.80GHz, with 8 threads
dragon.lua, 871k triangles, 61ms
mech.lua, 7k triangles, 4ms
sibenik.lua, 75k triangles, 12ms
sponza.lua, 262k triangles, 38ms
fox.lua, 600 triangles, 2ms
teapots.lua, 628k triangles, 73ms
street.lua, 141k triangles, 26ms
street.lua, 141k triangles, 28ms
head.lua, 369k triangles, 49ms
head.lua with wireframes enabled, showing the runtime-generated extruded shadow volumes