Это используется внутри SpotLights для расчета теней.
// создает WebGLRenderer и включает в нем тени
const renderer = new v3d.WebGLRenderer();
renderer.shadowMap.enabled = true;
renderer.shadowMap.type = v3d.PCFSoftShadowMap; // default v3d.PCFShadowMap
// создает SpotLight и включет тени для источника света
const light = new v3d.SpotLight(0xffffff);
light.castShadow = true; // default false
app.scene.add(light);
// настраиваем свойства теней на источнике света
light.shadow.mapSize.width = 512; // default
light.shadow.mapSize.height = 512; // default
light.shadow.camera.near = 0.5; // default
light.shadow.camera.far = 500; // default
light.shadow.focus = 1; // default
// создаёт сферу, которая отбрасывает тени (но не получает их)
const sphereGeometry = new v3d.SphereBufferGeometry(5, 32, 32);
const sphereMaterial = new v3d.MeshStandardMaterial({ color: 0xff0000 });
const sphere = new v3d.Mesh(sphereGeometry, sphereMaterial);
sphere.castShadow = true; //default is false
sphere.receiveShadow = false; //default
app.scene.add(sphere);
// создаёт плоскость, которая принимает тени (но не отбрасывает их)
const planeGeometry = new v3d.PlaneBufferGeometry(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.
Вид света на мир. Это используется для создания карты глубины сцены; объекты, расположенные за другими объектами с точки зрения света, будут находиться в тени.
По умолчанию используется PerspectiveCamera с near плоскостью сечения 0,5.
Свойство fov будет отслеживать угол angle свойства SpotLight владельца SpotLight через метод update. Аналогично, свойство aspect будет отслеживать аспект mapSize. Если свойство distance света установлено, плоскость обрезания far будет отслеживать это значение, в противном случае по умолчанию будет установлено значение 500.
Делает вертикальное поле зрения камеры тени равным 90 градусам даже для прожекторов с более узким конусом. По умолчанию false.
Используется для фокусировки теневой камеры. Поле зрения камеры устанавливается в процентах от поля зрения прожектора. Диапазон - [0, 1]. По умолчанию - 1,0.
Общие методы см. в базовом классе LightShadow.
О том как получить исходный код этого модуля читайте тут.