59903e8d8b2534a82ab961556a9cd7fc6e4d52827032218ab81260aa0d7b17a4.json 24 KB

1
  1. {"ast":null,"code":"import _asyncToGenerator from \"F:/workspace/202226701027/huinongbao-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\";\nimport { EffectWrapper } from \"../../Materials/effectRenderer.js\";\nimport { Observable } from \"../../Misc/observable.js\";\n/**\n * Defines the base object used for fluid rendering.\n * It is based on a list of vertices (particles)\n */\nexport class FluidRenderingObject {\n /** Gets or sets the size of the particle */\n get particleSize() {\n return this._particleSize;\n }\n set particleSize(size) {\n if (size === this._particleSize) {\n return;\n }\n this._particleSize = size;\n this.onParticleSizeChanged.notifyObservers(this);\n }\n /** Indicates if the object uses instancing or not */\n get useInstancing() {\n return !this.indexBuffer;\n }\n /** Indicates if velocity of particles should be used when rendering the object. The vertex buffer set must contain a \"velocity\" buffer for this to work! */\n get useVelocity() {\n return this._useVelocity;\n }\n set useVelocity(use) {\n if (this._useVelocity === use || !this._hasVelocity()) {\n return;\n }\n this._useVelocity = use;\n this._effectsAreDirty = true;\n }\n _hasVelocity() {\n var _this$vertexBuffers;\n return !!((_this$vertexBuffers = this.vertexBuffers) !== null && _this$vertexBuffers !== void 0 && _this$vertexBuffers.velocity);\n }\n /**\n * Gets the index buffer (or null if the object is using instancing)\n */\n get indexBuffer() {\n return null;\n }\n /**\n * @returns the name of the class\n */\n getClassName() {\n return \"FluidRenderingObject\";\n }\n /**\n * Gets the shader language used in this object\n */\n get shaderLanguage() {\n return this._shaderLanguage;\n }\n /**\n * Instantiates a fluid rendering object\n * @param scene The scene the object is part of\n * @param shaderLanguage The shader language to use\n */\n constructor(scene, shaderLanguage) {\n /** Defines the priority of the object. Objects will be rendered in ascending order of priority */\n this.priority = 0;\n this._particleSize = 0.1;\n /** Observable triggered when the size of the particle is changed */\n this.onParticleSizeChanged = new Observable();\n /** Defines the alpha value of a particle */\n this.particleThicknessAlpha = 0.05;\n this._useVelocity = false;\n /** Shader language used by the object */\n this._shaderLanguage = 0 /* ShaderLanguage.GLSL */;\n this._scene = scene;\n this._engine = scene.getEngine();\n this._effectsAreDirty = true;\n this._depthEffectWrapper = null;\n this._thicknessEffectWrapper = null;\n this._shaderLanguage = shaderLanguage !== null && shaderLanguage !== void 0 ? shaderLanguage : this._engine.isWebGPU ? 1 /* ShaderLanguage.WGSL */ : 0 /* ShaderLanguage.GLSL */;\n }\n _createEffects() {\n var _this = this;\n const uniformNames = [\"view\", \"projection\", \"particleRadius\", \"size\"];\n const attributeNames = [\"position\", \"offset\"];\n const defines = [];\n this._effectsAreDirty = false;\n if (this.useVelocity) {\n attributeNames.push(\"velocity\");\n defines.push(\"#define FLUIDRENDERING_VELOCITY\");\n }\n if (this._scene.useRightHandedSystem) {\n defines.push(\"#define FLUIDRENDERING_RHS\");\n }\n this._depthEffectWrapper = new EffectWrapper({\n engine: this._engine,\n useShaderStore: true,\n vertexShader: \"fluidRenderingParticleDepth\",\n fragmentShader: \"fluidRenderingParticleDepth\",\n attributeNames,\n uniformNames,\n samplerNames: [],\n defines,\n shaderLanguage: this._shaderLanguage,\n extraInitializationsAsync: function () {\n var _ref = _asyncToGenerator(function* () {\n if (_this._shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n yield Promise.all([import(\"../../ShadersWGSL/fluidRenderingParticleDepth.vertex.js\"), import(\"../../ShadersWGSL/fluidRenderingParticleDepth.fragment.js\")]);\n } else {\n yield Promise.all([import(\"../../Shaders/fluidRenderingParticleDepth.vertex.js\"), import(\"../../Shaders/fluidRenderingParticleDepth.fragment.js\")]);\n }\n });\n return function extraInitializationsAsync() {\n return _ref.apply(this, arguments);\n };\n }()\n });\n uniformNames.push(\"particleAlpha\");\n this._thicknessEffectWrapper = new EffectWrapper({\n engine: this._engine,\n useShaderStore: true,\n vertexShader: \"fluidRenderingParticleThickness\",\n fragmentShader: \"fluidRenderingParticleThickness\",\n attributeNames: [\"position\", \"offset\"],\n uniformNames,\n samplerNames: [],\n shaderLanguage: this._shaderLanguage,\n extraInitializationsAsync: function () {\n var _ref2 = _asyncToGenerator(function* () {\n if (_this._shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n yield Promise.all([import(\"../../ShadersWGSL/fluidRenderingParticleThickness.vertex.js\"), import(\"../../ShadersWGSL/fluidRenderingParticleThickness.fragment.js\")]);\n } else {\n yield Promise.all([import(\"../../Shaders/fluidRenderingParticleThickness.vertex.js\"), import(\"../../Shaders/fluidRenderingParticleThickness.fragment.js\")]);\n }\n });\n return function extraInitializationsAsync() {\n return _ref2.apply(this, arguments);\n };\n }()\n });\n }\n /**\n * Indicates if the object is ready to be rendered\n * @returns True if everything is ready for the object to be rendered, otherwise false\n */\n isReady() {\n if (this._effectsAreDirty) {\n this._createEffects();\n }\n if (!this._depthEffectWrapper || !this._thicknessEffectWrapper) {\n return false;\n }\n const depthEffect = this._depthEffectWrapper.drawWrapper.effect;\n const thicknessEffect = this._thicknessEffectWrapper.drawWrapper.effect;\n return depthEffect.isReady() && thicknessEffect.isReady();\n }\n /**\n * Render the depth texture for this object\n */\n renderDepthTexture() {\n const numParticles = this.numParticles;\n if (!this._depthEffectWrapper || numParticles === 0) {\n return;\n }\n const depthDrawWrapper = this._depthEffectWrapper.drawWrapper;\n const depthEffect = depthDrawWrapper.effect;\n this._engine.enableEffect(depthDrawWrapper);\n this._engine.bindBuffers(this.vertexBuffers, this.indexBuffer, depthEffect);\n depthEffect.setMatrix(\"view\", this._scene.getViewMatrix());\n depthEffect.setMatrix(\"projection\", this._scene.getProjectionMatrix());\n depthEffect.setFloat2(\"size\", this._particleSize, this._particleSize);\n depthEffect.setFloat(\"particleRadius\", this._particleSize / 2);\n if (this.useInstancing) {\n this._engine.drawArraysType(7, 0, 4, numParticles);\n } else {\n this._engine.drawElementsType(0, 0, numParticles);\n }\n }\n /**\n * Render the thickness texture for this object\n */\n renderThicknessTexture() {\n const numParticles = this.numParticles;\n if (!this._thicknessEffectWrapper || numParticles === 0) {\n return;\n }\n const thicknessDrawWrapper = this._thicknessEffectWrapper.drawWrapper;\n const thicknessEffect = thicknessDrawWrapper.effect;\n this._engine.setAlphaMode(6);\n this._engine.setDepthWrite(false);\n this._engine.enableEffect(thicknessDrawWrapper);\n this._engine.bindBuffers(this.vertexBuffers, this.indexBuffer, thicknessEffect);\n thicknessEffect.setMatrix(\"view\", this._scene.getViewMatrix());\n thicknessEffect.setMatrix(\"projection\", this._scene.getProjectionMatrix());\n thicknessEffect.setFloat(\"particleAlpha\", this.particleThicknessAlpha);\n thicknessEffect.setFloat2(\"size\", this._particleSize, this._particleSize);\n if (this.useInstancing) {\n this._engine.drawArraysType(7, 0, 4, numParticles);\n } else {\n this._engine.drawElementsType(0, 0, numParticles);\n }\n this._engine.setDepthWrite(true);\n this._engine.setAlphaMode(0);\n }\n /**\n * Render the diffuse texture for this object\n */\n renderDiffuseTexture() {\n // do nothing by default\n }\n /**\n * Releases the ressources used by the class\n */\n dispose() {\n var _this$_depthEffectWra, _this$_thicknessEffec;\n (_this$_depthEffectWra = this._depthEffectWrapper) === null || _this$_depthEffectWra === void 0 || _this$_depthEffectWra.dispose(false);\n (_this$_thicknessEffec = this._thicknessEffectWrapper) === null || _this$_thicknessEffec === void 0 || _this$_thicknessEffec.dispose(false);\n this.onParticleSizeChanged.clear();\n }\n}","map":{"version":3,"names":["EffectWrapper","Observable","FluidRenderingObject","particleSize","_particleSize","size","onParticleSizeChanged","notifyObservers","useInstancing","indexBuffer","useVelocity","_useVelocity","use","_hasVelocity","_effectsAreDirty","_this$vertexBuffers","vertexBuffers","velocity","getClassName","shaderLanguage","_shaderLanguage","constructor","scene","priority","particleThicknessAlpha","_scene","_engine","getEngine","_depthEffectWrapper","_thicknessEffectWrapper","isWebGPU","_createEffects","_this","uniformNames","attributeNames","defines","push","useRightHandedSystem","engine","useShaderStore","vertexShader","fragmentShader","samplerNames","extraInitializationsAsync","_ref","_asyncToGenerator","Promise","all","apply","arguments","_ref2","isReady","depthEffect","drawWrapper","effect","thicknessEffect","renderDepthTexture","numParticles","depthDrawWrapper","enableEffect","bindBuffers","setMatrix","getViewMatrix","getProjectionMatrix","setFloat2","setFloat","drawArraysType","drawElementsType","renderThicknessTexture","thicknessDrawWrapper","setAlphaMode","setDepthWrite","renderDiffuseTexture","dispose","_this$_depthEffectWra","_this$_thicknessEffec","clear"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Rendering/fluidRenderer/fluidRenderingObject.js"],"sourcesContent":["\nimport { EffectWrapper } from \"../../Materials/effectRenderer.js\";\nimport { Observable } from \"../../Misc/observable.js\";\n/**\n * Defines the base object used for fluid rendering.\n * It is based on a list of vertices (particles)\n */\nexport class FluidRenderingObject {\n /** Gets or sets the size of the particle */\n get particleSize() {\n return this._particleSize;\n }\n set particleSize(size) {\n if (size === this._particleSize) {\n return;\n }\n this._particleSize = size;\n this.onParticleSizeChanged.notifyObservers(this);\n }\n /** Indicates if the object uses instancing or not */\n get useInstancing() {\n return !this.indexBuffer;\n }\n /** Indicates if velocity of particles should be used when rendering the object. The vertex buffer set must contain a \"velocity\" buffer for this to work! */\n get useVelocity() {\n return this._useVelocity;\n }\n set useVelocity(use) {\n if (this._useVelocity === use || !this._hasVelocity()) {\n return;\n }\n this._useVelocity = use;\n this._effectsAreDirty = true;\n }\n _hasVelocity() {\n return !!this.vertexBuffers?.velocity;\n }\n /**\n * Gets the index buffer (or null if the object is using instancing)\n */\n get indexBuffer() {\n return null;\n }\n /**\n * @returns the name of the class\n */\n getClassName() {\n return \"FluidRenderingObject\";\n }\n /**\n * Gets the shader language used in this object\n */\n get shaderLanguage() {\n return this._shaderLanguage;\n }\n /**\n * Instantiates a fluid rendering object\n * @param scene The scene the object is part of\n * @param shaderLanguage The shader language to use\n */\n constructor(scene, shaderLanguage) {\n /** Defines the priority of the object. Objects will be rendered in ascending order of priority */\n this.priority = 0;\n this._particleSize = 0.1;\n /** Observable triggered when the size of the particle is changed */\n this.onParticleSizeChanged = new Observable();\n /** Defines the alpha value of a particle */\n this.particleThicknessAlpha = 0.05;\n this._useVelocity = false;\n /** Shader language used by the object */\n this._shaderLanguage = 0 /* ShaderLanguage.GLSL */;\n this._scene = scene;\n this._engine = scene.getEngine();\n this._effectsAreDirty = true;\n this._depthEffectWrapper = null;\n this._thicknessEffectWrapper = null;\n this._shaderLanguage = shaderLanguage ?? (this._engine.isWebGPU ? 1 /* ShaderLanguage.WGSL */ : 0 /* ShaderLanguage.GLSL */);\n }\n _createEffects() {\n const uniformNames = [\"view\", \"projection\", \"particleRadius\", \"size\"];\n const attributeNames = [\"position\", \"offset\"];\n const defines = [];\n this._effectsAreDirty = false;\n if (this.useVelocity) {\n attributeNames.push(\"velocity\");\n defines.push(\"#define FLUIDRENDERING_VELOCITY\");\n }\n if (this._scene.useRightHandedSystem) {\n defines.push(\"#define FLUIDRENDERING_RHS\");\n }\n this._depthEffectWrapper = new EffectWrapper({\n engine: this._engine,\n useShaderStore: true,\n vertexShader: \"fluidRenderingParticleDepth\",\n fragmentShader: \"fluidRenderingParticleDepth\",\n attributeNames,\n uniformNames,\n samplerNames: [],\n defines,\n shaderLanguage: this._shaderLanguage,\n extraInitializationsAsync: async () => {\n if (this._shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n await Promise.all([import(\"../../ShadersWGSL/fluidRenderingParticleDepth.vertex.js\"), import(\"../../ShadersWGSL/fluidRenderingParticleDepth.fragment.js\")]);\n }\n else {\n await Promise.all([import(\"../../Shaders/fluidRenderingParticleDepth.vertex.js\"), import(\"../../Shaders/fluidRenderingParticleDepth.fragment.js\")]);\n }\n },\n });\n uniformNames.push(\"particleAlpha\");\n this._thicknessEffectWrapper = new EffectWrapper({\n engine: this._engine,\n useShaderStore: true,\n vertexShader: \"fluidRenderingParticleThickness\",\n fragmentShader: \"fluidRenderingParticleThickness\",\n attributeNames: [\"position\", \"offset\"],\n uniformNames,\n samplerNames: [],\n shaderLanguage: this._shaderLanguage,\n extraInitializationsAsync: async () => {\n if (this._shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n await Promise.all([import(\"../../ShadersWGSL/fluidRenderingParticleThickness.vertex.js\"), import(\"../../ShadersWGSL/fluidRenderingParticleThickness.fragment.js\")]);\n }\n else {\n await Promise.all([import(\"../../Shaders/fluidRenderingParticleThickness.vertex.js\"), import(\"../../Shaders/fluidRenderingParticleThickness.fragment.js\")]);\n }\n },\n });\n }\n /**\n * Indicates if the object is ready to be rendered\n * @returns True if everything is ready for the object to be rendered, otherwise false\n */\n isReady() {\n if (this._effectsAreDirty) {\n this._createEffects();\n }\n if (!this._depthEffectWrapper || !this._thicknessEffectWrapper) {\n return false;\n }\n const depthEffect = this._depthEffectWrapper.drawWrapper.effect;\n const thicknessEffect = this._thicknessEffectWrapper.drawWrapper.effect;\n return depthEffect.isReady() && thicknessEffect.isReady();\n }\n /**\n * Render the depth texture for this object\n */\n renderDepthTexture() {\n const numParticles = this.numParticles;\n if (!this._depthEffectWrapper || numParticles === 0) {\n return;\n }\n const depthDrawWrapper = this._depthEffectWrapper.drawWrapper;\n const depthEffect = depthDrawWrapper.effect;\n this._engine.enableEffect(depthDrawWrapper);\n this._engine.bindBuffers(this.vertexBuffers, this.indexBuffer, depthEffect);\n depthEffect.setMatrix(\"view\", this._scene.getViewMatrix());\n depthEffect.setMatrix(\"projection\", this._scene.getProjectionMatrix());\n depthEffect.setFloat2(\"size\", this._particleSize, this._particleSize);\n depthEffect.setFloat(\"particleRadius\", this._particleSize / 2);\n if (this.useInstancing) {\n this._engine.drawArraysType(7, 0, 4, numParticles);\n }\n else {\n this._engine.drawElementsType(0, 0, numParticles);\n }\n }\n /**\n * Render the thickness texture for this object\n */\n renderThicknessTexture() {\n const numParticles = this.numParticles;\n if (!this._thicknessEffectWrapper || numParticles === 0) {\n return;\n }\n const thicknessDrawWrapper = this._thicknessEffectWrapper.drawWrapper;\n const thicknessEffect = thicknessDrawWrapper.effect;\n this._engine.setAlphaMode(6);\n this._engine.setDepthWrite(false);\n this._engine.enableEffect(thicknessDrawWrapper);\n this._engine.bindBuffers(this.vertexBuffers, this.indexBuffer, thicknessEffect);\n thicknessEffect.setMatrix(\"view\", this._scene.getViewMatrix());\n thicknessEffect.setMatrix(\"projection\", this._scene.getProjectionMatrix());\n thicknessEffect.setFloat(\"particleAlpha\", this.particleThicknessAlpha);\n thicknessEffect.setFloat2(\"size\", this._particleSize, this._particleSize);\n if (this.useInstancing) {\n this._engine.drawArraysType(7, 0, 4, numParticles);\n }\n else {\n this._engine.drawElementsType(0, 0, numParticles);\n }\n this._engine.setDepthWrite(true);\n this._engine.setAlphaMode(0);\n }\n /**\n * Render the diffuse texture for this object\n */\n renderDiffuseTexture() {\n // do nothing by default\n }\n /**\n * Releases the ressources used by the class\n */\n dispose() {\n this._depthEffectWrapper?.dispose(false);\n this._thicknessEffectWrapper?.dispose(false);\n this.onParticleSizeChanged.clear();\n }\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}