UNPKG

@takram/three-clouds

Version:
52 lines (51 loc) 1.53 kB
import { Matrix4, Vector2, Vector3, PerspectiveCamera } from 'three'; import { FrustumSplitMode } from './helpers/splitFrustum'; export interface Cascade { readonly interval: Vector2; readonly matrix: Matrix4; readonly inverseMatrix: Matrix4; readonly projectionMatrix: Matrix4; readonly inverseProjectionMatrix: Matrix4; readonly viewMatrix: Matrix4; readonly inverseViewMatrix: Matrix4; } export interface CascadedShadowMapsOptions { cascadeCount: number; mapSize: Vector2; maxFar?: number | null; farScale?: number; splitMode?: FrustumSplitMode; splitLambda?: number; margin?: number; fade?: boolean; } export declare const cascadedShadowMapsDefaults: { maxFar: null; farScale: number; splitMode: "practical"; splitLambda: number; margin: number; fade: true; }; export declare class CascadedShadowMaps { readonly cascades: Cascade[]; readonly mapSize: Vector2; maxFar: number | null; farScale: number; splitMode: FrustumSplitMode; splitLambda: number; margin: number; fade: boolean; private readonly cameraFrustum; private readonly frusta; private readonly splits; private _far; constructor(options: CascadedShadowMapsOptions); get cascadeCount(): number; set cascadeCount(value: number); get far(): number; private updateIntervals; private getFrustumRadius; private updateMatrices; update(camera: PerspectiveCamera, sunDirection: Vector3, distance?: number): void; }