How svogi Works for Real-Time Lighting

Published on January 05, 2026 | Translated from Spanish
Diagram showing a 3D scene converted into a hierarchical structure of sparse voxels octree, illustrating how surface data is stored to calculate lighting.

How svogi works for real-time lighting

The technique known as SVOGI (Sparse Voxel Octree Global Illumination) represents an advance in simulating how light interacts in a 3D environment dynamically. 🚀 Its main objective is to process global illumination while the scene is being rendered, without the need to precalculate all the lighting information.

The foundation: voxelizing the scene into a hierarchical structure

The core of SVOGI lies in transforming the complex geometry of a scene into a manageable volumetric mesh. To achieve this, a sparse voxel octree is built. An octree is a data structure where each node or cell can be divided into eight child cells, organizing 3D space efficiently. The key is that it is sparse, meaning that nodes are only generated in areas where there is actually geometry, saving a large amount of memory and processing power.

Key features of the octree in SVOGI:
The magic of SVOGI is not in the geometry itself, but in how it organizes space so that light can be traced intelligently and quickly.

Calculating light: from voxelization to illumination

Once the scene is represented as a voxel field, the system can execute algorithms to simulate the physical behavior of light. The most common method is cone tracing. This algorithm launches virtual cones through the octree to evaluate two main phenomena: ambient occlusion and indirect irradiance.

Processes executed by cone tracing:

Balance between fidelity and performance

Although SVOGI promises accurate global illumination in real time, its implementation has a significant computational cost. The voxelization process and cone tracing consume a lot of GPU resources. For this reason, some developers opt for more traditional and less demanding techniques, such as precalculated lightmaps, especially in projects where the priority is to maintain a high frame rate without overloading the graphics hardware. ⚖️ The choice always depends on finding the right balance between visual quality and performance in the final application.