The development of World of Tanks has demanded a constant evolution of its proprietary graphics engine, known as Core Engine. The implementation of dynamic shadows and support for software ray tracing represent a significant technical challenge, especially when rendering armored vehicles with an extremely high level of polygonal detail. This article analyzes the optimization techniques that allow maintaining smooth performance on mid-range hardware.
Shadow optimization and software ray tracing 🎮
The Core Engine uses a hybrid shading system. For dynamic shadows, cascaded shadow mapping (CSM) is employed, which adjusts the depth map resolution based on the vehicle's distance from the camera. In the case of software ray tracing, the engine does not rely on dedicated RT hardware. Instead, it implements a BVH (Bounding Volume Hierarchy) acceleration structure optimized for high-density meshes. Vehicles modeled in ZBrush with millions of polygons undergo a rigorous reduction process in Maya, generating progressive LODs (levels of detail) that the engine alternates to calculate ray intersections only on visible surfaces.
Artistic workflow for performance 🎨
The artistic pipeline is key to the game's graphical success. Modelers sculpt the tanks in ZBrush, capturing every rivet and weld. Subsequently, in Maya, retopology and baking of normal maps and ambient occlusion are performed. These texture maps trick the Core Engine, simulating complex geometry without needing to process millions of triangles in real-time. This technique, combined with dynamic shading, allows software ray tracing to calculate precise reflections on the chassis without sacrificing 60 FPS in combat.
Considering the performance challenges in matches with 30 tanks and deformable terrain, how does the World of Tanks Core Engine manage to apply dynamic real-time lighting without sacrificing visual smoothness?
(PS: 90% of development time is polishing, the other 90% is fixing bugs)