Adventures with Deferred Texturing in Horizon Forbidden West
James McLaren is a Senior Principal Tech Programmer working at Guerrilla. He started programming on a ZX Spectrum at the age 10 and has been working in the video game industry for over 25 years and across 3 continents.
In 2018 he moved to Amsterdam and has been working hard to make Decima tick faster than usual ever since. He can be found lurking on Twitter at @selfresonating.
To accelerate its foliage and alpha tested geometry Horizon Forbidden West implements a novel loosely tiled deferred texturing system. A visibility buffer is drawn as a pre-pass followed by analysis and shading steps which run entirely in compute shaders. The use of compute shaders also provides extra flexibility that allows for the implementation of a software variable rate shading solution. Due to being able to run on the compute pipes on PS4 and PS5 it is able to overlap both the G-Buffer rendering and the rendering of cascaded shadow maps meaning that analysis and shading typically have very little overhead. This presentation describes the details of the system, and the optimizations and design choices made to integrate it into the Decima engine.