2004 - 3D Software renderer

Below is the ported version of the engine to web assembly:

 

For some of my mobile apps I needed to have some way to render 3D. However the devices I targetted did not have any hardware rendering support. So for this I created a ‘software rendering rasterizer’. Think OpenGL but then in code. Some nerdy specs of the ’engine’:

  • No floating points used (The arm processors back in the day did not have floating point support yet)
  • Minimal amount of multiplication / division (Division was not supported in hardware and therefore crazy slow. For multiplication there were opcodes, but still very slow compared to other integer operations)
  • Subpixel accuracy
  • Perspective correct texture mapping
  • Gouraud shading
  • 3ds object loader
  • Point and directional Lights
  • Camera