reckfellENGINE

Light3D

Предоставляет базовый класс для различных видов световых узлов.

На этой странице
class Light3DReckfellSharpНаследует VisualInstance3D

Предоставляет базовый класс для различных видов световых узлов.

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

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Свойства30

DistanceFadeBeginСвойство
# DistanceFadeBegin
C#
public float DistanceFadeBegin { get; set; }

Расстояние от камеры, на котором свет начинает затухать (в 3D-единицах). Примечание: Действует только для OmniLight3D и SpotLight3D.

DistanceFadeEnabledСвойство
# DistanceFadeEnabled
C#
public bool DistanceFadeEnabled { get; set; }

Если true, свет будет плавно затухать, когда находится далеко от активной Camera3D, начиная с Light3D.DistanceFadeBegin. Это действует как форма уровня детализации (LOD). Свет будет затухать через Light3D.DistanceFadeBegin + Light3D.DistanceFadeLength, после чего он будет отбракован и вообще не отправлен в шейдер. Используйте это, чтобы уменьшить количество активных источников света в сцене и, таким образом, повысить производительность. Примечание: Эффективно только для OmniLight3D и SpotLight3D.

DistanceFadeLengthСвойство
# DistanceFadeLength
C#
public float DistanceFadeLength { get; set; }

Расстояние, на котором свет и его тень затухают. Энергия света и непрозрачность тени постепенно уменьшаются на этом расстоянии и в конце становятся полностью невидимыми. Примечание: Эффективно только для OmniLight3D и SpotLight3D.

DistanceFadeShadowСвойство
# DistanceFadeShadow
C#
public float DistanceFadeShadow { get; set; }

Расстояние от камеры, на котором тень света обрезается (в 3D-единицах). Установите это значение ниже, чем Light3D.DistanceFadeBegin + Light3D.DistanceFadeLength, чтобы еще больше повысить производительность, поскольку рендеринг тени часто обходится дороже, чем рендеринг самого света. Примечание: Эффективно только для OmniLight3D и SpotLight3D, и только когда Light3D.ShadowEnabled равно true.

Только редактор

EditorOnlyСвойство
# EditorOnly
C#
public bool EditorOnly { get; set; }

Если true, свет появляется только в редакторе и не будет виден во время выполнения. Если true, свет никогда не будет запечен в LightmapGI независимо от его Light3D.LightBakeMode.

LightAngularDistanceСвойство
# LightAngularDistance
C#
public float LightAngularDistance { get; set; }

Угловой размер источника света в градусах. Увеличение этого значения сделает тени мягче на больших расстояниях (также называется процентно-ближенные мягкие тени, или PCSS). Доступно только для DirectionalLight3D. Для справки, Солнце от Земли составляет приблизительно 0.5. Увеличение этого значения выше 0.0 для источников света с включенными тенями приведет к заметному снижению производительности из-за PCSS. Примечание: Light3D.LightAngularDistance не зависит от Entity3D.Scale (масштаб источника света или масштаб его родителя). Примечание: PCSS для направленных источников света поддерживается только в методе рендеринга Forward+, а не Mobile или Compatibility.

LightBakeModeСвойство
# LightBakeMode
C#
public Light3D.BakeMode LightBakeMode { get; set; }

Режим запекания света. Это повлияет на методы глобального освещения, которые влияют на рендеринг света. Примечание: Режим глобального освещения сеток также повлияет на рендеринг глобального освещения. См. GeometryInstance3D.GIMode.

LightColorСвойство
# LightColor
C#
public Color LightColor { get; set; }

Цвет источника света в нелинейном кодировании sRGB. Цвет overbright может использоваться для достижения результата, эквивалентного увеличению Light3D.LightEnergy источника света.

LightCullMaskСвойство
# LightCullMask
C#
public uint LightCullMask { get; set; }

Маска визуальных слоёв GeometryInstance3D, на которые действует источник. Это не CollisionMask физики. В проверке смена 1 на 2 исключила геометрию, оставшуюся на визуальном слое 1.

LightEnergyСвойство
# LightEnergy
C#
public float LightEnergy { get; set; }

Множитель энергии источника. Итоговая яркость также зависит от материала, расстояния/затухания, окружения, экспозиции и настройки физических единиц. Не трактуйте одно число как универсальный уровень яркости для всех проектов.

LightIndirectEnergyСвойство
# LightIndirectEnergy
C#
public float LightIndirectEnergy { get; set; }

Вторичный множитель, используемый с непрямым светом (отскоки света). Используется с VoxelGI и SDFGI (см. Environment.SdfgiEnabled). Примечание: Это свойство игнорируется, если Light3D.LightEnergy равен 0.0, так как свет вообще не будет присутствовать в шейдере GI.

LightIntensityLumensСвойство
# LightIntensityLumens
C#
public float LightIntensityLumens { get; set; }

Используется позиционными источниками света (OmniLight3D и SpotLight3D), когда ProjectSettings.rendering/lights_and_shadows/use_physical_light_units имеет значение true. Устанавливает интенсивность источника света, измеряемую в люменах. Люмены — это мера светового потока, представляющая собой общее количество видимого света, излучаемого источником света за единицу времени. Для SpotLight3D мы предполагаем, что область за пределами видимого конуса окружена идеальным светопоглощающим материалом. Соответственно, видимая яркость области конуса не меняется по мере увеличения и уменьшения размера конуса. Типичная бытовая лампочка может иметь яркость от 600 до 1200 люменов, свеча — около 13 люменов, а уличный фонарь — около 60 000 люменов.

LightIntensityLuxСвойство
# LightIntensityLux
C#
public float LightIntensityLux { get; set; }

Освещённость направленного источника в люксах. Используйте для DirectionalLight3D при включённых физических единицах; дополнительно умножается на LightEnergy. Это не световой поток лампы в люменах. При отключённом физическом режиме не влияет на рендер света.

LightNegativeСвойство
# LightNegative
C#
public bool LightNegative { get; set; }

Если true, эффект света обратный, затемняя области и отбрасывая яркие тени.

LightProjectorСвойство
# LightProjector
C#
public Texture2D LightProjector { get; set; }

Texture2D проецируется светом. Light3D.ShadowEnabled должен быть включен для работы проектора. Проекторы света создают видимость света, как будто он проходит через цветной, но прозрачный объект, почти как свет, проходящий через витражное стекло. Примечание: В отличие от BaseMaterial3D, режим фильтра которого можно настраивать для каждого материала, режим фильтра для текстур проекторов света устанавливается глобально с помощью ProjectSettings.rendering/textures/light_projectors/filter. Примечание: Текстуры проекторов света поддерживаются только в методах рендеринга Forward+ и Mobile, но не Compatibility.

LightSizeСвойство
# LightSize
C#
public float LightSize { get; set; }

Имитируемый размер источника света в единицах Reckfell, влияющий на затенение и тени. Для OmniLight3D и SpotLight3D увеличение этого значения имитирует сферический источник света, увеличивая размер бликов. Если тени включены, отображается полутень, из-за чего тени выглядят более размытыми. Для AreaLight3D затрагиваются только тени. Полутени имитируются с помощью мягких теней с уменьшением масштаба в процентах (PCSS), что заметно снижает производительность при значениях выше 0.0. Примечание: Light3D.LightSize не зависит от Entity3D.Scale (масштаб источника света или масштаб его родительского элемента). Примечание: PCSS для позиционных источников света поддерживается только в методах рендеринга Forward+ и Mobile, а не в Compatibility.

LightSpecularСвойство
# LightSpecular
C#
public float LightSpecular { get; set; }

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

LightTemperatureСвойство
# LightTemperature
C#
public float LightTemperature { get; set; }

Цветовая температура в кельвинах, действует при включённых физических единицах. Около 6500 K — приблизительно нейтральный оттенок, меньшие значения теплее. Цвет температуры сочетается с LightColor в линейном пространстве; не заменяет окрашенный LightColor нейтральным.

LightVolumetricFogEnergyСвойство
# LightVolumetricFogEnergy
C#
public float LightVolumetricFogEnergy { get; set; }

Вторичный множитель умножается на Light3D.LightEnergy, затем используется с объемным туманом Environment (если включен). Если установлено значение 0.0, вычисление объемного тумана будет пропущено для этого источника света, что может повысить производительность для большого количества источников света, когда включен объемный туман. Примечание: Чтобы предотвратить плохое взаимодействие кратковременных динамических световых эффектов с объемным туманом, для источников света, используемых в этих эффектах, Light3D.LightVolumetricFogEnergy должно быть установлено значение 0.0, если только Environment.VolumetricFogTemporalReprojectionEnabled не отключено (или если количество перепроецирования значительно не снижено).

ShadowBiasСвойство
# ShadowBias
C#
public float ShadowBias { get; set; }

Смещение сравнения глубины теней для уменьшения самозатенения. Чрезмерное значение может отделить тень от объекта. Не заменяет корректные границы теней и разрешение карты; подбирайте вместе с ShadowNormalBias.

ShadowBlurСвойство
# ShadowBlur
C#
public float ShadowBlur { get; set; }

Размывает края тени. Может использоваться для скрытия артефактов пикселей в картах теней с низким разрешением. Высокое значение может повлиять на производительность, сделать тени зернистыми и вызвать другие нежелательные артефакты. Постарайтесь сохранить значение как можно ближе к значению по умолчанию.

ShadowCasterMaskСвойство
# ShadowCasterMask
C#
public uint ShadowCasterMask { get; set; }

Свет будет отбрасывать тени только от объектов в выбранных слоях.

ShadowContactShadowsAllowСвойство
# ShadowContactShadowsAllow
C#
public bool ShadowContactShadowsAllow { get; set; }

Включает контактные тени экрана и пространства для этого света. ProjectSettings.rendering/lights_and_shadows/contact_shadow/enabled Включено.

ShadowContactShadowsBlurСвойство
# ShadowContactShadowsBlur
C#
public float ShadowContactShadowsBlur { get; set; }

Прожечь края контактной тени. 0.0 :: образование острых теней; более высокие значения увеличивают уровень шума. Light3D.ShadowContactShadowsAllow Включено.

ShadowContactShadowsOpacityСвойство
# ShadowContactShadowsOpacity
C#
public float ShadowContactShadowsOpacity { get; set; }

Изменяет непроницаемость экранных и космических контактов этого света. 1.0 использует ту же дымность, что и Light3D.ShadowOpacity, стоимость 0.5 будет составлять 50% дымности Light3D.ShadowOpacity. Используется только в том случае, Light3D.ShadowContactShadowsAllow Включено.

ShadowEnabledСвойство
# ShadowEnabled
C#
public bool ShadowEnabled { get; set; }

Включает отбрасывание теней этим источником при поддержке его типа и renderer. Объектам нужны разрешённый CastShadow и попадание в нужную область. Проверены тени DirectionalLight3D в Compatibility; по исходникам тени AreaLight3D в этом renderer не поддержаны.

ShadowNormalBiasСвойство
# ShadowNormalBias
C#
public float ShadowNormalBias { get; set; }

Смещение при построении теней вдоль нормали поверхности. Помогает против артефактов, но чрезмерное значение искажает контакт и тонкие детали. Это не геометрическое изменение меша или физической формы.

ShadowOpacityСвойство
# ShadowOpacity
C#
public float ShadowOpacity { get; set; }

Непрозрачность, используемая при рендеринге карты теней света. Значения ниже 1.0 заставляют свет проявляться сквозь тени. Это можно использовать для имитации глобального освещения с низкими затратами производительности.

ShadowReverseCullFaceСвойство
# ShadowReverseCullFace
C#
public bool ShadowReverseCullFace { get; set; }

Если true, то отменяется отбраковка задней поверхности сетки. Это может быть полезно, когда у вас есть плоская сетка, за которой находится свет. Если вам нужно отбросить тень на обе стороны сетки, настройте сетку на использование двухсторонних теней с помощью GeometryInstance3D.ShadowCastingSetting.DoubleSided.

ShadowTransmittanceBiasСвойство
# ShadowTransmittanceBias
C#
public float ShadowTransmittanceBias { get; set; }

Методы33

GetAllowContactShadowsbool
# GetAllowContactShadows
C#
public bool GetAllowContactShadows();
Возвращает bool
GetBakeModeLight3D.BakeMode
# GetBakeMode
C#
public Light3D.BakeMode GetBakeMode();
Возвращает Light3D.BakeMode
GetColorColor
# GetColor
C#
public Color GetColor();
Возвращает Color
GetCorrelatedColorColor
# GetCorrelatedColor
C#
public Color GetCorrelatedColor();

Возвращает Color идеализированного черного тела при заданной Light3D.LightTemperature. Это значение вычисляется внутренне на основе Light3D.LightTemperature. Этот Color умножается на Light3D.LightColor перед отправкой на RenderingServer.

Возвращает Color
GetCullMaskuint
# GetCullMask
C#
public uint GetCullMask();
Возвращает uint
GetDistanceFadeBeginfloat
# GetDistanceFadeBegin
C#
public float GetDistanceFadeBegin();
Возвращает float
GetDistanceFadeLengthfloat
# GetDistanceFadeLength
C#
public float GetDistanceFadeLength();
Возвращает float
GetDistanceFadeShadowfloat
# GetDistanceFadeShadow
C#
public float GetDistanceFadeShadow();
Возвращает float
GetParamfloat
# GetParam
C#
public float GetParam(Light3D.Param param);

Возвращает значение указанного параметра Light3D.Param.

Параметры
ИмяТипПо умолчанию
paramLight3D.Param—
Возвращает float
GetProjectorTexture2D
# GetProjector
C#
public Texture2D GetProjector();
Возвращает Texture2D
GetShadowCasterMaskuint
# GetShadowCasterMask
C#
public uint GetShadowCasterMask();
Возвращает uint
GetShadowReverseCullFacebool
# GetShadowReverseCullFace
C#
public bool GetShadowReverseCullFace();
Возвращает bool
GetTemperaturefloat
# GetTemperature
C#
public float GetTemperature();

Возвращает текущее значение LightTemperature. Цветовая температура в кельвинах, действует при включённых физических единицах. Около 6500 K — приблизительно нейтральный оттенок, меньшие значения теплее. Цвет температуры сочетается с LightColor в линейном пространстве; не заменяет окрашенный LightColor нейтральным.

Возвращает float

Текущее значение свойства LightTemperature в описанных для него единицах.

HasShadowbool
# HasShadow
C#
public bool HasShadow();
Возвращает bool
IsDistanceFadeEnabledbool
# IsDistanceFadeEnabled
C#
public bool IsDistanceFadeEnabled();
Возвращает bool
IsEditorOnlybool
# IsEditorOnly
C#
public bool IsEditorOnly();
Возвращает bool
IsNegativebool
# IsNegative
C#
public bool IsNegative();
Возвращает bool
SetAllowContactShadowsvoid
# SetAllowContactShadows
C#
public void SetAllowContactShadows(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
SetBakeModevoid
# SetBakeMode
C#
public void SetBakeMode(Light3D.BakeMode bakeMode);
Параметры
ИмяТипПо умолчанию
bakeModeLight3D.BakeMode—
SetColorvoid
# SetColor
C#
public void SetColor(Color color);
Параметры
ИмяТипПо умолчанию
colorColor—
SetCullMaskvoid
# SetCullMask
C#
public void SetCullMask(uint cullMask);
Параметры
ИмяТипПо умолчанию
cullMaskuint—
SetDistanceFadeBeginvoid
# SetDistanceFadeBegin
C#
public void SetDistanceFadeBegin(float distance);
Параметры
ИмяТипПо умолчанию
distancefloat—
SetDistanceFadeLengthvoid
# SetDistanceFadeLength
C#
public void SetDistanceFadeLength(float distance);
Параметры
ИмяТипПо умолчанию
distancefloat—
SetDistanceFadeShadowvoid
# SetDistanceFadeShadow
C#
public void SetDistanceFadeShadow(float distance);
Параметры
ИмяТипПо умолчанию
distancefloat—
SetEditorOnlyvoid
# SetEditorOnly
C#
public void SetEditorOnly(bool editorOnly);
Параметры
ИмяТипПо умолчанию
editorOnlybool—
SetEnableDistanceFadevoid
# SetEnableDistanceFade
C#
public void SetEnableDistanceFade(bool enable);
Параметры
ИмяТипПо умолчанию
enablebool—
SetNegativevoid
# SetNegative
C#
public void SetNegative(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
SetParamvoid
# SetParam
C#
public void SetParam(Light3D.Param param, float value);

Устанавливает значение указанного параметра Light3D.Param.

Параметры
ИмяТипПо умолчанию
paramLight3D.Param—
valuefloat—
SetProjectorvoid
# SetProjector
C#
public void SetProjector(Texture2D projector);
Параметры
ИмяТипПо умолчанию
projectorTexture2D—
SetShadowvoid
# SetShadow
C#
public void SetShadow(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
SetShadowCasterMaskvoid
# SetShadowCasterMask
C#
public void SetShadowCasterMask(uint casterMask);
Параметры
ИмяТипПо умолчанию
casterMaskuint—
SetShadowReverseCullFacevoid
# SetShadowReverseCullFace
C#
public void SetShadowReverseCullFace(bool enable);
Параметры
ИмяТипПо умолчанию
enablebool—
SetTemperaturevoid
# SetTemperature
C#
public void SetTemperature(float temperature);

Задаёт LightTemperature. Цветовая температура в кельвинах, действует при включённых физических единицах. Около 6500 K — приблизительно нейтральный оттенок, меньшие значения теплее. Цвет температуры сочетается с LightColor в линейном пространстве; не заменяет окрашенный LightColor нейтральным.

Параметры
ИмяТипПо умолчанию
temperaturefloat—
temperature

Цветовая температура в кельвинах, действует при включённых физических единицах. Около 6500 K — приблизительно нейтральный оттенок, меньшие значения теплее. Цвет температуры сочетается с LightColor в линейном пространстве; не заменяет окрашенный LightColor нейтральным.

Light3D.BakeMode

ЗначениеОписание
Disabled = 0

Свет игнорируется при запекании. Это самый быстрый режим, но свет не будет учитываться при запекании глобального освещения. Этот режим обычно следует использовать для динамических источников света, которые быстро меняются, так как эффект глобального освещения на них менее заметен. Примечание: Скрытие источника света не влияет на запекание LightmapGI. Скрытие источника света все равно повлияет на запекание VoxelGI и SDFGI (см. Environment.SdfgiEnabled).

БАКЕ_СТАТИЧЕСКИЙ

Dynamic = 2

Свет принимается во внимание при динамическом выпечке (VoxelGI и SDFGIEnvironment.SdfgiEnabled) Свет может быть перемещен или модифицирован с обновлением глобального освещения в режиме реального времени. Light3D.BakeMode.Static. Это связано с более высокими расходами по сравнению с Light3D.BakeMode.StaticПри использовании SDFGI скорость обновления динамических огней зависит от ProjectSettings.rendering/global_illumination/sdfgi/frames_to_update_lights. Примечание: При использовании LightmapGI, непрямой свет света печется, но прямой свет и тени остаются в режиме реального времени. Этот режим позволяет производить изменения цвета, энергии и положения света, пока они выглядят достаточно правильными. Например, вы можете использовать это для создания фликеров статических факелов, которые имеют непрямой свет.

Static = 1

Свет учитывается при статическом выпекании (VoxelGI, LightmapGI, SDFGIEnvironment.SdfgiEnabledСвет может быть перемещен или модифицирован, но его глобальное освещение не будет обновляться в реальном времени. Примечание: Свет не печется в LightmapGI если Light3D.EditorOnly это true. Примечание: При использовании LightmapGI, как прямой, так и непрямой свет печется. Поскольку прямой свет выпекается, свет не показывает свет секулярной доли на статических световых картах. Тени на статических световых картах также будут выглядеть менее подробными, но свет все еще отбрасывает тени, которые могут быть показаны на динамических объектах. Поскольку вычисления света в режиме реального времени пропущены на статических светокартированных мехах, этот режим выпечки улучшит производительность рабочего времени по сравнению с динамическими объектами. Light3D.BakeMode.Dynamic и Light3D.BakeMode.Disabled.

Light3D.Param

ЗначениеОписание
Attenuation = 6

Константа для доступа к OmniLight3D.OmniAttenuation или SpotLight3D.SpotAttenuation.

ContactShadowBlur = 22

Постоянный доступ Light3D.ShadowContactShadowsBlur.

ContactShadowOpacity = 21

Постоянный доступ Light3D.ShadowContactShadowsOpacity.

Energy = 0

Константа для доступа к Light3D.LightEnergy.

IndirectEnergy = 1

Константа для доступа к Light3D.LightIndirectEnergy.

Intensity = 20

Константа для доступа к Light3D.LightIntensityLumens и Light3D.LightIntensityLux. Используется только когда ProjectSettings.rendering/lights_and_shadows/use_physical_light_units имеет значение true.

Max = 23

Представляет размер перечисления Light3D.Param.

Range = 4

Константа для доступа к OmniLight3D.OmniRange или SpotLight3D.SpotRange.

ShadowBias = 15

Константа для доступа к Light3D.ShadowBias.

ShadowBlur = 18

Константа для доступа к Light3D.ShadowBlur.

ShadowFadeStart = 13

Константа для доступа к DirectionalLight3D.DirectionalShadowFadeStart.

ShadowMaxDistance = 9

Константа для доступа к DirectionalLight3D.DirectionalShadowMaxDistance.

ShadowNormalBias = 14

Константа для доступа к Light3D.ShadowNormalBias.

ShadowOpacity = 17

Константа для доступа к Light3D.ShadowOpacity.

ShadowPancakeSize = 16

Константа для доступа к DirectionalLight3D.DirectionalShadowPancakeSize.

ShadowSplit1Offset = 10

Константа для доступа к DirectionalLight3D.DirectionalShadowSplit1.

ShadowSplit2Offset = 11

Константа для доступа к DirectionalLight3D.DirectionalShadowSplit2.

ShadowSplit3Offset = 12

Константа для доступа к DirectionalLight3D.DirectionalShadowSplit3.

Size = 5

Константа для доступа к Light3D.LightSize.

Specular = 3

Константа для доступа к Light3D.LightSpecular.

SpotAngle = 7

Константа для доступа к SpotLight3D.SpotAngle.

SpotAttenuation = 8

Константа для доступа к SpotLight3D.SpotAngleAttenuation.

TransmittanceBias = 19

Константа для доступа к Light3D.ShadowTransmittanceBias.

VolumetricFogEnergy = 2

Константа для доступа к Light3D.LightVolumetricFogEnergy.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.