UNPKG

@babylonjs/core

Version:

Getting started? Play directly with the Babylon.js API using our [playground](https://playground.babylonjs.com/). It also contains a lot of samples to learn how to use it.

113 lines (112 loc) 3.73 kB
import type { Scene } from "../../scene.js"; import { PostProcess } from "../../PostProcesses/postProcess.js"; import { ProceduralTexture } from "../../Materials/Textures/Procedurals/proceduralTexture.js"; import type { IblShadowsRenderPipeline } from "./iblShadowsRenderPipeline.js"; import { Observable } from "../../Misc/observable.js"; /** * This should not be instantiated directly, as it is part of a scene component * @internal */ export declare class _IblShadowsAccumulationPass { private _scene; private _engine; private _renderPipeline; private _outputTexture; private _oldAccumulationCopy; private _oldPositionCopy; private _accumulationParams; /** Enable the debug view for this pass */ debugEnabled: boolean; /** * Is the effect enabled */ enabled: boolean; /** * Returns the output texture of the pass. * @returns The output texture. */ getOutputTexture(): ProceduralTexture; /** * Observable that triggers when the accumulation texture is ready */ onReadyObservable: Observable<void>; /** * Gets the debug pass post process * @returns The post process */ getDebugPassPP(): PostProcess; private _debugPassName; /** * Gets the name of the debug pass * @returns The name of the debug pass */ get debugPassName(): string; /** * A value that controls how much of the previous frame's accumulation to keep. * The higher the value, the faster the shadows accumulate but the more potential ghosting you'll see. */ get remanence(): number; /** * A value that controls how much of the previous frame's accumulation to keep. * The higher the value, the faster the shadows accumulate but the more potential ghosting you'll see. */ set remanence(value: number); private _remanence; /** * Reset the accumulation. */ get reset(): boolean; /** * Reset the accumulation. */ set reset(value: boolean); private _reset; /** * Tell the pass that the camera is moving. This will cause the accumulation * rate to change. */ set isMoving(value: boolean); private _isMoving; private _debugPassPP; private _debugSizeParams; /** * Sets params that control the position and scaling of the debug display on the screen. * @param x Screen X offset of the debug display (0-1) * @param y Screen Y offset of the debug display (0-1) * @param widthScale X scale of the debug display (0-1) * @param heightScale Y scale of the debug display (0-1) */ setDebugDisplayParams(x: number, y: number, widthScale: number, heightScale: number): void; /** * Creates the debug post process effect for this pass */ private _createDebugPass; /** * Instantiates the accumulation pass * @param scene Scene to attach to * @param iblShadowsRenderPipeline The IBL shadows render pipeline * @returns The accumulation pass */ constructor(scene: Scene, iblShadowsRenderPipeline: IblShadowsRenderPipeline); private _createTextures; private _setOutputTextureBindings; private _updatePositionCopy; private _setAccumulationCopyBindings; private _render; private _renderWhenGBufferReady; /** * Called by render pipeline when canvas resized. * @param scaleFactor The factor by which to scale the canvas size. */ resize(scaleFactor?: number): void; private _disposeTextures; /** * Checks if the pass is ready * @returns true if the pass is ready */ isReady(): boolean; /** * Disposes the associated resources */ dispose(): void; }