/** * Screen-Space Ambient Occlusion pass. * 1. Compute noisy AO at full resolution from depth buffer * 2. Blur the result with a 4x4 box filter * Output: blurred AO texture view (r16float, full-res) */ import type { Mat4Type } from '@certe/atmos-math'; export declare class SSAOPass { radius: number; bias: number; intensity: number; enabled: boolean; private readonly _device; private readonly _ssaoPipeline; private readonly _blurPipeline; private readonly _ssaoBGL; private readonly _blurBGL; private readonly _paramsBuffer; private readonly _noiseTexture; private readonly _linearSampler; private readonly _kernel; private readonly _paramsData; private _aoTexture; private _aoView; private _blurTexture; private _blurView; private _width; private _height; private _whiteTexture; private _whiteView; constructor(device: GPUDevice); private _ensureTextures; /** Execute SSAO. Returns AO texture view (white if disabled or no depth). * Optional eraseDraw renders non-SSAO geometry to the AO texture writing 1.0, * effectively removing SSAO from those pixels while keeping their depth for occlusion. */ execute(encoder: GPUCommandEncoder, depthView: GPUTextureView | null, projMatrix: Mat4Type, invProjMatrix: Mat4Type, screenW: number, screenH: number, eraseDraw?: (pass: GPURenderPassEncoder) => void): GPUTextureView; destroy(): void; } //# sourceMappingURL=ssao-pass.d.ts.map