51ad287b9a91bbc30b791dcd0b72a2f5e0a342b29a6f21ea6c3f0795cc149bc9.json 18 KB

1
  1. {"ast":null,"code":"import { __decorate } from \"../tslib.es6.js\";\nimport { Material } from \"./material.js\";\nimport { serialize, expandToProperty, serializeAsTexture } from \"../Misc/decorators.js\";\nimport { MaterialFlags } from \"./materialFlags.js\";\nimport { MaterialDefines } from \"./materialDefines.js\";\nimport { MaterialPluginBase } from \"./materialPluginBase.js\";\nimport { BindTextureMatrix, PrepareDefinesForMergedUV } from \"./materialHelper.functions.js\";\n/**\n * @internal\n */\nexport class MaterialDetailMapDefines extends MaterialDefines {\n constructor() {\n super(...arguments);\n this.DETAIL = false;\n this.DETAILDIRECTUV = 0;\n this.DETAIL_NORMALBLENDMETHOD = 0;\n }\n}\n/**\n * Plugin that implements the detail map component of a material\n *\n * Inspired from:\n * Unity: https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@9.0/manual/Mask-Map-and-Detail-Map.html and https://docs.unity3d.com/Manual/StandardShaderMaterialParameterDetail.html\n * Unreal: https://docs.unrealengine.com/en-US/Engine/Rendering/Materials/HowTo/DetailTexturing/index.html\n * Cryengine: https://docs.cryengine.com/display/SDKDOC2/Detail+Maps\n */\nexport class DetailMapConfiguration extends MaterialPluginBase {\n /** @internal */\n _markAllSubMeshesAsTexturesDirty() {\n this._enable(this._isEnabled);\n this._internalMarkAllSubMeshesAsTexturesDirty();\n }\n /**\n * Gets a boolean indicating that the plugin is compatible with a given shader language.\n * @returns true if the plugin is compatible with the shader language\n */\n isCompatible() {\n return true;\n }\n constructor(material, addToPluginList = true) {\n super(material, \"DetailMap\", 140, new MaterialDetailMapDefines(), addToPluginList);\n this._texture = null;\n /**\n * Defines how strongly the detail diffuse/albedo channel is blended with the regular diffuse/albedo texture\n * Bigger values mean stronger blending\n */\n this.diffuseBlendLevel = 1;\n /**\n * Defines how strongly the detail roughness channel is blended with the regular roughness value\n * Bigger values mean stronger blending. Only used with PBR materials\n */\n this.roughnessBlendLevel = 1;\n /**\n * Defines how strong the bump effect from the detail map is\n * Bigger values mean stronger effect\n */\n this.bumpLevel = 1;\n this._normalBlendMethod = Material.MATERIAL_NORMALBLENDMETHOD_WHITEOUT;\n this._isEnabled = false;\n /**\n * Enable or disable the detail map on this material\n */\n this.isEnabled = false;\n this._internalMarkAllSubMeshesAsTexturesDirty = material._dirtyCallbacks[1];\n }\n isReadyForSubMesh(defines, scene, engine) {\n if (!this._isEnabled) {\n return true;\n }\n if (defines._areTexturesDirty && scene.texturesEnabled) {\n if (engine.getCaps().standardDerivatives && this._texture && MaterialFlags.DetailTextureEnabled) {\n // Detail texture cannot be not blocking.\n if (!this._texture.isReady()) {\n return false;\n }\n }\n }\n return true;\n }\n prepareDefines(defines, scene) {\n if (this._isEnabled) {\n defines.DETAIL_NORMALBLENDMETHOD = this._normalBlendMethod;\n const engine = scene.getEngine();\n if (defines._areTexturesDirty) {\n if (engine.getCaps().standardDerivatives && this._texture && MaterialFlags.DetailTextureEnabled && this._isEnabled) {\n PrepareDefinesForMergedUV(this._texture, defines, \"DETAIL\");\n defines.DETAIL_NORMALBLENDMETHOD = this._normalBlendMethod;\n } else {\n defines.DETAIL = false;\n }\n }\n } else {\n defines.DETAIL = false;\n }\n }\n bindForSubMesh(uniformBuffer, scene) {\n if (!this._isEnabled) {\n return;\n }\n const isFrozen = this._material.isFrozen;\n if (!uniformBuffer.useUbo || !isFrozen || !uniformBuffer.isSync) {\n if (this._texture && MaterialFlags.DetailTextureEnabled) {\n uniformBuffer.updateFloat4(\"vDetailInfos\", this._texture.coordinatesIndex, this.diffuseBlendLevel, this.bumpLevel, this.roughnessBlendLevel);\n BindTextureMatrix(this._texture, uniformBuffer, \"detail\");\n }\n }\n // Textures\n if (scene.texturesEnabled) {\n if (this._texture && MaterialFlags.DetailTextureEnabled) {\n uniformBuffer.setTexture(\"detailSampler\", this._texture);\n }\n }\n }\n hasTexture(texture) {\n if (this._texture === texture) {\n return true;\n }\n return false;\n }\n getActiveTextures(activeTextures) {\n if (this._texture) {\n activeTextures.push(this._texture);\n }\n }\n getAnimatables(animatables) {\n if (this._texture && this._texture.animations && this._texture.animations.length > 0) {\n animatables.push(this._texture);\n }\n }\n dispose(forceDisposeTextures) {\n if (forceDisposeTextures) {\n var _this$_texture;\n (_this$_texture = this._texture) === null || _this$_texture === void 0 || _this$_texture.dispose();\n }\n }\n getClassName() {\n return \"DetailMapConfiguration\";\n }\n getSamplers(samplers) {\n samplers.push(\"detailSampler\");\n }\n getUniforms() {\n return {\n ubo: [{\n name: \"vDetailInfos\",\n size: 4,\n type: \"vec4\"\n }, {\n name: \"detailMatrix\",\n size: 16,\n type: \"mat4\"\n }]\n };\n }\n}\n__decorate([serializeAsTexture(\"detailTexture\"), expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")], DetailMapConfiguration.prototype, \"texture\", void 0);\n__decorate([serialize()], DetailMapConfiguration.prototype, \"diffuseBlendLevel\", void 0);\n__decorate([serialize()], DetailMapConfiguration.prototype, \"roughnessBlendLevel\", void 0);\n__decorate([serialize()], DetailMapConfiguration.prototype, \"bumpLevel\", void 0);\n__decorate([serialize(), expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")], DetailMapConfiguration.prototype, \"normalBlendMethod\", void 0);\n__decorate([serialize(), expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")], DetailMapConfiguration.prototype, \"isEnabled\", void 0);","map":{"version":3,"names":["__decorate","Material","serialize","expandToProperty","serializeAsTexture","MaterialFlags","MaterialDefines","MaterialPluginBase","BindTextureMatrix","PrepareDefinesForMergedUV","MaterialDetailMapDefines","constructor","arguments","DETAIL","DETAILDIRECTUV","DETAIL_NORMALBLENDMETHOD","DetailMapConfiguration","_markAllSubMeshesAsTexturesDirty","_enable","_isEnabled","_internalMarkAllSubMeshesAsTexturesDirty","isCompatible","material","addToPluginList","_texture","diffuseBlendLevel","roughnessBlendLevel","bumpLevel","_normalBlendMethod","MATERIAL_NORMALBLENDMETHOD_WHITEOUT","isEnabled","_dirtyCallbacks","isReadyForSubMesh","defines","scene","engine","_areTexturesDirty","texturesEnabled","getCaps","standardDerivatives","DetailTextureEnabled","isReady","prepareDefines","getEngine","bindForSubMesh","uniformBuffer","isFrozen","_material","useUbo","isSync","updateFloat4","coordinatesIndex","setTexture","hasTexture","texture","getActiveTextures","activeTextures","push","getAnimatables","animatables","animations","length","dispose","forceDisposeTextures","_this$_texture","getClassName","getSamplers","samplers","getUniforms","ubo","name","size","type","prototype"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Materials/material.detailMapConfiguration.js"],"sourcesContent":["import { __decorate } from \"../tslib.es6.js\";\nimport { Material } from \"./material.js\";\nimport { serialize, expandToProperty, serializeAsTexture } from \"../Misc/decorators.js\";\nimport { MaterialFlags } from \"./materialFlags.js\";\nimport { MaterialDefines } from \"./materialDefines.js\";\nimport { MaterialPluginBase } from \"./materialPluginBase.js\";\n\nimport { BindTextureMatrix, PrepareDefinesForMergedUV } from \"./materialHelper.functions.js\";\n/**\n * @internal\n */\nexport class MaterialDetailMapDefines extends MaterialDefines {\n constructor() {\n super(...arguments);\n this.DETAIL = false;\n this.DETAILDIRECTUV = 0;\n this.DETAIL_NORMALBLENDMETHOD = 0;\n }\n}\n/**\n * Plugin that implements the detail map component of a material\n *\n * Inspired from:\n * Unity: https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@9.0/manual/Mask-Map-and-Detail-Map.html and https://docs.unity3d.com/Manual/StandardShaderMaterialParameterDetail.html\n * Unreal: https://docs.unrealengine.com/en-US/Engine/Rendering/Materials/HowTo/DetailTexturing/index.html\n * Cryengine: https://docs.cryengine.com/display/SDKDOC2/Detail+Maps\n */\nexport class DetailMapConfiguration extends MaterialPluginBase {\n /** @internal */\n _markAllSubMeshesAsTexturesDirty() {\n this._enable(this._isEnabled);\n this._internalMarkAllSubMeshesAsTexturesDirty();\n }\n /**\n * Gets a boolean indicating that the plugin is compatible with a given shader language.\n * @returns true if the plugin is compatible with the shader language\n */\n isCompatible() {\n return true;\n }\n constructor(material, addToPluginList = true) {\n super(material, \"DetailMap\", 140, new MaterialDetailMapDefines(), addToPluginList);\n this._texture = null;\n /**\n * Defines how strongly the detail diffuse/albedo channel is blended with the regular diffuse/albedo texture\n * Bigger values mean stronger blending\n */\n this.diffuseBlendLevel = 1;\n /**\n * Defines how strongly the detail roughness channel is blended with the regular roughness value\n * Bigger values mean stronger blending. Only used with PBR materials\n */\n this.roughnessBlendLevel = 1;\n /**\n * Defines how strong the bump effect from the detail map is\n * Bigger values mean stronger effect\n */\n this.bumpLevel = 1;\n this._normalBlendMethod = Material.MATERIAL_NORMALBLENDMETHOD_WHITEOUT;\n this._isEnabled = false;\n /**\n * Enable or disable the detail map on this material\n */\n this.isEnabled = false;\n this._internalMarkAllSubMeshesAsTexturesDirty = material._dirtyCallbacks[1];\n }\n isReadyForSubMesh(defines, scene, engine) {\n if (!this._isEnabled) {\n return true;\n }\n if (defines._areTexturesDirty && scene.texturesEnabled) {\n if (engine.getCaps().standardDerivatives && this._texture && MaterialFlags.DetailTextureEnabled) {\n // Detail texture cannot be not blocking.\n if (!this._texture.isReady()) {\n return false;\n }\n }\n }\n return true;\n }\n prepareDefines(defines, scene) {\n if (this._isEnabled) {\n defines.DETAIL_NORMALBLENDMETHOD = this._normalBlendMethod;\n const engine = scene.getEngine();\n if (defines._areTexturesDirty) {\n if (engine.getCaps().standardDerivatives && this._texture && MaterialFlags.DetailTextureEnabled && this._isEnabled) {\n PrepareDefinesForMergedUV(this._texture, defines, \"DETAIL\");\n defines.DETAIL_NORMALBLENDMETHOD = this._normalBlendMethod;\n }\n else {\n defines.DETAIL = false;\n }\n }\n }\n else {\n defines.DETAIL = false;\n }\n }\n bindForSubMesh(uniformBuffer, scene) {\n if (!this._isEnabled) {\n return;\n }\n const isFrozen = this._material.isFrozen;\n if (!uniformBuffer.useUbo || !isFrozen || !uniformBuffer.isSync) {\n if (this._texture && MaterialFlags.DetailTextureEnabled) {\n uniformBuffer.updateFloat4(\"vDetailInfos\", this._texture.coordinatesIndex, this.diffuseBlendLevel, this.bumpLevel, this.roughnessBlendLevel);\n BindTextureMatrix(this._texture, uniformBuffer, \"detail\");\n }\n }\n // Textures\n if (scene.texturesEnabled) {\n if (this._texture && MaterialFlags.DetailTextureEnabled) {\n uniformBuffer.setTexture(\"detailSampler\", this._texture);\n }\n }\n }\n hasTexture(texture) {\n if (this._texture === texture) {\n return true;\n }\n return false;\n }\n getActiveTextures(activeTextures) {\n if (this._texture) {\n activeTextures.push(this._texture);\n }\n }\n getAnimatables(animatables) {\n if (this._texture && this._texture.animations && this._texture.animations.length > 0) {\n animatables.push(this._texture);\n }\n }\n dispose(forceDisposeTextures) {\n if (forceDisposeTextures) {\n this._texture?.dispose();\n }\n }\n getClassName() {\n return \"DetailMapConfiguration\";\n }\n getSamplers(samplers) {\n samplers.push(\"detailSampler\");\n }\n getUniforms() {\n return {\n ubo: [\n { name: \"vDetailInfos\", size: 4, type: \"vec4\" },\n { name: \"detailMatrix\", size: 16, type: \"mat4\" },\n ],\n };\n }\n}\n__decorate([\n serializeAsTexture(\"detailTexture\"),\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], DetailMapConfiguration.prototype, \"texture\", void 0);\n__decorate([\n serialize()\n], DetailMapConfiguration.prototype, \"diffuseBlendLevel\", void 0);\n__decorate([\n serialize()\n], DetailMapConfiguration.prototype, \"roughnessBlendLevel\", void 0);\n__decorate([\n serialize()\n], DetailMapConfiguration.prototype, \"bumpLevel\", void 0);\n__decorate([\n serialize(),\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], DetailMapConfiguration.prototype, \"normalBlendMethod\", void 0);\n__decorate([\n serialize(),\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], DetailMapConfiguration.prototype, \"isEnabled\", void 0);\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}