UNPKG

@react-three/lightmap

Version:

In-browser lightmap/AO baker for react-three-fiber and ThreeJS

31 lines (30 loc) 1.16 kB
import * as THREE from 'three'; export declare const PROBE_BATCH_COUNT = 8; export interface LightProbeSettings { targetSize: number; offset: number; near: number; far: number; } export declare const DEFAULT_LIGHT_PROBE_SETTINGS: LightProbeSettings; export declare type ProbeDataReport = { rgbaData: Float32Array; rowPixelStride: number; probeBox: THREE.Vector4; originX: number; originY: number; }; export interface ProbeTexel { texelIndex: number; originalMesh: THREE.Mesh; originalBuffer: THREE.BufferGeometry; faceIndex: number; pU: number; pV: number; } export declare type ProbeBatcher = (gl: THREE.WebGLRenderer, lightScene: THREE.Scene, texelIterator: Iterator<ProbeTexel | null>) => Generator<{ texelIndex: number; rgba: THREE.Vector4; }>; export declare function generatePixelAreaLookup(probeTargetSize: number): number[]; export declare function withLightProbe(aoMode: boolean, aoDistance: number, settings: LightProbeSettings, taskCallback: (renderLightProbeBatch: ProbeBatcher, debugLightProbeTexture: THREE.Texture) => Promise<void>): Promise<void>;