fcd49ca36e518623c04ccc21b1b621ee58997f0148ea284cc66f675ec6eb2898.json 28 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 { BindLogDepth } from \"../../../materialHelper.functions.js\";\n/**\n * Color spaces supported by the fragment output block\n */\nexport var FragmentOutputBlockColorSpace;\n(function (FragmentOutputBlockColorSpace) {\n /** Unspecified */\n FragmentOutputBlockColorSpace[FragmentOutputBlockColorSpace[\"NoColorSpace\"] = 0] = \"NoColorSpace\";\n /** Gamma */\n FragmentOutputBlockColorSpace[FragmentOutputBlockColorSpace[\"Gamma\"] = 1] = \"Gamma\";\n /** Linear */\n FragmentOutputBlockColorSpace[FragmentOutputBlockColorSpace[\"Linear\"] = 2] = \"Linear\";\n})(FragmentOutputBlockColorSpace || (FragmentOutputBlockColorSpace = {}));\n/**\n * Block used to output the final color\n */\nexport class FragmentOutputBlock extends NodeMaterialBlock {\n /**\n * Create a new FragmentOutputBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Fragment, true);\n /** Gets or sets a boolean indicating if content needs to be converted to gamma space */\n this.convertToGammaSpace = false;\n /** Gets or sets a boolean indicating if content needs to be converted to linear space */\n this.convertToLinearSpace = false;\n /** Gets or sets a boolean indicating if logarithmic depth should be used */\n this.useLogarithmicDepth = false;\n this.registerInput(\"rgba\", NodeMaterialBlockConnectionPointTypes.Color4, true);\n this.registerInput(\"rgb\", NodeMaterialBlockConnectionPointTypes.Color3, true);\n this.registerInput(\"a\", NodeMaterialBlockConnectionPointTypes.Float, true);\n this.rgb.acceptedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Vector3);\n this.rgb.acceptedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Float);\n }\n /**\n * Gets or sets the color space used for the block\n */\n get colorSpace() {\n if (this.convertToGammaSpace) {\n return FragmentOutputBlockColorSpace.Gamma;\n }\n if (this.convertToLinearSpace) {\n return FragmentOutputBlockColorSpace.Linear;\n }\n return FragmentOutputBlockColorSpace.NoColorSpace;\n }\n set colorSpace(value) {\n this.convertToGammaSpace = value === FragmentOutputBlockColorSpace.Gamma;\n this.convertToLinearSpace = value === FragmentOutputBlockColorSpace.Linear;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"FragmentOutputBlock\";\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(\"logarithmicDepthConstant\");\n state._excludeVariableName(\"vFragmentDepth\");\n }\n /**\n * Gets the rgba input component\n */\n get rgba() {\n return this._inputs[0];\n }\n /**\n * Gets the rgb input component\n */\n get rgb() {\n return this._inputs[1];\n }\n /**\n * Gets the a input component\n */\n get a() {\n return this._inputs[2];\n }\n prepareDefines(mesh, nodeMaterial, defines) {\n defines.setValue(this._linearDefineName, this.convertToLinearSpace, true);\n defines.setValue(this._gammaDefineName, this.convertToGammaSpace, true);\n }\n bind(effect, nodeMaterial, mesh) {\n if ((this.useLogarithmicDepth || nodeMaterial.useLogarithmicDepth) && mesh) {\n BindLogDepth(undefined, effect, mesh.getScene());\n }\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const rgba = this.rgba;\n const rgb = this.rgb;\n const a = this.a;\n const isWebGPU = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */;\n state.sharedData.hints.needAlphaBlending = rgba.isConnected || a.isConnected;\n state.sharedData.blocksWithDefines.push(this);\n if (this.useLogarithmicDepth || state.sharedData.nodeMaterial.useLogarithmicDepth) {\n state._emitUniformFromString(\"logarithmicDepthConstant\", NodeMaterialBlockConnectionPointTypes.Float);\n state._emitVaryingFromString(\"vFragmentDepth\", NodeMaterialBlockConnectionPointTypes.Float);\n state.sharedData.bindableBlocks.push(this);\n }\n this._linearDefineName = state._getFreeDefineName(\"CONVERTTOLINEAR\");\n this._gammaDefineName = state._getFreeDefineName(\"CONVERTTOGAMMA\");\n const comments = `//${this.name}`;\n state._emitFunctionFromInclude(\"helperFunctions\", comments);\n let outputString = \"gl_FragColor\";\n if (state.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n state.compilationString += `var fragmentOutputsColor : vec4<f32>;\\r\\n`;\n outputString = \"fragmentOutputsColor\";\n }\n const vec4 = state._getShaderType(NodeMaterialBlockConnectionPointTypes.Vector4);\n if (rgba.connectedPoint) {\n if (a.isConnected) {\n state.compilationString += `${outputString} = ${vec4}(${rgba.associatedVariableName}.rgb, ${a.associatedVariableName});\\n`;\n } else {\n state.compilationString += `${outputString} = ${rgba.associatedVariableName};\\n`;\n }\n } else if (rgb.connectedPoint) {\n let aValue = \"1.0\";\n if (a.connectedPoint) {\n aValue = a.associatedVariableName;\n }\n if (rgb.connectedPoint.type === NodeMaterialBlockConnectionPointTypes.Float) {\n state.compilationString += `${outputString} = ${vec4}(${rgb.associatedVariableName}, ${rgb.associatedVariableName}, ${rgb.associatedVariableName}, ${aValue});\\n`;\n } else {\n state.compilationString += `${outputString} = ${vec4}(${rgb.associatedVariableName}, ${aValue});\\n`;\n }\n } else {\n state.sharedData.checks.notConnectedNonOptionalInputs.push(rgba);\n }\n state.compilationString += `#ifdef ${this._linearDefineName}\\n`;\n state.compilationString += `${outputString} = toLinearSpace(${outputString});\\n`;\n state.compilationString += `#endif\\n`;\n state.compilationString += `#ifdef ${this._gammaDefineName}\\n`;\n state.compilationString += `${outputString} = toGammaSpace(${outputString});\\n`;\n state.compilationString += `#endif\\n`;\n if (state.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n state.compilationString += `#if !defined(PREPASS)\\r\\n`;\n state.compilationString += `fragmentOutputs.color = fragmentOutputsColor;\\r\\n`;\n state.compilationString += `#endif\\r\\n`;\n }\n if (this.useLogarithmicDepth || state.sharedData.nodeMaterial.useLogarithmicDepth) {\n const fragDepth = isWebGPU ? \"input.vFragmentDepth\" : \"vFragmentDepth\";\n const uniformP = isWebGPU ? \"uniforms.\" : \"\";\n const output = isWebGPU ? \"fragmentOutputs.fragDepth\" : \"gl_FragDepthEXT\";\n state.compilationString += `${output} = log2(${fragDepth}) * ${uniformP}logarithmicDepthConstant * 0.5;\\n`;\n }\n state.compilationString += `#if defined(PREPASS)\\r\\n`;\n state.compilationString += `${isWebGPU ? \"fragmentOutputs.fragData0\" : \"gl_FragData[0]\"} = ${outputString};\\r\\n`;\n state.compilationString += `#endif\\r\\n`;\n return this;\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode();\n codeString += `${this._codeVariableName}.convertToGammaSpace = ${this.convertToGammaSpace};\\n`;\n codeString += `${this._codeVariableName}.convertToLinearSpace = ${this.convertToLinearSpace};\\n`;\n codeString += `${this._codeVariableName}.useLogarithmicDepth = ${this.useLogarithmicDepth};\\n`;\n return codeString;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.convertToGammaSpace = this.convertToGammaSpace;\n serializationObject.convertToLinearSpace = this.convertToLinearSpace;\n serializationObject.useLogarithmicDepth = this.useLogarithmicDepth;\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n var _serializationObject$;\n super._deserialize(serializationObject, scene, rootUrl);\n this.convertToGammaSpace = !!serializationObject.convertToGammaSpace;\n this.convertToLinearSpace = !!serializationObject.convertToLinearSpace;\n this.useLogarithmicDepth = (_serializationObject$ = serializationObject.useLogarithmicDepth) !== null && _serializationObject$ !== void 0 ? _serializationObject$ : false;\n }\n}\n__decorate([editableInPropertyPage(\"Use logarithmic depth\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\", {\n embedded: true\n})], FragmentOutputBlock.prototype, \"useLogarithmicDepth\", void 0);\n__decorate([editableInPropertyPage(\"Color space\", 4 /* PropertyTypeForEdition.List */, \"ADVANCED\", {\n notifiers: {\n rebuild: true\n },\n embedded: true,\n options: [{\n label: \"No color space\",\n value: FragmentOutputBlockColorSpace.NoColorSpace\n }, {\n label: \"Gamma\",\n value: FragmentOutputBlockColorSpace.Gamma\n }, {\n label: \"Linear\",\n value: FragmentOutputBlockColorSpace.Linear\n }]\n})], FragmentOutputBlock.prototype, \"colorSpace\", null);\nRegisterClass(\"BABYLON.FragmentOutputBlock\", FragmentOutputBlock);","map":{"version":3,"names":["__decorate","NodeMaterialBlock","NodeMaterialBlockConnectionPointTypes","NodeMaterialBlockTargets","RegisterClass","editableInPropertyPage","BindLogDepth","FragmentOutputBlockColorSpace","FragmentOutputBlock","constructor","name","Fragment","convertToGammaSpace","convertToLinearSpace","useLogarithmicDepth","registerInput","Color4","Color3","Float","rgb","acceptedConnectionPointTypes","push","Vector3","colorSpace","Gamma","Linear","NoColorSpace","value","getClassName","initialize","state","_excludeVariableName","rgba","_inputs","a","prepareDefines","mesh","nodeMaterial","defines","setValue","_linearDefineName","_gammaDefineName","bind","effect","undefined","getScene","_buildBlock","isWebGPU","shaderLanguage","sharedData","hints","needAlphaBlending","isConnected","blocksWithDefines","_emitUniformFromString","_emitVaryingFromString","bindableBlocks","_getFreeDefineName","comments","_emitFunctionFromInclude","outputString","compilationString","vec4","_getShaderType","Vector4","connectedPoint","associatedVariableName","aValue","type","checks","notConnectedNonOptionalInputs","fragDepth","uniformP","output","_dumpPropertiesCode","codeString","_codeVariableName","serialize","serializationObject","_deserialize","scene","rootUrl","_serializationObject$","embedded","prototype","notifiers","rebuild","options","label"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Materials/Node/Blocks/Fragment/fragmentOutputBlock.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 { BindLogDepth } from \"../../../materialHelper.functions.js\";\n/**\n * Color spaces supported by the fragment output block\n */\nexport var FragmentOutputBlockColorSpace;\n(function (FragmentOutputBlockColorSpace) {\n /** Unspecified */\n FragmentOutputBlockColorSpace[FragmentOutputBlockColorSpace[\"NoColorSpace\"] = 0] = \"NoColorSpace\";\n /** Gamma */\n FragmentOutputBlockColorSpace[FragmentOutputBlockColorSpace[\"Gamma\"] = 1] = \"Gamma\";\n /** Linear */\n FragmentOutputBlockColorSpace[FragmentOutputBlockColorSpace[\"Linear\"] = 2] = \"Linear\";\n})(FragmentOutputBlockColorSpace || (FragmentOutputBlockColorSpace = {}));\n/**\n * Block used to output the final color\n */\nexport class FragmentOutputBlock extends NodeMaterialBlock {\n /**\n * Create a new FragmentOutputBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Fragment, true);\n /** Gets or sets a boolean indicating if content needs to be converted to gamma space */\n this.convertToGammaSpace = false;\n /** Gets or sets a boolean indicating if content needs to be converted to linear space */\n this.convertToLinearSpace = false;\n /** Gets or sets a boolean indicating if logarithmic depth should be used */\n this.useLogarithmicDepth = false;\n this.registerInput(\"rgba\", NodeMaterialBlockConnectionPointTypes.Color4, true);\n this.registerInput(\"rgb\", NodeMaterialBlockConnectionPointTypes.Color3, true);\n this.registerInput(\"a\", NodeMaterialBlockConnectionPointTypes.Float, true);\n this.rgb.acceptedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Vector3);\n this.rgb.acceptedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Float);\n }\n /**\n * Gets or sets the color space used for the block\n */\n get colorSpace() {\n if (this.convertToGammaSpace) {\n return FragmentOutputBlockColorSpace.Gamma;\n }\n if (this.convertToLinearSpace) {\n return FragmentOutputBlockColorSpace.Linear;\n }\n return FragmentOutputBlockColorSpace.NoColorSpace;\n }\n set colorSpace(value) {\n this.convertToGammaSpace = value === FragmentOutputBlockColorSpace.Gamma;\n this.convertToLinearSpace = value === FragmentOutputBlockColorSpace.Linear;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"FragmentOutputBlock\";\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(\"logarithmicDepthConstant\");\n state._excludeVariableName(\"vFragmentDepth\");\n }\n /**\n * Gets the rgba input component\n */\n get rgba() {\n return this._inputs[0];\n }\n /**\n * Gets the rgb input component\n */\n get rgb() {\n return this._inputs[1];\n }\n /**\n * Gets the a input component\n */\n get a() {\n return this._inputs[2];\n }\n prepareDefines(mesh, nodeMaterial, defines) {\n defines.setValue(this._linearDefineName, this.convertToLinearSpace, true);\n defines.setValue(this._gammaDefineName, this.convertToGammaSpace, true);\n }\n bind(effect, nodeMaterial, mesh) {\n if ((this.useLogarithmicDepth || nodeMaterial.useLogarithmicDepth) && mesh) {\n BindLogDepth(undefined, effect, mesh.getScene());\n }\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const rgba = this.rgba;\n const rgb = this.rgb;\n const a = this.a;\n const isWebGPU = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */;\n state.sharedData.hints.needAlphaBlending = rgba.isConnected || a.isConnected;\n state.sharedData.blocksWithDefines.push(this);\n if (this.useLogarithmicDepth || state.sharedData.nodeMaterial.useLogarithmicDepth) {\n state._emitUniformFromString(\"logarithmicDepthConstant\", NodeMaterialBlockConnectionPointTypes.Float);\n state._emitVaryingFromString(\"vFragmentDepth\", NodeMaterialBlockConnectionPointTypes.Float);\n state.sharedData.bindableBlocks.push(this);\n }\n this._linearDefineName = state._getFreeDefineName(\"CONVERTTOLINEAR\");\n this._gammaDefineName = state._getFreeDefineName(\"CONVERTTOGAMMA\");\n const comments = `//${this.name}`;\n state._emitFunctionFromInclude(\"helperFunctions\", comments);\n let outputString = \"gl_FragColor\";\n if (state.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n state.compilationString += `var fragmentOutputsColor : vec4<f32>;\\r\\n`;\n outputString = \"fragmentOutputsColor\";\n }\n const vec4 = state._getShaderType(NodeMaterialBlockConnectionPointTypes.Vector4);\n if (rgba.connectedPoint) {\n if (a.isConnected) {\n state.compilationString += `${outputString} = ${vec4}(${rgba.associatedVariableName}.rgb, ${a.associatedVariableName});\\n`;\n }\n else {\n state.compilationString += `${outputString} = ${rgba.associatedVariableName};\\n`;\n }\n }\n else if (rgb.connectedPoint) {\n let aValue = \"1.0\";\n if (a.connectedPoint) {\n aValue = a.associatedVariableName;\n }\n if (rgb.connectedPoint.type === NodeMaterialBlockConnectionPointTypes.Float) {\n state.compilationString += `${outputString} = ${vec4}(${rgb.associatedVariableName}, ${rgb.associatedVariableName}, ${rgb.associatedVariableName}, ${aValue});\\n`;\n }\n else {\n state.compilationString += `${outputString} = ${vec4}(${rgb.associatedVariableName}, ${aValue});\\n`;\n }\n }\n else {\n state.sharedData.checks.notConnectedNonOptionalInputs.push(rgba);\n }\n state.compilationString += `#ifdef ${this._linearDefineName}\\n`;\n state.compilationString += `${outputString} = toLinearSpace(${outputString});\\n`;\n state.compilationString += `#endif\\n`;\n state.compilationString += `#ifdef ${this._gammaDefineName}\\n`;\n state.compilationString += `${outputString} = toGammaSpace(${outputString});\\n`;\n state.compilationString += `#endif\\n`;\n if (state.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n state.compilationString += `#if !defined(PREPASS)\\r\\n`;\n state.compilationString += `fragmentOutputs.color = fragmentOutputsColor;\\r\\n`;\n state.compilationString += `#endif\\r\\n`;\n }\n if (this.useLogarithmicDepth || state.sharedData.nodeMaterial.useLogarithmicDepth) {\n const fragDepth = isWebGPU ? \"input.vFragmentDepth\" : \"vFragmentDepth\";\n const uniformP = isWebGPU ? \"uniforms.\" : \"\";\n const output = isWebGPU ? \"fragmentOutputs.fragDepth\" : \"gl_FragDepthEXT\";\n state.compilationString += `${output} = log2(${fragDepth}) * ${uniformP}logarithmicDepthConstant * 0.5;\\n`;\n }\n state.compilationString += `#if defined(PREPASS)\\r\\n`;\n state.compilationString += `${isWebGPU ? \"fragmentOutputs.fragData0\" : \"gl_FragData[0]\"} = ${outputString};\\r\\n`;\n state.compilationString += `#endif\\r\\n`;\n return this;\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode();\n codeString += `${this._codeVariableName}.convertToGammaSpace = ${this.convertToGammaSpace};\\n`;\n codeString += `${this._codeVariableName}.convertToLinearSpace = ${this.convertToLinearSpace};\\n`;\n codeString += `${this._codeVariableName}.useLogarithmicDepth = ${this.useLogarithmicDepth};\\n`;\n return codeString;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.convertToGammaSpace = this.convertToGammaSpace;\n serializationObject.convertToLinearSpace = this.convertToLinearSpace;\n serializationObject.useLogarithmicDepth = this.useLogarithmicDepth;\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n this.convertToGammaSpace = !!serializationObject.convertToGammaSpace;\n this.convertToLinearSpace = !!serializationObject.convertToLinearSpace;\n this.useLogarithmicDepth = serializationObject.useLogarithmicDepth ?? false;\n }\n}\n__decorate([\n editableInPropertyPage(\"Use logarithmic depth\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\", { embedded: true })\n], FragmentOutputBlock.prototype, \"useLogarithmicDepth\", void 0);\n__decorate([\n editableInPropertyPage(\"Color space\", 4 /* PropertyTypeForEdition.List */, \"ADVANCED\", {\n notifiers: { rebuild: true },\n embedded: true,\n options: [\n { label: \"No color space\", value: FragmentOutputBlockColorSpace.NoColorSpace },\n { label: \"Gamma\", value: FragmentOutputBlockColorSpace.Gamma },\n { label: \"Linear\", value: FragmentOutputBlockColorSpace.Linear },\n ],\n })\n], FragmentOutputBlock.prototype, \"colorSpace\", null);\nRegisterClass(\"BABYLON.FragmentOutputBlock\", FragmentOutputBlock);\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}