1 |
- {"ast":null,"code":"import { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\n/**\n * Block used to get the derivative value on x and y of a given input\n */\nexport class DerivativeBlock extends NodeMaterialBlock {\n /**\n * Create a new DerivativeBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"input\", NodeMaterialBlockConnectionPointTypes.AutoDetect, false);\n this.registerOutput(\"dx\", NodeMaterialBlockConnectionPointTypes.BasedOnInput);\n this.registerOutput(\"dy\", NodeMaterialBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._outputs[1]._typeConnectionSource = this._inputs[0];\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"DerivativeBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the derivative output on x\n */\n get dx() {\n return this._outputs[0];\n }\n /**\n * Gets the derivative output on y\n */\n get dy() {\n return this._outputs[1];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const dx = this._outputs[0];\n const dy = this._outputs[1];\n state._emitExtension(\"derivatives\", \"#extension GL_OES_standard_derivatives : enable\");\n let dpdx = \"dFdx\";\n let dpdy = \"dFdy\";\n if (state.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n dpdx = \"dpdx\";\n dpdy = \"dpdy\";\n }\n if (dx.hasEndpoints) {\n state.compilationString += state._declareOutput(dx) + ` = ${dpdx}(${this.input.associatedVariableName});\\n`;\n }\n if (dy.hasEndpoints) {\n state.compilationString += state._declareOutput(dy) + ` = ${dpdy}(${this.input.associatedVariableName});\\n`;\n }\n return this;\n }\n}\nRegisterClass(\"BABYLON.DerivativeBlock\", DerivativeBlock);","map":{"version":3,"names":["NodeMaterialBlock","NodeMaterialBlockConnectionPointTypes","NodeMaterialBlockTargets","RegisterClass","DerivativeBlock","constructor","name","Fragment","registerInput","AutoDetect","registerOutput","BasedOnInput","_outputs","_typeConnectionSource","_inputs","getClassName","input","dx","dy","_buildBlock","state","_emitExtension","dpdx","dpdy","shaderLanguage","hasEndpoints","compilationString","_declareOutput","associatedVariableName"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Materials/Node/Blocks/Fragment/derivativeBlock.js"],"sourcesContent":["import { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\n/**\n * Block used to get the derivative value on x and y of a given input\n */\nexport class DerivativeBlock extends NodeMaterialBlock {\n /**\n * Create a new DerivativeBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"input\", NodeMaterialBlockConnectionPointTypes.AutoDetect, false);\n this.registerOutput(\"dx\", NodeMaterialBlockConnectionPointTypes.BasedOnInput);\n this.registerOutput(\"dy\", NodeMaterialBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._outputs[1]._typeConnectionSource = this._inputs[0];\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"DerivativeBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the derivative output on x\n */\n get dx() {\n return this._outputs[0];\n }\n /**\n * Gets the derivative output on y\n */\n get dy() {\n return this._outputs[1];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const dx = this._outputs[0];\n const dy = this._outputs[1];\n state._emitExtension(\"derivatives\", \"#extension GL_OES_standard_derivatives : enable\");\n let dpdx = \"dFdx\";\n let dpdy = \"dFdy\";\n if (state.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n dpdx = \"dpdx\";\n dpdy = \"dpdy\";\n }\n if (dx.hasEndpoints) {\n state.compilationString += state._declareOutput(dx) + ` = ${dpdx}(${this.input.associatedVariableName});\\n`;\n }\n if (dy.hasEndpoints) {\n state.compilationString += state._declareOutput(dy) + ` = ${dpdy}(${this.input.associatedVariableName});\\n`;\n }\n return this;\n }\n}\nRegisterClass(\"BABYLON.DerivativeBlock\", DerivativeBlock);\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,4BAA4B;AAC9D,SAASC,qCAAqC,QAAQ,sDAAsD;AAC5G,SAASC,wBAAwB,QAAQ,yCAAyC;AAClF,SAASC,aAAa,QAAQ,+BAA+B;AAC7D;AACA;AACA;AACA,OAAO,MAAMC,eAAe,SAASJ,iBAAiB,CAAC;EACnD;AACJ;AACA;AACA;EACIK,WAAWA,CAACC,IAAI,EAAE;IACd,KAAK,CAACA,IAAI,EAAEJ,wBAAwB,CAACK,QAAQ,CAAC;IAC9C,IAAI,CAACC,aAAa,CAAC,OAAO,EAAEP,qCAAqC,CAACQ,UAAU,EAAE,KAAK,CAAC;IACpF,IAAI,CAACC,cAAc,CAAC,IAAI,EAAET,qCAAqC,CAACU,YAAY,CAAC;IAC7E,IAAI,CAACD,cAAc,CAAC,IAAI,EAAET,qCAAqC,CAACU,YAAY,CAAC;IAC7E,IAAI,CAACC,QAAQ,CAAC,CAAC,CAAC,CAACC,qBAAqB,GAAG,IAAI,CAACC,OAAO,CAAC,CAAC,CAAC;IACxD,IAAI,CAACF,QAAQ,CAAC,CAAC,CAAC,CAACC,qBAAqB,GAAG,IAAI,CAACC,OAAO,CAAC,CAAC,CAAC;EAC5D;EACA;AACJ;AACA;AACA;EACIC,YAAYA,CAAA,EAAG;IACX,OAAO,iBAAiB;EAC5B;EACA;AACJ;AACA;EACI,IAAIC,KAAKA,CAAA,EAAG;IACR,OAAO,IAAI,CAACF,OAAO,CAAC,CAAC,CAAC;EAC1B;EACA;AACJ;AACA;EACI,IAAIG,EAAEA,CAAA,EAAG;IACL,OAAO,IAAI,CAACL,QAAQ,CAAC,CAAC,CAAC;EAC3B;EACA;AACJ;AACA;EACI,IAAIM,EAAEA,CAAA,EAAG;IACL,OAAO,IAAI,CAACN,QAAQ,CAAC,CAAC,CAAC;EAC3B;EACAO,WAAWA,CAACC,KAAK,EAAE;IACf,KAAK,CAACD,WAAW,CAACC,KAAK,CAAC;IACxB,MAAMH,EAAE,GAAG,IAAI,CAACL,QAAQ,CAAC,CAAC,CAAC;IAC3B,MAAMM,EAAE,GAAG,IAAI,CAACN,QAAQ,CAAC,CAAC,CAAC;IAC3BQ,KAAK,CAACC,cAAc,CAAC,aAAa,EAAE,iDAAiD,CAAC;IACtF,IAAIC,IAAI,GAAG,MAAM;IACjB,IAAIC,IAAI,GAAG,MAAM;IACjB,IAAIH,KAAK,CAACI,cAAc,KAAK,CAAC,CAAC,2BAA2B;MACtDF,IAAI,GAAG,MAAM;MACbC,IAAI,GAAG,MAAM;IACjB;IACA,IAAIN,EAAE,CAACQ,YAAY,EAAE;MACjBL,KAAK,CAACM,iBAAiB,IAAIN,KAAK,CAACO,cAAc,CAACV,EAAE,CAAC,GAAG,MAAMK,IAAI,IAAI,IAAI,CAACN,KAAK,CAACY,sBAAsB,MAAM;IAC/G;IACA,IAAIV,EAAE,CAACO,YAAY,EAAE;MACjBL,KAAK,CAACM,iBAAiB,IAAIN,KAAK,CAACO,cAAc,CAACT,EAAE,CAAC,GAAG,MAAMK,IAAI,IAAI,IAAI,CAACP,KAAK,CAACY,sBAAsB,MAAM;IAC/G;IACA,OAAO,IAAI;EACf;AACJ;AACAzB,aAAa,CAAC,yBAAyB,EAAEC,eAAe,CAAC","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|