Engine & Visuals – SnowRunner
Get behind the wheel, SnowRunners, there’s work to be done!
Today we are talking about visual improvements in SnowRunner! During the course of development the team has updated practically every visual aspect of the game.
Our first goal was to make the terrain in SnowRunner bigger and better. First of all we increased the maximum area of the map to 2×2 kilometers, which were limited to 1×1 in MR maps, while also improving terrain mesh resolution. We also dramatically increased view distance and added farplane objects to improve the map’s sense of size.
But we still saw a lot of room for improvement – we increased the number of terrain texture layers from 2 to 4 and added a special snow layer where we blended 4 additional normal maps to create a great looking snow surface. A new special snow shader helped to improve the overall look of the snow surface, complementing the improvements and additions to the physics engine in order to provide the best possible feeling when driving through snow.
One of the biggest visual improvements in SnowRunner came with the introduction of Physically Based Rendering. All the assets in the game were created using PBR materials, so all material shaders were reimplemented and lighting ranges were adjusted to work well within the PBR model. Also correct HDR effect with filmic tonemapping and modern bloom was added to work well with the extended lighting ranges and PBR materials.
As you probably remember from the previous game, only vehicles had dynamic shadows, while all other objects were using lightmap based shadows. In SnowRunner we introduced shadowmap shadows for all objects around the camera.
Having proper anti-aliasing is considered the de facto standard for every AAA game nowadays. Previously, the franchise has featured the fast approximate anti-aliasing (FXAA) filter, which, being a post-processing effect, is unable to remove shimmering in motion that is especially noticeable on foliage. We implemented temporal anti-aliasing (TAA) to make sure players can enjoy smooth and stable images without jagged edges. To combat blurring which is inherent to all TAA algorithms, we added Contrast Adaptive Sharpening from AMD’s FidelityFX package. For gamers with powerful PCs who prefer raw, sharp visuals, multisample anti-aliasing (MSAA) was also implemented. FXAA is still available and can now be used in combination with TAA or MSAA.
In the first game – atmospheric effects played a big role in setting the proper mood in the game. Recognizing the importance of weather in the game, we implemented a new weather system, improved skyboxes, added clouds and light shafts, improved rain effects, and added snow as well.
In order to support large levels with dense vegetation we updated our vegetation rendering system, updated Level of Detail (LOD) for trees and grass, and introduced advanced billboards that look indistinguishable from real trees at a very close distance. We redid all the vegetation assets in the game to take advantage of the new shading and vegetation rendering system.
There were also a few technical changes done for consoles and PC. We implemented texture streaming to support high resolution textures (up to 4k). On consoles, we added a dynamic resolution scale algorithm to balance GPU load with render resolution.
We hope you’ve found this deep dive into the engine of SnowRunner interesting, and enjoy all the improvements we’ve brought to it when you play the game! We’ll see you soon in the wilderness on April 28!