///
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 StandardMaterialDefines_OldVer extends MaterialDefines implements IImageProcessingConfigurationDefines {
DIFFUSE: boolean;
AMBIENT: boolean;
OPACITY: boolean;
OPACITYRGB: boolean;
REFLECTION: boolean;
EMISSIVE: boolean;
SPECULAR: boolean;
BUMP: boolean;
PARALLAX: boolean;
PARALLAXOCCLUSION: boolean;
SPECULAROVERALPHA: boolean;
CLIPPLANE: boolean;
ALPHATEST: boolean;
ALPHAFROMDIFFUSE: boolean;
POINTSIZE: boolean;
FOG: boolean;
SPECULARTERM: boolean;
DIFFUSEFRESNEL: boolean;
OPACITYFRESNEL: boolean;
REFLECTIONFRESNEL: boolean;
REFRACTIONFRESNEL: boolean;
EMISSIVEFRESNEL: boolean;
FRESNEL: boolean;
NORMAL: boolean;
UV1: boolean;
UV2: boolean;
VERTEXCOLOR: boolean;
VERTEXALPHA: boolean;
NUM_BONE_INFLUENCERS: number;
BonesPerMesh: number;
INSTANCES: boolean;
GLOSSINESS: boolean;
ROUGHNESS: boolean;
EMISSIVEASILLUMINATION: boolean;
LINKEMISSIVEWITHDIFFUSE: boolean;
REFLECTIONFRESNELFROMSPECULAR: boolean;
LIGHTMAP: boolean;
USELIGHTMAPASSHADOWMAP: boolean;
REFLECTIONMAP_3D: boolean;
REFLECTIONMAP_SPHERICAL: boolean;
REFLECTIONMAP_PLANAR: boolean;
REFLECTIONMAP_CUBIC: boolean;
REFLECTIONMAP_PROJECTION: boolean;
REFLECTIONMAP_SKYBOX: boolean;
REFLECTIONMAP_EXPLICIT: boolean;
REFLECTIONMAP_EQUIRECTANGULAR: boolean;
REFLECTIONMAP_EQUIRECTANGULAR_FIXED: boolean;
REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED: boolean;
INVERTCUBICMAP: boolean;
LOGARITHMICDEPTH: boolean;
REFRACTION: boolean;
REFRACTIONMAP_3D: boolean;
REFLECTIONOVERALPHA: boolean;
TWOSIDEDLIGHTING: boolean;
SHADOWFLOAT: boolean;
MORPHTARGETS: boolean;
MORPHTARGETS_NORMAL: boolean;
MORPHTARGETS_TANGENT: boolean;
NUM_MORPH_INFLUENCERS: number;
IMAGEPROCESSING: boolean;
VIGNETTE: boolean;
VIGNETTEBLENDMODEMULTIPLY: boolean;
VIGNETTEBLENDMODEOPAQUE: boolean;
TONEMAPPING: boolean;
CONTRAST: boolean;
COLORCURVES: boolean;
COLORGRADING: boolean;
COLORGRADING3D: boolean;
SAMPLER3DGREENDEPTH: boolean;
SAMPLER3DBGRMAP: boolean;
IMAGEPROCESSINGPOSTPROCESS: boolean;
EXPOSURE: boolean;
constructor();
setReflectionMode(modeToEnable: string): void;
}
class StandardMaterial_OldVer extends PushMaterial {
private _diffuseTexture;
diffuseTexture: BaseTexture;
private _ambientTexture;
ambientTexture: BaseTexture;
private _opacityTexture;
opacityTexture: BaseTexture;
private _reflectionTexture;
reflectionTexture: BaseTexture;
private _emissiveTexture;
emissiveTexture: BaseTexture;
private _specularTexture;
specularTexture: BaseTexture;
private _bumpTexture;
bumpTexture: BaseTexture;
private _lightmapTexture;
lightmapTexture: BaseTexture;
private _refractionTexture;
refractionTexture: BaseTexture;
ambientColor: Color3;
diffuseColor: Color3;
specularColor: Color3;
emissiveColor: Color3;
specularPower: number;
private _useAlphaFromDiffuseTexture;
useAlphaFromDiffuseTexture: boolean;
private _useEmissiveAsIllumination;
useEmissiveAsIllumination: boolean;
private _linkEmissiveWithDiffuse;
linkEmissiveWithDiffuse: boolean;
private _useSpecularOverAlpha;
useSpecularOverAlpha: boolean;
private _useReflectionOverAlpha;
useReflectionOverAlpha: boolean;
private _disableLighting;
disableLighting: boolean;
private _useParallax;
useParallax: boolean;
private _useParallaxOcclusion;
useParallaxOcclusion: boolean;
parallaxScaleBias: number;
private _roughness;
roughness: number;
indexOfRefraction: number;
invertRefractionY: boolean;
private _useLightmapAsShadowmap;
useLightmapAsShadowmap: boolean;
private _diffuseFresnelParameters;
diffuseFresnelParameters: FresnelParameters;
private _opacityFresnelParameters;
opacityFresnelParameters: FresnelParameters;
private _reflectionFresnelParameters;
reflectionFresnelParameters: FresnelParameters;
private _refractionFresnelParameters;
refractionFresnelParameters: FresnelParameters;
private _emissiveFresnelParameters;
emissiveFresnelParameters: FresnelParameters;
private _useReflectionFresnelFromSpecular;
useReflectionFresnelFromSpecular: boolean;
private _useGlossinessFromSpecularMapAlpha;
useGlossinessFromSpecularMapAlpha: boolean;
private _maxSimultaneousLights;
maxSimultaneousLights: number;
/**
* If sets to true, x component of normal map value will invert (x = 1.0 - x).
*/
private _invertNormalMapX;
invertNormalMapX: boolean;
/**
* If sets to true, y component of normal map value will invert (y = 1.0 - y).
*/
private _invertNormalMapY;
invertNormalMapY: boolean;
/**
* If sets to true and backfaceCulling is false, normals will be flipped on the backside.
*/
private _twoSidedLighting;
twoSidedLighting: boolean;
/**
* Default configuration related to image processing available in the standard Material.
*/
protected _imageProcessingConfiguration: ImageProcessingConfiguration;
/**
* Gets the image processing configuration used either in this material.
*/
/**
* Sets the Default image processing configuration used either in the this material.
*
* If sets to null, the scene one is in use.
*/
imageProcessingConfiguration: ImageProcessingConfiguration;
/**
* Keep track of the image processing observer to allow dispose and replace.
*/
private _imageProcessingObserver;
/**
* Attaches a new image processing configuration to the Standard Material.
* @param configuration
*/
protected _attachImageProcessingConfiguration(configuration: Nullable): void;
/**
* Gets wether the color curves effect is enabled.
*/
/**
* Sets wether the color curves effect is enabled.
*/
cameraColorCurvesEnabled: boolean;
/**
* Gets wether the color grading effect is enabled.
*/
/**
* Gets wether the color grading effect is enabled.
*/
cameraColorGradingEnabled: boolean;
/**
* Gets wether tonemapping is enabled or not.
*/
/**
* Sets wether tonemapping is enabled or not
*/
cameraToneMappingEnabled: boolean;
/**
* The camera exposure used on this material.
* This property is here and not in the camera to allow controlling exposure without full screen post process.
* This corresponds to a photographic exposure.
*/
/**
* The camera exposure used on this material.
* This property is here and not in the camera to allow controlling exposure without full screen post process.
* This corresponds to a photographic exposure.
*/
cameraExposure: number;
/**
* Gets The camera contrast used on this material.
*/
/**
* Sets The camera contrast used on this material.
*/
cameraContrast: number;
/**
* Gets the Color Grading 2D Lookup Texture.
*/
/**
* Sets the Color Grading 2D Lookup Texture.
*/
cameraColorGradingTexture: Nullable;
customShaderNameResolve: (shaderName: string, uniforms: string[], uniformBuffers: string[], samplers: string[], defines: StandardMaterialDefines_OldVer) => string;
protected _renderTargets: SmartArray;
protected _worldViewProjectionMatrix: Matrix;
protected _globalAmbientColor: Color3;
protected _useLogarithmicDepth: boolean;
constructor(name: string, scene: Scene);
getClassName(): string;
useLogarithmicDepth: boolean;
needAlphaBlending(): boolean;
needAlphaTesting(): boolean;
protected _shouldUseAlphaFromDiffuseTexture(): boolean;
getAlphaTestTexture(): BaseTexture;
/**
* Child classes can use it to update shaders
*/
isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
buildUniformLayout(): void;
unbind(): void;
bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
getAnimatables(): IAnimatable[];
getActiveTextures(): BaseTexture[];
dispose(forceDisposeEffect?: boolean, forceDisposeTextures?: boolean): void;
clone(name: string): StandardMaterial_OldVer;
serialize(): any;
static Parse(source: any, scene: Scene, rootUrl: string): StandardMaterial_OldVer;
static _DiffuseTextureEnabled: boolean;
static DiffuseTextureEnabled: boolean;
static _AmbientTextureEnabled: boolean;
static AmbientTextureEnabled: boolean;
static _OpacityTextureEnabled: boolean;
static OpacityTextureEnabled: boolean;
static _ReflectionTextureEnabled: boolean;
static ReflectionTextureEnabled: boolean;
static _EmissiveTextureEnabled: boolean;
static EmissiveTextureEnabled: boolean;
static _SpecularTextureEnabled: boolean;
static SpecularTextureEnabled: boolean;
static _BumpTextureEnabled: boolean;
static BumpTextureEnabled: boolean;
static _LightmapTextureEnabled: boolean;
static LightmapTextureEnabled: boolean;
static _RefractionTextureEnabled: boolean;
static RefractionTextureEnabled: boolean;
static _ColorGradingTextureEnabled: boolean;
static ColorGradingTextureEnabled: boolean;
static _FresnelEnabled: boolean;
static FresnelEnabled: boolean;
}
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 ShaderForVer3_0 extends CustomShaderStructure {
constructor();
}
class StandardShaderVersions {
static Ver3_0: string;
}
class CustomMaterial extends StandardMaterial_OldVer {
static ShaderIndexer: number;
CustomParts: ShaderSpecialParts;
ShaderVersion: CustomShaderStructure;
_isCreatedShader: boolean;
_createdShaderName: string;
_customUniform: string[];
_newUniforms: string[];
_newUniformInstances: any[];
_newSamplerInstances: Texture[];
AttachAfterBind(mesh: Mesh, effect: Effect): void;
ReviewUniform(name: string, arr: string[]): string[];
Builder(shaderName: string, uniforms: string[], uniformBuffers: string[], samplers: string[], defines: StandardMaterialDefines_OldVer): string;
SelectVersion(ver: string): void;
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;
}
}