Forráskód Böngészése

Merge branch 'master' of https://github.com/BabylonJS/Babylon.js into nme-pbr

Popov72 5 éve
szülő
commit
f25b6a4f99

+ 85 - 0
dist/preview release/babylon.d.ts

@@ -61464,6 +61464,86 @@ declare module BABYLON {
 }
 }
 declare module BABYLON {
 declare module BABYLON {
     /**
     /**
+     * Block used to implement the clear coat module of the PBR material
+     */
+    export class ClearCoatBlock extends NodeMaterialBlock {
+        private _scene;
+        /**
+         * Create a new ClearCoatBlock
+         * @param name defines the block name
+         */
+        constructor(name: string);
+        /**
+         * Initialize the block and prepare the context for build
+         * @param state defines the state that will be used for the build
+         */
+        initialize(state: NodeMaterialBuildState): void;
+        /**
+         * Gets the current class name
+         * @returns the class name
+         */
+        getClassName(): string;
+        /**
+         * Gets the intensity input component
+         */
+        get intensity(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the roughness input component
+         */
+        get roughness(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the ior input component
+         */
+        get ior(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the texture input component
+         */
+        get texture(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the bump texture input component
+         */
+        get bumpTexture(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the uv input component
+         */
+        get uv(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the tint color input component
+         */
+        get tintColor(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the tint "at distance" input component
+         */
+        get tintAtDistance(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the tint thickness input component
+         */
+        get tintThickness(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the tint texture input component
+         */
+        get tintTexture(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the clear coat object output component
+         */
+        get clearcoat(): NodeMaterialConnectionPoint;
+        autoConfigure(material: NodeMaterial): void;
+        prepareDefines(mesh: AbstractMesh, nodeMaterial: NodeMaterial, defines: NodeMaterialDefines): void;
+        bind(effect: Effect, nodeMaterial: NodeMaterial, mesh?: Mesh, subMesh?: SubMesh): void;
+        /**
+         * Gets the main code of the block (fragment side)
+         * @param state current state of the node material building
+         * @param ccBlock instance of a ClearCoatBlock or null if the code must be generated without an active clear coat module
+         * @param reflectionBlock instance of a ReflectionBlock null if the code must be generated without an active reflection module
+         * @param worldPosVarName name of the variable holding the world position
+         * @returns the shader code
+         */
+        static GetCode(state: NodeMaterialBuildState, ccBlock: Nullable<ClearCoatBlock>, reflectionBlock: Nullable<ReflectionBlock>, worldPosVarName: string): string;
+        protected _buildBlock(state: NodeMaterialBuildState): this;
+    }
+}
+declare module BABYLON {
+    /**
      * Block used to implement the PBR metallic/roughness model
      * Block used to implement the PBR metallic/roughness model
      */
      */
     export class PBRMetallicRoughnessBlock extends NodeMaterialBlock {
     export class PBRMetallicRoughnessBlock extends NodeMaterialBlock {
@@ -61476,6 +61556,7 @@ declare module BABYLON {
         private _environmentBRDFTexture;
         private _environmentBRDFTexture;
         private _environmentBrdfSamplerName;
         private _environmentBrdfSamplerName;
         private _vNormalWName;
         private _vNormalWName;
+        private _invertNormalName;
         /**
         /**
          * Create a new ReflectionBlock
          * Create a new ReflectionBlock
          * @param name defines the block name
          * @param name defines the block name
@@ -61542,6 +61623,10 @@ declare module BABYLON {
          */
          */
         unlit: boolean;
         unlit: boolean;
         /**
         /**
+         * Force normal to face away from face.
+         */
+        forceNormalForward: boolean;
+        /**
          * Defines the material debug mode.
          * Defines the material debug mode.
          * It helps seeing only some components of the material while troubleshooting.
          * It helps seeing only some components of the material while troubleshooting.
          */
          */

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 2 - 2
dist/preview release/babylon.js


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 398 - 99
dist/preview release/babylon.max.js


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 1 - 1
dist/preview release/babylon.max.js.map


+ 181 - 0
dist/preview release/babylon.module.d.ts

@@ -64516,6 +64516,96 @@ declare module "babylonjs/Materials/Node/Blocks/PBR/anisotropyBlock" {
         protected _buildBlock(state: NodeMaterialBuildState): this;
         protected _buildBlock(state: NodeMaterialBuildState): this;
     }
     }
 }
 }
+declare module "babylonjs/Materials/Node/Blocks/PBR/clearCoatBlock" {
+    import { NodeMaterialBlock } from "babylonjs/Materials/Node/nodeMaterialBlock";
+    import { NodeMaterialBuildState } from "babylonjs/Materials/Node/nodeMaterialBuildState";
+    import { NodeMaterialConnectionPoint } from "babylonjs/Materials/Node/nodeMaterialBlockConnectionPoint";
+    import { NodeMaterial, NodeMaterialDefines } from "babylonjs/Materials/Node/nodeMaterial";
+    import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
+    import { ReflectionBlock } from "babylonjs/Materials/Node/Blocks/PBR/reflectionBlock";
+    import { Nullable } from "babylonjs/types";
+    import { Mesh } from "babylonjs/Meshes/mesh";
+    import { SubMesh } from "babylonjs/Meshes/subMesh";
+    import { Effect } from "babylonjs/Materials/effect";
+    /**
+     * Block used to implement the clear coat module of the PBR material
+     */
+    export class ClearCoatBlock extends NodeMaterialBlock {
+        private _scene;
+        /**
+         * Create a new ClearCoatBlock
+         * @param name defines the block name
+         */
+        constructor(name: string);
+        /**
+         * Initialize the block and prepare the context for build
+         * @param state defines the state that will be used for the build
+         */
+        initialize(state: NodeMaterialBuildState): void;
+        /**
+         * Gets the current class name
+         * @returns the class name
+         */
+        getClassName(): string;
+        /**
+         * Gets the intensity input component
+         */
+        get intensity(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the roughness input component
+         */
+        get roughness(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the ior input component
+         */
+        get ior(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the texture input component
+         */
+        get texture(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the bump texture input component
+         */
+        get bumpTexture(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the uv input component
+         */
+        get uv(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the tint color input component
+         */
+        get tintColor(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the tint "at distance" input component
+         */
+        get tintAtDistance(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the tint thickness input component
+         */
+        get tintThickness(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the tint texture input component
+         */
+        get tintTexture(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the clear coat object output component
+         */
+        get clearcoat(): NodeMaterialConnectionPoint;
+        autoConfigure(material: NodeMaterial): void;
+        prepareDefines(mesh: AbstractMesh, nodeMaterial: NodeMaterial, defines: NodeMaterialDefines): void;
+        bind(effect: Effect, nodeMaterial: NodeMaterial, mesh?: Mesh, subMesh?: SubMesh): void;
+        /**
+         * Gets the main code of the block (fragment side)
+         * @param state current state of the node material building
+         * @param ccBlock instance of a ClearCoatBlock or null if the code must be generated without an active clear coat module
+         * @param reflectionBlock instance of a ReflectionBlock null if the code must be generated without an active reflection module
+         * @param worldPosVarName name of the variable holding the world position
+         * @returns the shader code
+         */
+        static GetCode(state: NodeMaterialBuildState, ccBlock: Nullable<ClearCoatBlock>, reflectionBlock: Nullable<ReflectionBlock>, worldPosVarName: string): string;
+        protected _buildBlock(state: NodeMaterialBuildState): this;
+    }
+}
 declare module "babylonjs/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock" {
 declare module "babylonjs/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock" {
     import { NodeMaterialBlock } from "babylonjs/Materials/Node/nodeMaterialBlock";
     import { NodeMaterialBlock } from "babylonjs/Materials/Node/nodeMaterialBlock";
     import { NodeMaterialBuildState } from "babylonjs/Materials/Node/nodeMaterialBuildState";
     import { NodeMaterialBuildState } from "babylonjs/Materials/Node/nodeMaterialBuildState";
@@ -64540,6 +64630,7 @@ declare module "babylonjs/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock" {
         private _environmentBRDFTexture;
         private _environmentBRDFTexture;
         private _environmentBrdfSamplerName;
         private _environmentBrdfSamplerName;
         private _vNormalWName;
         private _vNormalWName;
+        private _invertNormalName;
         /**
         /**
          * Create a new ReflectionBlock
          * Create a new ReflectionBlock
          * @param name defines the block name
          * @param name defines the block name
@@ -64606,6 +64697,10 @@ declare module "babylonjs/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock" {
          */
          */
         unlit: boolean;
         unlit: boolean;
         /**
         /**
+         * Force normal to face away from face.
+         */
+        forceNormalForward: boolean;
+        /**
          * Defines the material debug mode.
          * Defines the material debug mode.
          * It helps seeing only some components of the material while troubleshooting.
          * It helps seeing only some components of the material while troubleshooting.
          */
          */
@@ -64767,6 +64862,7 @@ declare module "babylonjs/Materials/Node/Blocks/PBR/index" {
     export * from "babylonjs/Materials/Node/Blocks/PBR/reflectivityBlock";
     export * from "babylonjs/Materials/Node/Blocks/PBR/reflectivityBlock";
     export * from "babylonjs/Materials/Node/Blocks/PBR/anisotropyBlock";
     export * from "babylonjs/Materials/Node/Blocks/PBR/anisotropyBlock";
     export * from "babylonjs/Materials/Node/Blocks/PBR/reflectionBlock";
     export * from "babylonjs/Materials/Node/Blocks/PBR/reflectionBlock";
+    export * from "babylonjs/Materials/Node/Blocks/PBR/clearCoatBlock";
 }
 }
 declare module "babylonjs/Materials/Node/Blocks/index" {
 declare module "babylonjs/Materials/Node/Blocks/index" {
     export * from "babylonjs/Materials/Node/Blocks/Vertex/index";
     export * from "babylonjs/Materials/Node/Blocks/Vertex/index";
@@ -136896,6 +136992,86 @@ declare module BABYLON {
 }
 }
 declare module BABYLON {
 declare module BABYLON {
     /**
     /**
+     * Block used to implement the clear coat module of the PBR material
+     */
+    export class ClearCoatBlock extends NodeMaterialBlock {
+        private _scene;
+        /**
+         * Create a new ClearCoatBlock
+         * @param name defines the block name
+         */
+        constructor(name: string);
+        /**
+         * Initialize the block and prepare the context for build
+         * @param state defines the state that will be used for the build
+         */
+        initialize(state: NodeMaterialBuildState): void;
+        /**
+         * Gets the current class name
+         * @returns the class name
+         */
+        getClassName(): string;
+        /**
+         * Gets the intensity input component
+         */
+        get intensity(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the roughness input component
+         */
+        get roughness(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the ior input component
+         */
+        get ior(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the texture input component
+         */
+        get texture(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the bump texture input component
+         */
+        get bumpTexture(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the uv input component
+         */
+        get uv(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the tint color input component
+         */
+        get tintColor(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the tint "at distance" input component
+         */
+        get tintAtDistance(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the tint thickness input component
+         */
+        get tintThickness(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the tint texture input component
+         */
+        get tintTexture(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the clear coat object output component
+         */
+        get clearcoat(): NodeMaterialConnectionPoint;
+        autoConfigure(material: NodeMaterial): void;
+        prepareDefines(mesh: AbstractMesh, nodeMaterial: NodeMaterial, defines: NodeMaterialDefines): void;
+        bind(effect: Effect, nodeMaterial: NodeMaterial, mesh?: Mesh, subMesh?: SubMesh): void;
+        /**
+         * Gets the main code of the block (fragment side)
+         * @param state current state of the node material building
+         * @param ccBlock instance of a ClearCoatBlock or null if the code must be generated without an active clear coat module
+         * @param reflectionBlock instance of a ReflectionBlock null if the code must be generated without an active reflection module
+         * @param worldPosVarName name of the variable holding the world position
+         * @returns the shader code
+         */
+        static GetCode(state: NodeMaterialBuildState, ccBlock: Nullable<ClearCoatBlock>, reflectionBlock: Nullable<ReflectionBlock>, worldPosVarName: string): string;
+        protected _buildBlock(state: NodeMaterialBuildState): this;
+    }
+}
+declare module BABYLON {
+    /**
      * Block used to implement the PBR metallic/roughness model
      * Block used to implement the PBR metallic/roughness model
      */
      */
     export class PBRMetallicRoughnessBlock extends NodeMaterialBlock {
     export class PBRMetallicRoughnessBlock extends NodeMaterialBlock {
@@ -136908,6 +137084,7 @@ declare module BABYLON {
         private _environmentBRDFTexture;
         private _environmentBRDFTexture;
         private _environmentBrdfSamplerName;
         private _environmentBrdfSamplerName;
         private _vNormalWName;
         private _vNormalWName;
+        private _invertNormalName;
         /**
         /**
          * Create a new ReflectionBlock
          * Create a new ReflectionBlock
          * @param name defines the block name
          * @param name defines the block name
@@ -136974,6 +137151,10 @@ declare module BABYLON {
          */
          */
         unlit: boolean;
         unlit: boolean;
         /**
         /**
+         * Force normal to face away from face.
+         */
+        forceNormalForward: boolean;
+        /**
          * Defines the material debug mode.
          * Defines the material debug mode.
          * It helps seeing only some components of the material while troubleshooting.
          * It helps seeing only some components of the material while troubleshooting.
          */
          */

+ 85 - 0
dist/preview release/documentation.d.ts

@@ -61464,6 +61464,86 @@ declare module BABYLON {
 }
 }
 declare module BABYLON {
 declare module BABYLON {
     /**
     /**
+     * Block used to implement the clear coat module of the PBR material
+     */
+    export class ClearCoatBlock extends NodeMaterialBlock {
+        private _scene;
+        /**
+         * Create a new ClearCoatBlock
+         * @param name defines the block name
+         */
+        constructor(name: string);
+        /**
+         * Initialize the block and prepare the context for build
+         * @param state defines the state that will be used for the build
+         */
+        initialize(state: NodeMaterialBuildState): void;
+        /**
+         * Gets the current class name
+         * @returns the class name
+         */
+        getClassName(): string;
+        /**
+         * Gets the intensity input component
+         */
+        get intensity(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the roughness input component
+         */
+        get roughness(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the ior input component
+         */
+        get ior(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the texture input component
+         */
+        get texture(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the bump texture input component
+         */
+        get bumpTexture(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the uv input component
+         */
+        get uv(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the tint color input component
+         */
+        get tintColor(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the tint "at distance" input component
+         */
+        get tintAtDistance(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the tint thickness input component
+         */
+        get tintThickness(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the tint texture input component
+         */
+        get tintTexture(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the clear coat object output component
+         */
+        get clearcoat(): NodeMaterialConnectionPoint;
+        autoConfigure(material: NodeMaterial): void;
+        prepareDefines(mesh: AbstractMesh, nodeMaterial: NodeMaterial, defines: NodeMaterialDefines): void;
+        bind(effect: Effect, nodeMaterial: NodeMaterial, mesh?: Mesh, subMesh?: SubMesh): void;
+        /**
+         * Gets the main code of the block (fragment side)
+         * @param state current state of the node material building
+         * @param ccBlock instance of a ClearCoatBlock or null if the code must be generated without an active clear coat module
+         * @param reflectionBlock instance of a ReflectionBlock null if the code must be generated without an active reflection module
+         * @param worldPosVarName name of the variable holding the world position
+         * @returns the shader code
+         */
+        static GetCode(state: NodeMaterialBuildState, ccBlock: Nullable<ClearCoatBlock>, reflectionBlock: Nullable<ReflectionBlock>, worldPosVarName: string): string;
+        protected _buildBlock(state: NodeMaterialBuildState): this;
+    }
+}
+declare module BABYLON {
+    /**
      * Block used to implement the PBR metallic/roughness model
      * Block used to implement the PBR metallic/roughness model
      */
      */
     export class PBRMetallicRoughnessBlock extends NodeMaterialBlock {
     export class PBRMetallicRoughnessBlock extends NodeMaterialBlock {
@@ -61476,6 +61556,7 @@ declare module BABYLON {
         private _environmentBRDFTexture;
         private _environmentBRDFTexture;
         private _environmentBrdfSamplerName;
         private _environmentBrdfSamplerName;
         private _vNormalWName;
         private _vNormalWName;
+        private _invertNormalName;
         /**
         /**
          * Create a new ReflectionBlock
          * Create a new ReflectionBlock
          * @param name defines the block name
          * @param name defines the block name
@@ -61542,6 +61623,10 @@ declare module BABYLON {
          */
          */
         unlit: boolean;
         unlit: boolean;
         /**
         /**
+         * Force normal to face away from face.
+         */
+        forceNormalForward: boolean;
+        /**
          * Defines the material debug mode.
          * Defines the material debug mode.
          * It helps seeing only some components of the material while troubleshooting.
          * It helps seeing only some components of the material while troubleshooting.
          */
          */

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 1 - 1
dist/preview release/nodeEditor/babylon.nodeEditor.d.ts


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 1 - 1
dist/preview release/nodeEditor/babylon.nodeEditor.js


+ 6 - 2
dist/preview release/nodeEditor/babylon.nodeEditor.max.js

@@ -59435,6 +59435,7 @@ __webpack_require__.r(__webpack_exports__);
 
 
 
 
 
 
+
 var BlockTools = /** @class */ (function () {
 var BlockTools = /** @class */ (function () {
     function BlockTools() {
     function BlockTools() {
     }
     }
@@ -59806,6 +59807,8 @@ var BlockTools = /** @class */ (function () {
                 return new babylonjs_Materials_Node_Blocks_Fragment_discardBlock__WEBPACK_IMPORTED_MODULE_0__["AnisotropyBlock"]("Anisotropy");
                 return new babylonjs_Materials_Node_Blocks_Fragment_discardBlock__WEBPACK_IMPORTED_MODULE_0__["AnisotropyBlock"]("Anisotropy");
             case "ReflectionBlock":
             case "ReflectionBlock":
                 return new babylonjs_Materials_Node_Blocks_Fragment_discardBlock__WEBPACK_IMPORTED_MODULE_0__["ReflectionBlock"]("Reflection");
                 return new babylonjs_Materials_Node_Blocks_Fragment_discardBlock__WEBPACK_IMPORTED_MODULE_0__["ReflectionBlock"]("Reflection");
+            case "ClearCoatBlock":
+                return new babylonjs_Materials_Node_Blocks_Fragment_discardBlock__WEBPACK_IMPORTED_MODULE_0__["ClearCoatBlock"]("ClearCoat");
         }
         }
         return null;
         return null;
     };
     };
@@ -60049,7 +60052,7 @@ var NodeListComponent = /** @class */ (function (_super) {
             Mesh: ["InstancesBlock", "PositionBlock", "UVBlock", "ColorBlock", "NormalBlock", "PerturbNormalBlock", "NormalBlendBlock", "TangentBlock", "MatrixIndicesBlock", "MatrixWeightsBlock", "WorldPositionBlock", "WorldNormalBlock", "WorldTangentBlock", "FrontFacingBlock"],
             Mesh: ["InstancesBlock", "PositionBlock", "UVBlock", "ColorBlock", "NormalBlock", "PerturbNormalBlock", "NormalBlendBlock", "TangentBlock", "MatrixIndicesBlock", "MatrixWeightsBlock", "WorldPositionBlock", "WorldNormalBlock", "WorldTangentBlock", "FrontFacingBlock"],
             Noises: ["RandomNumberBlock", "SimplexPerlin3DBlock", "WorleyNoise3DBlock"],
             Noises: ["RandomNumberBlock", "SimplexPerlin3DBlock", "WorleyNoise3DBlock"],
             Output_Nodes: ["VertexOutputBlock", "FragmentOutputBlock", "DiscardBlock"],
             Output_Nodes: ["VertexOutputBlock", "FragmentOutputBlock", "DiscardBlock"],
-            PBR: ["PBRMetallicRoughnessBlock", "AmbientOcclusionBlock", "AnisotropyBlock", "ReflectionBlock", "ReflectivityBlock", "SheenBlock"],
+            PBR: ["PBRMetallicRoughnessBlock", "AmbientOcclusionBlock", "AnisotropyBlock", "ClearCoatBlock", "ReflectionBlock", "ReflectivityBlock", "SheenBlock"],
             Range: ["ClampBlock", "RemapBlock", "NormalizeBlock"],
             Range: ["ClampBlock", "RemapBlock", "NormalizeBlock"],
             Round: ["RoundBlock", "CeilingBlock", "FloorBlock"],
             Round: ["RoundBlock", "CeilingBlock", "FloorBlock"],
             Scene: ["FogBlock", "CameraPositionBlock", "FogColorBlock", "ImageProcessingBlock", "LightBlock", "LightInformationBlock", "ViewDirectionBlock"],
             Scene: ["FogBlock", "CameraPositionBlock", "FogColorBlock", "ImageProcessingBlock", "LightBlock", "LightInformationBlock", "ViewDirectionBlock"],
@@ -60186,7 +60189,8 @@ var NodeListComponent = /** @class */ (function (_super) {
         "AmbientOcclusionBlock": "PBR Ambient occlusion block",
         "AmbientOcclusionBlock": "PBR Ambient occlusion block",
         "ReflectivityBlock": "PBR Reflectivity block",
         "ReflectivityBlock": "PBR Reflectivity block",
         "AnisotropyBlock": "PBR Anisotropy block",
         "AnisotropyBlock": "PBR Anisotropy block",
-        "ReflectionBlock": "PBR Reflection block"
+        "ReflectionBlock": "PBR Reflection block",
+        "ClearCoatBlock": "PBR ClearCoat block",
     };
     };
     return NodeListComponent;
     return NodeListComponent;
 }(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));
 }(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 1 - 1
dist/preview release/nodeEditor/babylon.nodeEditor.max.js.map


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 3 - 2
dist/preview release/nodeEditor/babylon.nodeEditor.module.d.ts


+ 181 - 0
dist/preview release/viewer/babylon.module.d.ts

@@ -64516,6 +64516,96 @@ declare module "babylonjs/Materials/Node/Blocks/PBR/anisotropyBlock" {
         protected _buildBlock(state: NodeMaterialBuildState): this;
         protected _buildBlock(state: NodeMaterialBuildState): this;
     }
     }
 }
 }
+declare module "babylonjs/Materials/Node/Blocks/PBR/clearCoatBlock" {
+    import { NodeMaterialBlock } from "babylonjs/Materials/Node/nodeMaterialBlock";
+    import { NodeMaterialBuildState } from "babylonjs/Materials/Node/nodeMaterialBuildState";
+    import { NodeMaterialConnectionPoint } from "babylonjs/Materials/Node/nodeMaterialBlockConnectionPoint";
+    import { NodeMaterial, NodeMaterialDefines } from "babylonjs/Materials/Node/nodeMaterial";
+    import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
+    import { ReflectionBlock } from "babylonjs/Materials/Node/Blocks/PBR/reflectionBlock";
+    import { Nullable } from "babylonjs/types";
+    import { Mesh } from "babylonjs/Meshes/mesh";
+    import { SubMesh } from "babylonjs/Meshes/subMesh";
+    import { Effect } from "babylonjs/Materials/effect";
+    /**
+     * Block used to implement the clear coat module of the PBR material
+     */
+    export class ClearCoatBlock extends NodeMaterialBlock {
+        private _scene;
+        /**
+         * Create a new ClearCoatBlock
+         * @param name defines the block name
+         */
+        constructor(name: string);
+        /**
+         * Initialize the block and prepare the context for build
+         * @param state defines the state that will be used for the build
+         */
+        initialize(state: NodeMaterialBuildState): void;
+        /**
+         * Gets the current class name
+         * @returns the class name
+         */
+        getClassName(): string;
+        /**
+         * Gets the intensity input component
+         */
+        get intensity(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the roughness input component
+         */
+        get roughness(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the ior input component
+         */
+        get ior(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the texture input component
+         */
+        get texture(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the bump texture input component
+         */
+        get bumpTexture(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the uv input component
+         */
+        get uv(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the tint color input component
+         */
+        get tintColor(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the tint "at distance" input component
+         */
+        get tintAtDistance(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the tint thickness input component
+         */
+        get tintThickness(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the tint texture input component
+         */
+        get tintTexture(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the clear coat object output component
+         */
+        get clearcoat(): NodeMaterialConnectionPoint;
+        autoConfigure(material: NodeMaterial): void;
+        prepareDefines(mesh: AbstractMesh, nodeMaterial: NodeMaterial, defines: NodeMaterialDefines): void;
+        bind(effect: Effect, nodeMaterial: NodeMaterial, mesh?: Mesh, subMesh?: SubMesh): void;
+        /**
+         * Gets the main code of the block (fragment side)
+         * @param state current state of the node material building
+         * @param ccBlock instance of a ClearCoatBlock or null if the code must be generated without an active clear coat module
+         * @param reflectionBlock instance of a ReflectionBlock null if the code must be generated without an active reflection module
+         * @param worldPosVarName name of the variable holding the world position
+         * @returns the shader code
+         */
+        static GetCode(state: NodeMaterialBuildState, ccBlock: Nullable<ClearCoatBlock>, reflectionBlock: Nullable<ReflectionBlock>, worldPosVarName: string): string;
+        protected _buildBlock(state: NodeMaterialBuildState): this;
+    }
+}
 declare module "babylonjs/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock" {
 declare module "babylonjs/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock" {
     import { NodeMaterialBlock } from "babylonjs/Materials/Node/nodeMaterialBlock";
     import { NodeMaterialBlock } from "babylonjs/Materials/Node/nodeMaterialBlock";
     import { NodeMaterialBuildState } from "babylonjs/Materials/Node/nodeMaterialBuildState";
     import { NodeMaterialBuildState } from "babylonjs/Materials/Node/nodeMaterialBuildState";
@@ -64540,6 +64630,7 @@ declare module "babylonjs/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock" {
         private _environmentBRDFTexture;
         private _environmentBRDFTexture;
         private _environmentBrdfSamplerName;
         private _environmentBrdfSamplerName;
         private _vNormalWName;
         private _vNormalWName;
+        private _invertNormalName;
         /**
         /**
          * Create a new ReflectionBlock
          * Create a new ReflectionBlock
          * @param name defines the block name
          * @param name defines the block name
@@ -64606,6 +64697,10 @@ declare module "babylonjs/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock" {
          */
          */
         unlit: boolean;
         unlit: boolean;
         /**
         /**
+         * Force normal to face away from face.
+         */
+        forceNormalForward: boolean;
+        /**
          * Defines the material debug mode.
          * Defines the material debug mode.
          * It helps seeing only some components of the material while troubleshooting.
          * It helps seeing only some components of the material while troubleshooting.
          */
          */
@@ -64767,6 +64862,7 @@ declare module "babylonjs/Materials/Node/Blocks/PBR/index" {
     export * from "babylonjs/Materials/Node/Blocks/PBR/reflectivityBlock";
     export * from "babylonjs/Materials/Node/Blocks/PBR/reflectivityBlock";
     export * from "babylonjs/Materials/Node/Blocks/PBR/anisotropyBlock";
     export * from "babylonjs/Materials/Node/Blocks/PBR/anisotropyBlock";
     export * from "babylonjs/Materials/Node/Blocks/PBR/reflectionBlock";
     export * from "babylonjs/Materials/Node/Blocks/PBR/reflectionBlock";
+    export * from "babylonjs/Materials/Node/Blocks/PBR/clearCoatBlock";
 }
 }
 declare module "babylonjs/Materials/Node/Blocks/index" {
 declare module "babylonjs/Materials/Node/Blocks/index" {
     export * from "babylonjs/Materials/Node/Blocks/Vertex/index";
     export * from "babylonjs/Materials/Node/Blocks/Vertex/index";
@@ -136896,6 +136992,86 @@ declare module BABYLON {
 }
 }
 declare module BABYLON {
 declare module BABYLON {
     /**
     /**
+     * Block used to implement the clear coat module of the PBR material
+     */
+    export class ClearCoatBlock extends NodeMaterialBlock {
+        private _scene;
+        /**
+         * Create a new ClearCoatBlock
+         * @param name defines the block name
+         */
+        constructor(name: string);
+        /**
+         * Initialize the block and prepare the context for build
+         * @param state defines the state that will be used for the build
+         */
+        initialize(state: NodeMaterialBuildState): void;
+        /**
+         * Gets the current class name
+         * @returns the class name
+         */
+        getClassName(): string;
+        /**
+         * Gets the intensity input component
+         */
+        get intensity(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the roughness input component
+         */
+        get roughness(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the ior input component
+         */
+        get ior(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the texture input component
+         */
+        get texture(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the bump texture input component
+         */
+        get bumpTexture(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the uv input component
+         */
+        get uv(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the tint color input component
+         */
+        get tintColor(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the tint "at distance" input component
+         */
+        get tintAtDistance(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the tint thickness input component
+         */
+        get tintThickness(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the tint texture input component
+         */
+        get tintTexture(): NodeMaterialConnectionPoint;
+        /**
+         * Gets the clear coat object output component
+         */
+        get clearcoat(): NodeMaterialConnectionPoint;
+        autoConfigure(material: NodeMaterial): void;
+        prepareDefines(mesh: AbstractMesh, nodeMaterial: NodeMaterial, defines: NodeMaterialDefines): void;
+        bind(effect: Effect, nodeMaterial: NodeMaterial, mesh?: Mesh, subMesh?: SubMesh): void;
+        /**
+         * Gets the main code of the block (fragment side)
+         * @param state current state of the node material building
+         * @param ccBlock instance of a ClearCoatBlock or null if the code must be generated without an active clear coat module
+         * @param reflectionBlock instance of a ReflectionBlock null if the code must be generated without an active reflection module
+         * @param worldPosVarName name of the variable holding the world position
+         * @returns the shader code
+         */
+        static GetCode(state: NodeMaterialBuildState, ccBlock: Nullable<ClearCoatBlock>, reflectionBlock: Nullable<ReflectionBlock>, worldPosVarName: string): string;
+        protected _buildBlock(state: NodeMaterialBuildState): this;
+    }
+}
+declare module BABYLON {
+    /**
      * Block used to implement the PBR metallic/roughness model
      * Block used to implement the PBR metallic/roughness model
      */
      */
     export class PBRMetallicRoughnessBlock extends NodeMaterialBlock {
     export class PBRMetallicRoughnessBlock extends NodeMaterialBlock {
@@ -136908,6 +137084,7 @@ declare module BABYLON {
         private _environmentBRDFTexture;
         private _environmentBRDFTexture;
         private _environmentBrdfSamplerName;
         private _environmentBrdfSamplerName;
         private _vNormalWName;
         private _vNormalWName;
+        private _invertNormalName;
         /**
         /**
          * Create a new ReflectionBlock
          * Create a new ReflectionBlock
          * @param name defines the block name
          * @param name defines the block name
@@ -136974,6 +137151,10 @@ declare module BABYLON {
          */
          */
         unlit: boolean;
         unlit: boolean;
         /**
         /**
+         * Force normal to face away from face.
+         */
+        forceNormalForward: boolean;
+        /**
          * Defines the material debug mode.
          * Defines the material debug mode.
          * It helps seeing only some components of the material while troubleshooting.
          * It helps seeing only some components of the material while troubleshooting.
          */
          */

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 15 - 11
dist/preview release/viewer/babylon.viewer.js


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 1 - 1
dist/preview release/viewer/babylon.viewer.max.js