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.

70 lines 3.34 kB
import { DepthTexture, FloatType, IUniform, Texture, TextureDataType, UnsignedIntType, UnsignedShortType, WebGLRenderTarget } from 'three'; import { GBufferRenderPass } from '../../postprocessing'; import { ThreeViewer } from '../../viewer'; import { MaterialExtension } from '../../materials'; import { PipelinePassPlugin } from '../base/PipelinePassPlugin'; import { ICamera, IRenderManager, IScene, ITexture } from '../../core'; import { GBufferMaterial, GBufferUpdater } from './GBufferMaterial'; import { IRenderTarget } from '../../rendering'; export type GBufferPluginTarget = WebGLRenderTarget & IRenderTarget; export type GBufferPluginPass = GBufferRenderPass<'gbuffer', GBufferPluginTarget | undefined>; /** * G-Buffer Plugin * * Adds a pre-render pass to render the g-buffer(depth+normal+flags) to render target(s) that can be used as gbuffer and for postprocessing. * @category Plugins */ export declare class GBufferPlugin extends PipelinePassPlugin<GBufferPluginPass, 'gbuffer'> { renderFlagsBuffer: boolean; renderDepthTexture: boolean; depthTextureType: typeof UnsignedShortType | typeof UnsignedIntType | typeof FloatType; readonly passId = "gbuffer"; static readonly PluginType = "GBuffer"; target?: GBufferPluginTarget; textures: Texture[]; get normalDepthTexture(): ITexture | undefined; get flagsTexture(): ITexture | undefined; get depthTexture(): (ITexture & DepthTexture) | undefined; material?: GBufferMaterial; readonly bufferType: TextureDataType; readonly isPrimaryGBuffer: boolean; unpackExtension: MaterialExtension; createMaterial(): GBufferMaterial; private _isPrimaryGBufferSet; protected _createTargetAndMaterial(recreateTarget?: boolean): void; protected _disposeTarget(): void; protected _createPass(): GBufferRenderPass<"gbuffer", GBufferPluginTarget | undefined>; protected _beforeRender(scene: IScene, camera: ICamera, renderManager: IRenderManager): boolean; constructor(bufferType?: TextureDataType, isPrimaryGBuffer?: boolean, enabled?: boolean, renderFlagsBuffer?: boolean, renderDepthTexture?: boolean, depthTextureType?: typeof UnsignedShortType | typeof UnsignedIntType | typeof FloatType); registerGBufferUpdater(key: string, updater: GBufferUpdater['updateGBufferFlags']): void; unregisterGBufferUpdater(key: string): void; onRemove(viewer: ThreeViewer): void; /** * @deprecated use {@link normalDepthTexture} instead */ getDepthNormal(): Texture<import('three').TextureEventMap> | undefined; /** * @deprecated use {@link flagsTexture} instead */ getFlagsTexture(): Texture<import('three').TextureEventMap> | undefined; /** * @deprecated use {@link target} instead */ getTarget(): GBufferPluginTarget | undefined; /** * @deprecated use {@link unpackExtension} instead */ getUnpackSnippet(): string; /** * @deprecated use {@link unpackExtension} instead, it adds the same uniforms and defines * @param material */ updateShaderProperties(material: { defines: Record<string, string | number | undefined>; uniforms: { [p: string]: IUniform; }; needsUpdate?: boolean; }): this; } //# sourceMappingURL=../../src/plugins/pipeline/GBufferPlugin.d.ts.map