DirectionalLight3D

Наследует: Light3D < VisualInstance3D < Node3D < Node < Object

Направленный свет с расстояния, например, от Солнца.

Описание

Направленный источник света — это тип узла Light3D, моделирующий бесконечное число параллельных лучей, покрывающих всю сцену. Он используется для источников света высокой интенсивности, расположенных далеко от сцены, для моделирования солнечного или лунного света.

Свет излучается в направлении -Z глобального базиса узла. Для невращающегося источника света это означает, что свет излучается вперёд, освещая переднюю сторону трёхмерной модели (см. Vector3.FORWARD и Vector3.MODEL_FRONT). Положение узла игнорируется; для определения направления света используется только базис.

Обучающие материалы

Свойства

bool

directional_shadow_blend_splits

false

float

directional_shadow_fade_start

0.8

float

directional_shadow_max_distance

100.0

ShadowMode

directional_shadow_mode

2

float

directional_shadow_pancake_size

20.0

float

directional_shadow_split_1

0.1

float

directional_shadow_split_2

0.2

float

directional_shadow_split_3

0.5

SkyMode

sky_mode

0


Перечисления

enum ShadowMode: 🔗

ShadowMode SHADOW_ORTHOGONAL = 0

Визуализирует всю карту теней сцены с ортогональной точки зрения. Это самый быстрый режим направленных теней. Может привести к более размытым теням на близких объектах.

ShadowMode SHADOW_PARALLEL_2_SPLITS = 1

Разделяет вид усеченной пирамиды на 2 области, каждая со своей собственной картой теней. Этот режим теней является компромиссом между SHADOW_ORTHOGONAL и SHADOW_PARALLEL_4_SPLITS с точки зрения производительности.

ShadowMode SHADOW_PARALLEL_4_SPLITS = 2

Разделяет вид усеченной пирамиды на 4 области, каждая со своей собственной картой теней. Это самый медленный режим направленной тени.


enum SkyMode: 🔗

SkyMode SKY_MODE_LIGHT_AND_SKY = 0

Делает свет видимым как при освещении сцены, так и при визуализации неба.

SkyMode SKY_MODE_LIGHT_ONLY = 1

Делает свет видимым только в освещении сцены (включая прямое освещение и глобальное освещение). При использовании этого режима свет не будет виден из шейдеров неба.

SkyMode SKY_MODE_SKY_ONLY = 2

Делает свет видимым только для шейдеров неба. При использовании этого режима свет не будет отбрасывать свет на сцену (ни через прямое освещение, ни через глобальное освещение), но к нему можно получить доступ через шейдеры неба. Это может быть полезно, например, когда вы хотите управлять эффектами неба, не освещая сцену (например, во время ночного цикла).


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

bool directional_shadow_blend_splits = false 🔗

  • void set_blend_splits(value: bool)

  • bool is_blend_splits_enabled()

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


float directional_shadow_fade_start = 0.8 🔗

Пропорция directional_shadow_max_distance, в которой тень начинает исчезать. В directional_shadow_max_distance тень исчезнет. Значение по умолчанию — это баланс между плавным исчезновением и видимостью тени на расстоянии. Если камера движется быстро, а directional_shadow_max_distance низкое, рассмотрите возможность уменьшения directional_shadow_fade_start ниже 0.8, чтобы сделать переходы тени менее заметными. С другой стороны, если вы настроили directional_shadow_max_distance так, чтобы покрыть всю сцену, вы можете установить directional_shadow_fade_start на 1.0, чтобы предотвратить исчезновение тени на расстоянии (вместо этого она внезапно обрежется).


float directional_shadow_max_distance = 100.0 🔗

Максимальное расстояние для разделения теней. Увеличение этого значения сделает направленные тени видимыми с большего расстояния, за счет снижения общей детализации теней и производительности (поскольку больше объектов должны быть включены в рендеринг направленных теней).


ShadowMode directional_shadow_mode = 2 🔗

Алгоритм рендеринга тени света.


float directional_shadow_pancake_size = 20.0 🔗

Устанавливает размер направленного блина тени. Блин смещает начало усеченной пирамиды тени, чтобы обеспечить более высокое эффективное разрешение глубины для тени. Однако большой размер блина может привести к появлению артефактов в тенях крупных объектов, которые находятся близко к краю пирамиды. Уменьшение размера блина может помочь. Установка размера на 0 отключает эффект блина.


float directional_shadow_split_1 = 0.1 🔗

Расстояние от камеры до точки разделения тени 1. Относительно directional_shadow_max_distance. Используется только тогда, когда directional_shadow_mode равно SHADOW_PARALLEL_2_SPLITS или SHADOW_PARALLEL_4_SPLITS.


float directional_shadow_split_2 = 0.2 🔗

Расстояние от теневого разделения 1 до разделения 2. Относительно directional_shadow_max_distance. Используется только когда directional_shadow_mode равен SHADOW_PARALLEL_4_SPLITS.


float directional_shadow_split_3 = 0.5 🔗

Расстояние от точки разделения тени 2 до точки разделения 3. Относительно directional_shadow_max_distance. Используется только тогда, когда directional_shadow_mode равен SHADOW_PARALLEL_4_SPLITS.


SkyMode sky_mode = 0 🔗

Виден ли этот DirectionalLight3D на небе, на сцене или и на небе, и на сцене.