TL;DR
Thief: The Dark Project shipped in 1998 as a purely software-rendered 3D game. Its renderer, primarily authored by Sean Barrett, used a runtime portal-and-cell visibility system with 2D bounding-octagon clipping to reduce overdraw, differing in several ways from contemporaneous Quake approaches.
What happened
Thief’s renderer was developed before commodity 3D hardware acceleration was common, so the game used only software rendering. Sean Barrett was the principal author of the core rendering technology and based the visibility system on the portal-and-cell concept described in Seth Teller’s dissertation. Levels were divided into convex cells connected by portal polygons; the engine performed a breadth-first traversal of portals from the viewpoint to determine visible cells at runtime. Each portal was transformed, checked for back-facing status, projected to 2D, and represented by a bounding octagon that was intersected with the current visible region to clip what needed rendering. World polygons were stored per-cell (split where necessary) and clipped against those bounding octagons, which reduced overdraw despite drawing polygons back-to-front. The same renderer, later modified for hardware acceleration, was also used for System Shock 2 and Thief 2.
Why it matters
- Demonstrates an alternative runtime visibility approach (portal-and-cell) versus precomputed PVS used by Quake.
- Shows practical techniques for reducing overdraw in software renderers through 2D clipping and bounding octagons.
- Provides historical context for indoor-focused 3D rendering work immediately before hardware acceleration became dominant.
- Illustrates engineering trade-offs when adapting software techniques for higher polygon counts and later hardware acceleration.
Key facts
- Thief: The Dark Project released in 1998 and shipped without 3D hardware acceleration.
- Sean Barrett was the primary author of the game's core rendering technology (excluding object/character renderers).
- Visibility used a runtime portal-and-cell traversal based on Seth Teller’s 1992 dissertation rather than a fully precomputed PVS.
- Traversal was breadth-first from the viewpoint; portals were projected to 2D and summarized by bounding octagons for clipping.
- World polygons were stored per-cell and could be split when they crossed cell boundaries.
- Polygons were drawn back-to-front; overdraw was reduced by clipping polygons to cell visibility octagons.
- Texture coordinates were computed from a 3D basis vector approach rather than relying on per-vertex UVs.
- Quake’s software renderer used span-buffering (edge lists) and a precomputed PVS, contrasting with Thief’s runtime approach.
- The engine was later adapted by others for hardware acceleration and used in System Shock 2 and Thief 2.
- Full cell-portal analysis imposed overhead and did not scale well as polygon counts increased.
What to watch next
- How the renderer's runtime portal clipping influenced later indoor rendering techniques (not confirmed in the source).
- Performance and scaling differences when the same renderer was modified for hardware acceleration — specific metrics not provided in the source.
- Further technical write-ups or source releases that detail implementation specifics beyond Barrett’s overview (not confirmed in the source).
Quick glossary
- Portal: A polygonal boundary between two adjacent regions (cells) used to determine sightlines and connectivity in an indoor renderer.
- Cell: A convex polyhedral region of space used to partition a level; visibility is computed between cells via portals.
- Bounding octagon: A 2D conservative region composed of an axis-aligned box plus a 45-degree rotated box, used to approximate visible areas for clipping.
- Overdraw: The cost incurred when a pixel is written multiple times during rendering because nearer surfaces are drawn before farther ones are discarded.
- Skybox: A large textured shape or set of polygons used to render distant background scenery that appears stationary relative to the viewer.
Reader FAQ
Was Thief hardware-accelerated when it shipped?
No. The original Thief release was rendered entirely in software.
Who wrote the renderer described in the source?
Sean Barrett was the primary author of the core rendering technology described; he did not write the object or character renderers.
Did Thief precompute visibility like Quake?
Thief precomputed portals and cells but did not precompute full potential visibility sets; it computed visibility at runtime using portal traversal.
Did the same renderer appear in other games?
Yes. The same rendering engine, modified by others for hardware acceleration, was used for System Shock 2 and Thief 2.
Are performance numbers or detailed profiling results available here?
Not confirmed in the source.
The 3D Software Rendering Technology of 1998's Thief: The Dark Project Sean Barrett 2011-09-19 In 1998 Looking Glass Studios released the stealth game Thief: The Dark Project. This was just…
Sources
- The 3D Software Rendering Technology of 1998's Thief: The Dark Project (2019)
- The 3D Software Rendering Technology of 1998's Thief
- The Dark Project (Project Diary)
- Postmortem: Thief: The Dark Project
Related posts
- The 500k-ton Typo: Why Copper Math for 1 GW Data Centers Doesn’t Add Up
- Game of Thrones Reveals a Playful Side in A Knight of the Seven Kingdoms
- Inside Thief (1998): The Software-Based 3D Rendering Techniques