SpotLight3D
Наследует: Light3D < VisualInstance3D < Node3D < Node < Object
Прожектор, например, рефлекторный прожектор или фонарь.
Описание
Прожектор — это тип узла Light3D, который излучает свет в определённом направлении в форме конуса. Свет ослабевает с увеличением расстояния. Это ослабление можно настроить, изменив параметры энергии, радиуса и затухания Light3D.
Свет излучается в направлении -Z глобального базиса узла. Для невращённого источника света это означает, что свет излучается вперёд, освещая переднюю сторону 3D-модели (см. Vector3.FORWARD и Vector3.MODEL_FRONT).
Примечание: При использовании метода мобильного рендеринга на каждом ресурсе сетки может отображаться только 8 прожекторов. Попытка отобразить более 8 прожекторов на одном ресурсе сетки приведёт к мерцанию прожекторов при движении камеры. При использовании метода рендеринга Compatibility по умолчанию на каждом ресурсе сетки может отображаться только 8 точечных источников света, но это значение можно увеличить, изменив параметр ProjectSettings.rendering/limits/opengl/max_lights_per_object.
Примечание: При использовании методов рендеринга Mobile или Compatibility точечные источники света будут корректно воздействовать только на те сетки, видимость которых AABB пересекается с AABB источника света. При использовании шейдера для деформации сетки таким образом, что она выходит за пределы AABB, необходимо увеличить параметр GeometryInstance3D.extra_cull_margin сетки. В противном случае источник света может быть не виден на сетке.
Обучающие материалы
Свойства
light_specular |
|
|
shadow_bias |
|
|
shadow_normal_bias |
|
|
|
||
|
||
|
||
|
Описания свойств
Угол прожектора в градусах. Это угловой радиус, то есть угол между осью Z (центром конуса) и его краем. Угловой радиус по умолчанию 45 градусов соответствует конусу с угловым диаметром 90 градусов.
Примечание: spot_angle не зависит от Node3D.scale (масштаба источника света или масштаба его родительского объекта).
float spot_angle_attenuation = 1.0 🔗
Угловая кривая затухания прожектора. См. также spot_attenuation.
float spot_attenuation = 1.0 🔗
Управляет функцией затухания на расстоянии для прожекторов.
Значение 0.0 будет поддерживать постоянную яркость на протяжении большей части диапазона, но плавно ослаблять свет на краю диапазона. Используйте значение 2.0 для физически точного освещения, так как это приводит к правильному обратному квадрату затухания.
Примечание: Установка затухания на 2.0 или выше может привести к тому, что удаленные объекты будут получать минимальный свет, даже в пределах диапазона. Например, при диапазоне 4096 объект на 100 единиц ослабляется с коэффициентом 0.0001. При яркости по умолчанию 1 свет не будет виден на этом расстоянии.
Примечание: Использование отрицательных или значений выше 10.0 может привести к неожиданным результатам.
Максимальный диапазон, который может быть достигнут прожектором. Обратите внимание, что эффективно освещенная область может казаться меньше в зависимости от используемого spot_attenuation. Независимо от используемого spot_attenuation, свет никогда не достигнет ничего за пределами этого диапазона.
Примечание: spot_range не зависит от Node3D.scale (масштаба источника света или масштаба его родителя).