7cda74ca0a6d7082c8d3ae69670098a16c729bed099b802ada40b949da36a3b3.json 26 KB

1
  1. {"ast":null,"code":"import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\nimport { NodeMaterialConnectionPointCustomObject } from \"../../nodeMaterialConnectionPointCustomObject.js\";\n/**\n * Block used to implement the sheen module of the PBR material\n */\nexport class SheenBlock extends NodeMaterialBlock {\n /**\n * Create a new SheenBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Fragment);\n /**\n * If true, the sheen effect is layered above the base BRDF with the albedo-scaling technique.\n * It allows the strength of the sheen effect to not depend on the base color of the material,\n * making it easier to setup and tweak the effect\n */\n this.albedoScaling = false;\n /**\n * Defines if the sheen is linked to the sheen color.\n */\n this.linkSheenWithAlbedo = false;\n this._isUnique = true;\n this.registerInput(\"intensity\", NodeMaterialBlockConnectionPointTypes.Float, true, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"color\", NodeMaterialBlockConnectionPointTypes.Color3, true, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"roughness\", NodeMaterialBlockConnectionPointTypes.Float, true, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"sheen\", NodeMaterialBlockConnectionPointTypes.Object, NodeMaterialBlockTargets.Fragment, new NodeMaterialConnectionPointCustomObject(\"sheen\", this, 1 /* NodeMaterialConnectionPointDirection.Output */, SheenBlock, \"SheenBlock\"));\n }\n /**\n * Initialize the block and prepare the context for build\n * @param state defines the state that will be used for the build\n */\n initialize(state) {\n state._excludeVariableName(\"sheenOut\");\n state._excludeVariableName(\"sheenMapData\");\n state._excludeVariableName(\"vSheenColor\");\n state._excludeVariableName(\"vSheenRoughness\");\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"SheenBlock\";\n }\n /**\n * Gets the intensity input component\n */\n get intensity() {\n return this._inputs[0];\n }\n /**\n * Gets the color input component\n */\n get color() {\n return this._inputs[1];\n }\n /**\n * Gets the roughness input component\n */\n get roughness() {\n return this._inputs[2];\n }\n /**\n * Gets the sheen object output component\n */\n get sheen() {\n return this._outputs[0];\n }\n prepareDefines(mesh, nodeMaterial, defines) {\n super.prepareDefines(mesh, nodeMaterial, defines);\n defines.setValue(\"SHEEN\", true);\n defines.setValue(\"SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE\", true, true);\n defines.setValue(\"SHEEN_LINKWITHALBEDO\", this.linkSheenWithAlbedo, true);\n defines.setValue(\"SHEEN_ROUGHNESS\", this.roughness.isConnected, true);\n defines.setValue(\"SHEEN_ALBEDOSCALING\", this.albedoScaling, true);\n }\n /**\n * Gets the main code of the block (fragment side)\n * @param reflectionBlock instance of a ReflectionBlock null if the code must be generated without an active reflection module\n * @param state define the build state\n * @returns the shader code\n */\n getCode(reflectionBlock, state) {\n let code = \"\";\n const color = this.color.isConnected ? this.color.associatedVariableName : `vec3${state.fSuffix}(1.)`;\n const intensity = this.intensity.isConnected ? this.intensity.associatedVariableName : \"1.\";\n const roughness = this.roughness.isConnected ? this.roughness.associatedVariableName : \"0.\";\n const texture = `vec4${state.fSuffix}(0.)`;\n const isWebGPU = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */;\n code = `#ifdef SHEEN\n ${isWebGPU ? \"var sheenOut: sheenOutParams\" : \"sheenOutParams sheenOut\"};\n\n ${state._declareLocalVar(\"vSheenColor\", NodeMaterialBlockConnectionPointTypes.Vector4)} = vec4${state.fSuffix}(${color}, ${intensity});\n\n sheenOut = sheenBlock(\n vSheenColor\n #ifdef SHEEN_ROUGHNESS\n , ${roughness}\n #endif\n , roughness\n #ifdef SHEEN_TEXTURE\n , ${texture}\n ${isWebGPU ? `, ${texture}Sampler` : \"\"}\n , 1.0\n #endif\n , reflectance\n #ifdef SHEEN_LINKWITHALBEDO\n , baseColor\n , surfaceAlbedo\n #endif\n #ifdef ENVIRONMENTBRDF\n , NdotV\n , environmentBrdf\n #endif\n #if defined(REFLECTION) && defined(ENVIRONMENTBRDF)\n , AARoughnessFactors\n , ${isWebGPU ? \"uniforms.\" : \"\"}${reflectionBlock === null || reflectionBlock === void 0 ? void 0 : reflectionBlock._vReflectionMicrosurfaceInfosName}\n , ${reflectionBlock === null || reflectionBlock === void 0 ? void 0 : reflectionBlock._vReflectionInfosName}\n , ${reflectionBlock === null || reflectionBlock === void 0 ? void 0 : reflectionBlock.reflectionColor}\n , ${isWebGPU ? \"uniforms.\" : \"\"}vLightingIntensity\n #ifdef ${reflectionBlock === null || reflectionBlock === void 0 ? void 0 : reflectionBlock._define3DName}\n , ${reflectionBlock === null || reflectionBlock === void 0 ? void 0 : reflectionBlock._cubeSamplerName} \n ${isWebGPU ? `, ${reflectionBlock === null || reflectionBlock === void 0 ? void 0 : reflectionBlock._cubeSamplerName}Sampler` : \"\"}\n #else\n , ${reflectionBlock === null || reflectionBlock === void 0 ? void 0 : reflectionBlock._2DSamplerName}\n ${isWebGPU ? `, ${reflectionBlock === null || reflectionBlock === void 0 ? void 0 : reflectionBlock._2DSamplerName}Sampler` : \"\"}\n #endif\n , reflectionOut.reflectionCoords\n , NdotVUnclamped\n #ifndef LODBASEDMICROSFURACE\n #ifdef ${reflectionBlock === null || reflectionBlock === void 0 ? void 0 : reflectionBlock._define3DName}\n , ${reflectionBlock === null || reflectionBlock === void 0 ? void 0 : reflectionBlock._cubeSamplerName} \n ${isWebGPU ? `, ${reflectionBlock === null || reflectionBlock === void 0 ? void 0 : reflectionBlock._cubeSamplerName}Sampler` : \"\"}\n , ${reflectionBlock === null || reflectionBlock === void 0 ? void 0 : reflectionBlock._cubeSamplerName}\n ${isWebGPU ? `, ${reflectionBlock === null || reflectionBlock === void 0 ? void 0 : reflectionBlock._cubeSamplerName}Sampler` : \"\"}\n #else\n , ${reflectionBlock === null || reflectionBlock === void 0 ? void 0 : reflectionBlock._2DSamplerName}\n ${isWebGPU ? `, ${reflectionBlock === null || reflectionBlock === void 0 ? void 0 : reflectionBlock._2DSamplerName}Sampler` : \"\"}\n , ${reflectionBlock === null || reflectionBlock === void 0 ? void 0 : reflectionBlock._2DSamplerName}\n ${isWebGPU ? `, ${reflectionBlock === null || reflectionBlock === void 0 ? void 0 : reflectionBlock._2DSamplerName}Sampler` : \"\"}\n #endif\n #endif\n #if !defined(${reflectionBlock === null || reflectionBlock === void 0 ? void 0 : reflectionBlock._defineSkyboxName}) && defined(RADIANCEOCCLUSION)\n , seo\n #endif\n #if !defined(${reflectionBlock === null || reflectionBlock === void 0 ? void 0 : reflectionBlock._defineSkyboxName}) && defined(HORIZONOCCLUSION) && defined(BUMP) && defined(${reflectionBlock === null || reflectionBlock === void 0 ? void 0 : reflectionBlock._define3DName})\n , eho\n #endif\n #endif\n );\n\n #ifdef SHEEN_LINKWITHALBEDO\n surfaceAlbedo = sheenOut.surfaceAlbedo;\n #endif\n #endif\\n`;\n return code;\n }\n _buildBlock(state) {\n if (state.target === NodeMaterialBlockTargets.Fragment) {\n state.sharedData.blocksWithDefines.push(this);\n }\n return this;\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode();\n codeString += `${this._codeVariableName}.albedoScaling = ${this.albedoScaling};\\n`;\n codeString += `${this._codeVariableName}.linkSheenWithAlbedo = ${this.linkSheenWithAlbedo};\\n`;\n return codeString;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.albedoScaling = this.albedoScaling;\n serializationObject.linkSheenWithAlbedo = this.linkSheenWithAlbedo;\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n this.albedoScaling = serializationObject.albedoScaling;\n this.linkSheenWithAlbedo = serializationObject.linkSheenWithAlbedo;\n }\n}\n__decorate([editableInPropertyPage(\"Albedo scaling\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\", {\n embedded: true,\n notifiers: {\n update: true\n }\n})], SheenBlock.prototype, \"albedoScaling\", void 0);\n__decorate([editableInPropertyPage(\"Link sheen with albedo\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\", {\n embedded: true,\n notifiers: {\n update: true\n }\n})], SheenBlock.prototype, \"linkSheenWithAlbedo\", void 0);\nRegisterClass(\"BABYLON.SheenBlock\", SheenBlock);","map":{"version":3,"names":["__decorate","NodeMaterialBlock","NodeMaterialBlockConnectionPointTypes","NodeMaterialBlockTargets","RegisterClass","editableInPropertyPage","NodeMaterialConnectionPointCustomObject","SheenBlock","constructor","name","Fragment","albedoScaling","linkSheenWithAlbedo","_isUnique","registerInput","Float","Color3","registerOutput","Object","initialize","state","_excludeVariableName","getClassName","intensity","_inputs","color","roughness","sheen","_outputs","prepareDefines","mesh","nodeMaterial","defines","setValue","isConnected","getCode","reflectionBlock","code","associatedVariableName","fSuffix","texture","isWebGPU","shaderLanguage","_declareLocalVar","Vector4","_vReflectionMicrosurfaceInfosName","_vReflectionInfosName","reflectionColor","_define3DName","_cubeSamplerName","_2DSamplerName","_defineSkyboxName","_buildBlock","target","sharedData","blocksWithDefines","push","_dumpPropertiesCode","codeString","_codeVariableName","serialize","serializationObject","_deserialize","scene","rootUrl","embedded","notifiers","update","prototype"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Materials/Node/Blocks/PBR/sheenBlock.js"],"sourcesContent":["import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\nimport { NodeMaterialConnectionPointCustomObject } from \"../../nodeMaterialConnectionPointCustomObject.js\";\n/**\n * Block used to implement the sheen module of the PBR material\n */\nexport class SheenBlock extends NodeMaterialBlock {\n /**\n * Create a new SheenBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Fragment);\n /**\n * If true, the sheen effect is layered above the base BRDF with the albedo-scaling technique.\n * It allows the strength of the sheen effect to not depend on the base color of the material,\n * making it easier to setup and tweak the effect\n */\n this.albedoScaling = false;\n /**\n * Defines if the sheen is linked to the sheen color.\n */\n this.linkSheenWithAlbedo = false;\n this._isUnique = true;\n this.registerInput(\"intensity\", NodeMaterialBlockConnectionPointTypes.Float, true, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"color\", NodeMaterialBlockConnectionPointTypes.Color3, true, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"roughness\", NodeMaterialBlockConnectionPointTypes.Float, true, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"sheen\", NodeMaterialBlockConnectionPointTypes.Object, NodeMaterialBlockTargets.Fragment, new NodeMaterialConnectionPointCustomObject(\"sheen\", this, 1 /* NodeMaterialConnectionPointDirection.Output */, SheenBlock, \"SheenBlock\"));\n }\n /**\n * Initialize the block and prepare the context for build\n * @param state defines the state that will be used for the build\n */\n initialize(state) {\n state._excludeVariableName(\"sheenOut\");\n state._excludeVariableName(\"sheenMapData\");\n state._excludeVariableName(\"vSheenColor\");\n state._excludeVariableName(\"vSheenRoughness\");\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"SheenBlock\";\n }\n /**\n * Gets the intensity input component\n */\n get intensity() {\n return this._inputs[0];\n }\n /**\n * Gets the color input component\n */\n get color() {\n return this._inputs[1];\n }\n /**\n * Gets the roughness input component\n */\n get roughness() {\n return this._inputs[2];\n }\n /**\n * Gets the sheen object output component\n */\n get sheen() {\n return this._outputs[0];\n }\n prepareDefines(mesh, nodeMaterial, defines) {\n super.prepareDefines(mesh, nodeMaterial, defines);\n defines.setValue(\"SHEEN\", true);\n defines.setValue(\"SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE\", true, true);\n defines.setValue(\"SHEEN_LINKWITHALBEDO\", this.linkSheenWithAlbedo, true);\n defines.setValue(\"SHEEN_ROUGHNESS\", this.roughness.isConnected, true);\n defines.setValue(\"SHEEN_ALBEDOSCALING\", this.albedoScaling, true);\n }\n /**\n * Gets the main code of the block (fragment side)\n * @param reflectionBlock instance of a ReflectionBlock null if the code must be generated without an active reflection module\n * @param state define the build state\n * @returns the shader code\n */\n getCode(reflectionBlock, state) {\n let code = \"\";\n const color = this.color.isConnected ? this.color.associatedVariableName : `vec3${state.fSuffix}(1.)`;\n const intensity = this.intensity.isConnected ? this.intensity.associatedVariableName : \"1.\";\n const roughness = this.roughness.isConnected ? this.roughness.associatedVariableName : \"0.\";\n const texture = `vec4${state.fSuffix}(0.)`;\n const isWebGPU = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */;\n code = `#ifdef SHEEN\r\n ${isWebGPU ? \"var sheenOut: sheenOutParams\" : \"sheenOutParams sheenOut\"};\r\n\r\n ${state._declareLocalVar(\"vSheenColor\", NodeMaterialBlockConnectionPointTypes.Vector4)} = vec4${state.fSuffix}(${color}, ${intensity});\r\n\r\n sheenOut = sheenBlock(\r\n vSheenColor\r\n #ifdef SHEEN_ROUGHNESS\r\n , ${roughness}\r\n #endif\r\n , roughness\r\n #ifdef SHEEN_TEXTURE\r\n , ${texture}\r\n ${isWebGPU ? `, ${texture}Sampler` : \"\"}\r\n , 1.0\r\n #endif\r\n , reflectance\r\n #ifdef SHEEN_LINKWITHALBEDO\r\n , baseColor\r\n , surfaceAlbedo\r\n #endif\r\n #ifdef ENVIRONMENTBRDF\r\n , NdotV\r\n , environmentBrdf\r\n #endif\r\n #if defined(REFLECTION) && defined(ENVIRONMENTBRDF)\r\n , AARoughnessFactors\r\n , ${isWebGPU ? \"uniforms.\" : \"\"}${reflectionBlock?._vReflectionMicrosurfaceInfosName}\r\n , ${reflectionBlock?._vReflectionInfosName}\r\n , ${reflectionBlock?.reflectionColor}\r\n , ${isWebGPU ? \"uniforms.\" : \"\"}vLightingIntensity\r\n #ifdef ${reflectionBlock?._define3DName}\r\n , ${reflectionBlock?._cubeSamplerName} \r\n ${isWebGPU ? `, ${reflectionBlock?._cubeSamplerName}Sampler` : \"\"}\r\n #else\r\n , ${reflectionBlock?._2DSamplerName}\r\n ${isWebGPU ? `, ${reflectionBlock?._2DSamplerName}Sampler` : \"\"}\r\n #endif\r\n , reflectionOut.reflectionCoords\r\n , NdotVUnclamped\r\n #ifndef LODBASEDMICROSFURACE\r\n #ifdef ${reflectionBlock?._define3DName}\r\n , ${reflectionBlock?._cubeSamplerName} \r\n ${isWebGPU ? `, ${reflectionBlock?._cubeSamplerName}Sampler` : \"\"}\r\n , ${reflectionBlock?._cubeSamplerName}\r\n ${isWebGPU ? `, ${reflectionBlock?._cubeSamplerName}Sampler` : \"\"}\r\n #else\r\n , ${reflectionBlock?._2DSamplerName}\r\n ${isWebGPU ? `, ${reflectionBlock?._2DSamplerName}Sampler` : \"\"}\r\n , ${reflectionBlock?._2DSamplerName}\r\n ${isWebGPU ? `, ${reflectionBlock?._2DSamplerName}Sampler` : \"\"}\r\n #endif\r\n #endif\r\n #if !defined(${reflectionBlock?._defineSkyboxName}) && defined(RADIANCEOCCLUSION)\r\n , seo\r\n #endif\r\n #if !defined(${reflectionBlock?._defineSkyboxName}) && defined(HORIZONOCCLUSION) && defined(BUMP) && defined(${reflectionBlock?._define3DName})\r\n , eho\r\n #endif\r\n #endif\r\n );\r\n\r\n #ifdef SHEEN_LINKWITHALBEDO\r\n surfaceAlbedo = sheenOut.surfaceAlbedo;\r\n #endif\r\n #endif\\n`;\n return code;\n }\n _buildBlock(state) {\n if (state.target === NodeMaterialBlockTargets.Fragment) {\n state.sharedData.blocksWithDefines.push(this);\n }\n return this;\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode();\n codeString += `${this._codeVariableName}.albedoScaling = ${this.albedoScaling};\\n`;\n codeString += `${this._codeVariableName}.linkSheenWithAlbedo = ${this.linkSheenWithAlbedo};\\n`;\n return codeString;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.albedoScaling = this.albedoScaling;\n serializationObject.linkSheenWithAlbedo = this.linkSheenWithAlbedo;\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n this.albedoScaling = serializationObject.albedoScaling;\n this.linkSheenWithAlbedo = serializationObject.linkSheenWithAlbedo;\n }\n}\n__decorate([\n editableInPropertyPage(\"Albedo scaling\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\", { embedded: true, notifiers: { update: true } })\n], SheenBlock.prototype, \"albedoScaling\", void 0);\n__decorate([\n editableInPropertyPage(\"Link sheen with albedo\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\", { embedded: true, notifiers: { update: true } })\n], SheenBlock.prototype, \"linkSheenWithAlbedo\", void 0);\nRegisterClass(\"BABYLON.SheenBlock\", SheenBlock);\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}