61 lines
1.2 KiB
TypeScript
61 lines
1.2 KiB
TypeScript
import {
|
|
Camera,
|
|
Material,
|
|
Mesh,
|
|
MeshBasicMaterial,
|
|
MeshPhongMaterial,
|
|
Object3D,
|
|
PlaneGeometry,
|
|
Texture,
|
|
Vector3,
|
|
WebGLRenderer,
|
|
Scene,
|
|
WebGLRenderTarget,
|
|
} from 'three'
|
|
|
|
export interface UVBoxes {
|
|
w: number
|
|
h: number
|
|
index: number
|
|
}
|
|
|
|
export interface LightMapContainers {
|
|
basicMat: Material | Material[]
|
|
object: Object3D
|
|
}
|
|
|
|
export class ProgressiveLightMap {
|
|
renderer: WebGLRenderer
|
|
res: number
|
|
lightMapContainers: LightMapContainers[]
|
|
compiled: boolean
|
|
scene: Scene
|
|
tinyTarget: WebGLRenderTarget
|
|
buffer1Active: boolean
|
|
firstUpdate: boolean
|
|
warned: boolean
|
|
|
|
progressiveLightMap1: WebGLRenderTarget
|
|
progressiveLightMap2: WebGLRenderTarget
|
|
|
|
uvMat: MeshPhongMaterial
|
|
|
|
uv_boxes: UVBoxes[]
|
|
|
|
blurringPlane: Mesh<PlaneGeometry, MeshBasicMaterial>
|
|
|
|
labelMaterial: MeshBasicMaterial
|
|
labelPlane: PlaneGeometry
|
|
labelMesh: Mesh<PlaneGeometry, MeshBasicMaterial>
|
|
|
|
constructor(renderer: WebGLRenderer, res?: number)
|
|
|
|
addObjectsToLightMap(objects: Object3D[]): void
|
|
|
|
update(camera: Camera, blendWindow?: number, blurEdges?: boolean): void
|
|
|
|
showDebugLightmap(visible: boolean, position?: Vector3): void
|
|
|
|
private _initializeBlurPlane(res: number, lightMap?: Texture | null): void
|
|
}
|