///
declare module 'babylonjs-materials' {
export = BABYLON;
}
declare module BABYLON {
class ShadowOnlyMaterial extends PushMaterial {
private _renderId;
private _activeLight;
constructor(name: string, scene: Scene);
needAlphaBlending(): boolean;
needAlphaTesting(): boolean;
getAlphaTestTexture(): Nullable;
activeLight: IShadowLight;
isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
clone(name: string): ShadowOnlyMaterial;
serialize(): any;
getClassName(): string;
static Parse(source: any, scene: Scene, rootUrl: string): ShadowOnlyMaterial;
}
}
declare module BABYLON {
class GradientMaterial extends PushMaterial {
private _maxSimultaneousLights;
maxSimultaneousLights: number;
topColor: Color3;
topColorAlpha: number;
bottomColor: Color3;
bottomColorAlpha: number;
offset: number;
smoothness: number;
disableLighting: boolean;
private _scaledDiffuse;
private _renderId;
constructor(name: string, scene: Scene);
needAlphaBlending(): boolean;
needAlphaTesting(): boolean;
getAlphaTestTexture(): Nullable;
isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
getAnimatables(): IAnimatable[];
dispose(forceDisposeEffect?: boolean): void;
clone(name: string): GradientMaterial;
serialize(): any;
getClassName(): string;
static Parse(source: any, scene: Scene, rootUrl: string): GradientMaterial;
}
}
declare module BABYLON {
class NormalMaterial extends PushMaterial {
private _diffuseTexture;
diffuseTexture: BaseTexture;
diffuseColor: Color3;
private _disableLighting;
disableLighting: boolean;
private _maxSimultaneousLights;
maxSimultaneousLights: number;
private _renderId;
constructor(name: string, scene: Scene);
needAlphaBlending(): boolean;
needAlphaTesting(): boolean;
getAlphaTestTexture(): Nullable;
isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
getAnimatables(): IAnimatable[];
getActiveTextures(): BaseTexture[];
hasTexture(texture: BaseTexture): boolean;
dispose(forceDisposeEffect?: boolean): void;
clone(name: string): NormalMaterial;
serialize(): any;
getClassName(): string;
static Parse(source: any, scene: Scene, rootUrl: string): NormalMaterial;
}
}
declare module BABYLON {
class LavaMaterial extends PushMaterial {
private _diffuseTexture;
diffuseTexture: BaseTexture;
noiseTexture: BaseTexture;
fogColor: Color3;
speed: number;
movingSpeed: number;
lowFrequencySpeed: number;
fogDensity: number;
private _lastTime;
diffuseColor: Color3;
private _disableLighting;
disableLighting: boolean;
private _maxSimultaneousLights;
maxSimultaneousLights: number;
private _scaledDiffuse;
private _renderId;
constructor(name: string, scene: Scene);
needAlphaBlending(): boolean;
needAlphaTesting(): boolean;
getAlphaTestTexture(): Nullable;
isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
getAnimatables(): IAnimatable[];
getActiveTextures(): BaseTexture[];
hasTexture(texture: BaseTexture): boolean;
dispose(forceDisposeEffect?: boolean): void;
clone(name: string): LavaMaterial;
serialize(): any;
getClassName(): string;
static Parse(source: any, scene: Scene, rootUrl: string): LavaMaterial;
}
}
declare module BABYLON {
class SimpleMaterial extends PushMaterial {
private _diffuseTexture;
diffuseTexture: BaseTexture;
diffuseColor: Color3;
private _disableLighting;
disableLighting: boolean;
private _maxSimultaneousLights;
maxSimultaneousLights: number;
private _renderId;
constructor(name: string, scene: Scene);
needAlphaBlending(): boolean;
needAlphaTesting(): boolean;
getAlphaTestTexture(): Nullable;
isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
getAnimatables(): IAnimatable[];
getActiveTextures(): BaseTexture[];
hasTexture(texture: BaseTexture): boolean;
dispose(forceDisposeEffect?: boolean): void;
clone(name: string): SimpleMaterial;
serialize(): any;
getClassName(): string;
static Parse(source: any, scene: Scene, rootUrl: string): SimpleMaterial;
}
}
declare module BABYLON {
class WaterMaterial extends PushMaterial {
renderTargetSize: Vector2;
private _bumpTexture;
bumpTexture: BaseTexture;
diffuseColor: Color3;
specularColor: Color3;
specularPower: number;
private _disableLighting;
disableLighting: boolean;
private _maxSimultaneousLights;
maxSimultaneousLights: number;
/**
* @param {number}: Represents the wind force
*/
windForce: number;
/**
* @param {Vector2}: The direction of the wind in the plane (X, Z)
*/
windDirection: Vector2;
/**
* @param {number}: Wave height, represents the height of the waves
*/
waveHeight: number;
/**
* @param {number}: Bump height, represents the bump height related to the bump map
*/
bumpHeight: number;
/**
* @param {boolean}: Add a smaller moving bump to less steady waves.
*/
private _bumpSuperimpose;
bumpSuperimpose: boolean;
/**
* @param {boolean}: Color refraction and reflection differently with .waterColor2 and .colorBlendFactor2. Non-linear (physically correct) fresnel.
*/
private _fresnelSeparate;
fresnelSeparate: boolean;
/**
* @param {boolean}: bump Waves modify the reflection.
*/
private _bumpAffectsReflection;
bumpAffectsReflection: boolean;
/**
* @param {number}: The water color blended with the refraction (near)
*/
waterColor: Color3;
/**
* @param {number}: The blend factor related to the water color
*/
colorBlendFactor: number;
/**
* @param {number}: The water color blended with the reflection (far)
*/
waterColor2: Color3;
/**
* @param {number}: The blend factor related to the water color (reflection, far)
*/
colorBlendFactor2: number;
/**
* @param {number}: Represents the maximum length of a wave
*/
waveLength: number;
/**
* @param {number}: Defines the waves speed
*/
waveSpeed: number;
protected _renderTargets: SmartArray;
private _mesh;
private _refractionRTT;
private _reflectionRTT;
private _reflectionTransform;
private _lastTime;
private _lastDeltaTime;
private _renderId;
private _useLogarithmicDepth;
private _waitingRenderList;
/**
* Constructor
*/
constructor(name: string, scene: Scene, renderTargetSize?: Vector2);
useLogarithmicDepth: boolean;
readonly refractionTexture: Nullable;
readonly reflectionTexture: Nullable;
addToRenderList(node: any): void;
enableRenderTargets(enable: boolean): void;
getRenderList(): Nullable;
readonly renderTargetsEnabled: boolean;
needAlphaBlending(): boolean;
needAlphaTesting(): boolean;
getAlphaTestTexture(): Nullable;
isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
private _createRenderTargets(scene, renderTargetSize);
getAnimatables(): IAnimatable[];
getActiveTextures(): BaseTexture[];
hasTexture(texture: BaseTexture): boolean;
dispose(forceDisposeEffect?: boolean): void;
clone(name: string): WaterMaterial;
serialize(): any;
getClassName(): string;
static Parse(source: any, scene: Scene, rootUrl: string): WaterMaterial;
static CreateDefaultMesh(name: string, scene: Scene): Mesh;
}
}
declare module BABYLON {
class FireMaterial extends PushMaterial {
private _diffuseTexture;
diffuseTexture: Nullable;
private _distortionTexture;
distortionTexture: Nullable;
private _opacityTexture;
opacityTexture: Nullable;
diffuseColor: Color3;
speed: number;
private _scaledDiffuse;
private _renderId;
private _lastTime;
constructor(name: string, scene: Scene);
needAlphaBlending(): boolean;
needAlphaTesting(): boolean;
getAlphaTestTexture(): Nullable;
isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
getAnimatables(): IAnimatable[];
getActiveTextures(): BaseTexture[];
hasTexture(texture: BaseTexture): boolean;
getClassName(): string;
dispose(forceDisposeEffect?: boolean): void;
clone(name: string): FireMaterial;
serialize(): any;
static Parse(source: any, scene: Scene, rootUrl: string): FireMaterial;
}
}
declare module BABYLON {
class FurMaterial extends PushMaterial {
private _diffuseTexture;
diffuseTexture: BaseTexture;
private _heightTexture;
heightTexture: BaseTexture;
diffuseColor: Color3;
furLength: number;
furAngle: number;
furColor: Color3;
furOffset: number;
furSpacing: number;
furGravity: Vector3;
furSpeed: number;
furDensity: number;
furTexture: DynamicTexture;
private _disableLighting;
disableLighting: boolean;
private _maxSimultaneousLights;
maxSimultaneousLights: number;
highLevelFur: boolean;
_meshes: AbstractMesh[];
private _renderId;
private _furTime;
constructor(name: string, scene: Scene);
furTime: number;
needAlphaBlending(): boolean;
needAlphaTesting(): boolean;
getAlphaTestTexture(): Nullable;
updateFur(): void;
isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
getAnimatables(): IAnimatable[];
getActiveTextures(): BaseTexture[];
hasTexture(texture: BaseTexture): boolean;
dispose(forceDisposeEffect?: boolean): void;
clone(name: string): FurMaterial;
serialize(): any;
getClassName(): string;
static Parse(source: any, scene: Scene, rootUrl: string): FurMaterial;
static GenerateTexture(name: string, scene: Scene): DynamicTexture;
static FurifyMesh(sourceMesh: Mesh, quality: number): Mesh[];
}
}
declare module BABYLON {
class TerrainMaterial extends PushMaterial {
private _mixTexture;
mixTexture: BaseTexture;
private _diffuseTexture1;
diffuseTexture1: Texture;
private _diffuseTexture2;
diffuseTexture2: Texture;
private _diffuseTexture3;
diffuseTexture3: Texture;
private _bumpTexture1;
bumpTexture1: Texture;
private _bumpTexture2;
bumpTexture2: Texture;
private _bumpTexture3;
bumpTexture3: Texture;
diffuseColor: Color3;
specularColor: Color3;
specularPower: number;
private _disableLighting;
disableLighting: boolean;
private _maxSimultaneousLights;
maxSimultaneousLights: number;
private _renderId;
constructor(name: string, scene: Scene);
needAlphaBlending(): boolean;
needAlphaTesting(): boolean;
getAlphaTestTexture(): Nullable;
isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
getAnimatables(): IAnimatable[];
getActiveTextures(): BaseTexture[];
hasTexture(texture: BaseTexture): boolean;
dispose(forceDisposeEffect?: boolean): void;
clone(name: string): TerrainMaterial;
serialize(): any;
getClassName(): string;
static Parse(source: any, scene: Scene, rootUrl: string): TerrainMaterial;
}
}
declare module BABYLON {
class TriPlanarMaterial extends PushMaterial {
mixTexture: BaseTexture;
private _diffuseTextureX;
diffuseTextureX: BaseTexture;
private _diffuseTextureY;
diffuseTextureY: BaseTexture;
private _diffuseTextureZ;
diffuseTextureZ: BaseTexture;
private _normalTextureX;
normalTextureX: BaseTexture;
private _normalTextureY;
normalTextureY: BaseTexture;
private _normalTextureZ;
normalTextureZ: BaseTexture;
tileSize: number;
diffuseColor: Color3;
specularColor: Color3;
specularPower: number;
private _disableLighting;
disableLighting: boolean;
private _maxSimultaneousLights;
maxSimultaneousLights: number;
private _renderId;
constructor(name: string, scene: Scene);
needAlphaBlending(): boolean;
needAlphaTesting(): boolean;
getAlphaTestTexture(): Nullable;
isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
getAnimatables(): IAnimatable[];
getActiveTextures(): BaseTexture[];
hasTexture(texture: BaseTexture): boolean;
dispose(forceDisposeEffect?: boolean): void;
clone(name: string): TriPlanarMaterial;
serialize(): any;
getClassName(): string;
static Parse(source: any, scene: Scene, rootUrl: string): TriPlanarMaterial;
}
}
declare module BABYLON {
class SkyMaterial extends PushMaterial {
luminance: number;
turbidity: number;
rayleigh: number;
mieCoefficient: number;
mieDirectionalG: number;
distance: number;
inclination: number;
azimuth: number;
sunPosition: Vector3;
useSunPosition: boolean;
private _cameraPosition;
private _renderId;
constructor(name: string, scene: Scene);
needAlphaBlending(): boolean;
needAlphaTesting(): boolean;
getAlphaTestTexture(): Nullable;
isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
getAnimatables(): IAnimatable[];
dispose(forceDisposeEffect?: boolean): void;
clone(name: string): SkyMaterial;
serialize(): any;
getClassName(): string;
static Parse(source: any, scene: Scene, rootUrl: string): SkyMaterial;
}
}
declare module BABYLON {
/**
* The grid materials allows you to wrap any shape with a grid.
* Colors are customizable.
*/
class GridMaterial extends BABYLON.PushMaterial {
/**
* Main color of the grid (e.g. between lines)
*/
mainColor: Color3;
/**
* Color of the grid lines.
*/
lineColor: Color3;
/**
* The scale of the grid compared to unit.
*/
gridRatio: number;
/**
* Allows setting an offset for the grid lines.
*/
gridOffset: Vector3;
/**
* The frequency of thicker lines.
*/
majorUnitFrequency: number;
/**
* The visibility of minor units in the grid.
*/
minorUnitVisibility: number;
/**
* The grid opacity outside of the lines.
*/
opacity: number;
/**
* Determine RBG output is premultiplied by alpha value.
*/
preMultiplyAlpha: boolean;
private _gridControl;
private _renderId;
/**
* constructor
* @param name The name given to the material in order to identify it afterwards.
* @param scene The scene the material is used in.
*/
constructor(name: string, scene: Scene);
/**
* Returns wehter or not the grid requires alpha blending.
*/
needAlphaBlending(): boolean;
needAlphaBlendingForMesh(mesh: AbstractMesh): boolean;
isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
dispose(forceDisposeEffect?: boolean): void;
clone(name: string): GridMaterial;
serialize(): any;
getClassName(): string;
static Parse(source: any, scene: Scene, rootUrl: string): GridMaterial;
}
}
declare module BABYLON {
class CustomShaderStructure {
FragmentStore: string;
VertexStore: string;
constructor();
}
class ShaderSpecialParts {
constructor();
Fragment_Begin: string;
Fragment_Definitions: string;
Fragment_MainBegin: string;
Fragment_Custom_Diffuse: string;
Fragment_Custom_Alpha: string;
Fragment_Before_FragColor: string;
Vertex_Begin: string;
Vertex_Definitions: string;
Vertex_MainBegin: string;
Vertex_Before_PositionUpdated: string;
Vertex_Before_NormalUpdated: string;
}
class CustomMaterial extends StandardMaterial {
static ShaderIndexer: number;
CustomParts: ShaderSpecialParts;
_isCreatedShader: boolean;
_createdShaderName: string;
_customUniform: string[];
_newUniforms: string[];
_newUniformInstances: any[];
_newSamplerInstances: Texture[];
FragmentShader: string;
VertexShader: string;
AttachAfterBind(mesh: Mesh, effect: Effect): void;
ReviewUniform(name: string, arr: string[]): string[];
Builder(shaderName: string, uniforms: string[], uniformBuffers: string[], samplers: string[], defines: StandardMaterialDefines): string;
constructor(name: string, scene: Scene);
AddUniform(name: string, kind: string, param: any): CustomMaterial;
Fragment_Begin(shaderPart: string): CustomMaterial;
Fragment_Definitions(shaderPart: string): CustomMaterial;
Fragment_MainBegin(shaderPart: string): CustomMaterial;
Fragment_Custom_Diffuse(shaderPart: string): CustomMaterial;
Fragment_Custom_Alpha(shaderPart: string): CustomMaterial;
Fragment_Before_FragColor(shaderPart: string): CustomMaterial;
Vertex_Begin(shaderPart: string): CustomMaterial;
Vertex_Definitions(shaderPart: string): CustomMaterial;
Vertex_MainBegin(shaderPart: string): CustomMaterial;
Vertex_Before_PositionUpdated(shaderPart: string): CustomMaterial;
Vertex_Before_NormalUpdated(shaderPart: string): CustomMaterial;
}
}
declare module BABYLON {
class CellMaterial extends PushMaterial {
private _diffuseTexture;
diffuseTexture: BaseTexture;
diffuseColor: Color3;
_computeHighLevel: boolean;
computeHighLevel: boolean;
private _disableLighting;
disableLighting: boolean;
private _maxSimultaneousLights;
maxSimultaneousLights: number;
private _renderId;
constructor(name: string, scene: Scene);
needAlphaBlending(): boolean;
needAlphaTesting(): boolean;
getAlphaTestTexture(): Nullable;
isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
getAnimatables(): IAnimatable[];
getActiveTextures(): BaseTexture[];
hasTexture(texture: BaseTexture): boolean;
dispose(forceDisposeEffect?: boolean): void;
getClassName(): string;
clone(name: string): CellMaterial;
serialize(): any;
static Parse(source: any, scene: Scene, rootUrl: string): CellMaterial;
}
}