github_url: | hide |
---|
Inherits: :ref:`Node2D<class_Node2D>` < :ref:`CanvasItem<class_CanvasItem>` < :ref:`Node<class_Node>` < :ref:`Object<class_Object>`
Inherited By: :ref:`DirectionalLight2D<class_DirectionalLight2D>`, :ref:`PointLight2D<class_PointLight2D>`
Casts light in a 2D environment.
.. rst-class:: classref-introduction-group
Casts light in a 2D environment. A light is defined as a color, an energy value, a mode (see constants), and various other parameters (range and shadows-related).
.. rst-class:: classref-introduction-group
.. rst-class:: classref-reftable-group
.. rst-class:: classref-reftable-group
:ref:`float<class_float>` | :ref:`get_height<class_Light2D_method_get_height>`() |const| |
|void| | :ref:`set_height<class_Light2D_method_set_height>`(height: :ref:`float<class_float>`) |
.. rst-class:: classref-section-separator
.. rst-class:: classref-descriptions-group
.. rst-class:: classref-enumeration
enum ShadowFilter: :ref:`🔗<enum_Light2D_ShadowFilter>`
.. rst-class:: classref-enumeration-constant
:ref:`ShadowFilter<enum_Light2D_ShadowFilter>` SHADOW_FILTER_NONE = 0
No filter applies to the shadow map. This provides hard shadow edges and is the fastest to render. See :ref:`shadow_filter<class_Light2D_property_shadow_filter>`.
.. rst-class:: classref-enumeration-constant
:ref:`ShadowFilter<enum_Light2D_ShadowFilter>` SHADOW_FILTER_PCF5 = 1
Percentage closer filtering (5 samples) applies to the shadow map. This is slower compared to hard shadow rendering. See :ref:`shadow_filter<class_Light2D_property_shadow_filter>`.
.. rst-class:: classref-enumeration-constant
:ref:`ShadowFilter<enum_Light2D_ShadowFilter>` SHADOW_FILTER_PCF13 = 2
Percentage closer filtering (13 samples) applies to the shadow map. This is the slowest shadow filtering mode, and should be used sparingly. See :ref:`shadow_filter<class_Light2D_property_shadow_filter>`.
.. rst-class:: classref-item-separator
.. rst-class:: classref-enumeration
enum BlendMode: :ref:`🔗<enum_Light2D_BlendMode>`
.. rst-class:: classref-enumeration-constant
:ref:`BlendMode<enum_Light2D_BlendMode>` BLEND_MODE_ADD = 0
Adds the value of pixels corresponding to the Light2D to the values of pixels under it. This is the common behavior of a light.
.. rst-class:: classref-enumeration-constant
:ref:`BlendMode<enum_Light2D_BlendMode>` BLEND_MODE_SUB = 1
Subtracts the value of pixels corresponding to the Light2D to the values of pixels under it, resulting in inversed light effect.
.. rst-class:: classref-enumeration-constant
:ref:`BlendMode<enum_Light2D_BlendMode>` BLEND_MODE_MIX = 2
Mix the value of pixels corresponding to the Light2D to the values of pixels under it by linear interpolation.
.. rst-class:: classref-section-separator
.. rst-class:: classref-descriptions-group
.. rst-class:: classref-property
:ref:`BlendMode<enum_Light2D_BlendMode>` blend_mode = 0
:ref:`🔗<class_Light2D_property_blend_mode>`
.. rst-class:: classref-property-setget
- |void| set_blend_mode(value: :ref:`BlendMode<enum_Light2D_BlendMode>`)
- :ref:`BlendMode<enum_Light2D_BlendMode>` get_blend_mode()
The Light2D's blend mode. See :ref:`BlendMode<enum_Light2D_BlendMode>` constants for values.
.. rst-class:: classref-item-separator
.. rst-class:: classref-property
:ref:`Color<class_Color>` color = Color(1, 1, 1, 1)
:ref:`🔗<class_Light2D_property_color>`
.. rst-class:: classref-property-setget
- |void| set_color(value: :ref:`Color<class_Color>`)
- :ref:`Color<class_Color>` get_color()
The Light2D's :ref:`Color<class_Color>`.
.. rst-class:: classref-item-separator
.. rst-class:: classref-property
:ref:`bool<class_bool>` editor_only = false
:ref:`🔗<class_Light2D_property_editor_only>`
.. rst-class:: classref-property-setget
- |void| set_editor_only(value: :ref:`bool<class_bool>`)
- :ref:`bool<class_bool>` is_editor_only()
If true
, Light2D will only appear when editing the scene.
.. rst-class:: classref-item-separator
.. rst-class:: classref-property
:ref:`bool<class_bool>` enabled = true
:ref:`🔗<class_Light2D_property_enabled>`
.. rst-class:: classref-property-setget
- |void| set_enabled(value: :ref:`bool<class_bool>`)
- :ref:`bool<class_bool>` is_enabled()
If true
, Light2D will emit light.
.. rst-class:: classref-item-separator
.. rst-class:: classref-property
:ref:`float<class_float>` energy = 1.0
:ref:`🔗<class_Light2D_property_energy>`
.. rst-class:: classref-property-setget
- |void| set_energy(value: :ref:`float<class_float>`)
- :ref:`float<class_float>` get_energy()
The Light2D's energy value. The larger the value, the stronger the light.
.. rst-class:: classref-item-separator
.. rst-class:: classref-property
:ref:`int<class_int>` range_item_cull_mask = 1
:ref:`🔗<class_Light2D_property_range_item_cull_mask>`
.. rst-class:: classref-property-setget
- |void| set_item_cull_mask(value: :ref:`int<class_int>`)
- :ref:`int<class_int>` get_item_cull_mask()
The layer mask. Only objects with a matching :ref:`CanvasItem.light_mask<class_CanvasItem_property_light_mask>` will be affected by the Light2D. See also :ref:`shadow_item_cull_mask<class_Light2D_property_shadow_item_cull_mask>`, which affects which objects can cast shadows.
Note: :ref:`range_item_cull_mask<class_Light2D_property_range_item_cull_mask>` is ignored by :ref:`DirectionalLight2D<class_DirectionalLight2D>`, which will always light a 2D node regardless of the 2D node's :ref:`CanvasItem.light_mask<class_CanvasItem_property_light_mask>`.
.. rst-class:: classref-item-separator
.. rst-class:: classref-property
:ref:`int<class_int>` range_layer_max = 0
:ref:`🔗<class_Light2D_property_range_layer_max>`
.. rst-class:: classref-property-setget
- |void| set_layer_range_max(value: :ref:`int<class_int>`)
- :ref:`int<class_int>` get_layer_range_max()
Maximum layer value of objects that are affected by the Light2D.
.. rst-class:: classref-item-separator
.. rst-class:: classref-property
:ref:`int<class_int>` range_layer_min = 0
:ref:`🔗<class_Light2D_property_range_layer_min>`
.. rst-class:: classref-property-setget
- |void| set_layer_range_min(value: :ref:`int<class_int>`)
- :ref:`int<class_int>` get_layer_range_min()
Minimum layer value of objects that are affected by the Light2D.
.. rst-class:: classref-item-separator
.. rst-class:: classref-property
:ref:`int<class_int>` range_z_max = 1024
:ref:`🔗<class_Light2D_property_range_z_max>`
.. rst-class:: classref-property-setget
- |void| set_z_range_max(value: :ref:`int<class_int>`)
- :ref:`int<class_int>` get_z_range_max()
Maximum z
value of objects that are affected by the Light2D.
.. rst-class:: classref-item-separator
.. rst-class:: classref-property
:ref:`int<class_int>` range_z_min = -1024
:ref:`🔗<class_Light2D_property_range_z_min>`
.. rst-class:: classref-property-setget
- |void| set_z_range_min(value: :ref:`int<class_int>`)
- :ref:`int<class_int>` get_z_range_min()
Minimum z
value of objects that are affected by the Light2D.
.. rst-class:: classref-item-separator
.. rst-class:: classref-property
:ref:`Color<class_Color>` shadow_color = Color(0, 0, 0, 0)
:ref:`🔗<class_Light2D_property_shadow_color>`
.. rst-class:: classref-property-setget
- |void| set_shadow_color(value: :ref:`Color<class_Color>`)
- :ref:`Color<class_Color>` get_shadow_color()
:ref:`Color<class_Color>` of shadows cast by the Light2D.
.. rst-class:: classref-item-separator
.. rst-class:: classref-property
:ref:`bool<class_bool>` shadow_enabled = false
:ref:`🔗<class_Light2D_property_shadow_enabled>`
.. rst-class:: classref-property-setget
- |void| set_shadow_enabled(value: :ref:`bool<class_bool>`)
- :ref:`bool<class_bool>` is_shadow_enabled()
If true
, the Light2D will cast shadows.
.. rst-class:: classref-item-separator
.. rst-class:: classref-property
:ref:`ShadowFilter<enum_Light2D_ShadowFilter>` shadow_filter = 0
:ref:`🔗<class_Light2D_property_shadow_filter>`
.. rst-class:: classref-property-setget
- |void| set_shadow_filter(value: :ref:`ShadowFilter<enum_Light2D_ShadowFilter>`)
- :ref:`ShadowFilter<enum_Light2D_ShadowFilter>` get_shadow_filter()
Shadow filter type. See :ref:`ShadowFilter<enum_Light2D_ShadowFilter>` for possible values.
.. rst-class:: classref-item-separator
.. rst-class:: classref-property
:ref:`float<class_float>` shadow_filter_smooth = 0.0
:ref:`🔗<class_Light2D_property_shadow_filter_smooth>`
.. rst-class:: classref-property-setget
- |void| set_shadow_smooth(value: :ref:`float<class_float>`)
- :ref:`float<class_float>` get_shadow_smooth()
Smoothing value for shadows. Higher values will result in softer shadows, at the cost of visible streaks that can appear in shadow rendering. :ref:`shadow_filter_smooth<class_Light2D_property_shadow_filter_smooth>` only has an effect if :ref:`shadow_filter<class_Light2D_property_shadow_filter>` is :ref:`SHADOW_FILTER_PCF5<class_Light2D_constant_SHADOW_FILTER_PCF5>` or :ref:`SHADOW_FILTER_PCF13<class_Light2D_constant_SHADOW_FILTER_PCF13>`.
.. rst-class:: classref-item-separator
.. rst-class:: classref-property
:ref:`int<class_int>` shadow_item_cull_mask = 1
:ref:`🔗<class_Light2D_property_shadow_item_cull_mask>`
.. rst-class:: classref-property-setget
- |void| set_item_shadow_cull_mask(value: :ref:`int<class_int>`)
- :ref:`int<class_int>` get_item_shadow_cull_mask()
The shadow mask. Used with :ref:`LightOccluder2D<class_LightOccluder2D>` to cast shadows. Only occluders with a matching :ref:`CanvasItem.light_mask<class_CanvasItem_property_light_mask>` will cast shadows. See also :ref:`range_item_cull_mask<class_Light2D_property_range_item_cull_mask>`, which affects which objects can receive the light.
.. rst-class:: classref-section-separator
.. rst-class:: classref-descriptions-group
.. rst-class:: classref-method
:ref:`float<class_float>` get_height() |const| :ref:`🔗<class_Light2D_method_get_height>`
Returns the light's height, which is used in 2D normal mapping. See :ref:`PointLight2D.height<class_PointLight2D_property_height>` and :ref:`DirectionalLight2D.height<class_DirectionalLight2D_property_height>`.
.. rst-class:: classref-item-separator
.. rst-class:: classref-method
|void| set_height(height: :ref:`float<class_float>`) :ref:`🔗<class_Light2D_method_set_height>`
Sets the light's height, which is used in 2D normal mapping. See :ref:`PointLight2D.height<class_PointLight2D_property_height>` and :ref:`DirectionalLight2D.height<class_DirectionalLight2D_property_height>`.