Software renderer in vanilla JavaScript with no dependencies. Just start a local web server to serve the assets (e.g. with python -m http.server) and point your browser at index.html.
Rather than being general-purpose, it aims to render a SOUP-like, with most features being implemented by using Bapalon as a reference.
See demo.mp4 for a quick showcase.
- https://haqr.eu/tinyrenderer/ -- initial approach that ended up mostly not applicable to my use case (which is real-time rendering rather than rendering a single frame), but still a very valuable resource.
- https://www.youtube.com/watch?v=ih20l3pJoeU -- the final renderer ended up being a combination of this (clipping, texture interpolation, projection, etc.) and
tinyrendererabove (barycentric coordinates for drawing triangles). - https://gabrielgambetta.com/computer-graphics-from-scratch/ -- some consulting here and there, the
Textureclass largely inspired by the one from that book. - https://www.scratchapixel.com/ -- extra reading on some math-y bits.
assets/END.png and assets/LOADING.png are my own and you can do whatever you want with them, it's not like they're useful in a vacuum anyway.
Everything else in assets borrowed from the sample assets used in Bapalon with Kira's permission (on top of the engine being public domain).