UNPKG

@threepipe/webgi-plugins

Version:

WebGi - Realistic Rendering Plugins for ThreePipe.

100 lines 4.02 kB
import { ExtendedShaderPass, GBufferPlugin, ICamera, IMaterial, IPassID, IPipelinePass, IRenderManager, IScene, IWebGLRenderer, MaterialExtension, PipelinePassPlugin, SSAAPlugin, Texture, TextureDataType, ThreeViewer, ValOrFunc, Vector3, WebGLRenderTarget } from 'threepipe'; export type SSReflectionPluginTarget = WebGLRenderTarget; declare const passId = "ssrefl"; type SSReflectionPassId = typeof passId; /** * SSReflection Plugin * * Adds screen space reflections to the scene. * @category Plugins */ export declare class SSReflectionPlugin extends PipelinePassPlugin<SSReflectionPluginPass, SSReflectionPassId> { readonly inlineShaderRayTrace: boolean; readonly passId = "ssrefl"; static readonly PluginType = "SSReflectionPlugin"; static readonly OldPluginType = "SSReflection"; dependencies: (typeof GBufferPlugin | typeof SSAAPlugin)[]; target?: SSReflectionPluginTarget; texture?: Texture; protected _pass?: SSReflectionPluginPass; readonly bufferType: TextureDataType; readonly sizeMultiplier: number; constructor(inlineShaderRayTrace?: boolean, // todo: we need roughness in gbuffer for proper inline. this has other advantages also like we can do blurring and denoising etc bufferType?: TextureDataType, // only when inline is false sizeMultiplier?: number, // only when inline is false enabled?: boolean); protected _createTarget(recreate?: boolean): void; protected _disposeTarget(): void; private _gbufferUnpackExtension; private _gbufferUnpackExtensionChanged; protected _createPass(): SSReflectionPluginPass; onAdded(viewer: ThreeViewer): void; onRemove(viewer: ThreeViewer): void; protected _beforeRender(_?: IScene, _1?: ICamera, _2?: IRenderManager): boolean; /** * @deprecated use {@link target} instead */ get ssrTarget(): SSReflectionPluginTarget | undefined; fromJSON(data: any, meta?: any): this | null | Promise<this | null>; _viewerListeners: { preRender: () => void; postRender: () => void; }; } export declare class SSReflectionPluginPass extends ExtendedShaderPass implements IPipelinePass { target?: ValOrFunc<WebGLRenderTarget | undefined>; readonly inlineShaderRayTrace: boolean; before: string[]; after: string[]; required: string[]; intensity: number; boost: Vector3; objectRadius: number; autoRadius: boolean; power: number; tolerance: number; roughnessFactor: number; stepCount: number; rayCount: number; rayBlendMax: boolean; setDirty(): void; lowQualityFrames: number; maskFrontRays: boolean; maskFrontFactor: number; readonly passId: IPassID; split: number; constructor(pid: IPassID, target?: ValOrFunc<WebGLRenderTarget | undefined>, inlineShaderRayTrace?: 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 SSReflection 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; } declare module 'threepipe' { interface IMaterialUserData { /** * Disable SSReflectionPlugin for this material. */ ssreflDisabled?: boolean; ssreflNonPhysical?: boolean; } } export {}; //# sourceMappingURL=SSReflectionPlugin.d.ts.map