1 |
- {"ast":null,"code":"import _asyncToGenerator from \"F:/workspace/202226701027/huinongbao-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\";\nimport { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { VertexBuffer } from \"../../../../Buffers/buffer.js\";\nimport { InputBlock } from \"../Input/inputBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { BindMorphTargetParameters, PrepareDefinesForMorphTargets } from \"../../../materialHelper.functions.js\";\n/**\n * Block used to add morph targets support to vertex shader\n */\nexport class MorphTargetsBlock extends NodeMaterialBlock {\n /**\n * Create a new MorphTargetsBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Vertex);\n this.registerInput(\"position\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this.registerInput(\"normal\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this.registerInput(\"tangent\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.tangent.addExcludedConnectionPointFromAllowedTypes(NodeMaterialBlockConnectionPointTypes.Color4 | NodeMaterialBlockConnectionPointTypes.Vector4 | NodeMaterialBlockConnectionPointTypes.Vector3);\n this.registerInput(\"uv\", NodeMaterialBlockConnectionPointTypes.Vector2);\n this.registerOutput(\"positionOutput\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this.registerOutput(\"normalOutput\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this.registerOutput(\"tangentOutput\", NodeMaterialBlockConnectionPointTypes.Vector4);\n this.registerOutput(\"uvOutput\", NodeMaterialBlockConnectionPointTypes.Vector2);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"MorphTargetsBlock\";\n }\n /**\n * Gets the position input component\n */\n get position() {\n return this._inputs[0];\n }\n /**\n * Gets the normal input component\n */\n get normal() {\n return this._inputs[1];\n }\n /**\n * Gets the tangent input component\n */\n get tangent() {\n return this._inputs[2];\n }\n /**\n * Gets the tangent input component\n */\n get uv() {\n return this._inputs[3];\n }\n /**\n * Gets the position output component\n */\n get positionOutput() {\n return this._outputs[0];\n }\n /**\n * Gets the normal output component\n */\n get normalOutput() {\n return this._outputs[1];\n }\n /**\n * Gets the tangent output component\n */\n get tangentOutput() {\n return this._outputs[2];\n }\n /**\n * Gets the tangent output component\n */\n get uvOutput() {\n return this._outputs[3];\n }\n initialize(state) {\n state._excludeVariableName(\"morphTargetInfluences\");\n this._initShaderSourceAsync(state.shaderLanguage);\n }\n _initShaderSourceAsync(shaderLanguage) {\n var _this = this;\n return _asyncToGenerator(function* () {\n _this._codeIsReady = false;\n if (shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n yield Promise.all([import(\"../../../../ShadersWGSL/ShadersInclude/morphTargetsVertex.js\"), import(\"../../../../ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.js\"), import(\"../../../../ShadersWGSL/ShadersInclude/morphTargetsVertexGlobal.js\"), import(\"../../../../ShadersWGSL/ShadersInclude/morphTargetsVertexGlobalDeclaration.js\")]);\n } else {\n yield Promise.all([import(\"../../../../Shaders/ShadersInclude/morphTargetsVertex.js\"), import(\"../../../../Shaders/ShadersInclude/morphTargetsVertexDeclaration.js\"), import(\"../../../../Shaders/ShadersInclude/morphTargetsVertexGlobal.js\"), import(\"../../../../Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.js\")]);\n }\n _this._codeIsReady = true;\n _this.onCodeIsReadyObservable.notifyObservers(_this);\n })();\n }\n autoConfigure(material, additionalFilteringInfo = () => true) {\n if (!this.position.isConnected) {\n let positionInput = material.getInputBlockByPredicate(b => b.isAttribute && b.name === \"position\" && additionalFilteringInfo(b));\n if (!positionInput) {\n positionInput = new InputBlock(\"position\");\n positionInput.setAsAttribute();\n }\n positionInput.output.connectTo(this.position);\n }\n if (!this.normal.isConnected) {\n let normalInput = material.getInputBlockByPredicate(b => b.isAttribute && b.name === \"normal\" && additionalFilteringInfo(b));\n if (!normalInput) {\n normalInput = new InputBlock(\"normal\");\n normalInput.setAsAttribute(\"normal\");\n }\n normalInput.output.connectTo(this.normal);\n }\n if (!this.tangent.isConnected) {\n let tangentInput = material.getInputBlockByPredicate(b => b.isAttribute && b.name === \"tangent\" && additionalFilteringInfo(b));\n if (!tangentInput) {\n tangentInput = new InputBlock(\"tangent\");\n tangentInput.setAsAttribute(\"tangent\");\n }\n tangentInput.output.connectTo(this.tangent);\n }\n if (!this.uv.isConnected) {\n let uvInput = material.getInputBlockByPredicate(b => b.isAttribute && b.name === \"uv\" && additionalFilteringInfo(b));\n if (!uvInput) {\n uvInput = new InputBlock(\"uv\");\n uvInput.setAsAttribute(\"uv\");\n }\n uvInput.output.connectTo(this.uv);\n }\n }\n prepareDefines(mesh, nodeMaterial, defines) {\n if (mesh.morphTargetManager) {\n const morphTargetManager = mesh.morphTargetManager;\n if (morphTargetManager !== null && morphTargetManager !== void 0 && morphTargetManager.isUsingTextureForTargets && (morphTargetManager.numMaxInfluencers || morphTargetManager.numInfluencers) !== defines[\"NUM_MORPH_INFLUENCERS\"]) {\n defines.markAsAttributesDirty();\n }\n }\n if (!defines._areAttributesDirty) {\n return;\n }\n PrepareDefinesForMorphTargets(mesh, defines);\n }\n bind(effect, nodeMaterial, mesh) {\n if (mesh && mesh.morphTargetManager && mesh.morphTargetManager.numInfluencers > 0) {\n BindMorphTargetParameters(mesh, effect);\n if (mesh.morphTargetManager.isUsingTextureForTargets) {\n mesh.morphTargetManager._bind(effect);\n }\n }\n }\n replaceRepeatableContent(vertexShaderState, fragmentShaderState, mesh, defines) {\n const position = this.position;\n const normal = this.normal;\n const tangent = this.tangent;\n const uv = this.uv;\n const positionOutput = this.positionOutput;\n const normalOutput = this.normalOutput;\n const tangentOutput = this.tangentOutput;\n const uvOutput = this.uvOutput;\n const state = vertexShaderState;\n const repeatCount = defines.NUM_MORPH_INFLUENCERS;\n const manager = mesh.morphTargetManager;\n const hasNormals = manager && manager.supportsNormals && defines[\"NORMAL\"];\n const hasTangents = manager && manager.supportsTangents && defines[\"TANGENT\"];\n const hasUVs = manager && manager.supportsUVs && defines[\"UV1\"];\n let injectionCode = \"\";\n if (manager !== null && manager !== void 0 && manager.isUsingTextureForTargets && repeatCount > 0) {\n injectionCode += `${state._declareLocalVar(\"vertexID\", NodeMaterialBlockConnectionPointTypes.Float)};\\n`;\n }\n injectionCode += `#ifdef MORPHTARGETS\\n`;\n const isWebGPU = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */;\n const uniformsPrefix = isWebGPU ? \"uniforms.\" : \"\";\n if (manager !== null && manager !== void 0 && manager.isUsingTextureForTargets) {\n injectionCode += `for (${isWebGPU ? \"var\" : \"int\"} i = 0; i < NUM_MORPH_INFLUENCERS; i++) {\\n`;\n injectionCode += `if (i >= ${uniformsPrefix}morphTargetCount) { break; }\\n`;\n injectionCode += `vertexID = ${isWebGPU ? \"f32(vertexInputs.vertexIndex\" : \"float(gl_VertexID\"}) * ${uniformsPrefix}morphTargetTextureInfo.x;\\n`;\n injectionCode += `${positionOutput.associatedVariableName} += (readVector3FromRawSampler(i, vertexID) - ${position.associatedVariableName}) * ${uniformsPrefix}morphTargetInfluences[i];\\n`;\n injectionCode += `vertexID += 1.0;\\n`;\n if (hasNormals) {\n injectionCode += `#ifdef MORPHTARGETS_NORMAL\\n`;\n injectionCode += `${normalOutput.associatedVariableName} += (readVector3FromRawSampler(i, vertexID) - ${normal.associatedVariableName}) * ${uniformsPrefix}morphTargetInfluences[i];\\n`;\n injectionCode += `vertexID += 1.0;\\n`;\n injectionCode += `#endif\\n`;\n }\n if (hasUVs) {\n injectionCode += `#ifdef MORPHTARGETS_UV\\n`;\n injectionCode += `${uvOutput.associatedVariableName} += (readVector3FromRawSampler(i, vertexID).xy - ${uv.associatedVariableName}) * ${uniformsPrefix}morphTargetInfluences[i];\\n`;\n injectionCode += `vertexID += 1.0;\\n`;\n injectionCode += `#endif\\n`;\n }\n if (hasTangents) {\n injectionCode += `#ifdef MORPHTARGETS_TANGENT\\n`;\n injectionCode += `${tangentOutput.associatedVariableName}.xyz += (readVector3FromRawSampler(i, vertexID) - ${tangent.associatedVariableName}.xyz) * ${uniformsPrefix}morphTargetInfluences[i];\\n`;\n if (tangent.type === NodeMaterialBlockConnectionPointTypes.Vector4) {\n injectionCode += `${tangentOutput.associatedVariableName}.w = ${tangent.associatedVariableName}.w;\\n`;\n } else {\n injectionCode += `${tangentOutput.associatedVariableName}.w = 1.;\\n`;\n }\n injectionCode += `#endif\\n`;\n }\n injectionCode += \"}\\n\";\n } else {\n for (let index = 0; index < repeatCount; index++) {\n injectionCode += `${positionOutput.associatedVariableName} += (position${index} - ${position.associatedVariableName}) * ${uniformsPrefix}morphTargetInfluences[${index}];\\n`;\n if (hasNormals) {\n injectionCode += `#ifdef MORPHTARGETS_NORMAL\\n`;\n injectionCode += `${normalOutput.associatedVariableName} += (normal${index} - ${normal.associatedVariableName}) * ${uniformsPrefix}morphTargetInfluences[${index}];\\n`;\n injectionCode += `#endif\\n`;\n }\n if (hasUVs) {\n injectionCode += `#ifdef MORPHTARGETS_UV\\n`;\n injectionCode += `${uvOutput.associatedVariableName}.xy += (uv_${index} - ${uv.associatedVariableName}.xy) * ${uniformsPrefix}morphTargetInfluences[${index}];\\n`;\n injectionCode += `#endif\\n`;\n }\n if (hasTangents) {\n injectionCode += `#ifdef MORPHTARGETS_TANGENT\\n`;\n injectionCode += `${tangentOutput.associatedVariableName}.xyz += (tangent${index} - ${tangent.associatedVariableName}.xyz) * ${uniformsPrefix}morphTargetInfluences[${index}];\\n`;\n if (tangent.type === NodeMaterialBlockConnectionPointTypes.Vector4) {\n injectionCode += `${tangentOutput.associatedVariableName}.w = ${tangent.associatedVariableName}.w;\\n`;\n } else {\n injectionCode += `${tangentOutput.associatedVariableName}.w = 1.;\\n`;\n }\n injectionCode += `#endif\\n`;\n }\n }\n }\n injectionCode += `#endif\\n`;\n state.compilationString = state.compilationString.replace(this._repeatableContentAnchor, injectionCode);\n if (repeatCount > 0) {\n for (let index = 0; index < repeatCount; index++) {\n state.attributes.push(VertexBuffer.PositionKind + index);\n if (hasNormals) {\n state.attributes.push(VertexBuffer.NormalKind + index);\n }\n if (hasTangents) {\n state.attributes.push(VertexBuffer.TangentKind + index);\n }\n if (hasUVs) {\n state.attributes.push(VertexBuffer.UVKind + \"_\" + index);\n }\n }\n }\n }\n _buildBlock(state) {\n super._buildBlock(state);\n // Register for defines\n state.sharedData.blocksWithDefines.push(this);\n // Register for binding\n state.sharedData.bindableBlocks.push(this);\n // Register for repeatable content generation\n state.sharedData.repeatableContentBlocks.push(this);\n // Emit code\n const position = this.position;\n const normal = this.normal;\n const tangent = this.tangent;\n const uv = this.uv;\n const positionOutput = this.positionOutput;\n const normalOutput = this.normalOutput;\n const tangentOutput = this.tangentOutput;\n const uvOutput = this.uvOutput;\n const comments = `//${this.name}`;\n state.uniforms.push(\"morphTargetInfluences\");\n state.uniforms.push(\"morphTargetCount\");\n state.uniforms.push(\"morphTargetTextureInfo\");\n state.uniforms.push(\"morphTargetTextureIndices\");\n state.samplers.push(\"morphTargets\");\n state._emitFunctionFromInclude(\"morphTargetsVertexGlobalDeclaration\", comments);\n state._emitFunctionFromInclude(\"morphTargetsVertexDeclaration\", comments, {\n repeatKey: \"maxSimultaneousMorphTargets\"\n });\n state.compilationString += `${state._declareOutput(positionOutput)} = ${position.associatedVariableName};\\n`;\n state.compilationString += `#ifdef NORMAL\\n`;\n state.compilationString += `${state._declareOutput(normalOutput)} = ${normal.associatedVariableName};\\n`;\n state.compilationString += `#else\\n`;\n state.compilationString += `${state._declareOutput(normalOutput)} = vec3(0., 0., 0.);\\n`;\n state.compilationString += `#endif\\n`;\n state.compilationString += `#ifdef TANGENT\\n`;\n state.compilationString += `${state._declareOutput(tangentOutput)} = ${tangent.associatedVariableName};\\n`;\n state.compilationString += `#else\\n`;\n state.compilationString += `${state._declareOutput(tangentOutput)} = vec4(0., 0., 0., 0.);\\n`;\n state.compilationString += `#endif\\n`;\n state.compilationString += `#ifdef UV1\\n`;\n state.compilationString += `${state._declareOutput(uvOutput)} = ${uv.associatedVariableName};\\n`;\n state.compilationString += `#else\\n`;\n state.compilationString += `${state._declareOutput(uvOutput)} = vec2(0., 0.);\\n`;\n state.compilationString += `#endif\\n`;\n // Repeatable content\n this._repeatableContentAnchor = state._repeatableContentAnchor;\n state.compilationString += this._repeatableContentAnchor;\n return this;\n }\n}\nRegisterClass(\"BABYLON.MorphTargetsBlock\", MorphTargetsBlock);","map":{"version":3,"names":["NodeMaterialBlock","NodeMaterialBlockConnectionPointTypes","NodeMaterialBlockTargets","VertexBuffer","InputBlock","RegisterClass","BindMorphTargetParameters","PrepareDefinesForMorphTargets","MorphTargetsBlock","constructor","name","Vertex","registerInput","Vector3","AutoDetect","tangent","addExcludedConnectionPointFromAllowedTypes","Color4","Vector4","Vector2","registerOutput","getClassName","position","_inputs","normal","uv","positionOutput","_outputs","normalOutput","tangentOutput","uvOutput","initialize","state","_excludeVariableName","_initShaderSourceAsync","shaderLanguage","_this","_asyncToGenerator","_codeIsReady","Promise","all","onCodeIsReadyObservable","notifyObservers","autoConfigure","material","additionalFilteringInfo","isConnected","positionInput","getInputBlockByPredicate","b","isAttribute","setAsAttribute","output","connectTo","normalInput","tangentInput","uvInput","prepareDefines","mesh","nodeMaterial","defines","morphTargetManager","isUsingTextureForTargets","numMaxInfluencers","numInfluencers","markAsAttributesDirty","_areAttributesDirty","bind","effect","_bind","replaceRepeatableContent","vertexShaderState","fragmentShaderState","repeatCount","NUM_MORPH_INFLUENCERS","manager","hasNormals","supportsNormals","hasTangents","supportsTangents","hasUVs","supportsUVs","injectionCode","_declareLocalVar","Float","isWebGPU","uniformsPrefix","associatedVariableName","type","index","compilationString","replace","_repeatableContentAnchor","attributes","push","PositionKind","NormalKind","TangentKind","UVKind","_buildBlock","sharedData","blocksWithDefines","bindableBlocks","repeatableContentBlocks","comments","uniforms","samplers","_emitFunctionFromInclude","repeatKey","_declareOutput"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Materials/Node/Blocks/Vertex/morphTargetsBlock.js"],"sourcesContent":["import { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { VertexBuffer } from \"../../../../Buffers/buffer.js\";\nimport { InputBlock } from \"../Input/inputBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { BindMorphTargetParameters, PrepareDefinesForMorphTargets } from \"../../../materialHelper.functions.js\";\n/**\n * Block used to add morph targets support to vertex shader\n */\nexport class MorphTargetsBlock extends NodeMaterialBlock {\n /**\n * Create a new MorphTargetsBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Vertex);\n this.registerInput(\"position\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this.registerInput(\"normal\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this.registerInput(\"tangent\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.tangent.addExcludedConnectionPointFromAllowedTypes(NodeMaterialBlockConnectionPointTypes.Color4 | NodeMaterialBlockConnectionPointTypes.Vector4 | NodeMaterialBlockConnectionPointTypes.Vector3);\n this.registerInput(\"uv\", NodeMaterialBlockConnectionPointTypes.Vector2);\n this.registerOutput(\"positionOutput\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this.registerOutput(\"normalOutput\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this.registerOutput(\"tangentOutput\", NodeMaterialBlockConnectionPointTypes.Vector4);\n this.registerOutput(\"uvOutput\", NodeMaterialBlockConnectionPointTypes.Vector2);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"MorphTargetsBlock\";\n }\n /**\n * Gets the position input component\n */\n get position() {\n return this._inputs[0];\n }\n /**\n * Gets the normal input component\n */\n get normal() {\n return this._inputs[1];\n }\n /**\n * Gets the tangent input component\n */\n get tangent() {\n return this._inputs[2];\n }\n /**\n * Gets the tangent input component\n */\n get uv() {\n return this._inputs[3];\n }\n /**\n * Gets the position output component\n */\n get positionOutput() {\n return this._outputs[0];\n }\n /**\n * Gets the normal output component\n */\n get normalOutput() {\n return this._outputs[1];\n }\n /**\n * Gets the tangent output component\n */\n get tangentOutput() {\n return this._outputs[2];\n }\n /**\n * Gets the tangent output component\n */\n get uvOutput() {\n return this._outputs[3];\n }\n initialize(state) {\n state._excludeVariableName(\"morphTargetInfluences\");\n this._initShaderSourceAsync(state.shaderLanguage);\n }\n async _initShaderSourceAsync(shaderLanguage) {\n this._codeIsReady = false;\n if (shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n await Promise.all([\n import(\"../../../../ShadersWGSL/ShadersInclude/morphTargetsVertex.js\"),\n import(\"../../../../ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.js\"),\n import(\"../../../../ShadersWGSL/ShadersInclude/morphTargetsVertexGlobal.js\"),\n import(\"../../../../ShadersWGSL/ShadersInclude/morphTargetsVertexGlobalDeclaration.js\"),\n ]);\n }\n else {\n await Promise.all([\n import(\"../../../../Shaders/ShadersInclude/morphTargetsVertex.js\"),\n import(\"../../../../Shaders/ShadersInclude/morphTargetsVertexDeclaration.js\"),\n import(\"../../../../Shaders/ShadersInclude/morphTargetsVertexGlobal.js\"),\n import(\"../../../../Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.js\"),\n ]);\n }\n this._codeIsReady = true;\n this.onCodeIsReadyObservable.notifyObservers(this);\n }\n autoConfigure(material, additionalFilteringInfo = () => true) {\n if (!this.position.isConnected) {\n let positionInput = material.getInputBlockByPredicate((b) => b.isAttribute && b.name === \"position\" && additionalFilteringInfo(b));\n if (!positionInput) {\n positionInput = new InputBlock(\"position\");\n positionInput.setAsAttribute();\n }\n positionInput.output.connectTo(this.position);\n }\n if (!this.normal.isConnected) {\n let normalInput = material.getInputBlockByPredicate((b) => b.isAttribute && b.name === \"normal\" && additionalFilteringInfo(b));\n if (!normalInput) {\n normalInput = new InputBlock(\"normal\");\n normalInput.setAsAttribute(\"normal\");\n }\n normalInput.output.connectTo(this.normal);\n }\n if (!this.tangent.isConnected) {\n let tangentInput = material.getInputBlockByPredicate((b) => b.isAttribute && b.name === \"tangent\" && additionalFilteringInfo(b));\n if (!tangentInput) {\n tangentInput = new InputBlock(\"tangent\");\n tangentInput.setAsAttribute(\"tangent\");\n }\n tangentInput.output.connectTo(this.tangent);\n }\n if (!this.uv.isConnected) {\n let uvInput = material.getInputBlockByPredicate((b) => b.isAttribute && b.name === \"uv\" && additionalFilteringInfo(b));\n if (!uvInput) {\n uvInput = new InputBlock(\"uv\");\n uvInput.setAsAttribute(\"uv\");\n }\n uvInput.output.connectTo(this.uv);\n }\n }\n prepareDefines(mesh, nodeMaterial, defines) {\n if (mesh.morphTargetManager) {\n const morphTargetManager = mesh.morphTargetManager;\n if (morphTargetManager?.isUsingTextureForTargets && (morphTargetManager.numMaxInfluencers || morphTargetManager.numInfluencers) !== defines[\"NUM_MORPH_INFLUENCERS\"]) {\n defines.markAsAttributesDirty();\n }\n }\n if (!defines._areAttributesDirty) {\n return;\n }\n PrepareDefinesForMorphTargets(mesh, defines);\n }\n bind(effect, nodeMaterial, mesh) {\n if (mesh && mesh.morphTargetManager && mesh.morphTargetManager.numInfluencers > 0) {\n BindMorphTargetParameters(mesh, effect);\n if (mesh.morphTargetManager.isUsingTextureForTargets) {\n mesh.morphTargetManager._bind(effect);\n }\n }\n }\n replaceRepeatableContent(vertexShaderState, fragmentShaderState, mesh, defines) {\n const position = this.position;\n const normal = this.normal;\n const tangent = this.tangent;\n const uv = this.uv;\n const positionOutput = this.positionOutput;\n const normalOutput = this.normalOutput;\n const tangentOutput = this.tangentOutput;\n const uvOutput = this.uvOutput;\n const state = vertexShaderState;\n const repeatCount = defines.NUM_MORPH_INFLUENCERS;\n const manager = mesh.morphTargetManager;\n const hasNormals = manager && manager.supportsNormals && defines[\"NORMAL\"];\n const hasTangents = manager && manager.supportsTangents && defines[\"TANGENT\"];\n const hasUVs = manager && manager.supportsUVs && defines[\"UV1\"];\n let injectionCode = \"\";\n if (manager?.isUsingTextureForTargets && repeatCount > 0) {\n injectionCode += `${state._declareLocalVar(\"vertexID\", NodeMaterialBlockConnectionPointTypes.Float)};\\n`;\n }\n injectionCode += `#ifdef MORPHTARGETS\\n`;\n const isWebGPU = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */;\n const uniformsPrefix = isWebGPU ? \"uniforms.\" : \"\";\n if (manager?.isUsingTextureForTargets) {\n injectionCode += `for (${isWebGPU ? \"var\" : \"int\"} i = 0; i < NUM_MORPH_INFLUENCERS; i++) {\\n`;\n injectionCode += `if (i >= ${uniformsPrefix}morphTargetCount) { break; }\\n`;\n injectionCode += `vertexID = ${isWebGPU ? \"f32(vertexInputs.vertexIndex\" : \"float(gl_VertexID\"}) * ${uniformsPrefix}morphTargetTextureInfo.x;\\n`;\n injectionCode += `${positionOutput.associatedVariableName} += (readVector3FromRawSampler(i, vertexID) - ${position.associatedVariableName}) * ${uniformsPrefix}morphTargetInfluences[i];\\n`;\n injectionCode += `vertexID += 1.0;\\n`;\n if (hasNormals) {\n injectionCode += `#ifdef MORPHTARGETS_NORMAL\\n`;\n injectionCode += `${normalOutput.associatedVariableName} += (readVector3FromRawSampler(i, vertexID) - ${normal.associatedVariableName}) * ${uniformsPrefix}morphTargetInfluences[i];\\n`;\n injectionCode += `vertexID += 1.0;\\n`;\n injectionCode += `#endif\\n`;\n }\n if (hasUVs) {\n injectionCode += `#ifdef MORPHTARGETS_UV\\n`;\n injectionCode += `${uvOutput.associatedVariableName} += (readVector3FromRawSampler(i, vertexID).xy - ${uv.associatedVariableName}) * ${uniformsPrefix}morphTargetInfluences[i];\\n`;\n injectionCode += `vertexID += 1.0;\\n`;\n injectionCode += `#endif\\n`;\n }\n if (hasTangents) {\n injectionCode += `#ifdef MORPHTARGETS_TANGENT\\n`;\n injectionCode += `${tangentOutput.associatedVariableName}.xyz += (readVector3FromRawSampler(i, vertexID) - ${tangent.associatedVariableName}.xyz) * ${uniformsPrefix}morphTargetInfluences[i];\\n`;\n if (tangent.type === NodeMaterialBlockConnectionPointTypes.Vector4) {\n injectionCode += `${tangentOutput.associatedVariableName}.w = ${tangent.associatedVariableName}.w;\\n`;\n }\n else {\n injectionCode += `${tangentOutput.associatedVariableName}.w = 1.;\\n`;\n }\n injectionCode += `#endif\\n`;\n }\n injectionCode += \"}\\n\";\n }\n else {\n for (let index = 0; index < repeatCount; index++) {\n injectionCode += `${positionOutput.associatedVariableName} += (position${index} - ${position.associatedVariableName}) * ${uniformsPrefix}morphTargetInfluences[${index}];\\n`;\n if (hasNormals) {\n injectionCode += `#ifdef MORPHTARGETS_NORMAL\\n`;\n injectionCode += `${normalOutput.associatedVariableName} += (normal${index} - ${normal.associatedVariableName}) * ${uniformsPrefix}morphTargetInfluences[${index}];\\n`;\n injectionCode += `#endif\\n`;\n }\n if (hasUVs) {\n injectionCode += `#ifdef MORPHTARGETS_UV\\n`;\n injectionCode += `${uvOutput.associatedVariableName}.xy += (uv_${index} - ${uv.associatedVariableName}.xy) * ${uniformsPrefix}morphTargetInfluences[${index}];\\n`;\n injectionCode += `#endif\\n`;\n }\n if (hasTangents) {\n injectionCode += `#ifdef MORPHTARGETS_TANGENT\\n`;\n injectionCode += `${tangentOutput.associatedVariableName}.xyz += (tangent${index} - ${tangent.associatedVariableName}.xyz) * ${uniformsPrefix}morphTargetInfluences[${index}];\\n`;\n if (tangent.type === NodeMaterialBlockConnectionPointTypes.Vector4) {\n injectionCode += `${tangentOutput.associatedVariableName}.w = ${tangent.associatedVariableName}.w;\\n`;\n }\n else {\n injectionCode += `${tangentOutput.associatedVariableName}.w = 1.;\\n`;\n }\n injectionCode += `#endif\\n`;\n }\n }\n }\n injectionCode += `#endif\\n`;\n state.compilationString = state.compilationString.replace(this._repeatableContentAnchor, injectionCode);\n if (repeatCount > 0) {\n for (let index = 0; index < repeatCount; index++) {\n state.attributes.push(VertexBuffer.PositionKind + index);\n if (hasNormals) {\n state.attributes.push(VertexBuffer.NormalKind + index);\n }\n if (hasTangents) {\n state.attributes.push(VertexBuffer.TangentKind + index);\n }\n if (hasUVs) {\n state.attributes.push(VertexBuffer.UVKind + \"_\" + index);\n }\n }\n }\n }\n _buildBlock(state) {\n super._buildBlock(state);\n // Register for defines\n state.sharedData.blocksWithDefines.push(this);\n // Register for binding\n state.sharedData.bindableBlocks.push(this);\n // Register for repeatable content generation\n state.sharedData.repeatableContentBlocks.push(this);\n // Emit code\n const position = this.position;\n const normal = this.normal;\n const tangent = this.tangent;\n const uv = this.uv;\n const positionOutput = this.positionOutput;\n const normalOutput = this.normalOutput;\n const tangentOutput = this.tangentOutput;\n const uvOutput = this.uvOutput;\n const comments = `//${this.name}`;\n state.uniforms.push(\"morphTargetInfluences\");\n state.uniforms.push(\"morphTargetCount\");\n state.uniforms.push(\"morphTargetTextureInfo\");\n state.uniforms.push(\"morphTargetTextureIndices\");\n state.samplers.push(\"morphTargets\");\n state._emitFunctionFromInclude(\"morphTargetsVertexGlobalDeclaration\", comments);\n state._emitFunctionFromInclude(\"morphTargetsVertexDeclaration\", comments, {\n repeatKey: \"maxSimultaneousMorphTargets\",\n });\n state.compilationString += `${state._declareOutput(positionOutput)} = ${position.associatedVariableName};\\n`;\n state.compilationString += `#ifdef NORMAL\\n`;\n state.compilationString += `${state._declareOutput(normalOutput)} = ${normal.associatedVariableName};\\n`;\n state.compilationString += `#else\\n`;\n state.compilationString += `${state._declareOutput(normalOutput)} = vec3(0., 0., 0.);\\n`;\n state.compilationString += `#endif\\n`;\n state.compilationString += `#ifdef TANGENT\\n`;\n state.compilationString += `${state._declareOutput(tangentOutput)} = ${tangent.associatedVariableName};\\n`;\n state.compilationString += `#else\\n`;\n state.compilationString += `${state._declareOutput(tangentOutput)} = vec4(0., 0., 0., 0.);\\n`;\n state.compilationString += `#endif\\n`;\n state.compilationString += `#ifdef UV1\\n`;\n state.compilationString += `${state._declareOutput(uvOutput)} = ${uv.associatedVariableName};\\n`;\n state.compilationString += `#else\\n`;\n state.compilationString += `${state._declareOutput(uvOutput)} = vec2(0., 0.);\\n`;\n state.compilationString += `#endif\\n`;\n // Repeatable content\n this._repeatableContentAnchor = state._repeatableContentAnchor;\n state.compilationString += this._repeatableContentAnchor;\n return this;\n }\n}\nRegisterClass(\"BABYLON.MorphTargetsBlock\", MorphTargetsBlock);\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|