5275e430ea608b4775d80203449e574c601472d4d81912e14cfae951c6c5eac6.json 30 KB

1
  1. {"ast":null,"code":"import { Effect } from \"../Materials/effect.js\";\nimport { CustomParticleEmitter } from \"./EmitterTypes/customParticleEmitter.js\";\nimport { UniformBufferEffectCommonAccessor } from \"../Materials/uniformBufferEffectCommonAccessor.js\";\nimport { RegisterClass } from \"../Misc/typeStore.js\";\nimport \"../Shaders/gpuUpdateParticles.fragment.js\";\nimport \"../Shaders/gpuUpdateParticles.vertex.js\";\n/** @internal */\nexport class WebGL2ParticleSystem {\n constructor(parent, engine) {\n this._renderVAO = [];\n this._updateVAO = [];\n this.alignDataInBuffer = false;\n this._parent = parent;\n this._engine = engine;\n this._updateEffectOptions = {\n attributes: [\"position\", \"initialPosition\", \"age\", \"life\", \"seed\", \"size\", \"color\", \"direction\", \"initialDirection\", \"angle\", \"cellIndex\", \"cellStartOffset\", \"noiseCoordinates1\", \"noiseCoordinates2\"],\n uniformsNames: [\"currentCount\", \"timeDelta\", \"emitterWM\", \"lifeTime\", \"color1\", \"color2\", \"sizeRange\", \"scaleRange\", \"gravity\", \"emitPower\", \"direction1\", \"direction2\", \"minEmitBox\", \"maxEmitBox\", \"radius\", \"directionRandomizer\", \"height\", \"coneAngle\", \"stopFactor\", \"angleRange\", \"radiusRange\", \"cellInfos\", \"noiseStrength\", \"limitVelocityDamping\"],\n uniformBuffersNames: [],\n samplers: [\"randomSampler\", \"randomSampler2\", \"sizeGradientSampler\", \"angularSpeedGradientSampler\", \"velocityGradientSampler\", \"limitVelocityGradientSampler\", \"noiseSampler\", \"dragGradientSampler\"],\n defines: \"\",\n fallbacks: null,\n onCompiled: null,\n onError: null,\n indexParameters: null,\n maxSimultaneousLights: 0,\n transformFeedbackVaryings: []\n };\n }\n contextLost() {\n this._updateEffect = undefined;\n this._renderVAO.length = 0;\n this._updateVAO.length = 0;\n }\n isUpdateBufferCreated() {\n return !!this._updateEffect;\n }\n isUpdateBufferReady() {\n var _this$_updateEffect$i, _this$_updateEffect;\n return (_this$_updateEffect$i = (_this$_updateEffect = this._updateEffect) === null || _this$_updateEffect === void 0 ? void 0 : _this$_updateEffect.isReady()) !== null && _this$_updateEffect$i !== void 0 ? _this$_updateEffect$i : false;\n }\n createUpdateBuffer(defines) {\n this._updateEffectOptions.transformFeedbackVaryings = [\"outPosition\"];\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outAge\");\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outSize\");\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outLife\");\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outSeed\");\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outDirection\");\n if (this._parent.particleEmitterType instanceof CustomParticleEmitter) {\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outInitialPosition\");\n }\n if (!this._parent._colorGradientsTexture) {\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outColor\");\n }\n if (!this._parent._isBillboardBased) {\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outInitialDirection\");\n }\n if (this._parent.noiseTexture) {\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outNoiseCoordinates1\");\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outNoiseCoordinates2\");\n }\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outAngle\");\n if (this._parent.isAnimationSheetEnabled) {\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outCellIndex\");\n if (this._parent.spriteRandomStartCell) {\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outCellStartOffset\");\n }\n }\n this._updateEffectOptions.defines = defines;\n this._updateEffect = new Effect(\"gpuUpdateParticles\", this._updateEffectOptions, this._engine);\n return new UniformBufferEffectCommonAccessor(this._updateEffect);\n }\n createVertexBuffers(updateBuffer, renderVertexBuffers) {\n this._updateVAO.push(this._createUpdateVAO(updateBuffer));\n this._renderVAO.push(this._engine.recordVertexArrayObject(renderVertexBuffers, null, this._parent._getWrapper(this._parent.blendMode).effect));\n this._engine.bindArrayBuffer(null);\n this._renderVertexBuffers = renderVertexBuffers;\n }\n createParticleBuffer(data) {\n return data;\n }\n bindDrawBuffers(index, effect, indexBuffer) {\n if (indexBuffer) {\n this._engine.bindBuffers(this._renderVertexBuffers, indexBuffer, effect);\n } else {\n this._engine.bindVertexArrayObject(this._renderVAO[index], null);\n }\n }\n preUpdateParticleBuffer() {\n const engine = this._engine;\n this._engine.enableEffect(this._updateEffect);\n if (!engine.setState) {\n throw new Error(\"GPU particles cannot work without a full Engine. ThinEngine is not supported\");\n }\n }\n updateParticleBuffer(index, targetBuffer, currentActiveCount) {\n this._updateEffect.setTexture(\"randomSampler\", this._parent._randomTexture);\n this._updateEffect.setTexture(\"randomSampler2\", this._parent._randomTexture2);\n if (this._parent._sizeGradientsTexture) {\n this._updateEffect.setTexture(\"sizeGradientSampler\", this._parent._sizeGradientsTexture);\n }\n if (this._parent._angularSpeedGradientsTexture) {\n this._updateEffect.setTexture(\"angularSpeedGradientSampler\", this._parent._angularSpeedGradientsTexture);\n }\n if (this._parent._velocityGradientsTexture) {\n this._updateEffect.setTexture(\"velocityGradientSampler\", this._parent._velocityGradientsTexture);\n }\n if (this._parent._limitVelocityGradientsTexture) {\n this._updateEffect.setTexture(\"limitVelocityGradientSampler\", this._parent._limitVelocityGradientsTexture);\n }\n if (this._parent._dragGradientsTexture) {\n this._updateEffect.setTexture(\"dragGradientSampler\", this._parent._dragGradientsTexture);\n }\n if (this._parent.noiseTexture) {\n this._updateEffect.setTexture(\"noiseSampler\", this._parent.noiseTexture);\n }\n // Bind source VAO\n this._engine.bindVertexArrayObject(this._updateVAO[index], null);\n // Update\n const engine = this._engine;\n engine.bindTransformFeedbackBuffer(targetBuffer.getBuffer());\n engine.setRasterizerState(false);\n engine.beginTransformFeedback(true);\n engine.drawArraysType(3, 0, currentActiveCount);\n engine.endTransformFeedback();\n engine.setRasterizerState(true);\n engine.bindTransformFeedbackBuffer(null);\n }\n releaseBuffers() {}\n releaseVertexBuffers() {\n for (let index = 0; index < this._updateVAO.length; index++) {\n this._engine.releaseVertexArrayObject(this._updateVAO[index]);\n }\n this._updateVAO.length = 0;\n for (let index = 0; index < this._renderVAO.length; index++) {\n this._engine.releaseVertexArrayObject(this._renderVAO[index]);\n }\n this._renderVAO.length = 0;\n }\n _createUpdateVAO(source) {\n const updateVertexBuffers = {};\n updateVertexBuffers[\"position\"] = source.createVertexBuffer(\"position\", 0, 3);\n let offset = 3;\n updateVertexBuffers[\"age\"] = source.createVertexBuffer(\"age\", offset, 1);\n offset += 1;\n updateVertexBuffers[\"size\"] = source.createVertexBuffer(\"size\", offset, 3);\n offset += 3;\n updateVertexBuffers[\"life\"] = source.createVertexBuffer(\"life\", offset, 1);\n offset += 1;\n updateVertexBuffers[\"seed\"] = source.createVertexBuffer(\"seed\", offset, 4);\n offset += 4;\n updateVertexBuffers[\"direction\"] = source.createVertexBuffer(\"direction\", offset, 3);\n offset += 3;\n if (this._parent.particleEmitterType instanceof CustomParticleEmitter) {\n updateVertexBuffers[\"initialPosition\"] = source.createVertexBuffer(\"initialPosition\", offset, 3);\n offset += 3;\n }\n if (!this._parent._colorGradientsTexture) {\n updateVertexBuffers[\"color\"] = source.createVertexBuffer(\"color\", offset, 4);\n offset += 4;\n }\n if (!this._parent._isBillboardBased) {\n updateVertexBuffers[\"initialDirection\"] = source.createVertexBuffer(\"initialDirection\", offset, 3);\n offset += 3;\n }\n if (this._parent.noiseTexture) {\n updateVertexBuffers[\"noiseCoordinates1\"] = source.createVertexBuffer(\"noiseCoordinates1\", offset, 3);\n offset += 3;\n updateVertexBuffers[\"noiseCoordinates2\"] = source.createVertexBuffer(\"noiseCoordinates2\", offset, 3);\n offset += 3;\n }\n if (this._parent._angularSpeedGradientsTexture) {\n updateVertexBuffers[\"angle\"] = source.createVertexBuffer(\"angle\", offset, 1);\n offset += 1;\n } else {\n updateVertexBuffers[\"angle\"] = source.createVertexBuffer(\"angle\", offset, 2);\n offset += 2;\n }\n if (this._parent._isAnimationSheetEnabled) {\n updateVertexBuffers[\"cellIndex\"] = source.createVertexBuffer(\"cellIndex\", offset, 1);\n offset += 1;\n if (this._parent.spriteRandomStartCell) {\n updateVertexBuffers[\"cellStartOffset\"] = source.createVertexBuffer(\"cellStartOffset\", offset, 1);\n offset += 1;\n }\n }\n const vao = this._engine.recordVertexArrayObject(updateVertexBuffers, null, this._updateEffect);\n this._engine.bindArrayBuffer(null);\n return vao;\n }\n}\nRegisterClass(\"BABYLON.WebGL2ParticleSystem\", WebGL2ParticleSystem);","map":{"version":3,"names":["Effect","CustomParticleEmitter","UniformBufferEffectCommonAccessor","RegisterClass","WebGL2ParticleSystem","constructor","parent","engine","_renderVAO","_updateVAO","alignDataInBuffer","_parent","_engine","_updateEffectOptions","attributes","uniformsNames","uniformBuffersNames","samplers","defines","fallbacks","onCompiled","onError","indexParameters","maxSimultaneousLights","transformFeedbackVaryings","contextLost","_updateEffect","undefined","length","isUpdateBufferCreated","isUpdateBufferReady","_this$_updateEffect$i","_this$_updateEffect","isReady","createUpdateBuffer","push","particleEmitterType","_colorGradientsTexture","_isBillboardBased","noiseTexture","isAnimationSheetEnabled","spriteRandomStartCell","createVertexBuffers","updateBuffer","renderVertexBuffers","_createUpdateVAO","recordVertexArrayObject","_getWrapper","blendMode","effect","bindArrayBuffer","_renderVertexBuffers","createParticleBuffer","data","bindDrawBuffers","index","indexBuffer","bindBuffers","bindVertexArrayObject","preUpdateParticleBuffer","enableEffect","setState","Error","updateParticleBuffer","targetBuffer","currentActiveCount","setTexture","_randomTexture","_randomTexture2","_sizeGradientsTexture","_angularSpeedGradientsTexture","_velocityGradientsTexture","_limitVelocityGradientsTexture","_dragGradientsTexture","bindTransformFeedbackBuffer","getBuffer","setRasterizerState","beginTransformFeedback","drawArraysType","endTransformFeedback","releaseBuffers","releaseVertexBuffers","releaseVertexArrayObject","source","updateVertexBuffers","createVertexBuffer","offset","_isAnimationSheetEnabled","vao"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Particles/webgl2ParticleSystem.js"],"sourcesContent":["import { Effect } from \"../Materials/effect.js\";\nimport { CustomParticleEmitter } from \"./EmitterTypes/customParticleEmitter.js\";\nimport { UniformBufferEffectCommonAccessor } from \"../Materials/uniformBufferEffectCommonAccessor.js\";\n\nimport { RegisterClass } from \"../Misc/typeStore.js\";\nimport \"../Shaders/gpuUpdateParticles.fragment.js\";\nimport \"../Shaders/gpuUpdateParticles.vertex.js\";\n/** @internal */\nexport class WebGL2ParticleSystem {\n constructor(parent, engine) {\n this._renderVAO = [];\n this._updateVAO = [];\n this.alignDataInBuffer = false;\n this._parent = parent;\n this._engine = engine;\n this._updateEffectOptions = {\n attributes: [\n \"position\",\n \"initialPosition\",\n \"age\",\n \"life\",\n \"seed\",\n \"size\",\n \"color\",\n \"direction\",\n \"initialDirection\",\n \"angle\",\n \"cellIndex\",\n \"cellStartOffset\",\n \"noiseCoordinates1\",\n \"noiseCoordinates2\",\n ],\n uniformsNames: [\n \"currentCount\",\n \"timeDelta\",\n \"emitterWM\",\n \"lifeTime\",\n \"color1\",\n \"color2\",\n \"sizeRange\",\n \"scaleRange\",\n \"gravity\",\n \"emitPower\",\n \"direction1\",\n \"direction2\",\n \"minEmitBox\",\n \"maxEmitBox\",\n \"radius\",\n \"directionRandomizer\",\n \"height\",\n \"coneAngle\",\n \"stopFactor\",\n \"angleRange\",\n \"radiusRange\",\n \"cellInfos\",\n \"noiseStrength\",\n \"limitVelocityDamping\",\n ],\n uniformBuffersNames: [],\n samplers: [\n \"randomSampler\",\n \"randomSampler2\",\n \"sizeGradientSampler\",\n \"angularSpeedGradientSampler\",\n \"velocityGradientSampler\",\n \"limitVelocityGradientSampler\",\n \"noiseSampler\",\n \"dragGradientSampler\",\n ],\n defines: \"\",\n fallbacks: null,\n onCompiled: null,\n onError: null,\n indexParameters: null,\n maxSimultaneousLights: 0,\n transformFeedbackVaryings: [],\n };\n }\n contextLost() {\n this._updateEffect = undefined;\n this._renderVAO.length = 0;\n this._updateVAO.length = 0;\n }\n isUpdateBufferCreated() {\n return !!this._updateEffect;\n }\n isUpdateBufferReady() {\n return this._updateEffect?.isReady() ?? false;\n }\n createUpdateBuffer(defines) {\n this._updateEffectOptions.transformFeedbackVaryings = [\"outPosition\"];\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outAge\");\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outSize\");\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outLife\");\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outSeed\");\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outDirection\");\n if (this._parent.particleEmitterType instanceof CustomParticleEmitter) {\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outInitialPosition\");\n }\n if (!this._parent._colorGradientsTexture) {\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outColor\");\n }\n if (!this._parent._isBillboardBased) {\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outInitialDirection\");\n }\n if (this._parent.noiseTexture) {\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outNoiseCoordinates1\");\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outNoiseCoordinates2\");\n }\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outAngle\");\n if (this._parent.isAnimationSheetEnabled) {\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outCellIndex\");\n if (this._parent.spriteRandomStartCell) {\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outCellStartOffset\");\n }\n }\n this._updateEffectOptions.defines = defines;\n this._updateEffect = new Effect(\"gpuUpdateParticles\", this._updateEffectOptions, this._engine);\n return new UniformBufferEffectCommonAccessor(this._updateEffect);\n }\n createVertexBuffers(updateBuffer, renderVertexBuffers) {\n this._updateVAO.push(this._createUpdateVAO(updateBuffer));\n this._renderVAO.push(this._engine.recordVertexArrayObject(renderVertexBuffers, null, this._parent._getWrapper(this._parent.blendMode).effect));\n this._engine.bindArrayBuffer(null);\n this._renderVertexBuffers = renderVertexBuffers;\n }\n createParticleBuffer(data) {\n return data;\n }\n bindDrawBuffers(index, effect, indexBuffer) {\n if (indexBuffer) {\n this._engine.bindBuffers(this._renderVertexBuffers, indexBuffer, effect);\n }\n else {\n this._engine.bindVertexArrayObject(this._renderVAO[index], null);\n }\n }\n preUpdateParticleBuffer() {\n const engine = this._engine;\n this._engine.enableEffect(this._updateEffect);\n if (!engine.setState) {\n throw new Error(\"GPU particles cannot work without a full Engine. ThinEngine is not supported\");\n }\n }\n updateParticleBuffer(index, targetBuffer, currentActiveCount) {\n this._updateEffect.setTexture(\"randomSampler\", this._parent._randomTexture);\n this._updateEffect.setTexture(\"randomSampler2\", this._parent._randomTexture2);\n if (this._parent._sizeGradientsTexture) {\n this._updateEffect.setTexture(\"sizeGradientSampler\", this._parent._sizeGradientsTexture);\n }\n if (this._parent._angularSpeedGradientsTexture) {\n this._updateEffect.setTexture(\"angularSpeedGradientSampler\", this._parent._angularSpeedGradientsTexture);\n }\n if (this._parent._velocityGradientsTexture) {\n this._updateEffect.setTexture(\"velocityGradientSampler\", this._parent._velocityGradientsTexture);\n }\n if (this._parent._limitVelocityGradientsTexture) {\n this._updateEffect.setTexture(\"limitVelocityGradientSampler\", this._parent._limitVelocityGradientsTexture);\n }\n if (this._parent._dragGradientsTexture) {\n this._updateEffect.setTexture(\"dragGradientSampler\", this._parent._dragGradientsTexture);\n }\n if (this._parent.noiseTexture) {\n this._updateEffect.setTexture(\"noiseSampler\", this._parent.noiseTexture);\n }\n // Bind source VAO\n this._engine.bindVertexArrayObject(this._updateVAO[index], null);\n // Update\n const engine = this._engine;\n engine.bindTransformFeedbackBuffer(targetBuffer.getBuffer());\n engine.setRasterizerState(false);\n engine.beginTransformFeedback(true);\n engine.drawArraysType(3, 0, currentActiveCount);\n engine.endTransformFeedback();\n engine.setRasterizerState(true);\n engine.bindTransformFeedbackBuffer(null);\n }\n releaseBuffers() { }\n releaseVertexBuffers() {\n for (let index = 0; index < this._updateVAO.length; index++) {\n this._engine.releaseVertexArrayObject(this._updateVAO[index]);\n }\n this._updateVAO.length = 0;\n for (let index = 0; index < this._renderVAO.length; index++) {\n this._engine.releaseVertexArrayObject(this._renderVAO[index]);\n }\n this._renderVAO.length = 0;\n }\n _createUpdateVAO(source) {\n const updateVertexBuffers = {};\n updateVertexBuffers[\"position\"] = source.createVertexBuffer(\"position\", 0, 3);\n let offset = 3;\n updateVertexBuffers[\"age\"] = source.createVertexBuffer(\"age\", offset, 1);\n offset += 1;\n updateVertexBuffers[\"size\"] = source.createVertexBuffer(\"size\", offset, 3);\n offset += 3;\n updateVertexBuffers[\"life\"] = source.createVertexBuffer(\"life\", offset, 1);\n offset += 1;\n updateVertexBuffers[\"seed\"] = source.createVertexBuffer(\"seed\", offset, 4);\n offset += 4;\n updateVertexBuffers[\"direction\"] = source.createVertexBuffer(\"direction\", offset, 3);\n offset += 3;\n if (this._parent.particleEmitterType instanceof CustomParticleEmitter) {\n updateVertexBuffers[\"initialPosition\"] = source.createVertexBuffer(\"initialPosition\", offset, 3);\n offset += 3;\n }\n if (!this._parent._colorGradientsTexture) {\n updateVertexBuffers[\"color\"] = source.createVertexBuffer(\"color\", offset, 4);\n offset += 4;\n }\n if (!this._parent._isBillboardBased) {\n updateVertexBuffers[\"initialDirection\"] = source.createVertexBuffer(\"initialDirection\", offset, 3);\n offset += 3;\n }\n if (this._parent.noiseTexture) {\n updateVertexBuffers[\"noiseCoordinates1\"] = source.createVertexBuffer(\"noiseCoordinates1\", offset, 3);\n offset += 3;\n updateVertexBuffers[\"noiseCoordinates2\"] = source.createVertexBuffer(\"noiseCoordinates2\", offset, 3);\n offset += 3;\n }\n if (this._parent._angularSpeedGradientsTexture) {\n updateVertexBuffers[\"angle\"] = source.createVertexBuffer(\"angle\", offset, 1);\n offset += 1;\n }\n else {\n updateVertexBuffers[\"angle\"] = source.createVertexBuffer(\"angle\", offset, 2);\n offset += 2;\n }\n if (this._parent._isAnimationSheetEnabled) {\n updateVertexBuffers[\"cellIndex\"] = source.createVertexBuffer(\"cellIndex\", offset, 1);\n offset += 1;\n if (this._parent.spriteRandomStartCell) {\n updateVertexBuffers[\"cellStartOffset\"] = source.createVertexBuffer(\"cellStartOffset\", offset, 1);\n offset += 1;\n }\n }\n const vao = this._engine.recordVertexArrayObject(updateVertexBuffers, null, this._updateEffect);\n this._engine.bindArrayBuffer(null);\n return vao;\n }\n}\nRegisterClass(\"BABYLON.WebGL2ParticleSystem\", WebGL2ParticleSystem);\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}