ProceduralSkyMaterial

Наследует: Material < Resource < RefCounted < Object

Материал, определяющий простое небо для ресурса Sky.

Описание

ProceduralSkyMaterial предоставляет способ быстрого создания эффективного фона путем определения процедурных параметров для солнца, неба и земли. Небо и земля определяются основным цветом, цветом на горизонте и кривой смягчения для интерполяции между ними. Солнца описываются положением на небе, цветом и максимальным углом от солнца, на котором заканчивается кривая смягчения. Таким образом, максимальный угол определяет размер солнца на небе.

ProceduralSkyMaterial поддерживает до 4 солнц, используя цвет, энергию, направление и угловое расстояние первых четырех узлов DirectionalLight3D в сцене. Это означает, что солнца определяются индивидуально свойствами соответствующих им DirectionalLight3D и глобально sun_angle_max и sun_curve.

ProceduralSkyMaterial использует легкий шейдер для отрисовки неба и поэтому подходит для обновлений в реальном времени. Это делает его отличным вариантом для неба, которое простое и дешевое в вычислительном отношении, но нереалистичное. Если вам нужен более реалистичный процедурный вариант, используйте PhysicalSkyMaterial.

Свойства

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


Описания свойств

float energy_multiplier = 1.0 🔗

  • void set_energy_multiplier(value: float)

  • float get_energy_multiplier()

Множитель общей яркости неба. Более высокие значения дают более яркое небо.


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

  • void set_ground_bottom_color(value: Color)

  • Color get_ground_bottom_color()

Цвет земли внизу. Смешивается с ground_horizon_color.


float ground_curve = 0.02 🔗

  • void set_ground_curve(value: float)

  • float get_ground_curve()

Насколько быстро ground_horizon_color переходит в ground_bottom_color.


float ground_energy_multiplier = 1.0 🔗

  • void set_ground_energy_multiplier(value: float)

  • float get_ground_energy_multiplier()

Множитель для цвета земли. Более высокое значение сделает землю ярче.


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

  • void set_ground_horizon_color(value: Color)

  • Color get_ground_horizon_color()

Цвет земли на горизонте. Смешивается с ground_bottom_color.


Texture2D sky_cover 🔗

Текстура покрытия неба для использования. Эта текстура должна использовать равнопромежуточную проекцию (похожую на PanoramaSkyMaterial). Цвета текстуры будут добавлены к существующему цвету неба и умножены на sky_energy_multiplier и sky_cover_modulate. Это в основном подходит для отображения звезд ночью, но также может использоваться для отображения облаков днем или ночью (с нефизически точным видом).


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

  • void set_sky_cover_modulate(value: Color)

  • Color get_sky_cover_modulate()

Оттенок, применяемый к текстуре sky_cover. Это можно использовать для изменения цветов или непрозрачности небесного покрова независимо от энергии неба, что полезно для перехода день/ночь или погодных условий. Действует только в том случае, если текстура определена в sky_cover.


float sky_curve = 0.15 🔗

  • void set_sky_curve(value: float)

  • float get_sky_curve()

Как быстро sky_horizon_color переходит в sky_top_color.


float sky_energy_multiplier = 1.0 🔗

  • void set_sky_energy_multiplier(value: float)

  • float get_sky_energy_multiplier()

Множитель для цвета неба. Более высокое значение сделает небо ярче.


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

  • void set_sky_horizon_color(value: Color)

  • Color get_sky_horizon_color()

Цвет неба на горизонте. Смешивается с 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()

Цвет неба вверху. Смешивается с sky_horizon_color.


float sun_angle_max = 30.0 🔗

  • void set_sun_angle_max(value: float)

  • float get_sun_angle_max()

Расстояние от центра Солнца, где оно полностью исчезает.


float sun_curve = 0.15 🔗

  • void set_sun_curve(value: float)

  • float get_sun_curve()

Как быстро солнце исчезает между краем солнечного диска и sun_angle_max.


bool use_debanding = true 🔗

  • void set_use_debanding(value: bool)

  • bool get_use_debanding()

Если true, включается размытие полос. Размытие полос добавляет небольшое количество шума, что помогает уменьшить полосатость, которая появляется из-за плавных изменений цвета в небе.