LightShadow - Руководство по Вердж3Д - Софт Эйт Софт
Description: Узнайте как использовать LightShadow в интерактивных 3Д-веб-приложениях сделанных на Вердж3Д

# LightShadow

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

## Конструктор

### LightShadow(camera : Camera)

camera — камера источника света.

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

## Свойства

### # .autoUpdate : Boolean

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

### # .bias : Float

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

### # .camera : Camera

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

### # .expBias : Float

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

### # .isLightShadow : Boolean

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

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

### # .map : WebGLRenderTarget

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

### # .mapPass : WebGLRenderTarget

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

### # .mapSize : Vector2

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

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

### # .matrix : Matrix4

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

### # .needsUpdate : Boolean

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

### # .normalBias : Float

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

### # .radius : Float

Если установить значение этого параметра больше 1, края тени будут размыты.

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

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

### # .slopeScaledBias : Float

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

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

## Методы

### # .clone() → LightShadow

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

### # .copy(source : LightShadow) → LightShadow

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

### # .dispose()

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

### # .getFrameExtents() → Vector2

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

### # .getFrustum() → Frustum

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

### # .getViewportCount() → number

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

### # .updateMatrices(light : Light)

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

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

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

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