3f39ff1c931855bd8c6fd830f0334c617c9be6f938af25b53994a06423bd89b2.json 22 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 * block used to Generate Fractal Brownian Motion Clouds\n */\nexport class CloudBlock extends NodeMaterialBlock {\n /**\n * Creates a new CloudBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n /** Gets or sets the number of octaves */\n this.octaves = 6.0;\n this.registerInput(\"seed\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"chaos\", NodeMaterialBlockConnectionPointTypes.AutoDetect, true);\n this.registerInput(\"offsetX\", NodeMaterialBlockConnectionPointTypes.Float, true);\n this.registerInput(\"offsetY\", NodeMaterialBlockConnectionPointTypes.Float, true);\n this.registerInput(\"offsetZ\", NodeMaterialBlockConnectionPointTypes.Float, true);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Float);\n this._inputs[0].acceptedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Vector2);\n this._inputs[0].acceptedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Vector3);\n this._linkConnectionTypes(0, 1);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"CloudBlock\";\n }\n /**\n * Gets the seed input component\n */\n get seed() {\n return this._inputs[0];\n }\n /**\n * Gets the chaos input component\n */\n get chaos() {\n return this._inputs[1];\n }\n /**\n * Gets the offset X input component\n */\n get offsetX() {\n return this._inputs[2];\n }\n /**\n * Gets the offset Y input component\n */\n get offsetY() {\n return this._inputs[3];\n }\n /**\n * Gets the offset Z input component\n */\n get offsetZ() {\n return this._inputs[4];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n var _this$seed$connectedP, _this$seed$connectedP3;\n super._buildBlock(state);\n if (!this.seed.isConnected) {\n return;\n }\n if (!this._outputs[0].hasEndpoints) {\n return;\n }\n let functionString = `\n\n float cloudRandom(float p) { \n float temp = fract(p * 0.011); \n temp *= temp + 7.5; \n temp *= temp + temp; \n return fract(temp); \n }\n\n // Based on Morgan McGuire @morgan3d\n // https://www.shadertoy.com/view/4dS3Wd\n float cloudNoise2(vec2 x, vec2 chaos) {\n vec2 step = chaos * vec2(75., 120.) + vec2(75., 120.);\n\n vec2 i = floor(x);\n vec2 f = fract(x);\n\n float n = dot(i, step);\n\n vec2 u = f * f * (3.0 - 2.0 * f);\n return mix(\n mix(cloudRandom(n + dot(step, vec2(0, 0))), cloudRandom(n + dot(step, vec2(1, 0))), u.x),\n mix(cloudRandom(n + dot(step, vec2(0, 1))), cloudRandom(n + dot(step, vec2(1, 1))), u.x),\n u.y\n );\n }\n\n float cloudNoise3(vec3 x, vec3 chaos) {\n vec3 step = chaos * vec3(60., 120., 75.) + vec3(60., 120., 75.);\n\n vec3 i = floor(x);\n vec3 f = fract(x);\n\n float n = dot(i, step);\n\n vec3 u = f * f * (3.0 - 2.0 * f);\n return mix(mix(mix( cloudRandom(n + dot(step, vec3(0, 0, 0))), cloudRandom(n + dot(step, vec3(1, 0, 0))), u.x),\n mix( cloudRandom(n + dot(step, vec3(0, 1, 0))), cloudRandom(n + dot(step, vec3(1, 1, 0))), u.x), u.y),\n mix(mix( cloudRandom(n + dot(step, vec3(0, 0, 1))), cloudRandom(n + dot(step, vec3(1, 0, 1))), u.x),\n mix( cloudRandom(n + dot(step, vec3(0, 1, 1))), cloudRandom(n + dot(step, vec3(1, 1, 1))), u.x), u.y), u.z);\n }`;\n let fractalBrownianString = `\n float fbm2(vec2 st, vec2 chaos) {\n // Initial values\n float value = 0.0;\n float amplitude = .5;\n float frequency = 0.;\n\n // Loop of octaves\n vec2 tempST = st;\n for (int i = 0; i < OCTAVES; i++) {\n value += amplitude * cloudNoise2(tempST, chaos);\n tempST *= 2.0;\n amplitude *= 0.5;\n }\n return value;\n }\n\n float fbm3(vec3 x, vec3 chaos) {\n // Initial values\n float value = 0.0;\n float amplitude = 0.5;\n vec3 tempX = x;\n for (int i = 0; i < OCTAVES; i++) {\n value += amplitude * cloudNoise3(tempX, chaos);\n tempX = tempX * 2.0;\n amplitude *= 0.5;\n }\n return value;\n }`;\n if (state.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n functionString = state._babylonSLtoWGSL(functionString);\n fractalBrownianString = state._babylonSLtoWGSL(fractalBrownianString);\n }\n const fbmNewName = `fbm${this.octaves}`;\n state._emitFunction(\"CloudBlockCode\", functionString, \"// CloudBlockCode\");\n state._emitFunction(\"CloudBlockCodeFBM\" + this.octaves, fractalBrownianString.replace(/fbm/gi, fbmNewName).replace(/OCTAVES/gi, (this.octaves | 0).toString()), \"// CloudBlockCode FBM\");\n const localVariable = state._getFreeVariableName(\"st\");\n const seedType = ((_this$seed$connectedP = this.seed.connectedPoint) === null || _this$seed$connectedP === void 0 ? void 0 : _this$seed$connectedP.type) || NodeMaterialBlockConnectionPointTypes.Vector3;\n state.compilationString += `${state._declareLocalVar(localVariable, seedType)} = ${this.seed.associatedVariableName};\\n`;\n if (this.offsetX.isConnected) {\n state.compilationString += `${localVariable}.x += 0.1 * ${this.offsetX.associatedVariableName};\\n`;\n }\n if (this.offsetY.isConnected) {\n state.compilationString += `${localVariable}.y += 0.1 * ${this.offsetY.associatedVariableName};\\n`;\n }\n if (this.offsetZ.isConnected && seedType === NodeMaterialBlockConnectionPointTypes.Vector3) {\n state.compilationString += `${localVariable}.z += 0.1 * ${this.offsetZ.associatedVariableName};\\n`;\n }\n let chaosValue = \"\";\n if (this.chaos.isConnected) {\n chaosValue = this.chaos.associatedVariableName;\n } else {\n var _this$seed$connectedP2;\n const addF = state.fSuffix;\n chaosValue = ((_this$seed$connectedP2 = this.seed.connectedPoint) === null || _this$seed$connectedP2 === void 0 ? void 0 : _this$seed$connectedP2.type) === NodeMaterialBlockConnectionPointTypes.Vector2 ? `vec2${addF}(0., 0.)` : `vec3${addF}(0., 0., 0.)`;\n }\n state.compilationString += state._declareOutput(this._outputs[0]) + ` = ${fbmNewName}${((_this$seed$connectedP3 = this.seed.connectedPoint) === null || _this$seed$connectedP3 === void 0 ? void 0 : _this$seed$connectedP3.type) === NodeMaterialBlockConnectionPointTypes.Vector2 ? \"2\" : \"3\"}(${localVariable}, ${chaosValue});\\n`;\n return this;\n }\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.octaves = ${this.octaves};\\n`;\n return codeString;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.octaves = this.octaves;\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n this.octaves = serializationObject.octaves;\n }\n}\n__decorate([editableInPropertyPage(\"Octaves\", 2 /* PropertyTypeForEdition.Int */, undefined, {\n embedded: true\n})], CloudBlock.prototype, \"octaves\", void 0);\nRegisterClass(\"BABYLON.CloudBlock\", CloudBlock);","map":{"version":3,"names":["__decorate","NodeMaterialBlock","NodeMaterialBlockConnectionPointTypes","NodeMaterialBlockTargets","RegisterClass","editableInPropertyPage","CloudBlock","constructor","name","Neutral","octaves","registerInput","AutoDetect","Float","registerOutput","_inputs","acceptedConnectionPointTypes","push","Vector2","Vector3","_linkConnectionTypes","getClassName","seed","chaos","offsetX","offsetY","offsetZ","output","_outputs","_buildBlock","state","_this$seed$connectedP","_this$seed$connectedP3","isConnected","hasEndpoints","functionString","fractalBrownianString","shaderLanguage","_babylonSLtoWGSL","fbmNewName","_emitFunction","replace","toString","localVariable","_getFreeVariableName","seedType","connectedPoint","type","compilationString","_declareLocalVar","associatedVariableName","chaosValue","_this$seed$connectedP2","addF","fSuffix","_declareOutput","_dumpPropertiesCode","codeString","_codeVariableName","serialize","serializationObject","_deserialize","scene","rootUrl","undefined","embedded","prototype"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Materials/Node/Blocks/cloudBlock.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 * block used to Generate Fractal Brownian Motion Clouds\n */\nexport class CloudBlock extends NodeMaterialBlock {\n /**\n * Creates a new CloudBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n /** Gets or sets the number of octaves */\n this.octaves = 6.0;\n this.registerInput(\"seed\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"chaos\", NodeMaterialBlockConnectionPointTypes.AutoDetect, true);\n this.registerInput(\"offsetX\", NodeMaterialBlockConnectionPointTypes.Float, true);\n this.registerInput(\"offsetY\", NodeMaterialBlockConnectionPointTypes.Float, true);\n this.registerInput(\"offsetZ\", NodeMaterialBlockConnectionPointTypes.Float, true);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Float);\n this._inputs[0].acceptedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Vector2);\n this._inputs[0].acceptedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Vector3);\n this._linkConnectionTypes(0, 1);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"CloudBlock\";\n }\n /**\n * Gets the seed input component\n */\n get seed() {\n return this._inputs[0];\n }\n /**\n * Gets the chaos input component\n */\n get chaos() {\n return this._inputs[1];\n }\n /**\n * Gets the offset X input component\n */\n get offsetX() {\n return this._inputs[2];\n }\n /**\n * Gets the offset Y input component\n */\n get offsetY() {\n return this._inputs[3];\n }\n /**\n * Gets the offset Z input component\n */\n get offsetZ() {\n return this._inputs[4];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n if (!this.seed.isConnected) {\n return;\n }\n if (!this._outputs[0].hasEndpoints) {\n return;\n }\n let functionString = `\r\n\r\n float cloudRandom(float p) { \r\n float temp = fract(p * 0.011); \r\n temp *= temp + 7.5; \r\n temp *= temp + temp; \r\n return fract(temp); \r\n }\r\n\r\n // Based on Morgan McGuire @morgan3d\r\n // https://www.shadertoy.com/view/4dS3Wd\r\n float cloudNoise2(vec2 x, vec2 chaos) {\r\n vec2 step = chaos * vec2(75., 120.) + vec2(75., 120.);\r\n\r\n vec2 i = floor(x);\r\n vec2 f = fract(x);\r\n\r\n float n = dot(i, step);\r\n\r\n vec2 u = f * f * (3.0 - 2.0 * f);\r\n return mix(\r\n mix(cloudRandom(n + dot(step, vec2(0, 0))), cloudRandom(n + dot(step, vec2(1, 0))), u.x),\r\n mix(cloudRandom(n + dot(step, vec2(0, 1))), cloudRandom(n + dot(step, vec2(1, 1))), u.x),\r\n u.y\r\n );\r\n }\r\n\r\n float cloudNoise3(vec3 x, vec3 chaos) {\r\n vec3 step = chaos * vec3(60., 120., 75.) + vec3(60., 120., 75.);\r\n\r\n vec3 i = floor(x);\r\n vec3 f = fract(x);\r\n\r\n float n = dot(i, step);\r\n\r\n vec3 u = f * f * (3.0 - 2.0 * f);\r\n return mix(mix(mix( cloudRandom(n + dot(step, vec3(0, 0, 0))), cloudRandom(n + dot(step, vec3(1, 0, 0))), u.x),\r\n mix( cloudRandom(n + dot(step, vec3(0, 1, 0))), cloudRandom(n + dot(step, vec3(1, 1, 0))), u.x), u.y),\r\n mix(mix( cloudRandom(n + dot(step, vec3(0, 0, 1))), cloudRandom(n + dot(step, vec3(1, 0, 1))), u.x),\r\n mix( cloudRandom(n + dot(step, vec3(0, 1, 1))), cloudRandom(n + dot(step, vec3(1, 1, 1))), u.x), u.y), u.z);\r\n }`;\n let fractalBrownianString = `\r\n float fbm2(vec2 st, vec2 chaos) {\r\n // Initial values\r\n float value = 0.0;\r\n float amplitude = .5;\r\n float frequency = 0.;\r\n\r\n // Loop of octaves\r\n vec2 tempST = st;\r\n for (int i = 0; i < OCTAVES; i++) {\r\n value += amplitude * cloudNoise2(tempST, chaos);\r\n tempST *= 2.0;\r\n amplitude *= 0.5;\r\n }\r\n return value;\r\n }\r\n\r\n float fbm3(vec3 x, vec3 chaos) {\r\n // Initial values\r\n float value = 0.0;\r\n float amplitude = 0.5;\r\n vec3 tempX = x;\r\n for (int i = 0; i < OCTAVES; i++) {\r\n value += amplitude * cloudNoise3(tempX, chaos);\r\n tempX = tempX * 2.0;\r\n amplitude *= 0.5;\r\n }\r\n return value;\r\n }`;\n if (state.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n functionString = state._babylonSLtoWGSL(functionString);\n fractalBrownianString = state._babylonSLtoWGSL(fractalBrownianString);\n }\n const fbmNewName = `fbm${this.octaves}`;\n state._emitFunction(\"CloudBlockCode\", functionString, \"// CloudBlockCode\");\n state._emitFunction(\"CloudBlockCodeFBM\" + this.octaves, fractalBrownianString.replace(/fbm/gi, fbmNewName).replace(/OCTAVES/gi, (this.octaves | 0).toString()), \"// CloudBlockCode FBM\");\n const localVariable = state._getFreeVariableName(\"st\");\n const seedType = this.seed.connectedPoint?.type || NodeMaterialBlockConnectionPointTypes.Vector3;\n state.compilationString += `${state._declareLocalVar(localVariable, seedType)} = ${this.seed.associatedVariableName};\\n`;\n if (this.offsetX.isConnected) {\n state.compilationString += `${localVariable}.x += 0.1 * ${this.offsetX.associatedVariableName};\\n`;\n }\n if (this.offsetY.isConnected) {\n state.compilationString += `${localVariable}.y += 0.1 * ${this.offsetY.associatedVariableName};\\n`;\n }\n if (this.offsetZ.isConnected && seedType === NodeMaterialBlockConnectionPointTypes.Vector3) {\n state.compilationString += `${localVariable}.z += 0.1 * ${this.offsetZ.associatedVariableName};\\n`;\n }\n let chaosValue = \"\";\n if (this.chaos.isConnected) {\n chaosValue = this.chaos.associatedVariableName;\n }\n else {\n const addF = state.fSuffix;\n chaosValue = this.seed.connectedPoint?.type === NodeMaterialBlockConnectionPointTypes.Vector2 ? `vec2${addF}(0., 0.)` : `vec3${addF}(0., 0., 0.)`;\n }\n state.compilationString +=\n state._declareOutput(this._outputs[0]) +\n ` = ${fbmNewName}${this.seed.connectedPoint?.type === NodeMaterialBlockConnectionPointTypes.Vector2 ? \"2\" : \"3\"}(${localVariable}, ${chaosValue});\\n`;\n return this;\n }\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.octaves = ${this.octaves};\\n`;\n return codeString;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.octaves = this.octaves;\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n this.octaves = serializationObject.octaves;\n }\n}\n__decorate([\n editableInPropertyPage(\"Octaves\", 2 /* PropertyTypeForEdition.Int */, undefined, { embedded: true })\n], CloudBlock.prototype, \"octaves\", void 0);\nRegisterClass(\"BABYLON.CloudBlock\", CloudBlock);\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}