UNPKG

threepipe

Version:

A modern 3D viewer framework built on top of three.js, written in TypeScript, designed to make creating high-quality, modular, and extensible 3D experiences on the web simple and enjoyable.

48 lines 2.42 kB
import { ExtendedShaderPass } from './ExtendedShaderPass'; import { ColorSpace, ShaderMaterialParameters, WebGLMultipleRenderTargets, WebGLRenderTarget } from 'three'; import { ICamera, IRenderManager, IScene, IWebGLRenderer, ShaderMaterial2 } from '../core'; import { IPassID, IPipelinePass } from './Pass'; import { UiObjectConfig } from 'uiconfig.js'; import { ViewerRenderManager } from '../viewer'; export type TViewerScreenShaderFrag = string | [string, string] | { pars?: string; main: string; }; export type TViewerScreenShader = TViewerScreenShaderFrag | ShaderMaterialParameters | ShaderMaterial2; /** * Screen Pass * * This pass renders the final scene to the screen. * It can be extended by Screen Pass Extensions to apply post-processing effects, such as tonemapping, color grading, etc. * * It is used by default in {@link ViewerRenderManager} to render the final scene. * A custom material/shader can be passed to the constructor to use a custom base fragment shader. */ export declare class ScreenPass extends ExtendedShaderPass implements IPipelinePass<'screen'> { uiConfig: UiObjectConfig; readonly passId = "screen"; after: IPassID[]; required: IPassID[]; constructor(shader?: TViewerScreenShader, ...textureID: string[]); /** * Output Color Space * Note: this is ignored when renderToScreen is false (it will take the color space of the render target) */ outputColorSpace: ColorSpace; private _lastReadBuffer?; render(renderer: IWebGLRenderer, writeBuffer?: WebGLMultipleRenderTargets | WebGLRenderTarget | null, readBuffer?: WebGLMultipleRenderTargets | WebGLRenderTarget, deltaTime?: number, maskActive?: boolean): void; reRender(renderer: IWebGLRenderer, writeBuffer?: WebGLMultipleRenderTargets | WebGLRenderTarget | null, deltaTime?: number, maskActive?: boolean): void; private _needsReRender; onPostFrame(renderManager: IRenderManager): void; dispose(): void; /** * Force clip background. If this is `true` {@link clipBackground} is overridden. * This happens when scene.background and scene.backgroundColor are both null. * This is set in {@link ViewerRenderManager.render}. */ clipBackgroundForce: boolean; clipBackground: boolean; beforeRender(_: IScene, _1: ICamera, renderManager: ViewerRenderManager): void; setDirty(): void; } //# sourceMappingURL=ScreenPass.d.ts.map