LightShadow

Служит базовым классом для других теневых классов.

Конструктор

LightShadow(camera : Camera)

camera — взгляд на мир со стороны света.

Создает новый LightShadow. Этот класс не предназначен для прямого вызова - он используется в качестве базового класса другими световыми тенями.

Свойства

.autoUpdate : Boolean

Включает автоматическое обновление тени света. По умолчанию true. Если вам не требуется динамическое освещение/тени, вы можете установить значение false.

.camera : Camera

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

.bias : Float

Смещение карты теней, сколько прибавлять или вычитать из нормализованной глубины при определении того, находится ли поверхность в тени.
По умолчанию установлено значение 0. Очень маленькие корректировки здесь (порядка 0.0001) могут помочь уменьшить артефакты в тенях.

.expBias : Float

Экспоненциальное смещение для ESMShadowMap, чтобы уменьшить утечку света, которая может произойти вблизи окклюдера.
По умолчанию - 1. Увеличение этого параметра уменьшает утечку света, но делает тени менее мягкими и делает артефакты самозатенения немного более заметными.

.isLightShadow : Boolean

Используется для проверки того, является ли данный или производные классы светотенями. По умолчанию true.

Вы не должны изменять это значение, так как оно используется для внутренней оптимизации.

.map : WebGLRenderTarget

Карта глубины, создаваемая с помощью внутренней камеры; место, находящееся за пределами глубины пикселя, находится в тени. Вычисляется внутренне во время рендеринга.

.mapPass : WebGLRenderTarget

Карта распределения, созданная с помощью внутренней камеры; окклюзия рассчитывается на основе распределения глубин. Вычисляется внутри во время рендеринга.

.mapSize : Vector2

Vector2, определяющий ширину и высоту карты теней.

Большие значения дают лучшее качество теней ценой времени вычислений. Значения должны быть равны 2, вплоть до WebGLRenderer.capabilities.maxTextureSize для данного устройства, хотя ширина и высота не обязательно должны быть одинаковыми (например, (512, 1024)). По умолчанию используется значение (512, 512).

.matrix : Matrix4

Модель для пространства камеры тени, для вычисления местоположения и глубины в карте теней. Хранится в Matrix4. Вычисляется внутри во время рендеринга.

.needsUpdate : Boolean

Если установлено значение true, карты теней будут обновлены в следующем вызове render. По умолчанию false. Если вы установили .autoUpdate в false, вам нужно установить это свойство в true и затем выполнить вызов рендеринга для обновления тени света.

.normalBias : Float

Определяет, насколько позиция, используемая для запроса карты теней, смещена вдоль нормали объекта. По умолчанию 0. Увеличение этого значения может быть использовано для уменьшения акне теней, особенно в больших сценах, где свет падает на геометрию под малым углом. В результате тени могут выглядеть искаженными.

.radius : Float

Если установить значение этого параметра больше 1, края тени будут размыты.
Высокие значения вызовут нежелательные эффекты полосатости в тенях - большее значение mapSize позволит использовать здесь более высокое значение, прежде чем эти эффекты станут заметны.
Если WebGLRenderer.shadowMap.type имеет значение PCFSoftShadowMap, радиус не влияет, и вместо этого рекомендуется увеличить мягкость, уменьшив mapSize.

Обратите внимание, что это не имеет эффекта, если WebGLRenderer.shadowMap.type установлен в BasicShadowMap.

.slopeScaledBias : Number

Адаптивное смещение, которое зависит от наклона полигона относительно камеры света. По умолчанию 0.

Используется в основном для наложения теней.

Методы

.getFrameExtents() → Vector2

Используется внутри рендерера для расширения карты теней на все видовые экраны.

.updateMatrices(light : Light) → null

Обновление матриц для камеры и тени, используемых внутри рендерера.

light — свет, для которого создается тень.

.getFrustum() → Frustum

Получает фрустум камеры тени. Используется рендерером для обводки объектов.

.getViewportCount() → number

Используется внутри рендерера для получения количества видовых экранов, которые должны быть отрисованы для этой тени.

.copy(source : LightShadow) → LightShadow

Копирует значение всех свойств из источника source в этот Light.

.clone() → LightShadow

Создает новый LightShadow с теми же свойствами, что и этот.

.dispose() → null

Удаляет цели рендеринга карты теней из памяти.
Вы должны вызвать эту функцию, когда хотите удалить ресурсы теневой карты во время работы приложения.

Исходный файл

О том как получить исходный код этого модуля читайте тут.