123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295 |
- :github_url: hide
- .. DO NOT EDIT THIS FILE!!!
- .. Generated automatically from Godot engine sources.
- .. Generator: https://github.com/godotengine/godot/tree/4.0/doc/tools/make_rst.py.
- .. XML source: https://github.com/godotengine/godot/tree/4.0/doc/classes/ProceduralSkyMaterial.xml.
- .. _class_ProceduralSkyMaterial:
- ProceduralSkyMaterial
- =====================
- **Inherits:** :ref:`Material<class_Material>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
- A :ref:`Material<class_Material>` used with :ref:`Sky<class_Sky>` to generate a background based on user input parameters.
- .. rst-class:: classref-introduction-group
- Description
- -----------
- ProceduralSkyMaterial provides a way to create an effective background quickly by defining procedural parameters for the sun, the sky and the ground. The sky and ground are very similar, they are defined by a color at the horizon, another color, and finally an easing curve to interpolate between these two colors. Similarly, the sun is described by a position in the sky, a color, and an easing curve. However, the sun also defines a minimum and maximum angle, these two values define at what distance the easing curve begins and ends from the sun, and thus end up defining the size of the sun in the sky.
- The **ProceduralSkyMaterial** uses a lightweight shader to draw the sky and is thus suited for real time updates. When you do not need a quick sky that is not realistic, this is a good option. If you need a more realistic option, try using :ref:`PhysicalSkyMaterial<class_PhysicalSkyMaterial>` instead.
- The **ProceduralSkyMaterial** supports up to 4 suns. Each sun takes its color, energy, and direction from the corresponding :ref:`DirectionalLight3D<class_DirectionalLight3D>` in the scene.
- .. rst-class:: classref-reftable-group
- Properties
- ----------
- .. table::
- :widths: auto
- +-----------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+
- | :ref:`Color<class_Color>` | :ref:`ground_bottom_color<class_ProceduralSkyMaterial_property_ground_bottom_color>` | ``Color(0.2, 0.169, 0.133, 1)`` |
- +-----------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+
- | :ref:`float<class_float>` | :ref:`ground_curve<class_ProceduralSkyMaterial_property_ground_curve>` | ``0.02`` |
- +-----------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+
- | :ref:`float<class_float>` | :ref:`ground_energy_multiplier<class_ProceduralSkyMaterial_property_ground_energy_multiplier>` | ``1.0`` |
- +-----------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+
- | :ref:`Color<class_Color>` | :ref:`ground_horizon_color<class_ProceduralSkyMaterial_property_ground_horizon_color>` | ``Color(0.6463, 0.6558, 0.6708, 1)`` |
- +-----------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+
- | :ref:`Texture2D<class_Texture2D>` | :ref:`sky_cover<class_ProceduralSkyMaterial_property_sky_cover>` | |
- +-----------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+
- | :ref:`Color<class_Color>` | :ref:`sky_cover_modulate<class_ProceduralSkyMaterial_property_sky_cover_modulate>` | ``Color(1, 1, 1, 1)`` |
- +-----------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+
- | :ref:`float<class_float>` | :ref:`sky_curve<class_ProceduralSkyMaterial_property_sky_curve>` | ``0.15`` |
- +-----------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+
- | :ref:`float<class_float>` | :ref:`sky_energy_multiplier<class_ProceduralSkyMaterial_property_sky_energy_multiplier>` | ``1.0`` |
- +-----------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+
- | :ref:`Color<class_Color>` | :ref:`sky_horizon_color<class_ProceduralSkyMaterial_property_sky_horizon_color>` | ``Color(0.6463, 0.6558, 0.6708, 1)`` |
- +-----------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+
- | :ref:`Color<class_Color>` | :ref:`sky_top_color<class_ProceduralSkyMaterial_property_sky_top_color>` | ``Color(0.385, 0.454, 0.55, 1)`` |
- +-----------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+
- | :ref:`float<class_float>` | :ref:`sun_angle_max<class_ProceduralSkyMaterial_property_sun_angle_max>` | ``30.0`` |
- +-----------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+
- | :ref:`float<class_float>` | :ref:`sun_curve<class_ProceduralSkyMaterial_property_sun_curve>` | ``0.15`` |
- +-----------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+
- | :ref:`bool<class_bool>` | :ref:`use_debanding<class_ProceduralSkyMaterial_property_use_debanding>` | ``true`` |
- +-----------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+
- .. rst-class:: classref-section-separator
- ----
- .. rst-class:: classref-descriptions-group
- Property Descriptions
- ---------------------
- .. _class_ProceduralSkyMaterial_property_ground_bottom_color:
- .. rst-class:: classref-property
- :ref:`Color<class_Color>` **ground_bottom_color** = ``Color(0.2, 0.169, 0.133, 1)``
- .. rst-class:: classref-property-setget
- - void **set_ground_bottom_color** **(** :ref:`Color<class_Color>` value **)**
- - :ref:`Color<class_Color>` **get_ground_bottom_color** **(** **)**
- Color of the ground at the bottom. Blends with :ref:`ground_horizon_color<class_ProceduralSkyMaterial_property_ground_horizon_color>`.
- .. rst-class:: classref-item-separator
- ----
- .. _class_ProceduralSkyMaterial_property_ground_curve:
- .. rst-class:: classref-property
- :ref:`float<class_float>` **ground_curve** = ``0.02``
- .. rst-class:: classref-property-setget
- - void **set_ground_curve** **(** :ref:`float<class_float>` value **)**
- - :ref:`float<class_float>` **get_ground_curve** **(** **)**
- How quickly the :ref:`ground_horizon_color<class_ProceduralSkyMaterial_property_ground_horizon_color>` fades into the :ref:`ground_bottom_color<class_ProceduralSkyMaterial_property_ground_bottom_color>`.
- .. rst-class:: classref-item-separator
- ----
- .. _class_ProceduralSkyMaterial_property_ground_energy_multiplier:
- .. rst-class:: classref-property
- :ref:`float<class_float>` **ground_energy_multiplier** = ``1.0``
- .. rst-class:: classref-property-setget
- - void **set_ground_energy_multiplier** **(** :ref:`float<class_float>` value **)**
- - :ref:`float<class_float>` **get_ground_energy_multiplier** **(** **)**
- Multiplier for ground color. A higher value will make the ground brighter.
- .. rst-class:: classref-item-separator
- ----
- .. _class_ProceduralSkyMaterial_property_ground_horizon_color:
- .. rst-class:: classref-property
- :ref:`Color<class_Color>` **ground_horizon_color** = ``Color(0.6463, 0.6558, 0.6708, 1)``
- .. rst-class:: classref-property-setget
- - void **set_ground_horizon_color** **(** :ref:`Color<class_Color>` value **)**
- - :ref:`Color<class_Color>` **get_ground_horizon_color** **(** **)**
- Color of the ground at the horizon. Blends with :ref:`ground_bottom_color<class_ProceduralSkyMaterial_property_ground_bottom_color>`.
- .. rst-class:: classref-item-separator
- ----
- .. _class_ProceduralSkyMaterial_property_sky_cover:
- .. rst-class:: classref-property
- :ref:`Texture2D<class_Texture2D>` **sky_cover**
- .. rst-class:: classref-property-setget
- - void **set_sky_cover** **(** :ref:`Texture2D<class_Texture2D>` value **)**
- - :ref:`Texture2D<class_Texture2D>` **get_sky_cover** **(** **)**
- The sky cover texture to use. This texture must use an equirectangular projection (similar to :ref:`PanoramaSkyMaterial<class_PanoramaSkyMaterial>`). The texture's colors will be *added* to the existing sky color, and will be multiplied by :ref:`sky_energy_multiplier<class_ProceduralSkyMaterial_property_sky_energy_multiplier>` and :ref:`sky_cover_modulate<class_ProceduralSkyMaterial_property_sky_cover_modulate>`. This is mainly suited to displaying stars at night, but it can also be used to display clouds at day or night (with a non-physically-accurate look).
- .. rst-class:: classref-item-separator
- ----
- .. _class_ProceduralSkyMaterial_property_sky_cover_modulate:
- .. rst-class:: classref-property
- :ref:`Color<class_Color>` **sky_cover_modulate** = ``Color(1, 1, 1, 1)``
- .. rst-class:: classref-property-setget
- - void **set_sky_cover_modulate** **(** :ref:`Color<class_Color>` value **)**
- - :ref:`Color<class_Color>` **get_sky_cover_modulate** **(** **)**
- The tint to apply to the :ref:`sky_cover<class_ProceduralSkyMaterial_property_sky_cover>` texture. This can be used to change the sky cover's colors or opacity independently of the sky energy, which is useful for day/night or weather transitions. Only effective if a texture is defined in :ref:`sky_cover<class_ProceduralSkyMaterial_property_sky_cover>`.
- .. rst-class:: classref-item-separator
- ----
- .. _class_ProceduralSkyMaterial_property_sky_curve:
- .. rst-class:: classref-property
- :ref:`float<class_float>` **sky_curve** = ``0.15``
- .. rst-class:: classref-property-setget
- - void **set_sky_curve** **(** :ref:`float<class_float>` value **)**
- - :ref:`float<class_float>` **get_sky_curve** **(** **)**
- How quickly the :ref:`sky_horizon_color<class_ProceduralSkyMaterial_property_sky_horizon_color>` fades into the :ref:`sky_top_color<class_ProceduralSkyMaterial_property_sky_top_color>`.
- .. rst-class:: classref-item-separator
- ----
- .. _class_ProceduralSkyMaterial_property_sky_energy_multiplier:
- .. rst-class:: classref-property
- :ref:`float<class_float>` **sky_energy_multiplier** = ``1.0``
- .. rst-class:: classref-property-setget
- - void **set_sky_energy_multiplier** **(** :ref:`float<class_float>` value **)**
- - :ref:`float<class_float>` **get_sky_energy_multiplier** **(** **)**
- Multiplier for sky color. A higher value will make the sky brighter.
- .. rst-class:: classref-item-separator
- ----
- .. _class_ProceduralSkyMaterial_property_sky_horizon_color:
- .. rst-class:: classref-property
- :ref:`Color<class_Color>` **sky_horizon_color** = ``Color(0.6463, 0.6558, 0.6708, 1)``
- .. rst-class:: classref-property-setget
- - void **set_sky_horizon_color** **(** :ref:`Color<class_Color>` value **)**
- - :ref:`Color<class_Color>` **get_sky_horizon_color** **(** **)**
- Color of the sky at the horizon. Blends with :ref:`sky_top_color<class_ProceduralSkyMaterial_property_sky_top_color>`.
- .. rst-class:: classref-item-separator
- ----
- .. _class_ProceduralSkyMaterial_property_sky_top_color:
- .. rst-class:: classref-property
- :ref:`Color<class_Color>` **sky_top_color** = ``Color(0.385, 0.454, 0.55, 1)``
- .. rst-class:: classref-property-setget
- - void **set_sky_top_color** **(** :ref:`Color<class_Color>` value **)**
- - :ref:`Color<class_Color>` **get_sky_top_color** **(** **)**
- Color of the sky at the top. Blends with :ref:`sky_horizon_color<class_ProceduralSkyMaterial_property_sky_horizon_color>`.
- .. rst-class:: classref-item-separator
- ----
- .. _class_ProceduralSkyMaterial_property_sun_angle_max:
- .. rst-class:: classref-property
- :ref:`float<class_float>` **sun_angle_max** = ``30.0``
- .. rst-class:: classref-property-setget
- - void **set_sun_angle_max** **(** :ref:`float<class_float>` value **)**
- - :ref:`float<class_float>` **get_sun_angle_max** **(** **)**
- Distance from center of sun where it fades out completely.
- .. rst-class:: classref-item-separator
- ----
- .. _class_ProceduralSkyMaterial_property_sun_curve:
- .. rst-class:: classref-property
- :ref:`float<class_float>` **sun_curve** = ``0.15``
- .. rst-class:: classref-property-setget
- - void **set_sun_curve** **(** :ref:`float<class_float>` value **)**
- - :ref:`float<class_float>` **get_sun_curve** **(** **)**
- How quickly the sun fades away between the edge of the sun disk and :ref:`sun_angle_max<class_ProceduralSkyMaterial_property_sun_angle_max>`.
- .. rst-class:: classref-item-separator
- ----
- .. _class_ProceduralSkyMaterial_property_use_debanding:
- .. rst-class:: classref-property
- :ref:`bool<class_bool>` **use_debanding** = ``true``
- .. rst-class:: classref-property-setget
- - void **set_use_debanding** **(** :ref:`bool<class_bool>` value **)**
- - :ref:`bool<class_bool>` **get_use_debanding** **(** **)**
- If ``true``, enables debanding. Debanding adds a small amount of noise which helps reduce banding that appears from the smooth changes in color in the sky.
- .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
- .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
- .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
- .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
- .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
- .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`
|