UNPKG

@threepipe/webgi-plugins

Version:

WebGi - Realistic Rendering Plugins for ThreePipe.

92 lines 3.54 kB
import { ExtendedShaderPass, GBufferPlugin, ICamera, IMaterial, IPassID, IPipelinePass, IRenderManager, IScene, IWebGLRenderer, MaterialExtension, PipelinePassPlugin, SSAAPlugin, Texture, TextureDataType, ThreeViewer, ValOrFunc, WebGLRenderTarget } from 'threepipe'; import { BilateralFilterPass } from '../../passes/BilateralFilterPass'; export type SSGIPluginTarget = WebGLRenderTarget; declare const passId = "ssrtgi"; type SSGIPassId = typeof passId; /** * SSGI Plugin * * Adds screen space reflections to the scene. * @category Plugins */ export declare class SSGIPlugin extends PipelinePassPlugin<SSGIPluginPass, SSGIPassId> { readonly passId = "ssrtgi"; static readonly PluginType = "SSGIPlugin"; static readonly OldPluginType = "SSGI"; dependencies: (typeof GBufferPlugin | typeof SSAAPlugin)[]; target?: SSGIPluginTarget; texture?: Texture; protected _pass?: SSGIPluginPass; readonly bufferType: TextureDataType; readonly sizeMultiplier: number; constructor(bufferType?: TextureDataType, sizeMultiplier?: number, enabled?: boolean); protected _createTarget(recreate?: boolean): void; protected _disposeTarget(): void; private _gbufferUnpackExtension; private _gbufferUnpackExtensionChanged; protected _createPass(): SSGIPluginPass; onAdded(viewer: ThreeViewer): void; onRemove(viewer: ThreeViewer): void; fromJSON(data: any, meta?: any): this | null | Promise<this | null>; protected _beforeRender(_?: IScene, _1?: ICamera, _2?: IRenderManager): boolean; /** * @deprecated use {@link target} instead */ get rtgiTarget(): SSGIPluginTarget | undefined; } export declare class SSGIPluginPass extends ExtendedShaderPass implements IPipelinePass { target?: ValOrFunc<WebGLRenderTarget | undefined>; before: string[]; after: string[]; required: string[]; readonly bilateralPass: BilateralFilterPass; giEnabled: boolean; intensity: number; power: number; autoRadius: boolean; objectRadius: number; tolerance: number; bias: number; falloff: number; rayCount: number; stepCount: number; smoothEnabled: boolean; renderWithCamera: boolean; split: number; readonly passId: IPassID; constructor(pid: IPassID, target?: ValOrFunc<WebGLRenderTarget | undefined>, giEnabled?: boolean); render(renderer: IWebGLRenderer, writeBuffer: WebGLRenderTarget, readBuffer: WebGLRenderTarget, deltaTime: number, maskActive: boolean): void; beforeRender(scene: IScene, camera: ICamera, renderManager: IRenderManager): void; readonly materialExtension: MaterialExtension; /** * Returns a uiConfig to toggle SSGI on a material. * This uiConfig is added to each material by extension * @param material * @private */ protected _getUiConfig(material: IMaterial): { type: string; label: string; children: { type: string; label: string; value: boolean; onChange: () => void; }[]; }; set uniformsNeedUpdate(value: true); protected _gbufferUnpackExtension: MaterialExtension | undefined; setGBufferUnpackExtension(extension: MaterialExtension | undefined): void; setDirty(): void; } declare module 'threepipe' { interface IMaterialUserData { /** * Disable SSGIPlugin for this material. */ ssgiDisabled?: boolean; ssreflNonPhysical?: boolean; } } export {}; //# sourceMappingURL=SSGIPlugin.d.ts.map