/** * PostProcessEffect.ts * * Base class for post-processing effects and built-in effect implementations. * All effects compile to WebGPU compute/render pipelines. * * @module render/postprocess */ import { PostProcessEffectType, EffectParams, IEffectRenderContext, IBloomParams, IToneMapParams, IFXAAParams, IVignetteParams, IFilmGrainParams, ISharpenParams, IChromaticAberrationParams, ICausticsParams, ISSRParams, ISSAOParams, ISSGIParams } from './PostProcessTypes'; /** * Abstract base class for all post-processing effects */ export declare abstract class PostProcessEffect { readonly type: PostProcessEffectType; readonly name: string; protected params: EffectParams; protected pipeline: GPURenderPipeline | null; protected uniformBuffer: GPUBuffer | null; protected bindGroup: GPUBindGroup | null; protected sampler: GPUSampler | null; protected _initialized: boolean; constructor(type: PostProcessEffectType, name?: string, params?: Partial); /** * Check if effect is enabled */ get enabled(): boolean; /** * Enable/disable effect */ set enabled(value: boolean); /** * Get effect intensity */ get intensity(): number; /** * Set effect intensity */ set intensity(value: number); /** * Get current parameters */ getParams(): T; /** * Update parameters */ setParams(params: Partial): void; /** * Check if effect is initialized */ get initialized(): boolean; /** * Initialize GPU resources */ initialize(device: GPUDevice): Promise; /** * Create render/compute pipeline - override in subclasses */ protected abstract createPipeline(device: GPUDevice): Promise; /** * Update uniform buffer with current parameters */ protected abstract updateUniforms(device: GPUDevice, frameData: { time: number; deltaTime: number; }): void; /** * Render the effect */ abstract render(context: IEffectRenderContext): void; /** * Dispose GPU resources */ dispose(): void; } /** * Bloom effect - adds glow to bright areas */ export declare class BloomEffect extends PostProcessEffect { private downsamplePipelines; private upsamplePipelines; private mipViews; private mipTexture; constructor(params?: Partial); protected createPipeline(device: GPUDevice): Promise; protected updateUniforms(device: GPUDevice, frameData: { time: number; deltaTime: number; }): void; render(context: IEffectRenderContext): void; dispose(): void; } /** * Tone mapping effect - converts HDR to LDR */ export declare class ToneMapEffect extends PostProcessEffect { constructor(params?: Partial); protected createPipeline(device: GPUDevice): Promise; protected updateUniforms(device: GPUDevice, _frameData: { time: number; deltaTime: number; }): void; render(context: IEffectRenderContext): void; } /** * FXAA anti-aliasing effect */ export declare class FXAAEffect extends PostProcessEffect { constructor(params?: Partial); protected createPipeline(device: GPUDevice): Promise; protected updateUniforms(device: GPUDevice, _frameData: { time: number; deltaTime: number; }): void; render(context: IEffectRenderContext): void; } /** * Vignette effect - darkens edges of screen */ export declare class VignetteEffect extends PostProcessEffect { constructor(params?: Partial); protected createPipeline(device: GPUDevice): Promise; protected updateUniforms(device: GPUDevice, _frameData: { time: number; deltaTime: number; }): void; render(context: IEffectRenderContext): void; } /** * Film grain effect */ export declare class FilmGrainEffect extends PostProcessEffect { constructor(params?: Partial); protected createPipeline(device: GPUDevice): Promise; protected updateUniforms(device: GPUDevice, frameData: { time: number; deltaTime: number; }): void; render(context: IEffectRenderContext): void; } /** * Sharpen effect */ export declare class SharpenEffect extends PostProcessEffect { constructor(params?: Partial); protected createPipeline(device: GPUDevice): Promise; protected updateUniforms(device: GPUDevice, _frameData: { time: number; deltaTime: number; }): void; render(context: IEffectRenderContext): void; } /** * Chromatic aberration effect */ export declare class ChromaticAberrationEffect extends PostProcessEffect { constructor(params?: Partial); protected createPipeline(device: GPUDevice): Promise; protected updateUniforms(device: GPUDevice, _frameData: { time: number; deltaTime: number; }): void; render(context: IEffectRenderContext): void; } /** * Caustics overlay effect — underwater refracted light patterns */ export declare class CausticsEffect extends PostProcessEffect { constructor(params?: Partial); protected createPipeline(device: GPUDevice): Promise; protected updateUniforms(device: GPUDevice, frameData: { time: number; deltaTime: number; }): void; render(context: IEffectRenderContext): void; } /** * Screen-Space Reflections (SSR) effect */ export declare class SSREffect extends PostProcessEffect { constructor(params?: Partial); protected createPipeline(device: GPUDevice): Promise; protected updateUniforms(device: GPUDevice, _frameData: { time: number; deltaTime: number; }): void; render(context: IEffectRenderContext): void; } /** * Screen-Space Ambient Occlusion (SSAO) effect */ export declare class SSAOEffect extends PostProcessEffect { constructor(params?: Partial); protected createPipeline(device: GPUDevice): Promise; protected updateUniforms(device: GPUDevice, _frameData: { time: number; deltaTime: number; }): void; render(context: IEffectRenderContext): void; } /** * Screen-Space Global Illumination (SSGI) effect */ export declare class SSGIEffect extends PostProcessEffect { constructor(params?: Partial); protected createPipeline(device: GPUDevice): Promise; protected updateUniforms(device: GPUDevice, _frameData: { time: number; deltaTime: number; }): void; render(context: IEffectRenderContext): void; } /** * Factory function to create effects by type */ export declare function createEffect(type: PostProcessEffectType, params?: Partial): PostProcessEffect; //# sourceMappingURL=PostProcessEffect.d.ts.map