import { IMaterial, IMaterialParameters, PhysicalMaterial } from '../../core'; import { BufferGeometry, Camera, Group, NormalMapTypes, Object3D, Scene, ShaderMaterialParameters, Vector4, WebGLRenderer } from 'three'; import { ShaderMaterial2 } from '../../core/material/ShaderMaterial2'; export interface GBufferUpdaterContext { material: IMaterial; renderer: WebGLRenderer; scene: Scene; camera: Camera; geometry: BufferGeometry; object: Object3D; } export interface GBufferUpdater { updateGBufferFlags: (data: Vector4, context: GBufferUpdaterContext) => void; } /** * Renders DepthNormal to a texture and flags to another */ export declare class GBufferMaterial extends ShaderMaterial2 { constructor(multipleRT?: boolean, parameters?: ShaderMaterialParameters & IMaterialParameters); flagUpdaters: Map; normalMapType: NormalMapTypes; flatShading: boolean; onBeforeRender(renderer: WebGLRenderer, scene: Scene, camera: Camera, geometry: BufferGeometry, object: Object3D, group: Group): void; protected _updateFlagsUniform(flags: Vector4, material: IMaterial & Partial, renderer: WebGLRenderer, scene: Scene, camera: Camera, geometry: BufferGeometry, object: Object3D): void; onAfterRender(renderer: WebGLRenderer, scene: Scene, camera: Camera, geometry: BufferGeometry, object: Object3D, group: Group): void; reset(): void; } /** * @deprecated use GBufferMaterial instead */ export declare class DepthNormalMaterial extends GBufferMaterial { constructor(multipleRT: boolean, parameters?: ShaderMaterialParameters & IMaterialParameters); } //# sourceMappingURL=../../src/plugins/pipeline/GBufferMaterial.d.ts.map