The Core engine uses Virtual Texturing for memory optimization. In basic terms, we pre-calculate all the heavy blending needed to produce a realistic surface, save it as a Virtual Texture, load it in advance and only show it if necessary. Also, we no longer need material blending in the tessellation stage. So we use tessellation without a significant performance drop.
We combine Screen Space Reflections with Parallax corrected reflection probes that store pre-computed reflection data. This new approach adds fidelity to the water as we now reflect exactly what we see instead of previously simplified reflections.
Most of the shadows are calculated when first loading the map and re-calculated only when the level changes. That gives a great boost in performance and enables correctly illuminated objects even on low-end hardware.
3D scenery covered by the opaque UI elements (the minimap and damage panel) is no longer rendered, which saves on GPU performance.
Now track movement is calculated per each track segment (~100 calculations per average tank tread). While increasing performance, this optimization does not affect visual quality. It reduces the GPU load, whilst the tracks display natural and realistic movement.
Trees are baked into billboards with all the information including depth and lighting data. Thanks to it, we can switch trees to billboards much closer to the viewer (and you won’t notice a slightest difference!).
Level of Detail (LOD) adjustment occurs as smoothly as possible over a short period of time so there’re no jarring transitions between different LODs. This seamless transition doesn’t require extra resources.
Now, high-resolution effects are only displayed along the edges, and the interior is rendered in lower resolution. This switch is practically unnoticeable but saves a lot of performance in critical moments.