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

LightShadow →

# SpotLightShadow

Используется внутри SpotLights для расчета теней.

## Пример

`// создает WebGLRenderer и включает в нем тени const renderer = new v3d.WebGLRenderer(); renderer.shadowMap.enabled = true; renderer.shadowMap.type = v3d.PCFShadowMap; // по умолчанию // создает SpotLight и включет тени для источника света const light = new v3d.SpotLight(0xffffff); light.castShadow = true; // по умолчанию false app.scene.add(light); // настраиваем свойства теней на источнике света light.shadow.mapSize.width = 512; // по умолчанию light.shadow.mapSize.height = 512; // по умолчанию light.shadow.camera.near = 0.5; // по умолчанию light.shadow.camera.far = 500; // по умолчанию light.shadow.focus = 1; // по умолчанию // создаёт сферу, которая отбрасывает тени (но не получает их) const sphereGeometry = new v3d.SphereGeometry(5, 32, 32); const sphereMaterial = new v3d.MeshStandardMaterial({ color: 0xff0000 }); const sphere = new v3d.Mesh(sphereGeometry, sphereMaterial); sphere.castShadow = true; // по умолчанию false sphere.receiveShadow = false; // по умолчанию app.scene.add(sphere); // создаёт плоскость, которая принимает тени (но не отбрасывает их) const planeGeometry = new v3d.PlaneGeometry(20, 20, 32, 32); const planeMaterial = new v3d.MeshStandardMaterial({ color: 0x00ff00 }) const plane = new v3d.Mesh(planeGeometry, planeMaterial); plane.receiveShadow = true; app.scene.add(plane); // создаёт помощника для теневой камеры (необ.) const helper = new v3d.CameraHelper(light.shadow.camera); app.scene.add(helper);`

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

Конструктор создает PerspectiveCamera : PerspectiveCamera для управления видом мира тени.

## Свойства

Смотрите свойства базового класса LightShadow.

### # .camera : Camera

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

По умолчанию используется PerspectiveCamera с near плоскостью сечения `0.5`. Свойство fov будет отслеживать угол angle свойства SpotLight владельца SpotLight через метод update. Аналогично, свойство aspect будет отслеживать аспект mapSize. Если свойство distance света установлено, плоскость обрезания far будет отслеживать это значение, в противном случае по умолчанию будет установлено значение `500`.

### # .useMinFov90 : Boolean

Делает вертикальное поле зрения камеры тени равным 90 градусам даже для прожекторов с более узким конусом. По умолчанию `false`.

### # .focus : Float

Используется для фокусировки теневой камеры. Поле зрения камеры устанавливается в процентах от поля зрения прожектора. Диапазон - `[0, 1]`. По умолчанию — `1.0`.

### # .isSpotLightShadow : Boolean

Указывает, что объект является экземпляром класса SpotLightShadow. Только для чтения.

## Методы

Смотрите методы базового класса LightShadow.

## Пазлы

Пазл set shadow param позволяет включать/выключать отбрасывание теней без программирования.

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

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