Pbr → Lambert → HalfLambert → Toon → Banded → Sawtooth → FresnelRim → Holographic
Ten-plus generations of a from-scratch renderer
MyCustomGfx is a software renderer written from nothing but the .NET base class library - no GPU, no OpenGL, no engine, not one image file. It grew across ten-plus generations, each adding a real technique: a naive scanline raster, then a Z-buffer, an OBJ and glTF 2.0 loader, Cook-Torrance PBR, HDR with ACES, bloom, SSAO, and finally a Render Lab with eight shading curves and six presets. Every frame below was rendered fresh by the v10 command-line tool - no browser, no GPU in the loop.
The payoff - Render Lab, gen 10
Pbr → Lambert → HalfLambert → Toon → Banded → Sawtooth → FresnelRim → Holographic
The lineage - how it got there
naive scanline, then Pineda edge functions
per-pixel depth test
flat N·L directional light
world-space normals, RGB-encoded
GGX + Schlick-Fresnel + Smith geometry
textured PBR + ACES + bloom + SSAO
Hable HDR tonemap + color grade + vignette
scanlines + vignette + chromatic aberration
How these were made
Every image on this page came out of the v10 mcgfx command-line tool,
built and run fresh. It writes Netpbm PPM frames the engine produces itself; the
turntable is a sequence stitched into a GIF. The same self-test that guards the
canonical orange triangle runs on every invocation and still returns hash
0xD90DBB81.