I love software rendering

speckx 313 points 198 comments October 16, 2026
www.jamesfmackenzie.com · View on Hacker News

Discussion Highlights (20 comments)

coppercrisp62

Wrote a little software rasterizer for a roguelike years back and the best part was just being able to step through the whole pipeline in a debugger. No driver weirdness, no shader compile quirks, the pixel is wrong because your math is wrong.

BugsJustFindMe

This should really be titled "I love pixelated textures". > " 3D cards smoothed textures with bilinear filtering " You can just not do that.

charcircuit

UE5's nanite uses software rendering, but it doesn't look pixelated, does not need a high end computer, and does not require DOS.

0x0203

I share the same opinion as the author. That said, it's also important to remember that the display devices of the time were different than they are now and the sharp pixelated textures we see now would look a bit different on a CRT from that period. The sharp, gritty look that he (and I) admire would have been just a little fuzzier back then.

delta_p_delta_x

This isn't software rendering, it's called turning off spatial anti-aliasing. You can still do that in the modernest of modern games. Software rendering went out of the window because the CPU tends to have other things to do whilst playing the game besides only multiplying 4x4 matrices, which was shifted to the shader cores of GPUs. The look-and-feel that the author is discussing including shadow and texture LUTs can also be done on GPUs by passing the tables in to shaders as constant read-only storage buffers; that is not specific to software rendering. It bears mentioning that many modern software renderers (LLVMpipe/Lavapipe, OpenSWR, WARP) are basically full D3D/OpenGL/Vulkan devices in their own right, including shader compilers. Also, modern spatial anti-aliasing works by multisampling within a pixel (or even neighbouring pixels) and taking the average, rather than filtering across singly-sampled pixels, which massively reduces the quality. Not to mention temporal and machine learning AA techniques including DLSS, XeSS, FSR, and all the TAA implementations in many games.

ale42

The article says that "even a 3.3GHz quad-core Xeon “isn’t quite enough to run Shadow Warrior at full 1600 by 1200”." But we are on DOS, so I guess three cores are just not doing anything there?

sgt

Anyone wants to tell him about CRT's? Now that will truly blow his mind, at least on this setup and older games.

Panzerschrek

I too. So that I have written many software renderers in many years. A video with my recent project having a software renderer: https://www.youtube.com/watch?v=NepOPAPDvwA

squidmaster

> Ion Fury, a Build engine game from 2019, still ships with a software renderer. Amazing game BTW, best shooter I've played in many years. I never really got into build engine games back then, so it's not just my rose-tinted glasses, that game is a masterpiece.

Panzerschrek

> Games worth trying I can add more: Unreal (and Unreal Tournament), Thief, Quake II (a slight improvement over Quake), Half-Life (a great improvement over Quake), Shadow Warrior, Any modern port of Doom supporting software rendering, Heretic, Hexen, Descent, System Shock, Homeworld.

adverbly

Is software rendering the reason that people can run doom on everything?

brap

Love seeing Blood mentioned, sometimes I feel like I'm the only one who played it

dekhn

Software rendering was useful for me for a long time but as a long-time gamer (from the original DOOM to Cyberpunk 2077 and beyond) I can firmly say that real-time raytraced games at 4K/60FPS with dynamic lighting, reflections, massive geometry detail, etc, all greatly enhance the experience. That said, the old DOOM aesthetic pre-Voodoo was definitely nice. The voodoo smoothing had a nice cheap feel to it, too.

bob1029

Software rendering often provided better visual effects than the GPU paths could provide at the time. A general purpose CPU can technically do any effect since the software is the pixel shader. Programmable shader pipelines weren't a thing until Geforce 3 in 2001.

Pxtl

I remember when I finally saw my favourite 3D games (Quake 2 and Pod) on a Voodoo2 and I immediately bristled: I hated the blurry way the textures looked with bilinear filtering, and was iffy on their love of yellow lighting. I've softened on the issue of non-white lights, but I 100% am still full of nostalgia about unflitered low-res textures.

SftwareRenderer

I love Software Rendering too! I'd add Unreal Tournament to the list of "Games worth trying", though not sure what the multiplayer scene is like nowadays.

Waterluvian

Ah the software rendering era. Where I gained 10fps by adding a sound card.

ibackstrom

I am still a big fan of CPU render for VFX (not games). It is stable, capable of very large scenes. GPU is fast but you will never render something really big. And CPU look is much much better.

lorenzomontoli

Did you use any coding app to support you building the app? In that case, witch one is the one you choose and why. Thank you.

IshKebab

Unreal Tournament also had a software renderer IIRC, with an interesting dithering effect.

Semantic search powered by Rivestack pgvector
9,716 stories · 91,595 chunks indexed