|
@@ -7688,6 +7688,8 @@ declare module "babylonjs/Materials/materialDefines" {
|
|
|
/** @hidden */
|
|
|
_areLightsDirty: boolean;
|
|
|
/** @hidden */
|
|
|
+ _areLightsDisposed: boolean;
|
|
|
+ /** @hidden */
|
|
|
_areAttributesDirty: boolean;
|
|
|
/** @hidden */
|
|
|
_areTexturesDirty: boolean;
|
|
@@ -7728,8 +7730,9 @@ declare module "babylonjs/Materials/materialDefines" {
|
|
|
markAsImageProcessingDirty(): void;
|
|
|
/**
|
|
|
* Marks the material to indicate the lights need to be re-calculated
|
|
|
+ * @param disposed Defines whether the light is dirty due to dispose or not
|
|
|
*/
|
|
|
- markAsLightDirty(): void;
|
|
|
+ markAsLightDirty(disposed?: boolean): void;
|
|
|
/**
|
|
|
* Marks the attribute state as changed
|
|
|
*/
|
|
@@ -9063,8 +9066,9 @@ declare module "babylonjs/Materials/materialHelper" {
|
|
|
* @param effect The effect we are binding the data to
|
|
|
* @param useSpecular Defines if specular is supported
|
|
|
* @param usePhysicalLightFalloff Specifies whether the light falloff is defined physically or not
|
|
|
+ * @param rebuildInParallel Specifies whether the shader is rebuilding in parallel
|
|
|
*/
|
|
|
- static BindLight(light: Light, lightIndex: number, scene: Scene, mesh: AbstractMesh, effect: Effect, useSpecular: boolean, usePhysicalLightFalloff?: boolean): void;
|
|
|
+ static BindLight(light: Light, lightIndex: number, scene: Scene, mesh: AbstractMesh, effect: Effect, useSpecular: boolean, usePhysicalLightFalloff?: boolean, rebuildInParallel?: boolean): void;
|
|
|
/**
|
|
|
* Binds the lights information from the scene to the effect for the given mesh.
|
|
|
* @param scene The scene the lights belongs to
|
|
@@ -9073,8 +9077,9 @@ declare module "babylonjs/Materials/materialHelper" {
|
|
|
* @param defines The generated defines for the effect
|
|
|
* @param maxSimultaneousLights The maximum number of light that can be bound to the effect
|
|
|
* @param usePhysicalLightFalloff Specifies whether the light falloff is defined physically or not
|
|
|
+ * @param rebuildInParallel Specifies whether the shader is rebuilding in parallel
|
|
|
*/
|
|
|
- static BindLights(scene: Scene, mesh: AbstractMesh, effect: Effect, defines: any, maxSimultaneousLights?: number, usePhysicalLightFalloff?: boolean): void;
|
|
|
+ static BindLights(scene: Scene, mesh: AbstractMesh, effect: Effect, defines: any, maxSimultaneousLights?: number, usePhysicalLightFalloff?: boolean, rebuildInParallel?: boolean): void;
|
|
|
private static _tempFogColor;
|
|
|
/**
|
|
|
* Binds the fog information from the scene to the effect for the given mesh.
|
|
@@ -19082,7 +19087,7 @@ declare module "babylonjs/Meshes/instancedMesh" {
|
|
|
readonly lightSources: Light[];
|
|
|
_resyncLightSources(): void;
|
|
|
_resyncLighSource(light: Light): void;
|
|
|
- _removeLightSource(light: Light): void;
|
|
|
+ _removeLightSource(light: Light, dispose: boolean): void;
|
|
|
/**
|
|
|
* If the source mesh receives shadows
|
|
|
*/
|
|
@@ -26653,10 +26658,10 @@ declare module "babylonjs/Meshes/abstractMesh" {
|
|
|
/** @hidden */
|
|
|
_unBindEffect(): void;
|
|
|
/** @hidden */
|
|
|
- _removeLightSource(light: Light): void;
|
|
|
+ _removeLightSource(light: Light, dispose: boolean): void;
|
|
|
private _markSubMeshesAsDirty;
|
|
|
/** @hidden */
|
|
|
- _markSubMeshesAsLightDirty(): void;
|
|
|
+ _markSubMeshesAsLightDirty(dispose?: boolean): void;
|
|
|
/** @hidden */
|
|
|
_markSubMeshesAsAttributesDirty(): void;
|
|
|
/** @hidden */
|
|
@@ -30318,6 +30323,7 @@ declare module "babylonjs/Materials/Textures/videoTexture" {
|
|
|
private _displayingPosterTexture;
|
|
|
private _settings;
|
|
|
private _createInternalTextureOnEvent;
|
|
|
+ private _frameId;
|
|
|
/**
|
|
|
* Creates a video texture.
|
|
|
* If you want to display a video in your scene, this is the special texture for that.
|
|
@@ -41591,6 +41597,7 @@ declare module "babylonjs/Materials/standardMaterial" {
|
|
|
protected _worldViewProjectionMatrix: Matrix;
|
|
|
protected _globalAmbientColor: Color3;
|
|
|
protected _useLogarithmicDepth: boolean;
|
|
|
+ protected _rebuildInParallel: boolean;
|
|
|
/**
|
|
|
* Instantiates a new standard material.
|
|
|
* This is the default material used in Babylon. It is the best trade off between quality
|
|
@@ -48910,6 +48917,7 @@ declare module "babylonjs/Materials/PBR/pbrBaseMaterial" {
|
|
|
* Custom callback helping to override the default shader used in the material.
|
|
|
*/
|
|
|
customShaderNameResolve: (shaderName: string, uniforms: string[], uniformBuffers: string[], samplers: string[], defines: PBRMaterialDefines) => string;
|
|
|
+ protected _rebuildInParallel: boolean;
|
|
|
/**
|
|
|
* Instantiates a new PBRMaterial instance.
|
|
|
*
|
|
@@ -54113,6 +54121,7 @@ declare module "babylonjs/Materials/Node/Blocks/transformBlock" {
|
|
|
protected _buildBlock(state: NodeMaterialBuildState): this;
|
|
|
serialize(): any;
|
|
|
_deserialize(serializationObject: any, scene: Scene, rootUrl: string): void;
|
|
|
+ protected _dumpPropertiesCode(): string;
|
|
|
}
|
|
|
}
|
|
|
declare module "babylonjs/Materials/Node/Blocks/Vertex/vertexOutputBlock" {
|
|
@@ -54284,7 +54293,7 @@ declare module "babylonjs/Materials/Node/Blocks/Dual/reflectionTextureBlock" {
|
|
|
* Gets the b output component
|
|
|
*/
|
|
|
readonly b: NodeMaterialConnectionPoint;
|
|
|
- autoConfigure(): void;
|
|
|
+ autoConfigure(material: NodeMaterial): void;
|
|
|
prepareDefines(mesh: AbstractMesh, nodeMaterial: NodeMaterial, defines: NodeMaterialDefines): void;
|
|
|
isReady(): boolean;
|
|
|
bind(effect: Effect, nodeMaterial: NodeMaterial, mesh?: Mesh): void;
|
|
@@ -54445,6 +54454,18 @@ declare module "babylonjs/Materials/Node/nodeMaterial" {
|
|
|
*/
|
|
|
getBlockByName(name: string): Nullable<NodeMaterialBlock>;
|
|
|
/**
|
|
|
+ * Get a block by its name
|
|
|
+ * @param predicate defines the predicate used to find the good candidate
|
|
|
+ * @returns the required block or null if not found
|
|
|
+ */
|
|
|
+ getBlockByPredicate(predicate: (block: NodeMaterialBlock) => boolean): Nullable<NodeMaterialBlock>;
|
|
|
+ /**
|
|
|
+ * Get an input block by its name
|
|
|
+ * @param predicate defines the predicate used to find the good candidate
|
|
|
+ * @returns the required input block or null if not found
|
|
|
+ */
|
|
|
+ getInputBlockByPredicate(predicate: (block: InputBlock) => boolean): Nullable<InputBlock>;
|
|
|
+ /**
|
|
|
* Gets the list of input blocks attached to this material
|
|
|
* @returns an array of InputBlocks
|
|
|
*/
|
|
@@ -54670,7 +54691,7 @@ declare module "babylonjs/Materials/Node/Blocks/Dual/textureBlock" {
|
|
|
*/
|
|
|
readonly a: NodeMaterialConnectionPoint;
|
|
|
readonly target: NodeMaterialBlockTargets;
|
|
|
- autoConfigure(): void;
|
|
|
+ autoConfigure(material: NodeMaterial): void;
|
|
|
initializeDefines(mesh: AbstractMesh, nodeMaterial: NodeMaterial, defines: NodeMaterialDefines, useInstances?: boolean): void;
|
|
|
prepareDefines(mesh: AbstractMesh, nodeMaterial: NodeMaterial, defines: NodeMaterialDefines): void;
|
|
|
isReady(): boolean;
|
|
@@ -55085,6 +55106,7 @@ declare module "babylonjs/Materials/Node/nodeMaterialBlock" {
|
|
|
* @returns true if the block is ready
|
|
|
*/
|
|
|
isReady(mesh: AbstractMesh, nodeMaterial: NodeMaterial, defines: NodeMaterialDefines, useInstances?: boolean): boolean;
|
|
|
+ protected _linkConnectionTypes(inputIndex0: number, inputIndex1: number): void;
|
|
|
private _processBuild;
|
|
|
/**
|
|
|
* Compile the current node and generate the shader code
|
|
@@ -55282,6 +55304,8 @@ declare module "babylonjs/Materials/Node/nodeMaterialBlockConnectionPoint" {
|
|
|
private _associatedVariableName;
|
|
|
/** @hidden */
|
|
|
_typeConnectionSource: Nullable<NodeMaterialConnectionPoint>;
|
|
|
+ /** @hidden */
|
|
|
+ _linkedConnectionSource: Nullable<NodeMaterialConnectionPoint>;
|
|
|
private _type;
|
|
|
/** @hidden */
|
|
|
_enforceAssociatedVariableName: boolean;
|
|
@@ -55355,9 +55379,10 @@ declare module "babylonjs/Materials/Node/nodeMaterialBlockConnectionPoint" {
|
|
|
/**
|
|
|
* Connect this point to another connection point
|
|
|
* @param connectionPoint defines the other connection point
|
|
|
+ * @param ignoreConstraints defines if the system will ignore connection type constraints (default is false)
|
|
|
* @returns the current connection point
|
|
|
*/
|
|
|
- connectTo(connectionPoint: NodeMaterialConnectionPoint): NodeMaterialConnectionPoint;
|
|
|
+ connectTo(connectionPoint: NodeMaterialConnectionPoint, ignoreConstraints?: boolean): NodeMaterialConnectionPoint;
|
|
|
/**
|
|
|
* Disconnect this point from one of his endpoint
|
|
|
* @param endpoint defines the other connection point
|
|
@@ -55422,7 +55447,7 @@ declare module "babylonjs/Materials/Node/Blocks/Vertex/bonesBlock" {
|
|
|
* Gets the output component
|
|
|
*/
|
|
|
readonly output: NodeMaterialConnectionPoint;
|
|
|
- autoConfigure(): void;
|
|
|
+ autoConfigure(material: NodeMaterial): void;
|
|
|
provideFallbacks(mesh: AbstractMesh, fallbacks: EffectFallbacks): void;
|
|
|
bind(effect: Effect, nodeMaterial: NodeMaterial, mesh?: Mesh): void;
|
|
|
prepareDefines(mesh: AbstractMesh, nodeMaterial: NodeMaterial, defines: NodeMaterialDefines): void;
|
|
@@ -55474,7 +55499,7 @@ declare module "babylonjs/Materials/Node/Blocks/Vertex/instancesBlock" {
|
|
|
* Gets the output component
|
|
|
*/
|
|
|
readonly output: NodeMaterialConnectionPoint;
|
|
|
- autoConfigure(): void;
|
|
|
+ autoConfigure(material: NodeMaterial): void;
|
|
|
prepareDefines(mesh: AbstractMesh, nodeMaterial: NodeMaterial, defines: NodeMaterialDefines, useInstances?: boolean): void;
|
|
|
protected _buildBlock(state: NodeMaterialBuildState): this;
|
|
|
}
|
|
@@ -55536,7 +55561,7 @@ declare module "babylonjs/Materials/Node/Blocks/Vertex/morphTargetsBlock" {
|
|
|
*/
|
|
|
readonly uvOutput: NodeMaterialConnectionPoint;
|
|
|
initialize(state: NodeMaterialBuildState): void;
|
|
|
- autoConfigure(): void;
|
|
|
+ autoConfigure(material: NodeMaterial): void;
|
|
|
prepareDefines(mesh: AbstractMesh, nodeMaterial: NodeMaterial, defines: NodeMaterialDefines): void;
|
|
|
bind(effect: Effect, nodeMaterial: NodeMaterial, mesh?: Mesh): void;
|
|
|
replaceRepeatableContent(vertexShaderState: NodeMaterialBuildState, fragmentShaderState: NodeMaterialBuildState, mesh: AbstractMesh, defines: NodeMaterialDefines): void;
|
|
@@ -55553,6 +55578,7 @@ declare module "babylonjs/Materials/Node/Blocks/Fragment/alphaTestBlock" {
|
|
|
import { NodeMaterialBlock } from "babylonjs/Materials/Node/nodeMaterialBlock";
|
|
|
import { NodeMaterialBuildState } from "babylonjs/Materials/Node/nodeMaterialBuildState";
|
|
|
import { NodeMaterialConnectionPoint } from "babylonjs/Materials/Node/nodeMaterialBlockConnectionPoint";
|
|
|
+ import { Scene } from "babylonjs/scene";
|
|
|
/**
|
|
|
* Block used to add an alpha test in the fragment shader
|
|
|
*/
|
|
@@ -55580,53 +55606,9 @@ declare module "babylonjs/Materials/Node/Blocks/Fragment/alphaTestBlock" {
|
|
|
*/
|
|
|
readonly alpha: NodeMaterialConnectionPoint;
|
|
|
protected _buildBlock(state: NodeMaterialBuildState): this;
|
|
|
- }
|
|
|
-}
|
|
|
-declare module "babylonjs/Materials/Node/Blocks/Fragment/fresnelBlock" {
|
|
|
- import { NodeMaterialBlock } from "babylonjs/Materials/Node/nodeMaterialBlock";
|
|
|
- import { NodeMaterialBuildState } from "babylonjs/Materials/Node/nodeMaterialBuildState";
|
|
|
- import { NodeMaterialConnectionPoint } from "babylonjs/Materials/Node/nodeMaterialBlockConnectionPoint";
|
|
|
- import { NodeMaterial } from "babylonjs/Materials/Node/nodeMaterial";
|
|
|
- /**
|
|
|
- * Block used to compute fresnel value
|
|
|
- */
|
|
|
- export class FresnelBlock extends NodeMaterialBlock {
|
|
|
- /**
|
|
|
- * Create a new FresnelBlock
|
|
|
- * @param name defines the block name
|
|
|
- */
|
|
|
- constructor(name: string);
|
|
|
- /**
|
|
|
- * Gets the current class name
|
|
|
- * @returns the class name
|
|
|
- */
|
|
|
- getClassName(): string;
|
|
|
- /**
|
|
|
- * Gets the world position input component
|
|
|
- */
|
|
|
- readonly worldPosition: NodeMaterialConnectionPoint;
|
|
|
- /**
|
|
|
- * Gets the world normal input component
|
|
|
- */
|
|
|
- readonly worldNormal: NodeMaterialConnectionPoint;
|
|
|
- /**
|
|
|
- * Gets the camera (or eye) position component
|
|
|
- */
|
|
|
- readonly cameraPosition: NodeMaterialConnectionPoint;
|
|
|
- /**
|
|
|
- * Gets the bias input component
|
|
|
- */
|
|
|
- readonly bias: NodeMaterialConnectionPoint;
|
|
|
- /**
|
|
|
- * Gets the camera (or eye) position component
|
|
|
- */
|
|
|
- readonly power: NodeMaterialConnectionPoint;
|
|
|
- /**
|
|
|
- * Gets the fresnel output component
|
|
|
- */
|
|
|
- readonly fresnel: NodeMaterialConnectionPoint;
|
|
|
- autoConfigure(material: NodeMaterial): void;
|
|
|
- protected _buildBlock(state: NodeMaterialBuildState): this | undefined;
|
|
|
+ protected _dumpPropertiesCode(): string;
|
|
|
+ serialize(): any;
|
|
|
+ _deserialize(serializationObject: any, scene: Scene, rootUrl: string): void;
|
|
|
}
|
|
|
}
|
|
|
declare module "babylonjs/Materials/Node/Blocks/Fragment/imageProcessingBlock" {
|
|
@@ -55673,7 +55655,6 @@ declare module "babylonjs/Materials/Node/Blocks/Fragment/imageProcessingBlock" {
|
|
|
declare module "babylonjs/Materials/Node/Blocks/Fragment/index" {
|
|
|
export * from "babylonjs/Materials/Node/Blocks/Fragment/fragmentOutputBlock";
|
|
|
export * from "babylonjs/Materials/Node/Blocks/Fragment/alphaTestBlock";
|
|
|
- export * from "babylonjs/Materials/Node/Blocks/Fragment/fresnelBlock";
|
|
|
export * from "babylonjs/Materials/Node/Blocks/Fragment/imageProcessingBlock";
|
|
|
}
|
|
|
declare module "babylonjs/Materials/Node/Blocks/Dual/fogBlock" {
|
|
@@ -55720,7 +55701,7 @@ declare module "babylonjs/Materials/Node/Blocks/Dual/fogBlock" {
|
|
|
* Gets the output component
|
|
|
*/
|
|
|
readonly output: NodeMaterialConnectionPoint;
|
|
|
- autoConfigure(): void;
|
|
|
+ autoConfigure(material: NodeMaterial): void;
|
|
|
prepareDefines(mesh: AbstractMesh, nodeMaterial: NodeMaterial, defines: NodeMaterialDefines): void;
|
|
|
bind(effect: Effect, nodeMaterial: NodeMaterial, mesh?: Mesh): void;
|
|
|
protected _buildBlock(state: NodeMaterialBuildState): this;
|
|
@@ -55776,7 +55757,7 @@ declare module "babylonjs/Materials/Node/Blocks/Dual/lightBlock" {
|
|
|
* Gets the specular output component
|
|
|
*/
|
|
|
readonly specularOutput: NodeMaterialConnectionPoint;
|
|
|
- autoConfigure(): void;
|
|
|
+ autoConfigure(material: NodeMaterial): void;
|
|
|
prepareDefines(mesh: AbstractMesh, nodeMaterial: NodeMaterial, defines: NodeMaterialDefines): void;
|
|
|
updateUniformsAndSamples(state: NodeMaterialBuildState, nodeMaterial: NodeMaterial, defines: NodeMaterialDefines): void;
|
|
|
bind(effect: Effect, nodeMaterial: NodeMaterial, mesh?: Mesh): void;
|
|
@@ -56463,6 +56444,113 @@ declare module "babylonjs/Materials/Node/Blocks/stepBlock" {
|
|
|
protected _buildBlock(state: NodeMaterialBuildState): this;
|
|
|
}
|
|
|
}
|
|
|
+declare module "babylonjs/Materials/Node/Blocks/oppositeBlock" {
|
|
|
+ import { NodeMaterialBlock } from "babylonjs/Materials/Node/nodeMaterialBlock";
|
|
|
+ import { NodeMaterialBuildState } from "babylonjs/Materials/Node/nodeMaterialBuildState";
|
|
|
+ import { NodeMaterialConnectionPoint } from "babylonjs/Materials/Node/nodeMaterialBlockConnectionPoint";
|
|
|
+ /**
|
|
|
+ * Block used to get the opposite of a value
|
|
|
+ */
|
|
|
+ export class OppositeBlock extends NodeMaterialBlock {
|
|
|
+ /**
|
|
|
+ * Creates a new OppositeBlock
|
|
|
+ * @param name defines the block name
|
|
|
+ */
|
|
|
+ constructor(name: string);
|
|
|
+ /**
|
|
|
+ * Gets the current class name
|
|
|
+ * @returns the class name
|
|
|
+ */
|
|
|
+ getClassName(): string;
|
|
|
+ /**
|
|
|
+ * Gets the input component
|
|
|
+ */
|
|
|
+ readonly input: NodeMaterialConnectionPoint;
|
|
|
+ /**
|
|
|
+ * Gets the output component
|
|
|
+ */
|
|
|
+ readonly output: NodeMaterialConnectionPoint;
|
|
|
+ protected _buildBlock(state: NodeMaterialBuildState): this;
|
|
|
+ }
|
|
|
+}
|
|
|
+declare module "babylonjs/Materials/Node/Blocks/viewDirectionBlock" {
|
|
|
+ import { NodeMaterialBlock } from "babylonjs/Materials/Node/nodeMaterialBlock";
|
|
|
+ import { NodeMaterialBuildState } from "babylonjs/Materials/Node/nodeMaterialBuildState";
|
|
|
+ import { NodeMaterialConnectionPoint } from "babylonjs/Materials/Node/nodeMaterialBlockConnectionPoint";
|
|
|
+ import { NodeMaterial } from "babylonjs/Materials/Node/nodeMaterial";
|
|
|
+ /**
|
|
|
+ * Block used to get the view direction
|
|
|
+ */
|
|
|
+ export class ViewDirectionBlock extends NodeMaterialBlock {
|
|
|
+ /**
|
|
|
+ * Creates a new ViewDirectionBlock
|
|
|
+ * @param name defines the block name
|
|
|
+ */
|
|
|
+ constructor(name: string);
|
|
|
+ /**
|
|
|
+ * Gets the current class name
|
|
|
+ * @returns the class name
|
|
|
+ */
|
|
|
+ getClassName(): string;
|
|
|
+ /**
|
|
|
+ * Gets the world position component
|
|
|
+ */
|
|
|
+ readonly worldPosition: NodeMaterialConnectionPoint;
|
|
|
+ /**
|
|
|
+ * Gets the camera position component
|
|
|
+ */
|
|
|
+ readonly cameraPosition: NodeMaterialConnectionPoint;
|
|
|
+ /**
|
|
|
+ * Gets the output component
|
|
|
+ */
|
|
|
+ readonly output: NodeMaterialConnectionPoint;
|
|
|
+ autoConfigure(material: NodeMaterial): void;
|
|
|
+ protected _buildBlock(state: NodeMaterialBuildState): this;
|
|
|
+ }
|
|
|
+}
|
|
|
+declare module "babylonjs/Materials/Node/Blocks/fresnelBlock" {
|
|
|
+ import { NodeMaterialBlock } from "babylonjs/Materials/Node/nodeMaterialBlock";
|
|
|
+ import { NodeMaterialBuildState } from "babylonjs/Materials/Node/nodeMaterialBuildState";
|
|
|
+ import { NodeMaterialConnectionPoint } from "babylonjs/Materials/Node/nodeMaterialBlockConnectionPoint";
|
|
|
+ import { NodeMaterial } from "babylonjs/Materials/Node/nodeMaterial";
|
|
|
+ /**
|
|
|
+ * Block used to compute fresnel value
|
|
|
+ */
|
|
|
+ export class FresnelBlock extends NodeMaterialBlock {
|
|
|
+ /**
|
|
|
+ * Create a new FresnelBlock
|
|
|
+ * @param name defines the block name
|
|
|
+ */
|
|
|
+ constructor(name: string);
|
|
|
+ /**
|
|
|
+ * Gets the current class name
|
|
|
+ * @returns the class name
|
|
|
+ */
|
|
|
+ getClassName(): string;
|
|
|
+ /**
|
|
|
+ * Gets the world normal input component
|
|
|
+ */
|
|
|
+ readonly worldNormal: NodeMaterialConnectionPoint;
|
|
|
+ /**
|
|
|
+ * Gets the view direction input component
|
|
|
+ */
|
|
|
+ readonly viewDirection: NodeMaterialConnectionPoint;
|
|
|
+ /**
|
|
|
+ * Gets the bias input component
|
|
|
+ */
|
|
|
+ readonly bias: NodeMaterialConnectionPoint;
|
|
|
+ /**
|
|
|
+ * Gets the camera (or eye) position component
|
|
|
+ */
|
|
|
+ readonly power: NodeMaterialConnectionPoint;
|
|
|
+ /**
|
|
|
+ * Gets the fresnel output component
|
|
|
+ */
|
|
|
+ readonly fresnel: NodeMaterialConnectionPoint;
|
|
|
+ autoConfigure(material: NodeMaterial): void;
|
|
|
+ protected _buildBlock(state: NodeMaterialBuildState): this;
|
|
|
+ }
|
|
|
+}
|
|
|
declare module "babylonjs/Materials/Node/Blocks/index" {
|
|
|
export * from "babylonjs/Materials/Node/Blocks/Vertex/index";
|
|
|
export * from "babylonjs/Materials/Node/Blocks/Fragment/index";
|
|
@@ -56486,6 +56574,9 @@ declare module "babylonjs/Materials/Node/Blocks/index" {
|
|
|
export * from "babylonjs/Materials/Node/Blocks/divideBlock";
|
|
|
export * from "babylonjs/Materials/Node/Blocks/subtractBlock";
|
|
|
export * from "babylonjs/Materials/Node/Blocks/stepBlock";
|
|
|
+ export * from "babylonjs/Materials/Node/Blocks/oppositeBlock";
|
|
|
+ export * from "babylonjs/Materials/Node/Blocks/viewDirectionBlock";
|
|
|
+ export * from "babylonjs/Materials/Node/Blocks/fresnelBlock";
|
|
|
}
|
|
|
declare module "babylonjs/Materials/Node/Optimizers/index" {
|
|
|
export * from "babylonjs/Materials/Node/Optimizers/nodeMaterialOptimizer";
|
|
@@ -72520,6 +72611,8 @@ declare module BABYLON {
|
|
|
/** @hidden */
|
|
|
_areLightsDirty: boolean;
|
|
|
/** @hidden */
|
|
|
+ _areLightsDisposed: boolean;
|
|
|
+ /** @hidden */
|
|
|
_areAttributesDirty: boolean;
|
|
|
/** @hidden */
|
|
|
_areTexturesDirty: boolean;
|
|
@@ -72560,8 +72653,9 @@ declare module BABYLON {
|
|
|
markAsImageProcessingDirty(): void;
|
|
|
/**
|
|
|
* Marks the material to indicate the lights need to be re-calculated
|
|
|
+ * @param disposed Defines whether the light is dirty due to dispose or not
|
|
|
*/
|
|
|
- markAsLightDirty(): void;
|
|
|
+ markAsLightDirty(disposed?: boolean): void;
|
|
|
/**
|
|
|
* Marks the attribute state as changed
|
|
|
*/
|
|
@@ -73865,8 +73959,9 @@ declare module BABYLON {
|
|
|
* @param effect The effect we are binding the data to
|
|
|
* @param useSpecular Defines if specular is supported
|
|
|
* @param usePhysicalLightFalloff Specifies whether the light falloff is defined physically or not
|
|
|
+ * @param rebuildInParallel Specifies whether the shader is rebuilding in parallel
|
|
|
*/
|
|
|
- static BindLight(light: Light, lightIndex: number, scene: Scene, mesh: AbstractMesh, effect: Effect, useSpecular: boolean, usePhysicalLightFalloff?: boolean): void;
|
|
|
+ static BindLight(light: Light, lightIndex: number, scene: Scene, mesh: AbstractMesh, effect: Effect, useSpecular: boolean, usePhysicalLightFalloff?: boolean, rebuildInParallel?: boolean): void;
|
|
|
/**
|
|
|
* Binds the lights information from the scene to the effect for the given mesh.
|
|
|
* @param scene The scene the lights belongs to
|
|
@@ -73875,8 +73970,9 @@ declare module BABYLON {
|
|
|
* @param defines The generated defines for the effect
|
|
|
* @param maxSimultaneousLights The maximum number of light that can be bound to the effect
|
|
|
* @param usePhysicalLightFalloff Specifies whether the light falloff is defined physically or not
|
|
|
+ * @param rebuildInParallel Specifies whether the shader is rebuilding in parallel
|
|
|
*/
|
|
|
- static BindLights(scene: Scene, mesh: AbstractMesh, effect: Effect, defines: any, maxSimultaneousLights?: number, usePhysicalLightFalloff?: boolean): void;
|
|
|
+ static BindLights(scene: Scene, mesh: AbstractMesh, effect: Effect, defines: any, maxSimultaneousLights?: number, usePhysicalLightFalloff?: boolean, rebuildInParallel?: boolean): void;
|
|
|
private static _tempFogColor;
|
|
|
/**
|
|
|
* Binds the fog information from the scene to the effect for the given mesh.
|
|
@@ -83497,7 +83593,7 @@ declare module BABYLON {
|
|
|
readonly lightSources: Light[];
|
|
|
_resyncLightSources(): void;
|
|
|
_resyncLighSource(light: Light): void;
|
|
|
- _removeLightSource(light: Light): void;
|
|
|
+ _removeLightSource(light: Light, dispose: boolean): void;
|
|
|
/**
|
|
|
* If the source mesh receives shadows
|
|
|
*/
|
|
@@ -90817,10 +90913,10 @@ declare module BABYLON {
|
|
|
/** @hidden */
|
|
|
_unBindEffect(): void;
|
|
|
/** @hidden */
|
|
|
- _removeLightSource(light: Light): void;
|
|
|
+ _removeLightSource(light: Light, dispose: boolean): void;
|
|
|
private _markSubMeshesAsDirty;
|
|
|
/** @hidden */
|
|
|
- _markSubMeshesAsLightDirty(): void;
|
|
|
+ _markSubMeshesAsLightDirty(dispose?: boolean): void;
|
|
|
/** @hidden */
|
|
|
_markSubMeshesAsAttributesDirty(): void;
|
|
|
/** @hidden */
|
|
@@ -94390,6 +94486,7 @@ declare module BABYLON {
|
|
|
private _displayingPosterTexture;
|
|
|
private _settings;
|
|
|
private _createInternalTextureOnEvent;
|
|
|
+ private _frameId;
|
|
|
/**
|
|
|
* Creates a video texture.
|
|
|
* If you want to display a video in your scene, this is the special texture for that.
|
|
@@ -105127,6 +105224,7 @@ declare module BABYLON {
|
|
|
protected _worldViewProjectionMatrix: Matrix;
|
|
|
protected _globalAmbientColor: Color3;
|
|
|
protected _useLogarithmicDepth: boolean;
|
|
|
+ protected _rebuildInParallel: boolean;
|
|
|
/**
|
|
|
* Instantiates a new standard material.
|
|
|
* This is the default material used in Babylon. It is the best trade off between quality
|
|
@@ -111803,6 +111901,7 @@ declare module BABYLON {
|
|
|
* Custom callback helping to override the default shader used in the material.
|
|
|
*/
|
|
|
customShaderNameResolve: (shaderName: string, uniforms: string[], uniformBuffers: string[], samplers: string[], defines: PBRMaterialDefines) => string;
|
|
|
+ protected _rebuildInParallel: boolean;
|
|
|
/**
|
|
|
* Instantiates a new PBRMaterial instance.
|
|
|
*
|
|
@@ -116627,6 +116726,7 @@ declare module BABYLON {
|
|
|
protected _buildBlock(state: NodeMaterialBuildState): this;
|
|
|
serialize(): any;
|
|
|
_deserialize(serializationObject: any, scene: Scene, rootUrl: string): void;
|
|
|
+ protected _dumpPropertiesCode(): string;
|
|
|
}
|
|
|
}
|
|
|
declare module BABYLON {
|
|
@@ -116782,7 +116882,7 @@ declare module BABYLON {
|
|
|
* Gets the b output component
|
|
|
*/
|
|
|
readonly b: NodeMaterialConnectionPoint;
|
|
|
- autoConfigure(): void;
|
|
|
+ autoConfigure(material: NodeMaterial): void;
|
|
|
prepareDefines(mesh: AbstractMesh, nodeMaterial: NodeMaterial, defines: NodeMaterialDefines): void;
|
|
|
isReady(): boolean;
|
|
|
bind(effect: Effect, nodeMaterial: NodeMaterial, mesh?: Mesh): void;
|
|
@@ -116927,6 +117027,18 @@ declare module BABYLON {
|
|
|
*/
|
|
|
getBlockByName(name: string): Nullable<NodeMaterialBlock>;
|
|
|
/**
|
|
|
+ * Get a block by its name
|
|
|
+ * @param predicate defines the predicate used to find the good candidate
|
|
|
+ * @returns the required block or null if not found
|
|
|
+ */
|
|
|
+ getBlockByPredicate(predicate: (block: NodeMaterialBlock) => boolean): Nullable<NodeMaterialBlock>;
|
|
|
+ /**
|
|
|
+ * Get an input block by its name
|
|
|
+ * @param predicate defines the predicate used to find the good candidate
|
|
|
+ * @returns the required input block or null if not found
|
|
|
+ */
|
|
|
+ getInputBlockByPredicate(predicate: (block: InputBlock) => boolean): Nullable<InputBlock>;
|
|
|
+ /**
|
|
|
* Gets the list of input blocks attached to this material
|
|
|
* @returns an array of InputBlocks
|
|
|
*/
|
|
@@ -117141,7 +117253,7 @@ declare module BABYLON {
|
|
|
*/
|
|
|
readonly a: NodeMaterialConnectionPoint;
|
|
|
readonly target: NodeMaterialBlockTargets;
|
|
|
- autoConfigure(): void;
|
|
|
+ autoConfigure(material: NodeMaterial): void;
|
|
|
initializeDefines(mesh: AbstractMesh, nodeMaterial: NodeMaterial, defines: NodeMaterialDefines, useInstances?: boolean): void;
|
|
|
prepareDefines(mesh: AbstractMesh, nodeMaterial: NodeMaterial, defines: NodeMaterialDefines): void;
|
|
|
isReady(): boolean;
|
|
@@ -117538,6 +117650,7 @@ declare module BABYLON {
|
|
|
* @returns true if the block is ready
|
|
|
*/
|
|
|
isReady(mesh: AbstractMesh, nodeMaterial: NodeMaterial, defines: NodeMaterialDefines, useInstances?: boolean): boolean;
|
|
|
+ protected _linkConnectionTypes(inputIndex0: number, inputIndex1: number): void;
|
|
|
private _processBuild;
|
|
|
/**
|
|
|
* Compile the current node and generate the shader code
|
|
@@ -117719,6 +117832,8 @@ declare module BABYLON {
|
|
|
private _associatedVariableName;
|
|
|
/** @hidden */
|
|
|
_typeConnectionSource: Nullable<NodeMaterialConnectionPoint>;
|
|
|
+ /** @hidden */
|
|
|
+ _linkedConnectionSource: Nullable<NodeMaterialConnectionPoint>;
|
|
|
private _type;
|
|
|
/** @hidden */
|
|
|
_enforceAssociatedVariableName: boolean;
|
|
@@ -117792,9 +117907,10 @@ declare module BABYLON {
|
|
|
/**
|
|
|
* Connect this point to another connection point
|
|
|
* @param connectionPoint defines the other connection point
|
|
|
+ * @param ignoreConstraints defines if the system will ignore connection type constraints (default is false)
|
|
|
* @returns the current connection point
|
|
|
*/
|
|
|
- connectTo(connectionPoint: NodeMaterialConnectionPoint): NodeMaterialConnectionPoint;
|
|
|
+ connectTo(connectionPoint: NodeMaterialConnectionPoint, ignoreConstraints?: boolean): NodeMaterialConnectionPoint;
|
|
|
/**
|
|
|
* Disconnect this point from one of his endpoint
|
|
|
* @param endpoint defines the other connection point
|
|
@@ -117852,7 +117968,7 @@ declare module BABYLON {
|
|
|
* Gets the output component
|
|
|
*/
|
|
|
readonly output: NodeMaterialConnectionPoint;
|
|
|
- autoConfigure(): void;
|
|
|
+ autoConfigure(material: NodeMaterial): void;
|
|
|
provideFallbacks(mesh: AbstractMesh, fallbacks: EffectFallbacks): void;
|
|
|
bind(effect: Effect, nodeMaterial: NodeMaterial, mesh?: Mesh): void;
|
|
|
prepareDefines(mesh: AbstractMesh, nodeMaterial: NodeMaterial, defines: NodeMaterialDefines): void;
|
|
@@ -117899,7 +118015,7 @@ declare module BABYLON {
|
|
|
* Gets the output component
|
|
|
*/
|
|
|
readonly output: NodeMaterialConnectionPoint;
|
|
|
- autoConfigure(): void;
|
|
|
+ autoConfigure(material: NodeMaterial): void;
|
|
|
prepareDefines(mesh: AbstractMesh, nodeMaterial: NodeMaterial, defines: NodeMaterialDefines, useInstances?: boolean): void;
|
|
|
protected _buildBlock(state: NodeMaterialBuildState): this;
|
|
|
}
|
|
@@ -117954,7 +118070,7 @@ declare module BABYLON {
|
|
|
*/
|
|
|
readonly uvOutput: NodeMaterialConnectionPoint;
|
|
|
initialize(state: NodeMaterialBuildState): void;
|
|
|
- autoConfigure(): void;
|
|
|
+ autoConfigure(material: NodeMaterial): void;
|
|
|
prepareDefines(mesh: AbstractMesh, nodeMaterial: NodeMaterial, defines: NodeMaterialDefines): void;
|
|
|
bind(effect: Effect, nodeMaterial: NodeMaterial, mesh?: Mesh): void;
|
|
|
replaceRepeatableContent(vertexShaderState: NodeMaterialBuildState, fragmentShaderState: NodeMaterialBuildState, mesh: AbstractMesh, defines: NodeMaterialDefines): void;
|
|
@@ -117989,49 +118105,9 @@ declare module BABYLON {
|
|
|
*/
|
|
|
readonly alpha: NodeMaterialConnectionPoint;
|
|
|
protected _buildBlock(state: NodeMaterialBuildState): this;
|
|
|
- }
|
|
|
-}
|
|
|
-declare module BABYLON {
|
|
|
- /**
|
|
|
- * Block used to compute fresnel value
|
|
|
- */
|
|
|
- export class FresnelBlock extends NodeMaterialBlock {
|
|
|
- /**
|
|
|
- * Create a new FresnelBlock
|
|
|
- * @param name defines the block name
|
|
|
- */
|
|
|
- constructor(name: string);
|
|
|
- /**
|
|
|
- * Gets the current class name
|
|
|
- * @returns the class name
|
|
|
- */
|
|
|
- getClassName(): string;
|
|
|
- /**
|
|
|
- * Gets the world position input component
|
|
|
- */
|
|
|
- readonly worldPosition: NodeMaterialConnectionPoint;
|
|
|
- /**
|
|
|
- * Gets the world normal input component
|
|
|
- */
|
|
|
- readonly worldNormal: NodeMaterialConnectionPoint;
|
|
|
- /**
|
|
|
- * Gets the camera (or eye) position component
|
|
|
- */
|
|
|
- readonly cameraPosition: NodeMaterialConnectionPoint;
|
|
|
- /**
|
|
|
- * Gets the bias input component
|
|
|
- */
|
|
|
- readonly bias: NodeMaterialConnectionPoint;
|
|
|
- /**
|
|
|
- * Gets the camera (or eye) position component
|
|
|
- */
|
|
|
- readonly power: NodeMaterialConnectionPoint;
|
|
|
- /**
|
|
|
- * Gets the fresnel output component
|
|
|
- */
|
|
|
- readonly fresnel: NodeMaterialConnectionPoint;
|
|
|
- autoConfigure(material: NodeMaterial): void;
|
|
|
- protected _buildBlock(state: NodeMaterialBuildState): this | undefined;
|
|
|
+ protected _dumpPropertiesCode(): string;
|
|
|
+ serialize(): any;
|
|
|
+ _deserialize(serializationObject: any, scene: Scene, rootUrl: string): void;
|
|
|
}
|
|
|
}
|
|
|
declare module BABYLON {
|
|
@@ -118105,7 +118181,7 @@ declare module BABYLON {
|
|
|
* Gets the output component
|
|
|
*/
|
|
|
readonly output: NodeMaterialConnectionPoint;
|
|
|
- autoConfigure(): void;
|
|
|
+ autoConfigure(material: NodeMaterial): void;
|
|
|
prepareDefines(mesh: AbstractMesh, nodeMaterial: NodeMaterial, defines: NodeMaterialDefines): void;
|
|
|
bind(effect: Effect, nodeMaterial: NodeMaterial, mesh?: Mesh): void;
|
|
|
protected _buildBlock(state: NodeMaterialBuildState): this;
|
|
@@ -118151,7 +118227,7 @@ declare module BABYLON {
|
|
|
* Gets the specular output component
|
|
|
*/
|
|
|
readonly specularOutput: NodeMaterialConnectionPoint;
|
|
|
- autoConfigure(): void;
|
|
|
+ autoConfigure(material: NodeMaterial): void;
|
|
|
prepareDefines(mesh: AbstractMesh, nodeMaterial: NodeMaterial, defines: NodeMaterialDefines): void;
|
|
|
updateUniformsAndSamples(state: NodeMaterialBuildState, nodeMaterial: NodeMaterial, defines: NodeMaterialDefines): void;
|
|
|
bind(effect: Effect, nodeMaterial: NodeMaterial, mesh?: Mesh): void;
|
|
@@ -118776,6 +118852,102 @@ declare module BABYLON {
|
|
|
}
|
|
|
declare module BABYLON {
|
|
|
/**
|
|
|
+ * Block used to get the opposite of a value
|
|
|
+ */
|
|
|
+ export class OppositeBlock extends NodeMaterialBlock {
|
|
|
+ /**
|
|
|
+ * Creates a new OppositeBlock
|
|
|
+ * @param name defines the block name
|
|
|
+ */
|
|
|
+ constructor(name: string);
|
|
|
+ /**
|
|
|
+ * Gets the current class name
|
|
|
+ * @returns the class name
|
|
|
+ */
|
|
|
+ getClassName(): string;
|
|
|
+ /**
|
|
|
+ * Gets the input component
|
|
|
+ */
|
|
|
+ readonly input: NodeMaterialConnectionPoint;
|
|
|
+ /**
|
|
|
+ * Gets the output component
|
|
|
+ */
|
|
|
+ readonly output: NodeMaterialConnectionPoint;
|
|
|
+ protected _buildBlock(state: NodeMaterialBuildState): this;
|
|
|
+ }
|
|
|
+}
|
|
|
+declare module BABYLON {
|
|
|
+ /**
|
|
|
+ * Block used to get the view direction
|
|
|
+ */
|
|
|
+ export class ViewDirectionBlock extends NodeMaterialBlock {
|
|
|
+ /**
|
|
|
+ * Creates a new ViewDirectionBlock
|
|
|
+ * @param name defines the block name
|
|
|
+ */
|
|
|
+ constructor(name: string);
|
|
|
+ /**
|
|
|
+ * Gets the current class name
|
|
|
+ * @returns the class name
|
|
|
+ */
|
|
|
+ getClassName(): string;
|
|
|
+ /**
|
|
|
+ * Gets the world position component
|
|
|
+ */
|
|
|
+ readonly worldPosition: NodeMaterialConnectionPoint;
|
|
|
+ /**
|
|
|
+ * Gets the camera position component
|
|
|
+ */
|
|
|
+ readonly cameraPosition: NodeMaterialConnectionPoint;
|
|
|
+ /**
|
|
|
+ * Gets the output component
|
|
|
+ */
|
|
|
+ readonly output: NodeMaterialConnectionPoint;
|
|
|
+ autoConfigure(material: NodeMaterial): void;
|
|
|
+ protected _buildBlock(state: NodeMaterialBuildState): this;
|
|
|
+ }
|
|
|
+}
|
|
|
+declare module BABYLON {
|
|
|
+ /**
|
|
|
+ * Block used to compute fresnel value
|
|
|
+ */
|
|
|
+ export class FresnelBlock extends NodeMaterialBlock {
|
|
|
+ /**
|
|
|
+ * Create a new FresnelBlock
|
|
|
+ * @param name defines the block name
|
|
|
+ */
|
|
|
+ constructor(name: string);
|
|
|
+ /**
|
|
|
+ * Gets the current class name
|
|
|
+ * @returns the class name
|
|
|
+ */
|
|
|
+ getClassName(): string;
|
|
|
+ /**
|
|
|
+ * Gets the world normal input component
|
|
|
+ */
|
|
|
+ readonly worldNormal: NodeMaterialConnectionPoint;
|
|
|
+ /**
|
|
|
+ * Gets the view direction input component
|
|
|
+ */
|
|
|
+ readonly viewDirection: NodeMaterialConnectionPoint;
|
|
|
+ /**
|
|
|
+ * Gets the bias input component
|
|
|
+ */
|
|
|
+ readonly bias: NodeMaterialConnectionPoint;
|
|
|
+ /**
|
|
|
+ * Gets the camera (or eye) position component
|
|
|
+ */
|
|
|
+ readonly power: NodeMaterialConnectionPoint;
|
|
|
+ /**
|
|
|
+ * Gets the fresnel output component
|
|
|
+ */
|
|
|
+ readonly fresnel: NodeMaterialConnectionPoint;
|
|
|
+ autoConfigure(material: NodeMaterial): void;
|
|
|
+ protected _buildBlock(state: NodeMaterialBuildState): this;
|
|
|
+ }
|
|
|
+}
|
|
|
+declare module BABYLON {
|
|
|
+ /**
|
|
|
* Effect Render Options
|
|
|
*/
|
|
|
export interface IEffectRendererOptions {
|