OmniLight

Inherits: Light < VisualInstance < CullInstance < Spatial < Node < Object

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

Description

An Omnidirectional light is a type of Light 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: By default, only 32 OmniLights may affect a single mesh resource at once. Consider splitting your level into several meshes to decrease the likelihood that more than 32 lights will affect the same mesh resource. Splitting the level mesh will also improve frustum culling effectiveness, leading to greater performance. If you need to use more lights per mesh, you can increase ProjectSettings.rendering/limits/rendering/max_lights_per_object at the cost of shader compilation times.

Tutorials

Properties

float

omni_attenuation

1.0

float

omni_range

5.0

ShadowDetail

omni_shadow_detail

1

ShadowMode

omni_shadow_mode

1


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. Only supported on GPUs that feature support for depth cubemaps.


enum ShadowDetail:

ShadowDetail SHADOW_DETAIL_VERTICAL = 0

Use more detail vertically when computing the shadow.

ShadowDetail SHADOW_DETAIL_HORIZONTAL = 1

Use more detail horizontally when computing the shadow.


Property Descriptions

float omni_attenuation = 1.0

  • void set_param ( float value )

  • float get_param ( )

The light's attenuation (drop-off) curve. A number of presets are available in the Inspector by right-clicking the curve.


float omni_range = 5.0

  • void set_param ( float value )

  • float get_param ( )

The light's radius. Note that the effectively lit area may appear to be smaller depending on the omni_attenuation in use. No matter the omni_attenuation in use, the light will never reach anything outside this radius.

Note: omni_range is not affected by Spatial.scale (the light's scale or its parent's scale).


ShadowDetail omni_shadow_detail = 1

See ShadowDetail.


ShadowMode omni_shadow_mode = 1

The shadow rendering mode to use for this OmniLight. See ShadowMode.

Note: In GLES2, SHADOW_CUBE is only supported on GPUs that feature support for depth cubemaps. Old GPUs such as the Radeon HD 4000 series don't support cubemap shadows and will fall back to dual paraboloid shadows as a result.