/Godot 3.2


Inherits: VisualInstance < Spatial < Node < Object

Captures its surroundings to create reflections.


Capture its surroundings as a dual paraboloid image, and stores versions of it with increasing levels of blur to simulate different material roughnesses.

The ReflectionProbe is used to create high-quality reflections at the cost of performance. It can be combined with GIProbes and Screen Space Reflections to achieve high quality reflections. ReflectionProbes render all objects within their cull_mask, so updating them can be quite expensive. It is best to update them once with the important static objects and then leave them.

Note: By default Godot will only render 16 reflection probes. If you need more, increase the number of atlas subdivisions. This setting can be found in ProjectSettings.rendering/quality/reflections/atlas_subdiv.



bool box_projection false
int cull_mask 1048575
bool enable_shadows false
Vector3 extents Vector3( 1, 1, 1 )
float intensity 1.0
Color interior_ambient_color Color( 0, 0, 0, 1 )
float interior_ambient_contrib 0.0
float interior_ambient_energy 1.0
bool interior_enable false
float max_distance 0.0
Vector3 origin_offset Vector3( 0, 0, 0 )
UpdateMode update_mode 0


enum UpdateMode:

  • UPDATE_ONCE = 0 --- Update the probe once on the next frame.
  • UPDATE_ALWAYS = 1 --- Update the probe every frame. This is needed when you want to capture dynamic objects. However, it results in an increased render time. Use UPDATE_ONCE whenever possible.

Property Descriptions

bool box_projection

Default false
Setter set_enable_box_projection(value)
Getter is_box_projection_enabled()

If true, enables box projection. This makes reflections look more correct in rectangle-shaped rooms by offsetting the reflection center depending on the camera's location.

int cull_mask

Default 1048575
Setter set_cull_mask(value)
Getter get_cull_mask()

Sets the cull mask which determines what objects are drawn by this probe. Every VisualInstance with a layer included in this cull mask will be rendered by the probe. It is best to only include large objects which are likely to take up a lot of space in the reflection in order to save on rendering cost.

bool enable_shadows

Default false
Setter set_enable_shadows(value)
Getter are_shadows_enabled()

If true, computes shadows in the reflection probe. This makes the reflection probe slower to render; you may want to disable this if using the UPDATE_ALWAYS update_mode.

Vector3 extents

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

The size of the reflection probe. The larger the extents the more space covered by the probe which will lower the perceived resolution. It is best to keep the extents only as large as you need them.

float intensity

Default 1.0
Setter set_intensity(value)
Getter get_intensity()

Defines the reflection intensity. Intensity modulates the strength of the reflection.

Color interior_ambient_color

Default Color( 0, 0, 0, 1 )
Setter set_interior_ambient(value)
Getter get_interior_ambient()

Sets the ambient light color to be used when this probe is set to interior_enable.

float interior_ambient_contrib

Default 0.0
Setter set_interior_ambient_probe_contribution(value)
Getter get_interior_ambient_probe_contribution()

Sets the contribution value for how much the reflection affects the ambient light for this reflection probe when set to interior_enable. Useful so that ambient light matches the color of the room.

float interior_ambient_energy

Default 1.0
Setter set_interior_ambient_energy(value)
Getter get_interior_ambient_energy()

Sets the energy multiplier for this reflection probe's ambient light contribution when set to interior_enable.

bool interior_enable

Default false
Setter set_as_interior(value)
Getter is_set_as_interior()

If true, reflections will ignore sky contribution. Ambient lighting is then controlled by the interior_ambient_* properties.

float max_distance

Default 0.0
Setter set_max_distance(value)
Getter get_max_distance()

Sets the max distance away from the probe an object can be before it is culled.

Vector3 origin_offset

Default Vector3( 0, 0, 0 )
Setter set_origin_offset(value)
Getter get_origin_offset()

Sets the origin offset to be used when this reflection probe is in box project mode.

UpdateMode update_mode

Default 0
Setter set_update_mode(value)
Getter get_update_mode()

Sets how frequently the probe is updated. Can be UPDATE_ONCE or UPDATE_ALWAYS.

© 2014–2020 Juan Linietsky, Ariel Manzur, Godot Engine contributors
Licensed under the MIT License.