three-stdlib
Version:
stand-alone library of threejs examples
62 lines (57 loc) • 1.53 kB
TypeScript
import { Camera, Vector3, DirectionalLight, Material, Vector2, Object3D } from 'three'
export enum CMSMode {
practical = 'practical',
uniform = 'uniform',
logarithmic = 'logarithmic',
custom = 'custom',
}
export interface CMSParameters {
camera?: Camera
parent?: Object3D
cascades?: number
maxFar?: number
mode?: CMSMode
shadowMapSize?: number
shadowBias?: number
lightDirection?: Vector3
lightIntensity?: number
lightNear?: number
lightFar?: number
lightMargin?: number
customSplitsCallback?: (cascades: number, cameraNear: number, cameraFar: number, breaks: number[]) => void
}
export class CSM {
constructor(data?: CMSParameters)
camera: Camera
parent: Object3D
cascades: number
maxFar: number
mode: CMSMode
shadowMapSize: number
shadowBias: number
lightDirection: Vector3
lightIntensity: number
lightNear: number
lightFar: number
lightMargin: number
customSplitsCallback: (cascades: number, cameraNear: number, cameraFar: number, breaks: number[]) => void
fade: boolean
mainFrustum: CSMFrustrum
frustums: CSMFrustrum[]
breaks: number[]
lights: DirectionalLight[]
shaders: Map<unknown, string>
createLights(): void
initCascades(): void
updateShadowBounds(): void
getBreaks(): void
update(): void
injectInclude(): void
setupMaterial(material: Material): void
updateUniforms(): void
getExtendedBreaks(target: Vector2[]): void
updateFrustums(): void
remove(): void
dispose(): void
}
import CSMFrustrum from './CSMFrustum.js'