Quake's Precomputed Visibility: Demystifying the PVS Algorithm
This is the first installment in the "Demystifying the PVS" series, exploring how Quake's engine optimized rendering performance using precomputed visibility sets (PVS). In the mid-90s, limitations of software rendering made reducing overdraw crucial. Quake used a portal system and PVS to address this. Portals divide the world into cells; the engine renders only cells visible to the camera and others visible through portals. The PVS algorithm precomputes a list of visible cells for each cell during map compilation, avoiding complex visibility tests at runtime and significantly improving rendering efficiency. This article delves into the PVS algorithm's implementation details, including portal definitions, the role of the BSP tree, and the algorithm's three steps: base visibility, full visibility, and result resolution.