Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

OmniLight3D

Inherits: Light3D < VisualInstance3D < Node3D < Node < Object

Omnidirectional light, such as a light bulb or a candle.

Description

An Omnidirectional light is a type of Light3D that emits light in all directions. The light is attenuated by distance and this attenuation can be configured by changing its energy, radius, and attenuation parameters.

Note: When using the Mobile rendering method, only 8 omni lights can be displayed on each mesh resource. Attempting to display more than 8 omni lights on a single mesh resource will result in omni lights flickering in and out as the camera moves. When using the Compatibility rendering method, only 8 omni lights can be displayed on each mesh resource by default, but this can be increased by adjusting ProjectSettings.rendering/limits/opengl/max_lights_per_object.

Note: When using the Mobile or Compatibility rendering methods, omni lights will only correctly affect meshes whose visibility AABB intersects with the light's AABB. If using a shader to deform the mesh in a way that makes it go outside its AABB, GeometryInstance3D.extra_cull_margin must be increased on the mesh. Otherwise, the light may not be visible on the mesh.

Tutorials

Properties

float

omni_attenuation

1.0

float

omni_range

5.0

ShadowMode

omni_shadow_mode

1

float

shadow_normal_bias

1.0 (overrides Light3D)


Enumerations

enum ShadowMode:

ShadowMode SHADOW_DUAL_PARABOLOID = 0

Shadows are rendered to a dual-paraboloid texture. Faster than SHADOW_CUBE, but lower-quality.

ShadowMode SHADOW_CUBE = 1

Shadows are rendered to a cubemap. Slower than SHADOW_DUAL_PARABOLOID, but higher-quality.


Property Descriptions

float omni_attenuation = 1.0