5fea2f2f9820631fb8e010710805b7292363005bd706e422c19d78cb4ff712e9.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\";\n\n/**\n * Block used to retrieve the depth (zbuffer) of the scene\n * @since 5.0.0\n */\nexport class SceneDepthBlock extends NodeMaterialBlock {\n /**\n * Create a new SceneDepthBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.VertexAndFragment);\n /**\n * Defines if the depth renderer should be setup in non linear mode\n */\n this.useNonLinearDepth = false;\n /**\n * Defines if the depth renderer should be setup in camera space Z mode (if set, useNonLinearDepth has no effect)\n */\n this.storeCameraSpaceZ = false;\n /**\n * Defines if the depth renderer should be setup in full 32 bits float mode\n */\n this.force32itsFloat = false;\n this._isUnique = true;\n this.registerInput(\"uv\", NodeMaterialBlockConnectionPointTypes.AutoDetect, false, NodeMaterialBlockTargets.VertexAndFragment);\n this.registerOutput(\"depth\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Neutral);\n this._inputs[0].addExcludedConnectionPointFromAllowedTypes(NodeMaterialBlockConnectionPointTypes.Vector2 | NodeMaterialBlockConnectionPointTypes.Vector3 | NodeMaterialBlockConnectionPointTypes.Vector4);\n this._inputs[0]._prioritizeVertex = false;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"SceneDepthBlock\";\n }\n /**\n * Gets the uv input component\n */\n get uv() {\n return this._inputs[0];\n }\n /**\n * Gets the depth output component\n */\n get depth() {\n return this._outputs[0];\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(\"textureSampler\");\n }\n get target() {\n if (!this.uv.isConnected) {\n return NodeMaterialBlockTargets.VertexAndFragment;\n }\n if (this.uv.sourceBlock.isInput) {\n return NodeMaterialBlockTargets.VertexAndFragment;\n }\n return NodeMaterialBlockTargets.Fragment;\n }\n _getTexture(scene) {\n const depthRenderer = scene.enableDepthRenderer(undefined, this.useNonLinearDepth, this.force32itsFloat, undefined, this.storeCameraSpaceZ);\n return depthRenderer.getDepthMap();\n }\n bind(effect, nodeMaterial) {\n const texture = this._getTexture(nodeMaterial.getScene());\n effect.setTexture(this._samplerName, texture);\n }\n _injectVertexCode(state) {\n const uvInput = this.uv;\n if (uvInput.connectedPoint.ownerBlock.isInput) {\n const uvInputOwnerBlock = uvInput.connectedPoint.ownerBlock;\n if (!uvInputOwnerBlock.isAttribute) {\n state._emitUniformFromString(uvInput.associatedVariableName, uvInput.type === NodeMaterialBlockConnectionPointTypes.Vector3 ? NodeMaterialBlockConnectionPointTypes.Vector3 : uvInput.type === NodeMaterialBlockConnectionPointTypes.Vector4 ? NodeMaterialBlockConnectionPointTypes.Vector4 : NodeMaterialBlockConnectionPointTypes.Vector2);\n }\n }\n this._mainUVName = \"vMain\" + uvInput.associatedVariableName;\n state._emitVaryingFromString(this._mainUVName, NodeMaterialBlockConnectionPointTypes.Vector2);\n state.compilationString += `${this._mainUVName} = ${uvInput.associatedVariableName}.xy;\\n`;\n if (!this._outputs.some(o => o.isConnectedInVertexShader)) {\n return;\n }\n this._writeTextureRead(state, true);\n for (const output of this._outputs) {\n if (output.hasEndpoints) {\n this._writeOutput(state, output, \"r\", true);\n }\n }\n }\n _writeTextureRead(state, vertexMode = false) {\n const uvInput = this.uv;\n if (vertexMode) {\n if (state.target === NodeMaterialBlockTargets.Fragment) {\n return;\n }\n const textureReadFunc = state.shaderLanguage === 0 /* ShaderLanguage.GLSL */ ? `texture2D(${this._samplerName},` : `textureSampleLevel(${this._samplerName}, ${this._samplerName + `Sampler`},`;\n const complement = state.shaderLanguage === 0 /* ShaderLanguage.GLSL */ ? \"\" : \", 0\";\n state.compilationString += `${state._declareLocalVar(this._tempTextureRead, NodeMaterialBlockConnectionPointTypes.Vector4)}= ${textureReadFunc} ${uvInput.associatedVariableName}.xy${complement});\\n`;\n return;\n }\n const textureReadFunc = state.shaderLanguage === 0 /* ShaderLanguage.GLSL */ ? `texture2D(${this._samplerName},` : `textureSample(${this._samplerName}, ${this._samplerName + `Sampler`},`;\n if (this.uv.ownerBlock.target === NodeMaterialBlockTargets.Fragment) {\n state.compilationString += `${state._declareLocalVar(this._tempTextureRead, NodeMaterialBlockConnectionPointTypes.Vector4)} = ${textureReadFunc} ${uvInput.associatedVariableName}.xy);\\n`;\n return;\n }\n state.compilationString += `${state._declareLocalVar(this._tempTextureRead, NodeMaterialBlockConnectionPointTypes.Vector4)} = ${textureReadFunc} ${this._mainUVName});\\n`;\n }\n _writeOutput(state, output, swizzle, vertexMode = false) {\n if (vertexMode) {\n if (state.target === NodeMaterialBlockTargets.Fragment) {\n return;\n }\n state.compilationString += `${state._declareOutput(output)} = ${this._tempTextureRead}.${swizzle};\\n`;\n return;\n }\n if (this.uv.ownerBlock.target === NodeMaterialBlockTargets.Fragment) {\n state.compilationString += `${state._declareOutput(output)} = ${this._tempTextureRead}.${swizzle};\\n`;\n return;\n }\n state.compilationString += `${state._declareOutput(output)} = ${this._tempTextureRead}.${swizzle};\\n`;\n }\n _buildBlock(state) {\n super._buildBlock(state);\n this._samplerName = state._getFreeVariableName(this.name + \"Sampler\");\n this._tempTextureRead = state._getFreeVariableName(\"tempTextureRead\");\n if (state.sharedData.bindableBlocks.indexOf(this) < 0) {\n state.sharedData.bindableBlocks.push(this);\n }\n if (state.target !== NodeMaterialBlockTargets.Fragment) {\n // Vertex\n state._emit2DSampler(this._samplerName);\n this._injectVertexCode(state);\n return;\n }\n // Fragment\n if (!this._outputs.some(o => o.isConnectedInFragmentShader)) {\n return;\n }\n state._emit2DSampler(this._samplerName);\n this._writeTextureRead(state);\n for (const output of this._outputs) {\n if (output.hasEndpoints) {\n this._writeOutput(state, output, \"r\");\n }\n }\n return this;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.useNonLinearDepth = this.useNonLinearDepth;\n serializationObject.storeCameraSpaceZ = this.storeCameraSpaceZ;\n serializationObject.force32itsFloat = this.force32itsFloat;\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n this.useNonLinearDepth = serializationObject.useNonLinearDepth;\n this.storeCameraSpaceZ = !!serializationObject.storeCameraSpaceZ;\n this.force32itsFloat = serializationObject.force32itsFloat;\n }\n}\n__decorate([editableInPropertyPage(\"Use non linear depth\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", {\n embedded: true,\n notifiers: {\n activatePreviewCommand: true,\n callback: (scene, block) => {\n const sceneDepthBlock = block;\n let retVal = false;\n if (sceneDepthBlock.useNonLinearDepth) {\n sceneDepthBlock.storeCameraSpaceZ = false;\n retVal = true;\n }\n if (scene) {\n scene.disableDepthRenderer();\n }\n return retVal;\n }\n }\n})], SceneDepthBlock.prototype, \"useNonLinearDepth\", void 0);\n__decorate([editableInPropertyPage(\"Store Camera space Z\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", {\n notifiers: {\n activatePreviewCommand: true,\n callback: (scene, block) => {\n const sceneDepthBlock = block;\n let retVal = false;\n if (sceneDepthBlock.storeCameraSpaceZ) {\n sceneDepthBlock.useNonLinearDepth = false;\n retVal = true;\n }\n if (scene) {\n scene.disableDepthRenderer();\n }\n return retVal;\n }\n }\n})], SceneDepthBlock.prototype, \"storeCameraSpaceZ\", void 0);\n__decorate([editableInPropertyPage(\"Force 32 bits float\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", {\n notifiers: {\n activatePreviewCommand: true,\n callback: scene => scene === null || scene === void 0 ? void 0 : scene.disableDepthRenderer()\n }\n})], SceneDepthBlock.prototype, \"force32itsFloat\", void 0);\nRegisterClass(\"BABYLON.SceneDepthBlock\", SceneDepthBlock);","map":{"version":3,"names":["__decorate","NodeMaterialBlock","NodeMaterialBlockConnectionPointTypes","NodeMaterialBlockTargets","RegisterClass","editableInPropertyPage","SceneDepthBlock","constructor","name","VertexAndFragment","useNonLinearDepth","storeCameraSpaceZ","force32itsFloat","_isUnique","registerInput","AutoDetect","registerOutput","Float","Neutral","_inputs","addExcludedConnectionPointFromAllowedTypes","Vector2","Vector3","Vector4","_prioritizeVertex","getClassName","uv","depth","_outputs","initialize","state","_excludeVariableName","target","isConnected","sourceBlock","isInput","Fragment","_getTexture","scene","depthRenderer","enableDepthRenderer","undefined","getDepthMap","bind","effect","nodeMaterial","texture","getScene","setTexture","_samplerName","_injectVertexCode","uvInput","connectedPoint","ownerBlock","uvInputOwnerBlock","isAttribute","_emitUniformFromString","associatedVariableName","type","_mainUVName","_emitVaryingFromString","compilationString","some","o","isConnectedInVertexShader","_writeTextureRead","output","hasEndpoints","_writeOutput","vertexMode","textureReadFunc","shaderLanguage","complement","_declareLocalVar","_tempTextureRead","swizzle","_declareOutput","_buildBlock","_getFreeVariableName","sharedData","bindableBlocks","indexOf","push","_emit2DSampler","isConnectedInFragmentShader","serialize","serializationObject","_deserialize","rootUrl","embedded","notifiers","activatePreviewCommand","callback","block","sceneDepthBlock","retVal","disableDepthRenderer","prototype"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Materials/Node/Blocks/Dual/sceneDepthBlock.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\";\n\n/**\n * Block used to retrieve the depth (zbuffer) of the scene\n * @since 5.0.0\n */\nexport class SceneDepthBlock extends NodeMaterialBlock {\n /**\n * Create a new SceneDepthBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.VertexAndFragment);\n /**\n * Defines if the depth renderer should be setup in non linear mode\n */\n this.useNonLinearDepth = false;\n /**\n * Defines if the depth renderer should be setup in camera space Z mode (if set, useNonLinearDepth has no effect)\n */\n this.storeCameraSpaceZ = false;\n /**\n * Defines if the depth renderer should be setup in full 32 bits float mode\n */\n this.force32itsFloat = false;\n this._isUnique = true;\n this.registerInput(\"uv\", NodeMaterialBlockConnectionPointTypes.AutoDetect, false, NodeMaterialBlockTargets.VertexAndFragment);\n this.registerOutput(\"depth\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Neutral);\n this._inputs[0].addExcludedConnectionPointFromAllowedTypes(NodeMaterialBlockConnectionPointTypes.Vector2 | NodeMaterialBlockConnectionPointTypes.Vector3 | NodeMaterialBlockConnectionPointTypes.Vector4);\n this._inputs[0]._prioritizeVertex = false;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"SceneDepthBlock\";\n }\n /**\n * Gets the uv input component\n */\n get uv() {\n return this._inputs[0];\n }\n /**\n * Gets the depth output component\n */\n get depth() {\n return this._outputs[0];\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(\"textureSampler\");\n }\n get target() {\n if (!this.uv.isConnected) {\n return NodeMaterialBlockTargets.VertexAndFragment;\n }\n if (this.uv.sourceBlock.isInput) {\n return NodeMaterialBlockTargets.VertexAndFragment;\n }\n return NodeMaterialBlockTargets.Fragment;\n }\n _getTexture(scene) {\n const depthRenderer = scene.enableDepthRenderer(undefined, this.useNonLinearDepth, this.force32itsFloat, undefined, this.storeCameraSpaceZ);\n return depthRenderer.getDepthMap();\n }\n bind(effect, nodeMaterial) {\n const texture = this._getTexture(nodeMaterial.getScene());\n effect.setTexture(this._samplerName, texture);\n }\n _injectVertexCode(state) {\n const uvInput = this.uv;\n if (uvInput.connectedPoint.ownerBlock.isInput) {\n const uvInputOwnerBlock = uvInput.connectedPoint.ownerBlock;\n if (!uvInputOwnerBlock.isAttribute) {\n state._emitUniformFromString(uvInput.associatedVariableName, uvInput.type === NodeMaterialBlockConnectionPointTypes.Vector3\n ? NodeMaterialBlockConnectionPointTypes.Vector3\n : uvInput.type === NodeMaterialBlockConnectionPointTypes.Vector4\n ? NodeMaterialBlockConnectionPointTypes.Vector4\n : NodeMaterialBlockConnectionPointTypes.Vector2);\n }\n }\n this._mainUVName = \"vMain\" + uvInput.associatedVariableName;\n state._emitVaryingFromString(this._mainUVName, NodeMaterialBlockConnectionPointTypes.Vector2);\n state.compilationString += `${this._mainUVName} = ${uvInput.associatedVariableName}.xy;\\n`;\n if (!this._outputs.some((o) => o.isConnectedInVertexShader)) {\n return;\n }\n this._writeTextureRead(state, true);\n for (const output of this._outputs) {\n if (output.hasEndpoints) {\n this._writeOutput(state, output, \"r\", true);\n }\n }\n }\n _writeTextureRead(state, vertexMode = false) {\n const uvInput = this.uv;\n if (vertexMode) {\n if (state.target === NodeMaterialBlockTargets.Fragment) {\n return;\n }\n const textureReadFunc = state.shaderLanguage === 0 /* ShaderLanguage.GLSL */\n ? `texture2D(${this._samplerName},`\n : `textureSampleLevel(${this._samplerName}, ${this._samplerName + `Sampler`},`;\n const complement = state.shaderLanguage === 0 /* ShaderLanguage.GLSL */ ? \"\" : \", 0\";\n state.compilationString += `${state._declareLocalVar(this._tempTextureRead, NodeMaterialBlockConnectionPointTypes.Vector4)}= ${textureReadFunc} ${uvInput.associatedVariableName}.xy${complement});\\n`;\n return;\n }\n const textureReadFunc = state.shaderLanguage === 0 /* ShaderLanguage.GLSL */\n ? `texture2D(${this._samplerName},`\n : `textureSample(${this._samplerName}, ${this._samplerName + `Sampler`},`;\n if (this.uv.ownerBlock.target === NodeMaterialBlockTargets.Fragment) {\n state.compilationString += `${state._declareLocalVar(this._tempTextureRead, NodeMaterialBlockConnectionPointTypes.Vector4)} = ${textureReadFunc} ${uvInput.associatedVariableName}.xy);\\n`;\n return;\n }\n state.compilationString += `${state._declareLocalVar(this._tempTextureRead, NodeMaterialBlockConnectionPointTypes.Vector4)} = ${textureReadFunc} ${this._mainUVName});\\n`;\n }\n _writeOutput(state, output, swizzle, vertexMode = false) {\n if (vertexMode) {\n if (state.target === NodeMaterialBlockTargets.Fragment) {\n return;\n }\n state.compilationString += `${state._declareOutput(output)} = ${this._tempTextureRead}.${swizzle};\\n`;\n return;\n }\n if (this.uv.ownerBlock.target === NodeMaterialBlockTargets.Fragment) {\n state.compilationString += `${state._declareOutput(output)} = ${this._tempTextureRead}.${swizzle};\\n`;\n return;\n }\n state.compilationString += `${state._declareOutput(output)} = ${this._tempTextureRead}.${swizzle};\\n`;\n }\n _buildBlock(state) {\n super._buildBlock(state);\n this._samplerName = state._getFreeVariableName(this.name + \"Sampler\");\n this._tempTextureRead = state._getFreeVariableName(\"tempTextureRead\");\n if (state.sharedData.bindableBlocks.indexOf(this) < 0) {\n state.sharedData.bindableBlocks.push(this);\n }\n if (state.target !== NodeMaterialBlockTargets.Fragment) {\n // Vertex\n state._emit2DSampler(this._samplerName);\n this._injectVertexCode(state);\n return;\n }\n // Fragment\n if (!this._outputs.some((o) => o.isConnectedInFragmentShader)) {\n return;\n }\n state._emit2DSampler(this._samplerName);\n this._writeTextureRead(state);\n for (const output of this._outputs) {\n if (output.hasEndpoints) {\n this._writeOutput(state, output, \"r\");\n }\n }\n return this;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.useNonLinearDepth = this.useNonLinearDepth;\n serializationObject.storeCameraSpaceZ = this.storeCameraSpaceZ;\n serializationObject.force32itsFloat = this.force32itsFloat;\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n this.useNonLinearDepth = serializationObject.useNonLinearDepth;\n this.storeCameraSpaceZ = !!serializationObject.storeCameraSpaceZ;\n this.force32itsFloat = serializationObject.force32itsFloat;\n }\n}\n__decorate([\n editableInPropertyPage(\"Use non linear depth\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", {\n embedded: true,\n notifiers: {\n activatePreviewCommand: true,\n callback: (scene, block) => {\n const sceneDepthBlock = block;\n let retVal = false;\n if (sceneDepthBlock.useNonLinearDepth) {\n sceneDepthBlock.storeCameraSpaceZ = false;\n retVal = true;\n }\n if (scene) {\n scene.disableDepthRenderer();\n }\n return retVal;\n },\n },\n })\n], SceneDepthBlock.prototype, \"useNonLinearDepth\", void 0);\n__decorate([\n editableInPropertyPage(\"Store Camera space Z\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", {\n notifiers: {\n activatePreviewCommand: true,\n callback: (scene, block) => {\n const sceneDepthBlock = block;\n let retVal = false;\n if (sceneDepthBlock.storeCameraSpaceZ) {\n sceneDepthBlock.useNonLinearDepth = false;\n retVal = true;\n }\n if (scene) {\n scene.disableDepthRenderer();\n }\n return retVal;\n },\n },\n })\n], SceneDepthBlock.prototype, \"storeCameraSpaceZ\", void 0);\n__decorate([\n editableInPropertyPage(\"Force 32 bits float\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", {\n notifiers: { activatePreviewCommand: true, callback: (scene) => scene?.disableDepthRenderer() },\n })\n], SceneDepthBlock.prototype, \"force32itsFloat\", void 0);\nRegisterClass(\"BABYLON.SceneDepthBlock\", SceneDepthBlock);\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}