I've [also] built a triangle rasteriser
A week or so ago u/RoboAbathur posted about a Triangle Rasteriser he was working on. I commented that I had started working on something similar - but at that point was yet to get my first triangle on the screen.
As of 3 days ago I finally managed to get it displaying a triangle. So my project is nowhere near as polished as u/RoboAbathur posted - but very much work in progress.
My setup has a softcore CPU written from scratch (based loosely on Risc-V - but my own ISA), and an assembler and compiler to target it (also written from scratch). The CPU has an FPU, 2-way set associative Dcache, and direct mapped Icache, connecting to SDRAM via an arbiter to allow the VGA system to also master the SDRAM.
Its all running on a DE1-SOC board, but not using the HPC side at all.
The graphics system has a triangle rasteriser with support for Gourand shading and texture mapping (affine only so far) as well as sprites and standard framebuffer.
Its based around a scanline approach. Each scanline is rendered into an on-chip ram, double buffered so while one line is being scanned out to the monitor.
Textures are stored in SDRAM and fetched as needed.
The CPU is responsible for setting up the triangle lists, and calculating the edge slopes, then the hardware runs all the rasterisation and interpolation.
In this demo the CPU is sitting at 98% idle.