Skip to content

Latest commit

 

History

History
458 lines (264 loc) · 18.5 KB

class_light2d.rst

File metadata and controls

458 lines (264 loc) · 18.5 KB
github_url:hide

Light2D

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

Description

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

Tutorials

.. rst-class:: classref-reftable-group

Properties

:ref:`BlendMode<enum_Light2D_BlendMode>` :ref:`blend_mode<class_Light2D_property_blend_mode>` 0
:ref:`Color<class_Color>` :ref:`color<class_Light2D_property_color>` Color(1, 1, 1, 1)
:ref:`bool<class_bool>` :ref:`editor_only<class_Light2D_property_editor_only>` false
:ref:`bool<class_bool>` :ref:`enabled<class_Light2D_property_enabled>` true
:ref:`float<class_float>` :ref:`energy<class_Light2D_property_energy>` 1.0
:ref:`int<class_int>` :ref:`range_item_cull_mask<class_Light2D_property_range_item_cull_mask>` 1
:ref:`int<class_int>` :ref:`range_layer_max<class_Light2D_property_range_layer_max>` 0
:ref:`int<class_int>` :ref:`range_layer_min<class_Light2D_property_range_layer_min>` 0
:ref:`int<class_int>` :ref:`range_z_max<class_Light2D_property_range_z_max>` 1024
:ref:`int<class_int>` :ref:`range_z_min<class_Light2D_property_range_z_min>` -1024
:ref:`Color<class_Color>` :ref:`shadow_color<class_Light2D_property_shadow_color>` Color(0, 0, 0, 0)
:ref:`bool<class_bool>` :ref:`shadow_enabled<class_Light2D_property_shadow_enabled>` false
:ref:`ShadowFilter<enum_Light2D_ShadowFilter>` :ref:`shadow_filter<class_Light2D_property_shadow_filter>` 0
:ref:`float<class_float>` :ref:`shadow_filter_smooth<class_Light2D_property_shadow_filter_smooth>` 0.0
:ref:`int<class_int>` :ref:`shadow_item_cull_mask<class_Light2D_property_shadow_item_cull_mask>` 1
.. rst-class:: classref-reftable-group

Methods

: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

Enumerations

.. 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

Property Descriptions

.. rst-class:: classref-property

:ref:`BlendMode<enum_Light2D_BlendMode>` blend_mode = 0 :ref:`🔗<class_Light2D_property_blend_mode>`

.. rst-class:: classref-property-setget

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

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

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

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

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

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

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

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

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

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

: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

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

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

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

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

Method Descriptions

.. 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>`.