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
TypeScript
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