DirectionalLight3D
Направленный свет с расстояния, например, от Солнца.
Направленный свет с расстояния, например, от Солнца.
Направленный источник света — это тип узла Light3D, моделирующий бесконечное число параллельных лучей, покрывающих всю сцену. Он используется для источников света высокой интенсивности, расположенных далеко от сцены, для моделирования солнечного или лунного света.
Свет излучается в направлении -Z глобального базиса узла. Для невращающегося источника света это означает, что свет излучается вперёд, освещая переднюю сторону трёхмерной модели (см. Vector3.Forward и Vector3.ModelFront). Положение узла игнорируется; для определения направления света используется только базис.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
DirectionalLight3DКонструктор
public DirectionalLight3D();Свойства9
DirectionalShadowBlendSplitsСвойство
public bool DirectionalShadowBlendSplits { get; set; }Если true, детализация теней жертвуется в обмен на более плавные переходы между разделениями. Включение разделения смешивания теней также имеет умеренные затраты производительности. Это игнорируется, когда DirectionalLight3D.DirectionalShadowMode равно DirectionalLight3D.ShadowMode.Orthogonal.
DirectionalShadowFadeStartСвойство
public float DirectionalShadowFadeStart { get; set; }Пропорция DirectionalLight3D.DirectionalShadowMaxDistance, в которой тень начинает исчезать. В DirectionalLight3D.DirectionalShadowMaxDistance тень исчезнет. Значение по умолчанию — это баланс между плавным исчезновением и видимостью тени на расстоянии. Если камера движется быстро, а DirectionalLight3D.DirectionalShadowMaxDistance низкое, рассмотрите возможность уменьшения DirectionalLight3D.DirectionalShadowFadeStart ниже 0.8, чтобы сделать переходы тени менее заметными. С другой стороны, если вы настроили DirectionalLight3D.DirectionalShadowMaxDistance так, чтобы покрыть всю сцену, вы можете установить DirectionalLight3D.DirectionalShadowFadeStart на 1.0, чтобы предотвратить исчезновение тени на расстоянии (вместо этого она внезапно обрежется).
DirectionalShadowMaxDistanceСвойство
public float DirectionalShadowMaxDistance { get; set; }Максимальное расстояние для разделения теней. Увеличение этого значения сделает направленные тени видимыми с большего расстояния, за счет снижения общей детализации теней и производительности (поскольку больше объектов должны быть включены в рендеринг направленных теней).
DirectionalShadowModeСвойство
public DirectionalLight3D.ShadowMode DirectionalShadowMode { get; set; }Алгоритм рендеринга тени света.
DirectionalShadowPancakeSizeСвойство
public float DirectionalShadowPancakeSize { get; set; }Устанавливает размер направленного блина тени. Блин смещает начало усеченной пирамиды тени, чтобы обеспечить более высокое эффективное разрешение глубины для тени. Однако большой размер блина может привести к появлению артефактов в тенях крупных объектов, которые находятся близко к краю пирамиды. Уменьшение размера блина может помочь. Установка размера на 0 отключает эффект блина.
DirectionalShadowSplit1Свойство
public float DirectionalShadowSplit1 { get; set; }Расстояние от камеры до точки разделения тени 1. Относительно DirectionalLight3D.DirectionalShadowMaxDistance. Используется только тогда, когда DirectionalLight3D.DirectionalShadowMode равно DirectionalLight3D.ShadowMode.Parallel2Splits или DirectionalLight3D.ShadowMode.Parallel4Splits.
DirectionalShadowSplit2Свойство
public float DirectionalShadowSplit2 { get; set; }Расстояние от теневого разделения 1 до разделения 2. Относительно DirectionalLight3D.DirectionalShadowMaxDistance. Используется только когда DirectionalLight3D.DirectionalShadowMode равен DirectionalLight3D.ShadowMode.Parallel4Splits.
DirectionalShadowSplit3Свойство
public float DirectionalShadowSplit3 { get; set; }Расстояние от точки разделения тени 2 до точки разделения 3. Относительно DirectionalLight3D.DirectionalShadowMaxDistance. Используется только тогда, когда DirectionalLight3D.DirectionalShadowMode равен DirectionalLight3D.ShadowMode.Parallel4Splits.
SkyModeСвойство
public DirectionalLight3D.SkyModeEnum SkyMode { get; set; }Участие направленного источника в освещении и небе: LightAndSky, LightOnly или SkyOnly. LightOnly исключает его из слотов LIGHT0…LIGHT3 шейдера неба. SkyOnly оставляет вклад для неба, но не обычное прямое освещение геометрии. Номер слота не является постоянным ID источника.
Методы6
GetShadowModeDirectionalLight3D.ShadowMode
public DirectionalLight3D.ShadowMode GetShadowMode();DirectionalLight3D.ShadowModeGetSkyModeDirectionalLight3D.SkyModeEnum
public DirectionalLight3D.SkyModeEnum GetSkyMode();Участие направленного источника в освещении и небе: LightAndSky, LightOnly или SkyOnly. LightOnly исключает его из слотов LIGHT0…LIGHT3 шейдера неба. SkyOnly оставляет вклад для неба, но не обычное прямое освещение геометрии. Номер слота не является постоянным ID источника.
DirectionalLight3D.SkyModeEnumНазначенный SkyModeEnum.
IsBlendSplitsEnabledbool
public bool IsBlendSplitsEnabled();boolSetBlendSplitsvoid
public void SetBlendSplits(bool enabled);| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
SetShadowModevoid
public void SetShadowMode(DirectionalLight3D.ShadowMode mode);| Имя | Тип | По умолчанию |
|---|---|---|
mode | DirectionalLight3D.ShadowMode | — |
SetSkyModevoid
public void SetSkyMode(DirectionalLight3D.SkyModeEnum mode);Участие направленного источника в освещении и небе: LightAndSky, LightOnly или SkyOnly. LightOnly исключает его из слотов LIGHT0…LIGHT3 шейдера неба. SkyOnly оставляет вклад для неба, но не обычное прямое освещение геометрии. Номер слота не является постоянным ID источника.
| Имя | Тип | По умолчанию |
|---|---|---|
mode | DirectionalLight3D.SkyModeEnum | — |
modeРежим участия источника в освещении/небе.
DirectionalLight3D.ShadowMode
| Значение | Описание |
|---|---|
Orthogonal = 0 | Визуализирует всю карту теней сцены с ортогональной точки зрения. Это самый быстрый режим направленных теней. Может привести к более размытым теням на близких объектах. |
Parallel2Splits = 1 | Разделяет вид усеченной пирамиды на 2 области, каждая со своей собственной картой теней. Этот режим теней является компромиссом между |
Parallel4Splits = 2 | Разделяет вид усеченной пирамиды на 4 области, каждая со своей собственной картой теней. Это самый медленный режим направленной тени. |
DirectionalLight3D.SkyModeEnum
| Значение | Описание |
|---|---|
LightAndSky = 0 | Делает свет видимым как при освещении сцены, так и при визуализации неба. |
LightOnly = 1 | Делает свет видимым только в освещении сцены (включая прямое освещение и глобальное освещение). При использовании этого режима свет не будет виден из шейдеров неба. |
SkyOnly = 2 | Делает свет видимым только для шейдеров неба. При использовании этого режима свет не будет отбрасывать свет на сцену (ни через прямое освещение, ни через глобальное освещение), но к нему можно получить доступ через шейдеры неба. Это может быть полезно, например, когда вы хотите управлять эффектами неба, не освещая сцену (например, во время ночного цикла). |