Spot light

В A-Frame spot light представляет собой источник света, который излучает направленный конус света, создавая эффект прожектора. В отличие от point light, который излучает свет во все стороны, spot light ограничен углом конуса и имеет направление, что позволяет моделировать реалистичные сценические и архитектурные освещения.

<a-scene>
  <a-entity light="type: spot; color: #ffffff; intensity: 1; angle: 45" position="0 5 5"></a-entity>
  <a-box position="0 0 -5" rotation="0 45 0" color="#4CC3D9"></a-box>
</a-scene>
  • type: spot — определяет тип источника света.
  • color — задаёт цвет света.
  • intensity — уровень яркости.
  • angle — угол конуса света в градусах.

Направление и позиционирование

Spot Light освещает объекты в направлении, указанном свойством rotation или look-at. Позиция источника света (position) определяет точку, из которой выходит конус света.

<a-entity light="type: spot; color: #FFD700; intensity: 2; angle: 30" position="0 5 5" rotation="-45 0 0"></a-entity>
  • rotation — управляет направлением конуса.
  • look-at — позволяет автоматически направлять свет на объект.
<a-entity light="type: spot; color: #ffffff; intensity: 1; angle: 45" position="0 5 5" look-at="#target"></a-entity>
<a-box id="target" position="0 0 -5" color="#FF0000"></a-box>

Управление формой конуса

Угол конуса света определяется свойством angle. При этом интенсивность света плавно ослабевает от центра конуса к краям с помощью свойства penumbra.

  • angle — задаёт максимальный угол расходимости конуса.
  • penumbra — устанавливает мягкость края конуса (0 — резкий край, 1 — максимально мягкий).
<a-entity light="type: spot; color: #00FF00; intensity: 1.5; angle: 40; penumbra: 0.5" position="2 5 2" rotation="-60 45 0"></a-entity>

Дальность и затухание

Spot Light поддерживает затухание освещения с расстоянием. Основные параметры:

  • distance — максимальное расстояние действия света.
  • decay — коэффициент затухания (1 — линейное, 2 — квадратичное, 0 — без затухания).
<a-entity light="type: spot; intensity: 2; distance: 10; decay: 2; angle: 30" position="0 5 5"></a-entity>

Эти параметры позволяют моделировать реалистичное поведение прожектора, где объекты, находящиеся далеко, освещаются слабее.


Тени от Spot Light

Spot Light может создавать тени, что делает сцену более объёмной и реалистичной. В A-Frame тени настраиваются через свойства castShadow и shadow.

  • castShadow — объект, который бросает тень (true/false).
  • shadow.mapSize.width и shadow.mapSize.height — разрешение карты теней.
  • shadow.bias — смещение тени для предотвращения артефактов.
<a-entity light="type: spot; intensity: 2; angle: 45; castShadow: true; shadow.mapSize.width: 1024; shadow.mapSize.height: 1024; shadow.bias: -0.0001" position="5 10 5" rotation="-45 45 0"></a-entity>

<a-box position="0 0 -5" color="#4CC3D9" shadow="receive: true"></a-box>
<a-plane rotation="-90 0 0" width="20" height="20" color="#7BC8A4" shadow="receive: true"></a-plane>

Тени создают глубину и подчеркивают объем объектов, особенно в сценах с множеством источников света.


Анимация Spot Light

Spot Light можно анимировать, изменяя его свойства с помощью компонента animation или скриптов. Можно динамически менять интенсивность, цвет, угол или направление конуса.

<a-entity light="type: spot; color: #FF0000; intensity: 1; angle: 30; penumbra: 0.5" position="0 5 5" rotation="-45 0 0"
          animation="property: light.intensity; to: 5; dir: alternate; dur: 2000; loop: true"></a-entity>
  • property — имя свойства для анимации.
  • to — конечное значение.
  • dur — длительность в миллисекундах.
  • loop — зацикливание анимации.

Анимация позволяет создавать эффекты мигания, следящих прожекторов или динамического освещения сцен.


Оптимизация и производительность

Spot Light с тенью и высоким разрешением карты теней может сильно нагружать систему. Рекомендации:

  • Использовать distance и angle для ограничения зоны освещения.
  • Уменьшать разрешение карты теней (shadow.mapSize).
  • Применять тени только к ключевым объектам (castShadow и receiveShadow).
  • Использовать penumbra для смягчения краев без увеличения разрешения теней.

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


Spot Light является мощным инструментом в A-Frame для создания реалистичного и выразительного освещения, управления тенями и динамических световых эффектов. Его возможности охватывают управление углом конуса, направлением, интенсивностью, затуханием и анимацией, что делает его незаменимым для сцен с высоким уровнем визуальной детализации.