Служит базовым классом для других теневых классов.
camera — камера источника света.
Создает новый LightShadow. Этот класс не предназначен для прямого вызова — он используется в качестве базового класса другими классами теней.
Включает автоматическое обновление тени света. По умолчанию true
. Если вам не требуется динамическое освещение/тени, вы можете установить значение false
.
Смещение карты теней, сколько прибавлять или вычитать из нормализованной глубины при определении того, находится ли поверхность в тени. По умолчанию установлено значение 0
. Очень маленькие корректировки (порядка 0.0001) могут помочь уменьшить артефакты теней.
Камера источника света. Она используется для создания буфера глубины сцены: объекты, расположенные за другими объектами с точки зрения света, будут находиться в тени.
Экспоненциальное смещение для ESMShadowMap, чтобы уменьшить утечку света, которая может произойти вблизи затеняющего объекта. По умолчанию — 1
. Увеличение этого параметра уменьшает утечку света, но делает тени менее мягкими и делает артефакты самозатенения немного более заметными.
Используется для проверки того, является ли данный или производные классы экземплярами LightShadow.
Вы не должны изменять это значение, так как оно используется для внутренней оптимизации.
Карта глубины, создаваемая с помощью внутренней камеры; место, находящееся за пределами глубины пикселя, находится в тени. Вычисляется внутренне во время рендеринга.
Карта распределения, созданная с помощью внутренней камеры; окклюзия рассчитывается на основе распределения глубин. Вычисляется внутри во время рендеринга.
Vector2, определяющий ширину и высоту карты теней.
Большие значения дают лучшее качество теней ценой времени вычислений. Значения должны быть равны 2, вплоть до WebGLRenderer.capabilities.maxTextureSize для данного устройства, хотя ширина и высота не обязательно должны быть одинаковыми (например, (512, 1024)). По умолчанию используется значение (512, 512)
.
Модель для пространства камеры тени, для вычисления местоположения и глубины в карте теней. Хранится в Matrix4. Вычисляется внутри во время рендеринга.
Если установлено значение true
, карты теней будут обновлены в следующем вызове. По умолчанию false
. Если вы установили .autoUpdate в false
, вам нужно установить это свойство в true
и затем выполнить вызов рендеринга для обновления тени света.
Определяет, насколько позиция, используемая для запроса карты теней, смещена вдоль нормали объекта. По умолчанию 0. Увеличение этого значения может быть использовано для уменьшения акне теней, особенно в больших сценах, где свет падает на геометрию под малым углом. В результате тени могут выглядеть искаженными.
Если установить значение этого параметра больше 1, края тени будут размыты.
Высокие значения вызовут нежелательные эффекты полосатости в тенях - большее значение mapSize позволит использовать здесь более высокое значение, прежде чем эти эффекты станут заметны.
Обратите внимание, что это не имеет эффекта, если WebGLRenderer.shadowMap.type установлен в BasicShadowMap или BilinearShadowMap.
Адаптивное смещение, которое зависит от наклона полигона относительно камеры света. По умолчанию 0
.
Используется в основном для наложения теней.
Создает новый LightShadow с теми же свойствами, что и этот.
Копирует значение всех свойств из источника source в этот Light.
Удаляет цели рендеринга карты теней из памяти. Вы должны вызвать эту функцию, когда хотите удалить ресурсы теневой карты во время работы приложения.
Используется внутри рендерера для расширения карты теней на все видовые экраны.
Получает фрустум камеры тени. Используется рендерером для обводки объектов.
Используется внутри рендерера для получения количества видовых экранов, которые должны быть отрисованы для этой тени.
light — свет, для которого создается тень.
Обновить матрицы для камеры и тени, используемые внутри рендерера.
О том как получить исходный код этого модуля читайте тут.