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 { Logger } from \"../../../../Misc/logger.js\";\n/**\n * Block used to convert a height vector to a normal\n */\nexport class HeightToNormalBlock extends NodeMaterialBlock {\n /**\n * Creates a new HeightToNormalBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Fragment);\n /**\n * Defines if the output should be generated in world or tangent space.\n * Note that in tangent space the result is also scaled by 0.5 and offsetted by 0.5 so that it can directly be used as a PerturbNormal.normalMapColor input\n */\n this.generateInWorldSpace = false;\n /**\n * Defines that the worldNormal input will be normalized by the HeightToNormal block before being used\n */\n this.automaticNormalizationNormal = true;\n /**\n * Defines that the worldTangent input will be normalized by the HeightToNormal block before being used\n */\n this.automaticNormalizationTangent = true;\n this.registerInput(\"input\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerInput(\"worldPosition\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this.registerInput(\"worldNormal\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this.registerInput(\"worldTangent\", NodeMaterialBlockConnectionPointTypes.AutoDetect, true);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Vector4);\n this.registerOutput(\"xyz\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this._inputs[3].addExcludedConnectionPointFromAllowedTypes(NodeMaterialBlockConnectionPointTypes.Color3 | NodeMaterialBlockConnectionPointTypes.Vector3 | NodeMaterialBlockConnectionPointTypes.Vector4);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"HeightToNormalBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the position component\n */\n get worldPosition() {\n return this._inputs[1];\n }\n /**\n * Gets the normal component\n */\n get worldNormal() {\n return this._inputs[2];\n }\n /**\n * Gets the tangent component\n */\n get worldTangent() {\n return this._inputs[3];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Gets the xyz component\n */\n get xyz() {\n return this._outputs[1];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n const isWebGPU = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */;\n const fPrefix = state.fSuffix;\n if (!this.generateInWorldSpace && !this.worldTangent.isConnected) {\n Logger.Error(`You must connect the 'worldTangent' input of the ${this.name} block!`);\n }\n const startCode = this.generateInWorldSpace ? \"\" : `\n vec3 biTangent = cross(norm, tgt);\n mat3 TBN = mat3(tgt, biTangent, norm);\n `;\n const endCode = this.generateInWorldSpace ? \"\" : `\n result = TBN * result;\n result = result * vec3(0.5) + vec3(0.5);\n `;\n let heightToNormal = `\n vec4 heightToNormal(float height, vec3 position, vec3 tangent, vec3 normal) {\n vec3 tgt = ${this.automaticNormalizationTangent ? \"normalize(tangent);\" : \"tangent;\"}\n vec3 norm = ${this.automaticNormalizationNormal ? \"normalize(normal);\" : \"normal;\"}\n ${startCode}\n vec3 worlddX = dFdx(position);\n vec3 worlddY = dFdy(position);\n vec3 crossX = cross(norm, worlddX);\n vec3 crossY = cross(worlddY, norm);\n float d = abs(dot(crossY, worlddX));\n vec3 inToNormal = vec3(((((height + dFdx(height)) - height) * crossY) + (((height + dFdy(height)) - height) * crossX)) * sign(d));\n inToNormal.y *= -1.0;\n vec3 result = normalize((d * norm) - inToNormal);\n ${endCode}\n return vec4(result, 0.);\n }`;\n if (isWebGPU) {\n heightToNormal = state._babylonSLtoWGSL(heightToNormal);\n } else {\n state._emitExtension(\"derivatives\", \"#extension GL_OES_standard_derivatives : enable\");\n }\n state._emitFunction(\"heightToNormal\", heightToNormal, \"// heightToNormal\");\n state.compilationString += state._declareOutput(output) + ` = heightToNormal(${this.input.associatedVariableName}, ${this.worldPosition.associatedVariableName}, ${this.worldTangent.isConnected ? this.worldTangent.associatedVariableName : `vec3${fPrefix}(0.)`}.xyz, ${this.worldNormal.associatedVariableName});\\n`;\n if (this.xyz.hasEndpoints) {\n state.compilationString += state._declareOutput(this.xyz) + ` = ${this.output.associatedVariableName}.xyz;\\n`;\n }\n return this;\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode();\n codeString += `${this._codeVariableName}.generateInWorldSpace = ${this.generateInWorldSpace};\\n`;\n codeString += `${this._codeVariableName}.automaticNormalizationNormal = ${this.automaticNormalizationNormal};\\n`;\n codeString += `${this._codeVariableName}.automaticNormalizationTangent = ${this.automaticNormalizationTangent};\\n`;\n return codeString;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.generateInWorldSpace = this.generateInWorldSpace;\n serializationObject.automaticNormalizationNormal = this.automaticNormalizationNormal;\n serializationObject.automaticNormalizationTangent = this.automaticNormalizationTangent;\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n this.generateInWorldSpace = serializationObject.generateInWorldSpace;\n this.automaticNormalizationNormal = serializationObject.automaticNormalizationNormal;\n this.automaticNormalizationTangent = serializationObject.automaticNormalizationTangent;\n }\n}\n__decorate([editableInPropertyPage(\"Generate in world space instead of tangent space\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\", {\n notifiers: {\n update: true\n }\n})], HeightToNormalBlock.prototype, \"generateInWorldSpace\", void 0);\n__decorate([editableInPropertyPage(\"Force normalization for the worldNormal input\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\", {\n notifiers: {\n update: true\n }\n})], HeightToNormalBlock.prototype, \"automaticNormalizationNormal\", void 0);\n__decorate([editableInPropertyPage(\"Force normalization for the worldTangent input\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\", {\n notifiers: {\n update: true\n }\n})], HeightToNormalBlock.prototype, \"automaticNormalizationTangent\", void 0);\nRegisterClass(\"BABYLON.HeightToNormalBlock\", HeightToNormalBlock);","map":{"version":3,"names":["__decorate","NodeMaterialBlock","NodeMaterialBlockConnectionPointTypes","NodeMaterialBlockTargets","RegisterClass","editableInPropertyPage","Logger","HeightToNormalBlock","constructor","name","Fragment","generateInWorldSpace","automaticNormalizationNormal","automaticNormalizationTangent","registerInput","Float","Vector3","AutoDetect","registerOutput","Vector4","_inputs","addExcludedConnectionPointFromAllowedTypes","Color3","getClassName","input","worldPosition","worldNormal","worldTangent","output","_outputs","xyz","_buildBlock","state","isWebGPU","shaderLanguage","fPrefix","fSuffix","isConnected","Error","startCode","endCode","heightToNormal","_babylonSLtoWGSL","_emitExtension","_emitFunction","compilationString","_declareOutput","associatedVariableName","hasEndpoints","_dumpPropertiesCode","codeString","_codeVariableName","serialize","serializationObject","_deserialize","scene","rootUrl","notifiers","update","prototype"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Materials/Node/Blocks/Fragment/heightToNormalBlock.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 { Logger } from \"../../../../Misc/logger.js\";\n/**\n * Block used to convert a height vector to a normal\n */\nexport class HeightToNormalBlock extends NodeMaterialBlock {\n /**\n * Creates a new HeightToNormalBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Fragment);\n /**\n * Defines if the output should be generated in world or tangent space.\n * Note that in tangent space the result is also scaled by 0.5 and offsetted by 0.5 so that it can directly be used as a PerturbNormal.normalMapColor input\n */\n this.generateInWorldSpace = false;\n /**\n * Defines that the worldNormal input will be normalized by the HeightToNormal block before being used\n */\n this.automaticNormalizationNormal = true;\n /**\n * Defines that the worldTangent input will be normalized by the HeightToNormal block before being used\n */\n this.automaticNormalizationTangent = true;\n this.registerInput(\"input\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerInput(\"worldPosition\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this.registerInput(\"worldNormal\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this.registerInput(\"worldTangent\", NodeMaterialBlockConnectionPointTypes.AutoDetect, true);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Vector4);\n this.registerOutput(\"xyz\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this._inputs[3].addExcludedConnectionPointFromAllowedTypes(NodeMaterialBlockConnectionPointTypes.Color3 | NodeMaterialBlockConnectionPointTypes.Vector3 | NodeMaterialBlockConnectionPointTypes.Vector4);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"HeightToNormalBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the position component\n */\n get worldPosition() {\n return this._inputs[1];\n }\n /**\n * Gets the normal component\n */\n get worldNormal() {\n return this._inputs[2];\n }\n /**\n * Gets the tangent component\n */\n get worldTangent() {\n return this._inputs[3];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Gets the xyz component\n */\n get xyz() {\n return this._outputs[1];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n const isWebGPU = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */;\n const fPrefix = state.fSuffix;\n if (!this.generateInWorldSpace && !this.worldTangent.isConnected) {\n Logger.Error(`You must connect the 'worldTangent' input of the ${this.name} block!`);\n }\n const startCode = this.generateInWorldSpace\n ? \"\"\n : `\r\n vec3 biTangent = cross(norm, tgt);\r\n mat3 TBN = mat3(tgt, biTangent, norm);\r\n `;\n const endCode = this.generateInWorldSpace\n ? \"\"\n : `\r\n result = TBN * result;\r\n result = result * vec3(0.5) + vec3(0.5);\r\n `;\n let heightToNormal = `\r\n vec4 heightToNormal(float height, vec3 position, vec3 tangent, vec3 normal) {\r\n vec3 tgt = ${this.automaticNormalizationTangent ? \"normalize(tangent);\" : \"tangent;\"}\r\n vec3 norm = ${this.automaticNormalizationNormal ? \"normalize(normal);\" : \"normal;\"}\r\n ${startCode}\r\n vec3 worlddX = dFdx(position);\r\n vec3 worlddY = dFdy(position);\r\n vec3 crossX = cross(norm, worlddX);\r\n vec3 crossY = cross(worlddY, norm);\r\n float d = abs(dot(crossY, worlddX));\r\n vec3 inToNormal = vec3(((((height + dFdx(height)) - height) * crossY) + (((height + dFdy(height)) - height) * crossX)) * sign(d));\r\n inToNormal.y *= -1.0;\r\n vec3 result = normalize((d * norm) - inToNormal);\r\n ${endCode}\r\n return vec4(result, 0.);\r\n }`;\n if (isWebGPU) {\n heightToNormal = state._babylonSLtoWGSL(heightToNormal);\n }\n else {\n state._emitExtension(\"derivatives\", \"#extension GL_OES_standard_derivatives : enable\");\n }\n state._emitFunction(\"heightToNormal\", heightToNormal, \"// heightToNormal\");\n state.compilationString +=\n state._declareOutput(output) +\n ` = heightToNormal(${this.input.associatedVariableName}, ${this.worldPosition.associatedVariableName}, ${this.worldTangent.isConnected ? this.worldTangent.associatedVariableName : `vec3${fPrefix}(0.)`}.xyz, ${this.worldNormal.associatedVariableName});\\n`;\n if (this.xyz.hasEndpoints) {\n state.compilationString += state._declareOutput(this.xyz) + ` = ${this.output.associatedVariableName}.xyz;\\n`;\n }\n return this;\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode();\n codeString += `${this._codeVariableName}.generateInWorldSpace = ${this.generateInWorldSpace};\\n`;\n codeString += `${this._codeVariableName}.automaticNormalizationNormal = ${this.automaticNormalizationNormal};\\n`;\n codeString += `${this._codeVariableName}.automaticNormalizationTangent = ${this.automaticNormalizationTangent};\\n`;\n return codeString;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.generateInWorldSpace = this.generateInWorldSpace;\n serializationObject.automaticNormalizationNormal = this.automaticNormalizationNormal;\n serializationObject.automaticNormalizationTangent = this.automaticNormalizationTangent;\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n this.generateInWorldSpace = serializationObject.generateInWorldSpace;\n this.automaticNormalizationNormal = serializationObject.automaticNormalizationNormal;\n this.automaticNormalizationTangent = serializationObject.automaticNormalizationTangent;\n }\n}\n__decorate([\n editableInPropertyPage(\"Generate in world space instead of tangent space\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\", { notifiers: { update: true } })\n], HeightToNormalBlock.prototype, \"generateInWorldSpace\", void 0);\n__decorate([\n editableInPropertyPage(\"Force normalization for the worldNormal input\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\", { notifiers: { update: true } })\n], HeightToNormalBlock.prototype, \"automaticNormalizationNormal\", void 0);\n__decorate([\n editableInPropertyPage(\"Force normalization for the worldTangent input\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\", { notifiers: { update: true } })\n], HeightToNormalBlock.prototype, \"automaticNormalizationTangent\", void 0);\nRegisterClass(\"BABYLON.HeightToNormalBlock\", HeightToNormalBlock);\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|