Light3D
Предоставляет базовый класс для различных видов световых узлов.
Предоставляет базовый класс для различных видов световых узлов.
Light3D — это абстрактный базовый класс для световых узлов. Поскольку его нельзя инстанцировать, его не следует использовать напрямую. Другие типы световых узлов наследуются от него. Light3D содержит общие переменные и параметры, используемые для освещения.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Свойства30
DistanceFadeBeginСвойство
public float DistanceFadeBegin { get; set; }Расстояние от камеры, на котором свет начинает затухать (в 3D-единицах).
Примечание: Действует только для OmniLight3D и SpotLight3D.
DistanceFadeEnabledСвойство
public bool DistanceFadeEnabled { get; set; }Если true, свет будет плавно затухать, когда находится далеко от активной Camera3D, начиная с Light3D.DistanceFadeBegin. Это действует как форма уровня детализации (LOD). Свет будет затухать через Light3D.DistanceFadeBegin + Light3D.DistanceFadeLength, после чего он будет отбракован и вообще не отправлен в шейдер. Используйте это, чтобы уменьшить количество активных источников света в сцене и, таким образом, повысить производительность.
Примечание: Эффективно только для OmniLight3D и SpotLight3D.
DistanceFadeLengthСвойство
public float DistanceFadeLength { get; set; }Расстояние, на котором свет и его тень затухают. Энергия света и непрозрачность тени постепенно уменьшаются на этом расстоянии и в конце становятся полностью невидимыми.
Примечание: Эффективно только для OmniLight3D и SpotLight3D.
DistanceFadeShadowСвойство
public float DistanceFadeShadow { get; set; }Расстояние от камеры, на котором тень света обрезается (в 3D-единицах). Установите это значение ниже, чем Light3D.DistanceFadeBegin + Light3D.DistanceFadeLength, чтобы еще больше повысить производительность, поскольку рендеринг тени часто обходится дороже, чем рендеринг самого света.
Примечание: Эффективно только для OmniLight3D и SpotLight3D, и только когда Light3D.ShadowEnabled равно true.
Только редактор
EditorOnlyСвойство
public bool EditorOnly { get; set; }Если true, свет появляется только в редакторе и не будет виден во время выполнения. Если true, свет никогда не будет запечен в LightmapGI независимо от его Light3D.LightBakeMode.
LightAngularDistanceСвойство
public float LightAngularDistance { get; set; }Угловой размер источника света в градусах. Увеличение этого значения сделает тени мягче на больших расстояниях (также называется процентно-ближенные мягкие тени, или PCSS). Доступно только для DirectionalLight3D. Для справки, Солнце от Земли составляет приблизительно 0.5. Увеличение этого значения выше 0.0 для источников света с включенными тенями приведет к заметному снижению производительности из-за PCSS.
Примечание: Light3D.LightAngularDistance не зависит от Entity3D.Scale (масштаб источника света или масштаб его родителя).
Примечание: PCSS для направленных источников света поддерживается только в методе рендеринга Forward+, а не Mobile или Compatibility.
LightBakeModeСвойство
public Light3D.BakeMode LightBakeMode { get; set; }Режим запекания света. Это повлияет на методы глобального освещения, которые влияют на рендеринг света.
Примечание: Режим глобального освещения сеток также повлияет на рендеринг глобального освещения. См. GeometryInstance3D.GIMode.
LightColorСвойство
public Color LightColor { get; set; }Цвет источника света в нелинейном кодировании sRGB. Цвет overbright может использоваться для достижения результата, эквивалентного увеличению Light3D.LightEnergy источника света.
LightCullMaskСвойство
public uint LightCullMask { get; set; }Маска визуальных слоёв GeometryInstance3D, на которые действует источник. Это не CollisionMask физики. В проверке смена 1 на 2 исключила геометрию, оставшуюся на визуальном слое 1.
LightEnergyСвойство
public float LightEnergy { get; set; }Множитель энергии источника. Итоговая яркость также зависит от материала, расстояния/затухания, окружения, экспозиции и настройки физических единиц. Не трактуйте одно число как универсальный уровень яркости для всех проектов.
LightIndirectEnergyСвойство
public float LightIndirectEnergy { get; set; }Вторичный множитель, используемый с непрямым светом (отскоки света). Используется с VoxelGI и SDFGI (см. Environment.SdfgiEnabled).
Примечание: Это свойство игнорируется, если Light3D.LightEnergy равен 0.0, так как свет вообще не будет присутствовать в шейдере GI.
LightIntensityLumensСвойство
public float LightIntensityLumens { get; set; }Используется позиционными источниками света (OmniLight3D и SpotLight3D), когда ProjectSettings.rendering/lights_and_shadows/use_physical_light_units имеет значение true. Устанавливает интенсивность источника света, измеряемую в люменах. Люмены — это мера светового потока, представляющая собой общее количество видимого света, излучаемого источником света за единицу времени.
Для SpotLight3D мы предполагаем, что область за пределами видимого конуса окружена идеальным светопоглощающим материалом. Соответственно, видимая яркость области конуса не меняется по мере увеличения и уменьшения размера конуса.
Типичная бытовая лампочка может иметь яркость от 600 до 1200 люменов, свеча — около 13 люменов, а уличный фонарь — около 60 000 люменов.
LightIntensityLuxСвойство
public float LightIntensityLux { get; set; }Освещённость направленного источника в люксах. Используйте для DirectionalLight3D при включённых физических единицах; дополнительно умножается на LightEnergy. Это не световой поток лампы в люменах. При отключённом физическом режиме не влияет на рендер света.
LightNegativeСвойство
public bool LightNegative { get; set; }Если true, эффект света обратный, затемняя области и отбрасывая яркие тени.
LightProjectorСвойство
public Texture2D LightProjector { get; set; }Texture2D проецируется светом. Light3D.ShadowEnabled должен быть включен для работы проектора. Проекторы света создают видимость света, как будто он проходит через цветной, но прозрачный объект, почти как свет, проходящий через витражное стекло.
Примечание: В отличие от BaseMaterial3D, режим фильтра которого можно настраивать для каждого материала, режим фильтра для текстур проекторов света устанавливается глобально с помощью ProjectSettings.rendering/textures/light_projectors/filter.
Примечание: Текстуры проекторов света поддерживаются только в методах рендеринга Forward+ и Mobile, но не Compatibility.
LightSizeСвойство
public float LightSize { get; set; }Имитируемый размер источника света в единицах Reckfell, влияющий на затенение и тени. Для OmniLight3D и SpotLight3D увеличение этого значения имитирует сферический источник света, увеличивая размер бликов. Если тени включены, отображается полутень, из-за чего тени выглядят более размытыми. Для AreaLight3D затрагиваются только тени. Полутени имитируются с помощью мягких теней с уменьшением масштаба в процентах (PCSS), что заметно снижает производительность при значениях выше 0.0.
Примечание: Light3D.LightSize не зависит от Entity3D.Scale (масштаб источника света или масштаб его родительского элемента).
Примечание: PCSS для позиционных источников света поддерживается только в методах рендеринга Forward+ и Mobile, а не в Compatibility.
LightSpecularСвойство
public float LightSpecular { get; set; }Интенсивность зеркального пятна в объектах, затронутых светом. При 0 свет становится чистым диффузным светом. Если не запекать излучение, это можно использовать для избежания нереалистичных отражений при размещении света над излучающей поверхностью.
LightTemperatureСвойство
public float LightTemperature { get; set; }Цветовая температура в кельвинах, действует при включённых физических единицах. Около 6500 K — приблизительно нейтральный оттенок, меньшие значения теплее. Цвет температуры сочетается с LightColor в линейном пространстве; не заменяет окрашенный LightColor нейтральным.
LightVolumetricFogEnergyСвойство
public float LightVolumetricFogEnergy { get; set; }Вторичный множитель умножается на Light3D.LightEnergy, затем используется с объемным туманом Environment (если включен). Если установлено значение 0.0, вычисление объемного тумана будет пропущено для этого источника света, что может повысить производительность для большого количества источников света, когда включен объемный туман.
Примечание: Чтобы предотвратить плохое взаимодействие кратковременных динамических световых эффектов с объемным туманом, для источников света, используемых в этих эффектах, Light3D.LightVolumetricFogEnergy должно быть установлено значение 0.0, если только Environment.VolumetricFogTemporalReprojectionEnabled не отключено (или если количество перепроецирования значительно не снижено).
ShadowBiasСвойство
public float ShadowBias { get; set; }Смещение сравнения глубины теней для уменьшения самозатенения. Чрезмерное значение может отделить тень от объекта. Не заменяет корректные границы теней и разрешение карты; подбирайте вместе с ShadowNormalBias.
ShadowBlurСвойство
public float ShadowBlur { get; set; }Размывает края тени. Может использоваться для скрытия артефактов пикселей в картах теней с низким разрешением. Высокое значение может повлиять на производительность, сделать тени зернистыми и вызвать другие нежелательные артефакты. Постарайтесь сохранить значение как можно ближе к значению по умолчанию.
ShadowCasterMaskСвойство
public uint ShadowCasterMask { get; set; }Свет будет отбрасывать тени только от объектов в выбранных слоях.
ShadowContactShadowsAllowСвойство
public bool ShadowContactShadowsAllow { get; set; }Включает контактные тени экрана и пространства для этого света. ProjectSettings.rendering/lights_and_shadows/contact_shadow/enabled Включено.
ShadowContactShadowsBlurСвойство
public float ShadowContactShadowsBlur { get; set; }Прожечь края контактной тени. 0.0 :: образование острых теней; более высокие значения увеличивают уровень шума. Light3D.ShadowContactShadowsAllow Включено.
ShadowContactShadowsOpacityСвойство
public float ShadowContactShadowsOpacity { get; set; }Изменяет непроницаемость экранных и космических контактов этого света. 1.0 использует ту же дымность, что и Light3D.ShadowOpacity, стоимость 0.5 будет составлять 50% дымности Light3D.ShadowOpacity. Используется только в том случае, Light3D.ShadowContactShadowsAllow Включено.
ShadowEnabledСвойство
public bool ShadowEnabled { get; set; }Включает отбрасывание теней этим источником при поддержке его типа и renderer. Объектам нужны разрешённый CastShadow и попадание в нужную область. Проверены тени DirectionalLight3D в Compatibility; по исходникам тени AreaLight3D в этом renderer не поддержаны.
ShadowNormalBiasСвойство
public float ShadowNormalBias { get; set; }Смещение при построении теней вдоль нормали поверхности. Помогает против артефактов, но чрезмерное значение искажает контакт и тонкие детали. Это не геометрическое изменение меша или физической формы.
ShadowOpacityСвойство
public float ShadowOpacity { get; set; }Непрозрачность, используемая при рендеринге карты теней света. Значения ниже 1.0 заставляют свет проявляться сквозь тени. Это можно использовать для имитации глобального освещения с низкими затратами производительности.
ShadowReverseCullFaceСвойство
public bool ShadowReverseCullFace { get; set; }Если true, то отменяется отбраковка задней поверхности сетки. Это может быть полезно, когда у вас есть плоская сетка, за которой находится свет. Если вам нужно отбросить тень на обе стороны сетки, настройте сетку на использование двухсторонних теней с помощью GeometryInstance3D.ShadowCastingSetting.DoubleSided.
ShadowTransmittanceBiasСвойство
public float ShadowTransmittanceBias { get; set; }Методы33
GetAllowContactShadowsbool
public bool GetAllowContactShadows();boolGetBakeModeLight3D.BakeMode
public Light3D.BakeMode GetBakeMode();Light3D.BakeModeGetColorColor
public Color GetColor();ColorGetCorrelatedColorColor
public Color GetCorrelatedColor();Возвращает Color идеализированного черного тела при заданной Light3D.LightTemperature. Это значение вычисляется внутренне на основе Light3D.LightTemperature. Этот Color умножается на Light3D.LightColor перед отправкой на RenderingServer.
ColorGetCullMaskuint
public uint GetCullMask();uintGetDistanceFadeBeginfloat
public float GetDistanceFadeBegin();floatGetDistanceFadeLengthfloat
public float GetDistanceFadeLength();floatGetDistanceFadeShadowfloat
public float GetDistanceFadeShadow();floatGetParamfloat
public float GetParam(Light3D.Param param);Возвращает значение указанного параметра Light3D.Param.
| Имя | Тип | По умолчанию |
|---|---|---|
param | Light3D.Param | — |
floatGetProjectorTexture2D
public Texture2D GetProjector();Texture2DGetShadowCasterMaskuint
public uint GetShadowCasterMask();uintGetShadowReverseCullFacebool
public bool GetShadowReverseCullFace();boolGetTemperaturefloat
public float GetTemperature();Возвращает текущее значение LightTemperature. Цветовая температура в кельвинах, действует при включённых физических единицах. Около 6500 K — приблизительно нейтральный оттенок, меньшие значения теплее. Цвет температуры сочетается с LightColor в линейном пространстве; не заменяет окрашенный LightColor нейтральным.
floatТекущее значение свойства LightTemperature в описанных для него единицах.
HasShadowbool
public bool HasShadow();boolIsDistanceFadeEnabledbool
public bool IsDistanceFadeEnabled();boolIsEditorOnlybool
public bool IsEditorOnly();boolIsNegativebool
public bool IsNegative();boolSetAllowContactShadowsvoid
public void SetAllowContactShadows(bool enabled);| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
SetBakeModevoid
public void SetBakeMode(Light3D.BakeMode bakeMode);| Имя | Тип | По умолчанию |
|---|---|---|
bakeMode | Light3D.BakeMode | — |
SetColorvoid
public void SetColor(Color color);| Имя | Тип | По умолчанию |
|---|---|---|
color | Color | — |
SetCullMaskvoid
public void SetCullMask(uint cullMask);| Имя | Тип | По умолчанию |
|---|---|---|
cullMask | uint | — |
SetDistanceFadeBeginvoid
public void SetDistanceFadeBegin(float distance);| Имя | Тип | По умолчанию |
|---|---|---|
distance | float | — |
SetDistanceFadeLengthvoid
public void SetDistanceFadeLength(float distance);| Имя | Тип | По умолчанию |
|---|---|---|
distance | float | — |
SetDistanceFadeShadowvoid
public void SetDistanceFadeShadow(float distance);| Имя | Тип | По умолчанию |
|---|---|---|
distance | float | — |
SetEditorOnlyvoid
public void SetEditorOnly(bool editorOnly);| Имя | Тип | По умолчанию |
|---|---|---|
editorOnly | bool | — |
SetEnableDistanceFadevoid
public void SetEnableDistanceFade(bool enable);| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |
SetNegativevoid
public void SetNegative(bool enabled);| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
SetParamvoid
public void SetParam(Light3D.Param param, float value);Устанавливает значение указанного параметра Light3D.Param.
| Имя | Тип | По умолчанию |
|---|---|---|
param | Light3D.Param | — |
value | float | — |
SetProjectorvoid
public void SetProjector(Texture2D projector);| Имя | Тип | По умолчанию |
|---|---|---|
projector | Texture2D | — |
SetShadowvoid
public void SetShadow(bool enabled);| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
SetShadowCasterMaskvoid
public void SetShadowCasterMask(uint casterMask);| Имя | Тип | По умолчанию |
|---|---|---|
casterMask | uint | — |
SetShadowReverseCullFacevoid
public void SetShadowReverseCullFace(bool enable);| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |
SetTemperaturevoid
public void SetTemperature(float temperature);Задаёт LightTemperature. Цветовая температура в кельвинах, действует при включённых физических единицах. Около 6500 K — приблизительно нейтральный оттенок, меньшие значения теплее. Цвет температуры сочетается с LightColor в линейном пространстве; не заменяет окрашенный LightColor нейтральным.
| Имя | Тип | По умолчанию |
|---|---|---|
temperature | float | — |
temperatureЦветовая температура в кельвинах, действует при включённых физических единицах. Около 6500 K — приблизительно нейтральный оттенок, меньшие значения теплее. Цвет температуры сочетается с LightColor в линейном пространстве; не заменяет окрашенный LightColor нейтральным.
Light3D.BakeMode
| Значение | Описание |
|---|---|
Disabled = 0 | Свет игнорируется при запекании. Это самый быстрый режим, но свет не будет учитываться при запекании глобального освещения. Этот режим обычно следует использовать для динамических источников света, которые быстро меняются, так как эффект глобального освещения на них менее заметен.
Примечание: Скрытие источника света не влияет на запекание БАКЕ_СТАТИЧЕСКИЙ |
Dynamic = 2 | Свет принимается во внимание при динамическом выпечке ( |
Static = 1 | Свет учитывается при статическом выпекании ( |