Свет, который испускается в определенном направлении. Этот свет будет вести себя так, как будто он находится бесконечно далеко и все лучи, исходящие от него, параллельны. Обычно это используется для имитации дневного света; солнце находится достаточно далеко, чтобы его положение можно было считать бесконечным, и все лучи света, исходящие от него, параллельны.
Этот свет может отбрасывать тени - подробности смотрите на странице DirectionalLightShadowCSM.
Распространенной причиной путаницы при работе с направленным светом является то, что установка вращения не имеет никакого эффекта. Это связано с тем, что DirectionalLight в Verge3D эквивалентен тому, что в других приложениях часто называют "Target Direct Light".
Это означает, что его направление рассчитывается как направление от position света к target позиции (в отличие от "Free Direct Light", который имеет только компонент вращения).
Это делается для того, чтобы свет отбрасывал тени - камере shadow shadow нужна позиция для расчета теней.
Подробности обновления цели смотрите в свойстве target ниже.
// White directional light at half intensity shining from the top.
const directionalLight = new v3d.DirectionalLight(0xffffff, 0.5);
app.scene.add(directionalLight);
color — (необязательно) шестнадцатеричный цвет света. По умолчанию 0xffffffff (белый).
intensity — (необязательно) числовое значение силы/интенсивности света. По умолчанию 1.
Создает новый DirectionalLight.
Общие свойства смотрите в базовом классе Light..
Если установить значение true, свет будет отбрасывать динамические тени. Предупреждение: Это дорого и требует настройки, чтобы тени выглядели правильно. Подробности смотрите в DirectionalLightShadowCSM. По умолчанию установлено значение false.
Он устанавливается равным Object3D.DefaultUp (0, 1, 0), чтобы свет светил сверху вниз.
DirectionalLightShadowCSM, используемый для расчета теней для этого света.
DirectionalLight(направленный свет) указывает из своего положения position на target.position. По умолчанию позиция цели равна (0, 0, 0).
Примечание: Чтобы положение цели можно было изменить на любое другое, отличное от значения по умолчанию, ее необходимо добавить в scene с помощью функции
app.scene.add(light.target);
Это делается для того, чтобы matrixWorld цели автоматически обновлялся каждый кадр.
Также можно установить цель на другой объект в сцене (все, что имеет свойство position), например, так:
const targetObject = new v3d.Object3D();
app.scene.add(targetObject);
light.target = targetObject;
Теперь направленный свет будет отслеживать целевой объект.
Общие методы смотрите в базовом классе Light.
Копирует значения всех свойств из источника source в этот DirectionalLight.
О том как получить исходный код этого модуля читайте тут.