@threepipe/webgi-plugins
Version:
WebGi - Realistic Rendering Plugins for ThreePipe.
92 lines • 3.54 kB
TypeScript
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