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.
100 lines • 4.29 kB
TypeScript
import { BufferGeometry, Camera, Group, IUniform, Material, Object3D, Scene, ShaderMaterial, ShaderMaterialParameters, WebGLProgramParametersWithUniforms, WebGLRenderer } from 'three';
import { IMaterial, IMaterialEventMap, IMaterialParameters, IMaterialUserData } from '../IMaterial';
import { MaterialExtension } from '../../materials';
export declare class ShaderMaterial2<TE extends IMaterialEventMap = IMaterialEventMap> extends ShaderMaterial<TE & IMaterialEventMap> implements IMaterial<TE> {
['constructor']: typeof ShaderMaterial2;
static readonly TypeSlug = "shaderMat";
static readonly TYPE = "ShaderMaterial2";
static readonly MaterialProperties: {
fragmentShader: string;
vertexShader: string;
uniforms: {};
defines: {};
extensions: {};
isRawShaderMaterial: boolean;
uniformsGroups: {};
wireframe: boolean;
wireframeLinewidth: number;
clipping: boolean;
lights: boolean;
fog: boolean;
glslVersion: null;
defaultAttributeValues: {};
name: string;
blending: 1;
side: 0;
vertexColors: boolean;
opacity: number;
transparent: boolean;
blendSrc: 204;
blendDst: 205;
blendEquation: 100;
blendSrcAlpha: null;
blendDstAlpha: null;
blendEquationAlpha: null;
blendColor: string;
blendAlpha: number;
depthFunc: 3;
depthTest: boolean;
depthWrite: boolean;
stencilWriteMask: number;
stencilFunc: 519;
stencilRef: number;
stencilFuncMask: number;
stencilFail: 7680;
stencilZFail: 7680;
stencilZPass: 7680;
stencilWrite: boolean;
clippingPlanes: null;
clipIntersection: boolean;
clipShadows: boolean;
shadowSide: null;
colorWrite: boolean;
precision: null;
polygonOffset: boolean;
polygonOffsetFactor: number;
polygonOffsetUnits: number;
dithering: boolean;
alphaToCoverage: boolean;
premultipliedAlpha: boolean;
forceSinglePass: boolean;
allowOverride: boolean;
visible: boolean;
toneMapped: boolean;
userData: {};
alphaTest: number;
alphaHash: boolean;
};
static readonly InterpolateProperties: string[];
assetType: "material";
userData: IMaterialUserData;
readonly isAShaderMaterial = true;
readonly appliedMeshes: Set<any>;
readonly setDirty: (this: IMaterial, options?: import('../IMaterial').IMaterialSetDirtyOptions) => void;
dispose(): this;
clone(track?: boolean): this;
readonly isRawShaderMaterial: boolean;
type: 'ShaderMaterial' | 'RawShaderMaterial';
constructor({ customMaterialExtensions, ...parameters }?: ShaderMaterialParameters & IMaterialParameters, isRawShaderMaterial?: boolean);
materialExtensions: MaterialExtension[];
extraUniformsToUpload: Record<string, IUniform>;
registerMaterialExtensions: (this: IMaterial, customMaterialExtensions: MaterialExtension[]) => void;
unregisterMaterialExtensions: (this: IMaterial, customMaterialExtensions: MaterialExtension[]) => void;
customProgramCacheKey(): string;
onBeforeCompile(shader: WebGLProgramParametersWithUniforms, renderer: WebGLRenderer): void;
onBeforeRender(renderer: WebGLRenderer, scene: Scene, camera: Camera, geometry: BufferGeometry, object: Object3D, group: Group): void;
onAfterRender(renderer: WebGLRenderer, scene: Scene, camera: Camera, geometry: BufferGeometry, object: Object3D, group: Group): void;
/**
* Sets the values of this material based on the values of the passed material or an object with material properties
* The input is expected to be a valid material or a deserialized material parameters object(including the deserialized userdata)
* @param parameters - material or material parameters object
*/
setValues(parameters: Material | (ShaderMaterialParameters)): this;
toJSON(_?: any): any;
fromJSON(_: any, _2?: any): this | null;
/**
* @deprecated use this directly
*/
get materialObject(): this;
}
//# sourceMappingURL=../../src/core/material/ShaderMaterial2.d.ts.map