So what were the original image quality complaints surrounding the 60fps performance mode at launch? In short, this mode gave an aliased, shimmery look to many objects, while even the higher fidelity 30fps mode exhibited a different kind of noticeable shimmering within foliage. Patch 1.07 included ’tweaks to vegetation to improve image quality in performance mode’ but it only had a minimal impact on final image quality and any remained unhappy with the result.
Thankfully, Guerrilla’s second bite at the cherry in the form of patch 1.16 has produced much better results. Looking at moss and vegetation that demonstrated distracting shimmer in the launch version, the issue seems to have been completely fixed. The image is stable and clean in motion, with virtually all shimmering vanquished. It’s a similar situation if you look at the problematic red mist, with obvious visual aberrations in the launch code and a much more coherent appearance in 1.16. However, it seems that the red mist is actually no longer visible at greater distances - it only appears close to Aloy now. Ultimately though, the improvement here is dramatic - so what exactly has changed under the hood?
Senior principal tech programmer Giliam de Carpentier at Guerrilla Games was generous enough to provide a highly detailed breakdown of the process: “In the new AA mode, the world is still rendered using the same alternating checkerboard pattern, but now uses a different way to reuse historic data: the old system only used the current and previous raw render as input for the AA to complete a native 1800p output in two frames, while the new system uses the current raw render and the previous AA output as input for the AA of the new frame. This means it still stabilises to the output resolution in two frames, but now it can also keep on re-using data from older frames for longer, not only adding more stability under movement, but also accumulating more sub-pixel detail in the process.
“This concept itself isn’t new, but this is complicated to get right and often comes with its own set of artefacts, such as ghosting, which was prevented inherently in our previous implementation due to its limited reuse of history, even though this did allow pixels to ‘shimmer’ more under movement. In particular, the previous implementation allowed us to cleanly run all post effects before the AA pass at checkerboard resolution, which is faster than rendering those effect afterwards at the higher output resolution, without introducing ghosting artifacts of sorts.
“And so, switching to a new AA technique that reuses the history for longer meant we had to develop a new bag of tricks that still allowed us to keep doing this cleanly and robustly, even for effects like bloom and depth of field, for example. This included improving and further processing the motion vectors themselves, as well as find new ways to better reject all the out-of-date history while reprojecting actual sub-pixel-thin geometry more confidently and correctly over longer periods. In addition, we also introduced a sharper custom reprojection kernel as well as output sharpening that changes with the dynamic resolution, which helps show the resolved details more clearly and combat visual differences in dynamic resolution more effectively.”
To boil this down, Horizon Forbidden West still uses a checkerboard rendering solution to produce a 3200x1800 image. The anti-aliasing pass relies on input frame data to build the final image, and in early versions, only the current and previous raw rendered frames (prior to reconstruction) were used as this input to produce the final frame. With the new patch, the AA step now combines the current raw frame with the previous complete anti-aliased frame. The final output is still stabilised in just two frames, but it can now utilise image data (‘history’) from prior frames for longer, which helps reduce shimmering and retain more sub-pixel detail. As stated, this isn’t a new technique and it does come with a trade-off: the more data that is used from previous frames, the greater the chance that ghost frames are introduced, requiring further tooling from the developer.
In the age of ’next generation’ upscaling techniques, there’s been some confusion as to why Guerrilla persisted with checkerboard rendering and the studio was happy to give a few reasons why.
“DLSS 2.0, FSR 2.0 and checkerboard rendering are all different ways to render fewer pixels per frame than the actual output has, and then reconstruct a higher-res result over time,” explains Giliam de Carpentier. “And so, this means that the distance between rendered pixels is always going to be bigger than the distance between output pixels. But with checkerboard rendering, the distance between rows and columns in the rendered image and resolved image will still remain the same, which means that most edges (being typically either mostly horizontal or mostly vertical) won’t be able to ‘fall through the cracks’ as easily and therefore won’t as easily get missed completely one frame and be visible the next again.
“This results in data that has the potential to keep thin edges more stable more reliably but is also more complex to use optimally. But the new custom AA resolve is a definite step up in tapping into this potential, by distinguishing much more reliably between data than can be reused (in order to reduce shimmering), and data that has gotten too different (in order to prevent ghosting). And this is still paired with our checkerboard-compatible version of FXAA as well to make the most out of even single-frame data.”
I’m really impressed with the changes Guerrilla has made, but it’s worth pointing out that the new anti-aliasing technique is also deployed in the 4K quality mode - and to be honest, I’m not sure I prefer the new look. It’s true that the shimmering effect has gone but the new presentation lacks the pin-sharp precision of the previous version. Given this, weighed up against the solid improvements to the 60fps mode, the latter is now my recommended way to play.
So that’s essentially what has changed with this update and why it required a lot of additional development. By reconstructing the image with additional frames of data, there’s simply more information to work with when it comes to producing the final output - but clearly the amount of engineering required to make and test these changes was substantial.
In addition to these graphical changes, the developers have also made numerous bug fixes and even some major changes to the in-game introduction sequence which sees Aloy set out on her long journey. Here, the camera work has been adjusted, lighting position and intensity has been modified and colour grading has even changed. These sorts of changes aren’t limited to the introduction either, with several of the scenes we used for side-by-side testing exhibiting differences beyond the anti-aliasing improvements.
Beyond the art changes we noted, Guerrilla has also been busy optimising the game significantly since launch, as Giliam de Carpenter reveals: “The team also spent a lot of time post-release looking at how we could squeeze more performance out of the PS5, especially around the dynamic resolution system, to give us headroom to improve both quality and effective resolution and prepare the way for this update as well. Some of these optimisations already dropped in previous patches and even new ones were introduced in this patch too.”
It’s rare to see such a massive overhaul of a game post launch, so the team at Guerrilla deserves some serious credit for addressing user concerns. The studio could have left the game alone, but instead they took the extra time to work on a new solution that dramatically improves the game while introducing other improvements across the board. Guerrilla has even stated that it’s working on adding VRR support and a 40fps mode that should split the difference between the clarity of the 30fps mode and the responsiveness of the 60fps mode - and that could be another big stride forward for a game that is already one of the best-looking titles of the current console generation.