В 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 может создавать тени, что делает сцену более объёмной и
реалистичной. В 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 можно анимировать, изменяя его свойства с помощью
компонента 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 для создания реалистичного и выразительного освещения, управления тенями и динамических световых эффектов. Его возможности охватывают управление углом конуса, направлением, интенсивностью, затуханием и анимацией, что делает его незаменимым для сцен с высоким уровнем визуальной детализации.