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.

68 lines 2.6 kB
import { IDisposable, ValOrFunc } from 'ts-browser-helpers'; import { IUniform } from 'three'; import { Pass } from 'three/examples/jsm/postprocessing/Pass.js'; import { MaterialExtension } from '../materials'; import { ICamera, IRenderManager, IScene } from '../core'; export type IPassID = 'render' | 'screen' | string; export interface IPass<Tid extends IPassID = IPassID> extends Pass, IDisposable { uniforms?: { [name: string]: IUniform; }; materialExtension?: MaterialExtension; /** * Checked by {@link RenderManager} to determine whether to render this frame. A frame is rendered if any pass is dirty. * This can be set by the plugin/pass to indicate when to continue rendering. See {@link ProgressivePlugin}. * This is different from {@link setDirty} which is implementation specific to the pass/plugin. It generally calls onDirty and set the viewer dirty. */ dirty?: ValOrFunc<boolean>; /** * Set the pass as dirty. This is implementation specific to the pass/plugin. It generally calls all {@link onDirty} and set the viewer dirty. */ setDirty?(): void; onDirty?: (() => void)[]; /** * Unique id for the pass. Used to determine the order of passes in the pipeline. */ passId?: Tid; } export interface IPipelinePass<Tid extends IPassID = IPassID> extends IPass<Tid> { /** * Unique id for the pass. Used to determine the order of passes in the pipeline. */ readonly passId: Tid; /** * Passes that should run before this pass */ after?: IPassID[]; /** * Passes that should run after this pass */ before?: IPassID[]; /** * Passes that are required to be present in the pipeline to run this pass. */ required?: IPassID[]; /** * This function gets called at the beginning of every frame where this pass would be enabled. * @param scene * @param camera * @param renderManager */ beforeRender?(scene: IScene, camera: ICamera, renderManager: IRenderManager): void; /** * Callback when the pass is registered with the render manager * @param renderer */ onRegister?(renderer: IRenderManager): void; /** * Callback when the pass is unregistered with the render manager * @param renderer */ onUnregister?(renderer: IRenderManager): void; /** * This function gets called at the end of every frame where this pass would be enabled. * @param renderManager */ onPostFrame?(renderManager: IRenderManager): void; } //# sourceMappingURL=Pass.d.ts.map