Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

ProceduralSkyMaterial

Eredita: Material < Resource < RefCounted < Object

Un materiale che definisce un cielo semplice per una risorsa Sky.

Descrizione

ProceduralSkyMaterial fornisce un modo per creare rapidamente uno sfondo definendo parametri procedurali per il sole, il cielo e il terreno. Il cielo e il terreno sono definiti da un colore principale, un colore all'orizzonte e una curva di attenuazione per interpolare tra di essi. I soli sono definiti da una posizione nel cielo, un colore e un angolo massimo dal sole in cui termina la curva di attenuazione. L'angolo massimo denota quindi la dimensione del sole nel cielo.

ProceduralSkyMaterial supporta fino a 4 soli, utilizzando il colore, l'energia, la direzione e la distanza angolare dei primi quattro nodi DirectionalLight3D nella scena. Ciò significa che i soli sono definiti individualmente dalle proprietà dei loro DirectionalLight3D corrispondenti e globalmente da sun_angle_max e sun_curve.

ProceduralSkyMaterial utilizza uno shader molto leggero per disegnare il cielo ed è quindi adatto per gli aggiornamenti in tempo reale. Ciò lo rende un'ottima opzione per un cielo semplice e computazionalmente economico, ma non realistico. Se si desidera un'opzione procedurale più realistica, usa PhysicalSkyMaterial.

Proprietà

float

energy_multiplier

1.0

Color

ground_bottom_color

Color(0.2, 0.169, 0.133, 1)

float

ground_curve

0.02

float

ground_energy_multiplier

1.0

Color

ground_horizon_color

Color(0.6463, 0.6558, 0.6708, 1)

Texture2D

sky_cover

Color

sky_cover_modulate

Color(1, 1, 1, 1)

float

sky_curve

0.15

float

sky_energy_multiplier

1.0

Color

sky_horizon_color

Color(0.6463, 0.6558, 0.6708, 1)

Color

sky_top_color

Color(0.385, 0.454, 0.55, 1)

float

sun_angle_max

30.0

float

sun_curve

0.15

bool

use_debanding

true


Descrizioni delle proprietà

float energy_multiplier = 1.0 🔗

  • void set_energy_multiplier(value: float)

  • float get_energy_multiplier()

Il moltiplicatore di luminosità complessiva del cielo. Valori più alti risultato in un cielo più luminoso.


Color ground_bottom_color = Color(0.2, 0.169, 0.133, 1) 🔗

  • void set_ground_bottom_color(value: Color)

  • Color get_ground_bottom_color()

Colore del terreno in basso. Si fonde con ground_horizon_color.


float ground_curve = 0.02 🔗

  • void set_ground_curve(value: float)

  • float get_ground_curve()

La rapidità con la quale il ground_horizon_color si sfuma nel ground_bottom_color.


float ground_energy_multiplier = 1.0 🔗

  • void set_ground_energy_multiplier(value: float)

  • float get_ground_energy_multiplier()

Moltiplicatore per il colore del terreno. Un valore maggiore renderà il terreno più luminoso.


Color ground_horizon_color = Color(0.6463, 0.6558, 0.6708, 1) 🔗

  • void set_ground_horizon_color(value: Color)

  • Color get_ground_horizon_color()

Colore del terreno all'orizzonte. Si fonde con ground_bottom_color.


Texture2D sky_cover 🔗

La texture della copertura del cielo da utilizzare. Questa texture deve usare una proiezione equirettangolare (simile a PanoramaSkyMaterial). I colori della texture saranno aggiunti al colore del cielo esistente e saranno moltiplicati per sky_energy_multiplier e sky_cover_modulate. Questo è principalmente adatto per visualizzare le stelle di notte, ma può anche essere usato per visualizzare le nuvole di giorno o di notte (con un aspetto non fisicamente accurato).


Color sky_cover_modulate = Color(1, 1, 1, 1) 🔗

  • void set_sky_cover_modulate(value: Color)

  • Color get_sky_cover_modulate()

La tinta da applicare alla texture sky_cover. Può essere usata per cambiare i colori o l'opacità della copertura del cielo indipendentemente dall'energia del cielo, il che è utile per le transizioni tra giorno e notte o meteo. Efficace solo se una texture è definita in sky_cover.


float sky_curve = 0.15 🔗

  • void set_sky_curve(value: float)

  • float get_sky_curve()

La rapidità con la quale il sky_horizon_color si sfuma nel sky_top_color.


float sky_energy_multiplier = 1.0 🔗

  • void set_sky_energy_multiplier(value: float)

  • float get_sky_energy_multiplier()

Moltiplicatore per il colore del cielo. Un valore maggiore renderà il cielo più luminoso.


Color sky_horizon_color = Color(0.6463, 0.6558, 0.6708, 1) 🔗

  • void set_sky_horizon_color(value: Color)

  • Color get_sky_horizon_color()

Colore del cielo all'orizzonte. Si fonde con sky_top_color.


Color sky_top_color = Color(0.385, 0.454, 0.55, 1) 🔗

  • void set_sky_top_color(value: Color)

  • Color get_sky_top_color()

Colore del cielo in alto. Si fonde con sky_horizon_color.


float sun_angle_max = 30.0 🔗

  • void set_sun_angle_max(value: float)

  • float get_sun_angle_max()

Distanza dal centro del sole dove svanisce completamente.


float sun_curve = 0.15 🔗

  • void set_sun_curve(value: float)

  • float get_sun_curve()

Rapidità con la quale il sole svanisce tra il bordo del disco solare e sun_angle_max.


bool use_debanding = true 🔗

  • void set_use_debanding(value: bool)

  • bool get_use_debanding()

Se true, abilita il debanding. Il debanding aggiunge una piccola quantità di rumore che aiuta a ridurre il banding che appare dai cambiamenti graduali del colore nel cielo.