1 |
- {"ast":null,"code":"import { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialSystemValues } from \"../../Enums/nodeMaterialSystemValues.js\";\nimport { InputBlock } from \"../Input/inputBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\n/**\n * Block used to add support for instances\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/copies/instances\n */\nexport class InstancesBlock extends NodeMaterialBlock {\n /**\n * Creates a new InstancesBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Vertex);\n this.registerInput(\"world0\", NodeMaterialBlockConnectionPointTypes.Vector4);\n this.registerInput(\"world1\", NodeMaterialBlockConnectionPointTypes.Vector4);\n this.registerInput(\"world2\", NodeMaterialBlockConnectionPointTypes.Vector4);\n this.registerInput(\"world3\", NodeMaterialBlockConnectionPointTypes.Vector4);\n this.registerInput(\"world\", NodeMaterialBlockConnectionPointTypes.Matrix, true);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Matrix);\n this.registerOutput(\"instanceID\", NodeMaterialBlockConnectionPointTypes.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"InstancesBlock\";\n }\n /**\n * Gets the first world row input component\n */\n get world0() {\n return this._inputs[0];\n }\n /**\n * Gets the second world row input component\n */\n get world1() {\n return this._inputs[1];\n }\n /**\n * Gets the third world row input component\n */\n get world2() {\n return this._inputs[2];\n }\n /**\n * Gets the forth world row input component\n */\n get world3() {\n return this._inputs[3];\n }\n /**\n * Gets the world input component\n */\n get world() {\n return this._inputs[4];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Gets the instanceID component\n */\n get instanceID() {\n return this._outputs[1];\n }\n autoConfigure(material, additionalFilteringInfo = () => true) {\n if (!this.world0.connectedPoint) {\n let world0Input = material.getInputBlockByPredicate(b => b.isAttribute && b.name === \"world0\" && additionalFilteringInfo(b));\n if (!world0Input) {\n world0Input = new InputBlock(\"world0\");\n world0Input.setAsAttribute(\"world0\");\n }\n world0Input.output.connectTo(this.world0);\n }\n if (!this.world1.connectedPoint) {\n let world1Input = material.getInputBlockByPredicate(b => b.isAttribute && b.name === \"world1\" && additionalFilteringInfo(b));\n if (!world1Input) {\n world1Input = new InputBlock(\"world1\");\n world1Input.setAsAttribute(\"world1\");\n }\n world1Input.output.connectTo(this.world1);\n }\n if (!this.world2.connectedPoint) {\n let world2Input = material.getInputBlockByPredicate(b => b.isAttribute && b.name === \"world2\" && additionalFilteringInfo(b));\n if (!world2Input) {\n world2Input = new InputBlock(\"world2\");\n world2Input.setAsAttribute(\"world2\");\n }\n world2Input.output.connectTo(this.world2);\n }\n if (!this.world3.connectedPoint) {\n let world3Input = material.getInputBlockByPredicate(b => b.isAttribute && b.name === \"world3\" && additionalFilteringInfo(b));\n if (!world3Input) {\n world3Input = new InputBlock(\"world3\");\n world3Input.setAsAttribute(\"world3\");\n }\n world3Input.output.connectTo(this.world3);\n }\n if (!this.world.connectedPoint) {\n let worldInput = material.getInputBlockByPredicate(b => b.isAttribute && b.name === \"world\" && additionalFilteringInfo(b));\n if (!worldInput) {\n worldInput = new InputBlock(\"world\");\n worldInput.setAsSystemValue(NodeMaterialSystemValues.World);\n }\n worldInput.output.connectTo(this.world);\n }\n this.world.define = \"!INSTANCES || THIN_INSTANCES\";\n }\n prepareDefines(mesh, nodeMaterial, defines, useInstances = false, subMesh) {\n let changed = false;\n if (defines[\"INSTANCES\"] !== useInstances) {\n defines.setValue(\"INSTANCES\", useInstances);\n changed = true;\n }\n if (subMesh && defines[\"THIN_INSTANCES\"] !== !!(subMesh !== null && subMesh !== void 0 && subMesh.getRenderingMesh().hasThinInstances)) {\n defines.setValue(\"THIN_INSTANCES\", !!(subMesh !== null && subMesh !== void 0 && subMesh.getRenderingMesh().hasThinInstances));\n changed = true;\n }\n if (changed) {\n defines.markAsUnprocessed();\n }\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const engine = state.sharedData.scene.getEngine();\n // Register for defines\n state.sharedData.blocksWithDefines.push(this);\n // Emit code\n const output = this._outputs[0];\n const instanceID = this._outputs[1];\n const world0 = this.world0;\n const world1 = this.world1;\n const world2 = this.world2;\n const world3 = this.world3;\n let mat4 = \"mat4\";\n let instance = \"gl_InstanceID\";\n let floatCast = \"float\";\n if (state.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n mat4 = \"mat4x4f\";\n instance = \"vertexInputs.instanceIndex\";\n floatCast = \"f32\";\n }\n state.compilationString += `#ifdef INSTANCES\\n`;\n state.compilationString += state._declareOutput(output) + ` = ${mat4}(${world0.associatedVariableName}, ${world1.associatedVariableName}, ${world2.associatedVariableName}, ${world3.associatedVariableName});\\n`;\n state.compilationString += `#ifdef THIN_INSTANCES\\n`;\n state.compilationString += `${output.associatedVariableName} = ${this.world.associatedVariableName} * ${output.associatedVariableName};\\n`;\n state.compilationString += `#endif\\n`;\n if (engine._caps.canUseGLInstanceID) {\n state.compilationString += state._declareOutput(instanceID) + ` = ${floatCast}(${instance});\\n`;\n } else {\n state.compilationString += state._declareOutput(instanceID) + ` = 0.0;\\n`;\n }\n state.compilationString += `#else\\n`;\n state.compilationString += state._declareOutput(output) + ` = ${this.world.associatedVariableName};\\n`;\n state.compilationString += state._declareOutput(instanceID) + ` = 0.0;\\n`;\n state.compilationString += `#endif\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.InstancesBlock\", InstancesBlock);","map":{"version":3,"names":["NodeMaterialBlock","NodeMaterialBlockTargets","NodeMaterialBlockConnectionPointTypes","NodeMaterialSystemValues","InputBlock","RegisterClass","InstancesBlock","constructor","name","Vertex","registerInput","Vector4","Matrix","registerOutput","Float","getClassName","world0","_inputs","world1","world2","world3","world","output","_outputs","instanceID","autoConfigure","material","additionalFilteringInfo","connectedPoint","world0Input","getInputBlockByPredicate","b","isAttribute","setAsAttribute","connectTo","world1Input","world2Input","world3Input","worldInput","setAsSystemValue","World","define","prepareDefines","mesh","nodeMaterial","defines","useInstances","subMesh","changed","setValue","getRenderingMesh","hasThinInstances","markAsUnprocessed","_buildBlock","state","engine","sharedData","scene","getEngine","blocksWithDefines","push","mat4","instance","floatCast","shaderLanguage","compilationString","_declareOutput","associatedVariableName","_caps","canUseGLInstanceID"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Materials/Node/Blocks/Vertex/instancesBlock.js"],"sourcesContent":["import { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialSystemValues } from \"../../Enums/nodeMaterialSystemValues.js\";\nimport { InputBlock } from \"../Input/inputBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\n/**\n * Block used to add support for instances\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/copies/instances\n */\nexport class InstancesBlock extends NodeMaterialBlock {\n /**\n * Creates a new InstancesBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Vertex);\n this.registerInput(\"world0\", NodeMaterialBlockConnectionPointTypes.Vector4);\n this.registerInput(\"world1\", NodeMaterialBlockConnectionPointTypes.Vector4);\n this.registerInput(\"world2\", NodeMaterialBlockConnectionPointTypes.Vector4);\n this.registerInput(\"world3\", NodeMaterialBlockConnectionPointTypes.Vector4);\n this.registerInput(\"world\", NodeMaterialBlockConnectionPointTypes.Matrix, true);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Matrix);\n this.registerOutput(\"instanceID\", NodeMaterialBlockConnectionPointTypes.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"InstancesBlock\";\n }\n /**\n * Gets the first world row input component\n */\n get world0() {\n return this._inputs[0];\n }\n /**\n * Gets the second world row input component\n */\n get world1() {\n return this._inputs[1];\n }\n /**\n * Gets the third world row input component\n */\n get world2() {\n return this._inputs[2];\n }\n /**\n * Gets the forth world row input component\n */\n get world3() {\n return this._inputs[3];\n }\n /**\n * Gets the world input component\n */\n get world() {\n return this._inputs[4];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Gets the instanceID component\n */\n get instanceID() {\n return this._outputs[1];\n }\n autoConfigure(material, additionalFilteringInfo = () => true) {\n if (!this.world0.connectedPoint) {\n let world0Input = material.getInputBlockByPredicate((b) => b.isAttribute && b.name === \"world0\" && additionalFilteringInfo(b));\n if (!world0Input) {\n world0Input = new InputBlock(\"world0\");\n world0Input.setAsAttribute(\"world0\");\n }\n world0Input.output.connectTo(this.world0);\n }\n if (!this.world1.connectedPoint) {\n let world1Input = material.getInputBlockByPredicate((b) => b.isAttribute && b.name === \"world1\" && additionalFilteringInfo(b));\n if (!world1Input) {\n world1Input = new InputBlock(\"world1\");\n world1Input.setAsAttribute(\"world1\");\n }\n world1Input.output.connectTo(this.world1);\n }\n if (!this.world2.connectedPoint) {\n let world2Input = material.getInputBlockByPredicate((b) => b.isAttribute && b.name === \"world2\" && additionalFilteringInfo(b));\n if (!world2Input) {\n world2Input = new InputBlock(\"world2\");\n world2Input.setAsAttribute(\"world2\");\n }\n world2Input.output.connectTo(this.world2);\n }\n if (!this.world3.connectedPoint) {\n let world3Input = material.getInputBlockByPredicate((b) => b.isAttribute && b.name === \"world3\" && additionalFilteringInfo(b));\n if (!world3Input) {\n world3Input = new InputBlock(\"world3\");\n world3Input.setAsAttribute(\"world3\");\n }\n world3Input.output.connectTo(this.world3);\n }\n if (!this.world.connectedPoint) {\n let worldInput = material.getInputBlockByPredicate((b) => b.isAttribute && b.name === \"world\" && additionalFilteringInfo(b));\n if (!worldInput) {\n worldInput = new InputBlock(\"world\");\n worldInput.setAsSystemValue(NodeMaterialSystemValues.World);\n }\n worldInput.output.connectTo(this.world);\n }\n this.world.define = \"!INSTANCES || THIN_INSTANCES\";\n }\n prepareDefines(mesh, nodeMaterial, defines, useInstances = false, subMesh) {\n let changed = false;\n if (defines[\"INSTANCES\"] !== useInstances) {\n defines.setValue(\"INSTANCES\", useInstances);\n changed = true;\n }\n if (subMesh && defines[\"THIN_INSTANCES\"] !== !!subMesh?.getRenderingMesh().hasThinInstances) {\n defines.setValue(\"THIN_INSTANCES\", !!subMesh?.getRenderingMesh().hasThinInstances);\n changed = true;\n }\n if (changed) {\n defines.markAsUnprocessed();\n }\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const engine = state.sharedData.scene.getEngine();\n // Register for defines\n state.sharedData.blocksWithDefines.push(this);\n // Emit code\n const output = this._outputs[0];\n const instanceID = this._outputs[1];\n const world0 = this.world0;\n const world1 = this.world1;\n const world2 = this.world2;\n const world3 = this.world3;\n let mat4 = \"mat4\";\n let instance = \"gl_InstanceID\";\n let floatCast = \"float\";\n if (state.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n mat4 = \"mat4x4f\";\n instance = \"vertexInputs.instanceIndex\";\n floatCast = \"f32\";\n }\n state.compilationString += `#ifdef INSTANCES\\n`;\n state.compilationString +=\n state._declareOutput(output) +\n ` = ${mat4}(${world0.associatedVariableName}, ${world1.associatedVariableName}, ${world2.associatedVariableName}, ${world3.associatedVariableName});\\n`;\n state.compilationString += `#ifdef THIN_INSTANCES\\n`;\n state.compilationString += `${output.associatedVariableName} = ${this.world.associatedVariableName} * ${output.associatedVariableName};\\n`;\n state.compilationString += `#endif\\n`;\n if (engine._caps.canUseGLInstanceID) {\n state.compilationString += state._declareOutput(instanceID) + ` = ${floatCast}(${instance});\\n`;\n }\n else {\n state.compilationString += state._declareOutput(instanceID) + ` = 0.0;\\n`;\n }\n state.compilationString += `#else\\n`;\n state.compilationString += state._declareOutput(output) + ` = ${this.world.associatedVariableName};\\n`;\n state.compilationString += state._declareOutput(instanceID) + ` = 0.0;\\n`;\n state.compilationString += `#endif\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.InstancesBlock\", InstancesBlock);\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|