Inherits: VisualInstance < Spatial < Node < Object

Real-time global illumination (GI) probe.


GIProbes are used to provide high-quality real-time indirect light to scenes. They precompute the effect of objects that emit light and the effect of static geometry to simulate the behavior of complex light in real-time. GIProbes need to be baked before using, however, once baked, dynamic objects will receive light from them. Further, lights can be fully dynamic or baked.

Having GIProbes in a scene can be expensive, the quality of the probe can be turned down in exchange for better performance in the ProjectSettings using ProjectSettings.rendering/quality/gi_probes/quality.



GIProbeData data  
Vector3 extents Vector3( 10, 10, 10 )
Subdiv subdiv 1


void bake ( Node from_node=null, bool create_visual_debug=false )
void debug_bake ( )


enum Subdiv:

  • SUBDIV_64 = 0 --- Use 64 subdivisions. This is the lowest quality setting, but the fastest. Use it if you can, but especially use it on lower-end hardware.
  • SUBDIV_128 = 1 --- Use 128 subdivisions. This is the default quality setting.
  • SUBDIV_256 = 2 --- Use 256 subdivisions.
  • SUBDIV_512 = 3 --- Use 512 subdivisions. This is the highest quality setting, but the slowest. On lower-end hardware this could cause the GPU to stall.
  • SUBDIV_MAX = 4 --- Represents the size of the Subdiv enum.

Property Descriptions

Setter set_probe_data(value)
Getter get_probe_data()

The GIProbeData resource that holds the data for this GIProbe.

Default Vector3( 10, 10, 10 )
Setter set_extents(value)
Getter get_extents()

The size of the area covered by the GIProbe. If you make the extents larger without increasing the subdivisions with subdiv, the size of each cell will increase and result in lower detailed lighting.

Default 1
Setter set_subdiv(value)
Getter get_subdiv()

Number of times to subdivide the grid that the GIProbe operates on. A higher number results in finer detail and thus higher visual quality, while lower numbers result in better performance.

Method Descriptions

  • void bake ( Node from_node=null, bool create_visual_debug=false )

Bakes the effect from all GeometryInstances marked with GeometryInstance.use_in_baked_light and Lights marked with either Light.BAKE_INDIRECT or Light.BAKE_ALL. If create_visual_debug is true, after baking the light, this will generate a MultiMesh that has a cube representing each solid cell with each cube colored to the cell's albedo color. This can be used to visualize the GIProbe's data and debug any issues that may be occurring.

  • void debug_bake ( )

Calls bake with create_visual_debug enabled.