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.
34 lines • 1.74 kB
TypeScript
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<string, GBufferUpdater['updateGBufferFlags']>;
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<PhysicalMaterial>, 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