@react-three/lightmap
Version:
In-browser lightmap/AO baker for react-three-fiber and ThreeJS
31 lines (30 loc) • 1.16 kB
TypeScript
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>;