github_url: | hide |
---|
Inherits: :ref:`Material<class_Material>` < :ref:`Resource<class_Resource>` < :ref:`RefCounted<class_RefCounted>` < :ref:`Object<class_Object>`
A material that defines a simple sky for a :ref:`Sky<class_Sky>` resource.
.. rst-class:: classref-introduction-group
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 defined by a main color, a color at the horizon, and an easing curve to interpolate between them. Suns are described by a position in the sky, a color, and a max angle from the sun at which the easing curve ends. The max angle therefore defines the size of the sun in the sky.
ProceduralSkyMaterial supports up to 4 suns, using the color, and energy, direction, and angular distance of the first four :ref:`DirectionalLight3D<class_DirectionalLight3D>` nodes in the scene. This means that the suns are defined individually by the properties of their corresponding :ref:`DirectionalLight3D<class_DirectionalLight3D>`s and globally by :ref:`sun_angle_max<class_ProceduralSkyMaterial_property_sun_angle_max>` and :ref:`sun_curve<class_ProceduralSkyMaterial_property_sun_curve>`.
ProceduralSkyMaterial uses a lightweight shader to draw the sky and is therefore suited for real time updates. This makes it a great option for a sky that is simple and computationally cheap, but unrealistic. If you need a more realistic procedural option, use :ref:`PhysicalSkyMaterial<class_PhysicalSkyMaterial>`.
.. rst-class:: classref-reftable-group
.. rst-class:: classref-section-separator
.. rst-class:: classref-descriptions-group
.. 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
.. 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
.. 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
.. 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
.. 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
.. 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
.. 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
.. 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
.. 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
.. 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
.. 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
.. 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
.. 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.