/** * Atmospheric Fog System * * Creates layered fog effects for depth perception in the forest. * Combines multiple fog techniques: * - Distance-based color attenuation * - Ground fog with density gradient * - Wispy fog patches * - Mist layers between trees */ export interface FogConfig { enabled: boolean; density: number; distanceFog: { enabled: boolean; nearColor: string; farColor: string; startDistance: number; endDistance: number; }; groundFog: { enabled: boolean; color: string; maxHeight: number; density: number; waviness: number; animationSpeed: number; }; wispyFog: { enabled: boolean; color: string; patchCount: number; opacity: number; scale: number; drift: number; }; mistLayers: { enabled: boolean; layerCount: number; color: string; minOpacity: number; maxOpacity: number; }; } export interface FogLayer { type: "distance" | "ground" | "wispy" | "mist"; depth: number; opacity: number; data: FogPatch | GroundFogData | MistLayerData | null; } export interface FogPatch { x: number; y: number; width: number; height: number; opacity: number; phase: number; } export interface GroundFogData { points: Array<{ x: number; y: number; }>; color: string; opacity: number; } export interface MistLayerData { y: number; height: number; opacity: number; color: string; } export declare class AtmosphericFogSystem { private config; private noise; private time; private wispyPatches; private mistLayers; private width; private height; constructor(width: number, height: number, config?: Partial, seed?: number); private mergeConfig; private initializeWispyPatches; private initializeMistLayers; /** * Update fog animation state * @param deltaTime Time since last update in milliseconds */ update(deltaTime: number): void; private updateWispyPatches; /** * Get distance fog opacity for a given depth value * @param depth 0-1, 0 = near, 1 = far */ getDistanceFogOpacity(depth: number): number; /** * Get fog color at a specific depth (for blending with tree colors) * @param depth 0-1 */ getDistanceFogColor(depth: number): string; /** * Generate ground fog edge points for current time */ generateGroundFog(): GroundFogData | null; /** * Get current wispy fog patches */ getWispyPatches(): FogPatch[]; /** * Get mist layer data for rendering */ getMistLayers(): MistLayerData[]; /** * Get all fog layers sorted by depth for proper rendering */ getAllFogLayers(): FogLayer[]; /** * Apply fog color/opacity to a tree color based on its depth */ applyDistanceFog(treeColor: string, depth: number): { color: string; opacity: number; }; /** * Resize fog system to new dimensions */ resize(width: number, height: number): void; /** * Set fog configuration at runtime */ setConfig(config: Partial): void; getConfig(): FogConfig; private lerpColorString; } //# sourceMappingURL=AtmosphericFogSystem.d.ts.map