threepipe
Version:
A 3D viewer framework built on top of three.js in TypeScript with a focus on quality rendering, modularity and extensibility.
38 lines • 1.7 kB
TypeScript
import { type AViewerPlugin, AViewerPluginSync } from '../../viewer/AViewerPlugin';
import type { ThreeViewer } from '../../viewer';
import { MaterialExtension } from '../../materials';
import { Shader, Vector4, WebGLRenderer } from 'three';
import { IMaterial } from '../../core';
import { GBufferUpdater, GBufferUpdaterContext } from '../pipeline/GBufferPlugin';
/**
* Base Screen Pass Extension Plugin
*
* Extend the class to add an extension to {@link ScreenPass} material.
* See {@link TonemapPlugin} and {@link VignettePlugin} for examples.
*
*
* @category Plugins
*/
export declare abstract class AScreenPassExtensionPlugin<T extends string> extends AViewerPluginSync<T> implements MaterialExtension, GBufferUpdater {
['constructor']: (typeof AScreenPassExtensionPlugin) & (typeof AViewerPluginSync) & (typeof AViewerPlugin);
abstract enabled: boolean;
set uniformsNeedUpdate(v: boolean);
constructor(shaderPatch?: string);
/**
* The priority of the material extension when applied to the material in ScreenPass
* set to very low priority, so applied at the end
*/
priority: number;
protected _shaderPatch: string;
shaderExtender(shader: Shader, _: IMaterial, _1: WebGLRenderer): void;
getUiConfig(): any;
computeCacheKey: (_: IMaterial) => "0" | "1";
isCompatible(_: IMaterial): boolean;
setDirty(): void;
fromJSON(data: any, meta?: any): this | null | Promise<this | null>;
onAdded(viewer: ThreeViewer): void;
onRemove(viewer: ThreeViewer): void;
__setDirty?: () => void;
updateGBufferFlags(_: Vector4, _1: GBufferUpdaterContext): void;
}
//# sourceMappingURL=AScreenPassExtensionPlugin.d.ts.map