Hacker News new | ask | show | jobs
by torginus 1355 days ago
I think it might even be argued its rendering techniques either weren't that revolutionary, or turned out to be dead ends.

Don't get me wrong, it's a technical masterpiece, but one of execution rather than innovation.

It's main feature was dynamic lighting and shadows, which it accomplished with dynamic lights, normal maps and stencil shadows.

Dynamic lights and normal maps were nothing new even back then, I remember multiple titles using them, but not this well and not to this extent.

Stencil shadows were kind of unique, they worked by extruding the geometry from the light's perspective, and figuring out what was inside the light's shadow by counting front and back faces.

Unfortunately, since they used geometry, they looked really blocky and sharp, with no smooth edges unlike shadow mapping.

Imo they looked kind of bad, a step down from the beautiful pre-rendered lightmap shadows we enjoyed years before.

1 comments

Yeah, the Doom 3 engine reflects sort of the last echo of the road Carmack hoped graphics cards would go down. But everything went down the other road.

From memory, what Carmack was advocating for in this period was like an updated version of SGIs hardware, fixed function and able to chew through a staggering number of simple triangles per second. Complex renderings would be built up by compositing lots of passes. Stencil shadows reflected that tradeoff. But shadowmaps with an increasing number of tweaks proved much more practical, and design wise no penumbra is indeed a tough one to swallow. And then GeForce came along and pretty much ended any debate on commplex shaders vs lots of simple triangles.

Using stencil shadows today, or their shader described equivalent, might be an interesting aesthetic choice for a horror game though.

I think the original Half-Life used stencil shadows - I guess that was the most advanced option available in 1998? Counter-Strike on the other hand rendered a grey circle sprite under players (looked okay enough - approximated the vague shadow you get when under multiple light sources).
Unfortunately the game didn't end up shipping with shadows despite shadows being on the box art screenshots.
I think early versions did but it was supposedly removed because shadows were cast through walls in multiplayer (which was unfair). The code is definitely still in the engine, behind a cvar which isn't exposed to players.