UNPKG

@needle-tools/engine

Version:

Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development with great integrations into editors like Unity or Blender - and can be deployed onto any device! It is flexible, extensible and networking and XR are built-in.

59 lines (58 loc) 2.5 kB
import type { Effect, EffectComposer } from "postprocessing"; import { Context } from "../../engine/engine_setup.js"; import { PostProcessingEffect } from "./PostProcessingEffect.js"; /** * [PostProcessingHandler](https://engine.needle.tools/docs/api/PostProcessingHandler) Is responsible for applying post processing effects to the scene. It is internally used by the {@link Volume} component */ export declare class PostProcessingHandler { private _composer; private _lastVolumeComponents?; private readonly _effects; /** * Returns true if a specific effect is currently active in the post processing stack. */ getEffectIsActive(effect: Effect): boolean; get isActive(): boolean; get composer(): EffectComposer | null; private _isActive; private readonly context; constructor(context: Context); apply(components: PostProcessingEffect[]): Promise<void>; unapply(dispose?: boolean): void; dispose(): void; private onApply; private _anyPassHasDepth; private _anyPassHasNormal; private _hasSmaaEffect; get anyPassHasDepth(): boolean; get anyPassHasNormal(): boolean; get hasSmaaEffect(): boolean; private _customInputBuffer; private _customInputBufferId; private _multisampling; set multisampling(value: number); get multisampling(): number; private static readonly _dprStep; private static readonly _dprMinDelay; private _adaptiveDPR_Enabled; private _adaptiveDPR_LastChangeTime; private _adaptiveDPR_LastDecreaseTime; private _adaptiveDPR_OverrideActive; /** Enable or disable adaptive device pixel ratio scaling. * When enabled, the renderer pixel ratio will be gradually reduced when FPS is low * and restored when FPS is good. This is useful for postprocessing-heavy scenes * where full retina resolution is too expensive for integrated GPUs. */ set adaptivePixelRatio(value: boolean); get adaptivePixelRatio(): boolean; /** Called from Volume.onBeforeRender to adapt pixel ratio based on frame rate */ updateAdaptivePixelRatio(): void; /** Build composer passes */ private applyEffects; /** Should be called before `composer.addPass()` to create an effect pass with all previously collected effects that can be merged up to that point */ private createPassForMergeableEffects; private handleDevicePixelRatio; private _menuEntry; private _passIndices; private _onCreateEffectsDebug; }