/** * Copyright (c) 2019-2025 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose * @author Áron Samuel Kovács * @author Ludovic Autin * @author Gianluca Tomasello */ import { WebGLContext } from '../../mol-gl/webgl/context.js'; import { Texture } from '../../mol-gl/webgl/texture.js'; import { Vec3 } from '../../mol-math/linear-algebra.js'; import { ParamDefinition as PD } from '../../mol-util/param-definition.js'; import { RenderTarget } from '../../mol-gl/webgl/render-target.js'; import { DrawPass } from './draw.js'; import { ICamera } from '../../mol-canvas3d/camera.js'; import { Scene } from '../../mol-gl/scene.js'; import { Color } from '../../mol-util/color/index.js'; import { BackgroundPass } from './background.js'; import { AssetManager } from '../../mol-util/assets.js'; import { Light } from '../../mol-gl/renderer.js'; import { OutlinePass } from './outline.js'; import { ShadowPass } from './shadow.js'; import { SsaoPass } from './ssao.js'; export declare const PostprocessingParams: { enabled: PD.BooleanParam; occlusion: PD.Mapped, "off"> | PD.NamedParams, "off"> | PD.NamedParams, "on">; radius: number; bias: number; blurKernelSize: number; blurDepthBias: number; resolutionScale: number; color: Color; transparentThreshold: number; }>, "on">>; shadow: PD.Mapped, "off"> | PD.NamedParams, "on">>; outline: PD.Mapped, "off"> | PD.NamedParams, "on">>; dof: PD.Mapped, "off"> | PD.NamedParams, "on">>; antialiasing: PD.Mapped, "off"> | PD.NamedParams, "smaa"> | PD.NamedParams, "fxaa">>; sharpening: PD.Mapped, "off"> | PD.NamedParams, "on">>; background: PD.Group, "off"> | PD.NamedParams, "image"> | PD.NamedParams, "radialGradient"> | PD.NamedParams, "skybox"> | PD.NamedParams, "horizontalGradient">; }>>; bloom: PD.Mapped, "off"> | PD.NamedParams, "on">>; }; export type PostprocessingProps = PD.Values; export declare class PostprocessingPass { private readonly webgl; readonly drawPass: DrawPass; static isEnabled(props: PostprocessingProps): boolean; static isTransparentDepthRequired(scene: Scene, props: PostprocessingProps): boolean; static isTransparentOutlineEnabled(props: PostprocessingProps): boolean; static isTransparentSsaoEnabled(scene: Scene, props: PostprocessingProps): boolean; static isSsaoEnabled(props: PostprocessingProps): boolean; readonly target: RenderTarget; private readonly renderable; readonly ssao: SsaoPass; readonly shadow: ShadowPass; readonly outline: OutlinePass; readonly background: BackgroundPass; constructor(webgl: WebGLContext, assetManager: AssetManager, drawPass: DrawPass); getByteCount(): number; setSize(width: number, height: number): void; reset(): void; updateState(camera: ICamera, scene: Scene, transparentBackground: boolean, backgroundColor: Color, props: PostprocessingProps, light: Light, ambientColor: Vec3): void; private occlusionOffset; setOcclusionOffset(x: number, y: number): void; private transparentBackground; setTransparentBackground(value: boolean): void; render(camera: ICamera, scene: Scene, toDrawingBuffer: boolean, transparentBackground: boolean, backgroundColor: Color, props: PostprocessingProps, light: Light, ambientColor: Vec3): void; } export declare class AntialiasingPass { static isEnabled(props: PostprocessingProps): boolean; readonly target: RenderTarget; private readonly internalTarget; private readonly fxaa; private readonly smaa; private readonly cas; constructor(webgl: WebGLContext, width: number, height: number); getByteCount(): number; setSize(width: number, height: number): void; private _renderFxaa; private _renderSmaa; private _renderAntialiasing; private _renderCas; render(camera: ICamera, input: Texture, toDrawingBuffer: boolean | RenderTarget, props: PostprocessingProps): void; }