В PlayCanvas компонент Light отвечает за создание
источников света в 3D-сценах. Он позволяет освещать объекты сцены,
создавая различные эффекты, такие как тени, отражения и общую атмосферу.
Этот компонент поддерживает несколько типов света, каждый из которых
имеет свои особенности и настройки.
PlayCanvas поддерживает следующие типы источников света:
Точечный свет (Point Light) Точечный свет излучает свет во всех направлениях от единственной точки в пространстве. Он часто используется для моделирования ламп, свечей и других источников света, которые излучают свет равномерно во все стороны.
Особенности:
Направленный свет (Directional Light) Направленный свет излучает световые лучи в одном направлении, как солнечный свет. Это идеальный выбор для моделирования солнечного света, где световые лучи параллельны друг другу, и объектам на сцене не важно, где находится источник света.
Особенности:
Прожектор (Spot Light) Прожектор излучает свет в виде конуса, что позволяет ограничить область освещаемой поверхности. Это идеальный выбор для создания эффекта точечного освещения, например, на сценах с фокусировкой на определённых объектах.
Особенности:
Каждый тип света в PlayCanvas имеет несколько общих параметров, которые можно настраивать для достижения желаемого эффекта освещения:
Цвет света (color) Цвет света определяет оттенок, который будет испускать источник. Это может быть белый свет, желтый, красный или любой другой цвет в зависимости от нужд сцены. Для указания цвета используется формат RGB или Hex.
Интенсивность (intensity) Интенсивность света регулирует яркость источника. Чем выше значение интенсивности, тем ярче будет свет. Это параметр, который важен для управления общей атмосферой сцены, а также для того, чтобы свет не заглушал другие элементы сцены.
Радиус действия (range) Для точечного света и прожектора существует параметр радиуса, который ограничивает расстояние, на котором свет будет заметен. Это полезно для создания локализованных источников света, таких как лампы или фонари.
Затухание (falloff) Затухание управляет тем, как быстро свет теряет свою яркость по мере удаления от источника. В PlayCanvas существуют различные модели затухания:
Затухание используется для создания эффекта естественного освещения, когда свет теряет свою силу с увеличением расстояния.
Угол распространения (coneAngle) Этот параметр используется для прожекторов и определяет угол конуса, в пределах которого свет будет распространяться. Чем меньше угол, тем более сфокусированным будет свет. Это может быть полезно для создания фокусированного освещения, такого как свет в театре или сфокусированный прожектор.
Экспонента затухания (coneExp) Экспонента затухания определяет, как быстро яркость света будет уменьшаться по мере увеличения угла. Этот параметр позволяет точнее настроить поведение света, чтобы получить мягкое или резкое затухание в зависимости от требований сцены.
Каждый тип света может быть применён в различных ситуациях для улучшения визуального восприятия сцены. Например, точечные источники света могут использоваться для создания локализованных источников света, таких как лампы или свечи. Направленные источники идеально подходят для создания солнечного света или освещения на больших открытых пространствах. Прожекторы обычно используются для выделения конкретных объектов, таких как в сценах с прожекторами или при создании эффекта фокуса.
Для настройки света в PlayCanvas важно учитывать такие факторы, как масштаб сцены и взаимодействие света с материалами объектов. На более крупных сценах направленные и точечные источники света часто используются в сочетании с картами теней, чтобы создавать реалистичные эффекты освещения и тени.
Для добавления источника света в сцену PlayCanvas необходимо создать
объект типа light, указав его параметры через скрипты.
Например:
var lightEntity = new pc.Entity();
lightEntity.addComponent('light', {
type: 'point',
color: new pc.Color(1, 1, 1), // белый свет
intensity: 2,
range: 10,
falloff: pc.LIGHT_FALLOFF_LINEAR
});
app.root.addChild(lightEntity);
Этот код добавляет точечный источник света в сцену, с белым цветом и интенсивностью 2. Источник света будет действовать в радиусе 10 единиц и будет иметь линейное затухание.
Для создания направленного света достаточно указать тип
directional:
var lightEntity = new pc.Entity();
lightEntity.addComponent('light', {
type: 'directional',
color: new pc.Color(1, 1, 1),
intensity: 1
});
app.root.addChild(lightEntity);
Для прожектора можно задать дополнительные параметры:
var lightEntity = new pc.Entity();
lightEntity.addComponent('light', {
type: 'spot',
color: new pc.Color(1, 1, 1),
intensity: 3,
range: 15,
coneAngle: 30,
coneExp: 3
});
app.root.addChild(lightEntity);
Использование компонента Light в PlayCanvas даёт
разработчику гибкие инструменты для создания различных освещений на
сцене. Правильный выбор типа света и настройка параметров, таких как
интенсивность, радиус и затухание, позволяют добиться нужного
визуального эффекта и создать атмосферу, соответствующую задумке.