@galacean/engine-core 1.5.4 → 1.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/module.js CHANGED
@@ -32986,6 +32986,170 @@ __decorate([
32986
32986
  ignoreClone
32987
32987
  ], EmissionModule.prototype, "_burstRand", void 0);
32988
32988
 
32989
+ /**
32990
+ * Force over lifetime module.
32991
+ */ var ForceOverLifetimeModule = /*#__PURE__*/ function(ParticleGeneratorModule) {
32992
+ _inherits(ForceOverLifetimeModule, ParticleGeneratorModule);
32993
+ function ForceOverLifetimeModule(generator) {
32994
+ var _this;
32995
+ _this = ParticleGeneratorModule.call(this, generator) || this, /** @internal */ _this._forceRand = new Rand(0, ParticleRandomSubSeeds.ForceOverLifetime), _this._forceMinConstant = new Vector3(), _this._forceMaxConstant = new Vector3(), _this._space = ParticleSimulationSpace.Local;
32996
+ _this.forceX = new ParticleCompositeCurve(0);
32997
+ _this.forceY = new ParticleCompositeCurve(0);
32998
+ _this.forceZ = new ParticleCompositeCurve(0);
32999
+ return _this;
33000
+ }
33001
+ var _proto = ForceOverLifetimeModule.prototype;
33002
+ /**
33003
+ * @internal
33004
+ */ _proto._updateShaderData = function _updateShaderData(shaderData) {
33005
+ var forceModeMacro = null;
33006
+ var isRandomModeMacro = null;
33007
+ if (this.enabled) {
33008
+ var forceX = this._forceX;
33009
+ var forceY = this._forceY;
33010
+ var forceZ = this._forceZ;
33011
+ var isRandomCurveMode = forceX.mode === ParticleCurveMode.TwoCurves && forceY.mode === ParticleCurveMode.TwoCurves && forceZ.mode === ParticleCurveMode.TwoCurves;
33012
+ if (isRandomCurveMode || forceX.mode === ParticleCurveMode.Curve && forceY.mode === ParticleCurveMode.Curve && forceZ.mode === ParticleCurveMode.Curve) {
33013
+ shaderData.setFloatArray(ForceOverLifetimeModule._maxGradientXProperty, forceX.curveMax._getTypeArray());
33014
+ shaderData.setFloatArray(ForceOverLifetimeModule._maxGradientYProperty, forceY.curveMax._getTypeArray());
33015
+ shaderData.setFloatArray(ForceOverLifetimeModule._maxGradientZProperty, forceZ.curveMax._getTypeArray());
33016
+ forceModeMacro = ForceOverLifetimeModule._curveModeMacro;
33017
+ if (isRandomCurveMode) {
33018
+ shaderData.setFloatArray(ForceOverLifetimeModule._minGradientXProperty, forceX.curveMin._getTypeArray());
33019
+ shaderData.setFloatArray(ForceOverLifetimeModule._minGradientYProperty, forceY.curveMin._getTypeArray());
33020
+ shaderData.setFloatArray(ForceOverLifetimeModule._minGradientZProperty, forceZ.curveMin._getTypeArray());
33021
+ isRandomModeMacro = ForceOverLifetimeModule._isRandomMacro;
33022
+ }
33023
+ } else {
33024
+ var constantMax = this._forceMaxConstant;
33025
+ constantMax.set(forceX.constantMax, forceY.constantMax, forceZ.constantMax);
33026
+ shaderData.setVector3(ForceOverLifetimeModule._maxConstantProperty, constantMax);
33027
+ forceModeMacro = ForceOverLifetimeModule._constantModeMacro;
33028
+ if (forceX.mode === ParticleCurveMode.TwoConstants && forceY.mode === ParticleCurveMode.TwoConstants && forceZ.mode === ParticleCurveMode.TwoConstants) {
33029
+ var constantMin = this._forceMinConstant;
33030
+ constantMin.set(forceX.constantMin, forceY.constantMin, forceZ.constantMin);
33031
+ shaderData.setVector3(ForceOverLifetimeModule._minConstantProperty, constantMin);
33032
+ isRandomModeMacro = ForceOverLifetimeModule._isRandomMacro;
33033
+ }
33034
+ }
33035
+ shaderData.setInt(ForceOverLifetimeModule._spaceProperty, this._space);
33036
+ }
33037
+ this._forceMacro = this._enableMacro(shaderData, this._forceMacro, forceModeMacro);
33038
+ this._randomModeMacro = this._enableMacro(shaderData, this._randomModeMacro, isRandomModeMacro);
33039
+ };
33040
+ /**
33041
+ * @internal
33042
+ */ _proto._resetRandomSeed = function _resetRandomSeed(seed) {
33043
+ this._forceRand.reset(seed, ParticleRandomSubSeeds.ForceOverLifetime);
33044
+ };
33045
+ /**
33046
+ * @internal
33047
+ */ _proto._isRandomMode = function _isRandomMode() {
33048
+ var modeX = this.forceX.mode;
33049
+ var modeY = this.forceY.mode;
33050
+ var modeZ = this.forceZ.mode;
33051
+ return modeX === ParticleCurveMode.TwoCurves && modeY === ParticleCurveMode.TwoCurves && modeZ === ParticleCurveMode.TwoCurves || modeX === ParticleCurveMode.TwoConstants && modeY === ParticleCurveMode.TwoConstants && modeZ === ParticleCurveMode.TwoConstants;
33052
+ };
33053
+ _create_class(ForceOverLifetimeModule, [
33054
+ {
33055
+ key: "forceX",
33056
+ get: /**
33057
+ * Force over lifetime for x axis.
33058
+ */ function get() {
33059
+ return this._forceX;
33060
+ },
33061
+ set: function set(value) {
33062
+ var lastValue = this._forceX;
33063
+ if (value !== lastValue) {
33064
+ this._forceX = value;
33065
+ this._onCompositeCurveChange(lastValue, value);
33066
+ }
33067
+ }
33068
+ },
33069
+ {
33070
+ key: "forceY",
33071
+ get: /**
33072
+ * Force over lifetime for y axis.
33073
+ */ function get() {
33074
+ return this._forceY;
33075
+ },
33076
+ set: function set(value) {
33077
+ var lastValue = this._forceY;
33078
+ if (value !== lastValue) {
33079
+ this._forceY = value;
33080
+ this._onCompositeCurveChange(lastValue, value);
33081
+ }
33082
+ }
33083
+ },
33084
+ {
33085
+ key: "forceZ",
33086
+ get: /**
33087
+ * Force over lifetime for z axis.
33088
+ */ function get() {
33089
+ return this._forceZ;
33090
+ },
33091
+ set: function set(value) {
33092
+ var lastValue = this._forceZ;
33093
+ if (value !== lastValue) {
33094
+ this._forceZ = value;
33095
+ this._onCompositeCurveChange(lastValue, value);
33096
+ }
33097
+ }
33098
+ },
33099
+ {
33100
+ key: "space",
33101
+ get: /**
33102
+ * Force space.
33103
+ */ function get() {
33104
+ return this._space;
33105
+ },
33106
+ set: function set(value) {
33107
+ if (value !== this._space) {
33108
+ this._space = value;
33109
+ this._generator._renderer._onGeneratorParamsChanged();
33110
+ }
33111
+ }
33112
+ }
33113
+ ]);
33114
+ return ForceOverLifetimeModule;
33115
+ }(ParticleGeneratorModule);
33116
+ ForceOverLifetimeModule._constantModeMacro = ShaderMacro.getByName("RENDERER_FOL_CONSTANT_MODE");
33117
+ ForceOverLifetimeModule._curveModeMacro = ShaderMacro.getByName("RENDERER_FOL_CURVE_MODE");
33118
+ ForceOverLifetimeModule._isRandomMacro = ShaderMacro.getByName("RENDERER_FOL_IS_RANDOM_TWO");
33119
+ ForceOverLifetimeModule._minConstantProperty = ShaderProperty.getByName("renderer_FOLMinConst");
33120
+ ForceOverLifetimeModule._maxConstantProperty = ShaderProperty.getByName("renderer_FOLMaxConst");
33121
+ ForceOverLifetimeModule._minGradientXProperty = ShaderProperty.getByName("renderer_FOLMinGradientX");
33122
+ ForceOverLifetimeModule._minGradientYProperty = ShaderProperty.getByName("renderer_FOLMinGradientY");
33123
+ ForceOverLifetimeModule._minGradientZProperty = ShaderProperty.getByName("renderer_FOLMinGradientZ");
33124
+ ForceOverLifetimeModule._maxGradientXProperty = ShaderProperty.getByName("renderer_FOLMaxGradientX");
33125
+ ForceOverLifetimeModule._maxGradientYProperty = ShaderProperty.getByName("renderer_FOLMaxGradientY");
33126
+ ForceOverLifetimeModule._maxGradientZProperty = ShaderProperty.getByName("renderer_FOLMaxGradientZ");
33127
+ ForceOverLifetimeModule._spaceProperty = ShaderProperty.getByName("renderer_FOLSpace");
33128
+ __decorate([
33129
+ ignoreClone
33130
+ ], ForceOverLifetimeModule.prototype, "_forceRand", void 0);
33131
+ __decorate([
33132
+ ignoreClone
33133
+ ], ForceOverLifetimeModule.prototype, "_forceMinConstant", void 0);
33134
+ __decorate([
33135
+ ignoreClone
33136
+ ], ForceOverLifetimeModule.prototype, "_forceMaxConstant", void 0);
33137
+ __decorate([
33138
+ ignoreClone
33139
+ ], ForceOverLifetimeModule.prototype, "_forceMacro", void 0);
33140
+ __decorate([
33141
+ ignoreClone
33142
+ ], ForceOverLifetimeModule.prototype, "_randomModeMacro", void 0);
33143
+ __decorate([
33144
+ deepClone
33145
+ ], ForceOverLifetimeModule.prototype, "_forceX", void 0);
33146
+ __decorate([
33147
+ deepClone
33148
+ ], ForceOverLifetimeModule.prototype, "_forceY", void 0);
33149
+ __decorate([
33150
+ deepClone
33151
+ ], ForceOverLifetimeModule.prototype, "_forceZ", void 0);
33152
+
32989
33153
  /**
32990
33154
  * Control how Particle Generator apply transform scale.
32991
33155
  */ var ParticleScaleMode = /*#__PURE__*/ function(ParticleScaleMode) {
@@ -34009,170 +34173,6 @@ __decorate([
34009
34173
  deepClone
34010
34174
  ], VelocityOverLifetimeModule.prototype, "_velocityZ", void 0);
34011
34175
 
34012
- /**
34013
- * Force over lifetime module.
34014
- */ var ForceOverLifetimeModule = /*#__PURE__*/ function(ParticleGeneratorModule) {
34015
- _inherits(ForceOverLifetimeModule, ParticleGeneratorModule);
34016
- function ForceOverLifetimeModule(generator) {
34017
- var _this;
34018
- _this = ParticleGeneratorModule.call(this, generator) || this, /** @internal */ _this._forceRand = new Rand(0, ParticleRandomSubSeeds.ForceOverLifetime), _this._forceMinConstant = new Vector3(), _this._forceMaxConstant = new Vector3(), _this._space = ParticleSimulationSpace.Local;
34019
- _this.forceX = new ParticleCompositeCurve(0);
34020
- _this.forceY = new ParticleCompositeCurve(0);
34021
- _this.forceZ = new ParticleCompositeCurve(0);
34022
- return _this;
34023
- }
34024
- var _proto = ForceOverLifetimeModule.prototype;
34025
- /**
34026
- * @internal
34027
- */ _proto._updateShaderData = function _updateShaderData(shaderData) {
34028
- var forceModeMacro = null;
34029
- var isRandomModeMacro = null;
34030
- if (this.enabled) {
34031
- var forceX = this._forceX;
34032
- var forceY = this._forceY;
34033
- var forceZ = this._forceZ;
34034
- var isRandomCurveMode = forceX.mode === ParticleCurveMode.TwoCurves && forceY.mode === ParticleCurveMode.TwoCurves && forceZ.mode === ParticleCurveMode.TwoCurves;
34035
- if (isRandomCurveMode || forceX.mode === ParticleCurveMode.Curve && forceY.mode === ParticleCurveMode.Curve && forceZ.mode === ParticleCurveMode.Curve) {
34036
- shaderData.setFloatArray(ForceOverLifetimeModule._maxGradientXProperty, forceX.curveMax._getTypeArray());
34037
- shaderData.setFloatArray(ForceOverLifetimeModule._maxGradientYProperty, forceY.curveMax._getTypeArray());
34038
- shaderData.setFloatArray(ForceOverLifetimeModule._maxGradientZProperty, forceZ.curveMax._getTypeArray());
34039
- forceModeMacro = ForceOverLifetimeModule._curveModeMacro;
34040
- if (isRandomCurveMode) {
34041
- shaderData.setFloatArray(ForceOverLifetimeModule._minGradientXProperty, forceX.curveMin._getTypeArray());
34042
- shaderData.setFloatArray(ForceOverLifetimeModule._minGradientYProperty, forceY.curveMin._getTypeArray());
34043
- shaderData.setFloatArray(ForceOverLifetimeModule._minGradientZProperty, forceZ.curveMin._getTypeArray());
34044
- isRandomModeMacro = ForceOverLifetimeModule._isRandomMacro;
34045
- }
34046
- } else {
34047
- var constantMax = this._forceMaxConstant;
34048
- constantMax.set(forceX.constantMax, forceY.constantMax, forceZ.constantMax);
34049
- shaderData.setVector3(ForceOverLifetimeModule._maxConstantProperty, constantMax);
34050
- forceModeMacro = ForceOverLifetimeModule._constantModeMacro;
34051
- if (forceX.mode === ParticleCurveMode.TwoConstants && forceY.mode === ParticleCurveMode.TwoConstants && forceZ.mode === ParticleCurveMode.TwoConstants) {
34052
- var constantMin = this._forceMinConstant;
34053
- constantMin.set(forceX.constantMin, forceY.constantMin, forceZ.constantMin);
34054
- shaderData.setVector3(ForceOverLifetimeModule._minConstantProperty, constantMin);
34055
- isRandomModeMacro = ForceOverLifetimeModule._isRandomMacro;
34056
- }
34057
- }
34058
- shaderData.setInt(ForceOverLifetimeModule._spaceProperty, this._space);
34059
- }
34060
- this._forceMacro = this._enableMacro(shaderData, this._forceMacro, forceModeMacro);
34061
- this._randomModeMacro = this._enableMacro(shaderData, this._randomModeMacro, isRandomModeMacro);
34062
- };
34063
- /**
34064
- * @internal
34065
- */ _proto._resetRandomSeed = function _resetRandomSeed(seed) {
34066
- this._forceRand.reset(seed, ParticleRandomSubSeeds.ForceOverLifetime);
34067
- };
34068
- /**
34069
- * @internal
34070
- */ _proto._isRandomMode = function _isRandomMode() {
34071
- var modeX = this.forceX.mode;
34072
- var modeY = this.forceY.mode;
34073
- var modeZ = this.forceZ.mode;
34074
- return modeX === ParticleCurveMode.TwoCurves && modeY === ParticleCurveMode.TwoCurves && modeZ === ParticleCurveMode.TwoCurves || modeX === ParticleCurveMode.TwoConstants && modeY === ParticleCurveMode.TwoConstants && modeZ === ParticleCurveMode.TwoConstants;
34075
- };
34076
- _create_class(ForceOverLifetimeModule, [
34077
- {
34078
- key: "forceX",
34079
- get: /**
34080
- * Force over lifetime for x axis.
34081
- */ function get() {
34082
- return this._forceX;
34083
- },
34084
- set: function set(value) {
34085
- var lastValue = this._forceX;
34086
- if (value !== lastValue) {
34087
- this._forceX = value;
34088
- this._onCompositeCurveChange(lastValue, value);
34089
- }
34090
- }
34091
- },
34092
- {
34093
- key: "forceY",
34094
- get: /**
34095
- * Force over lifetime for y axis.
34096
- */ function get() {
34097
- return this._forceY;
34098
- },
34099
- set: function set(value) {
34100
- var lastValue = this._forceY;
34101
- if (value !== lastValue) {
34102
- this._forceY = value;
34103
- this._onCompositeCurveChange(lastValue, value);
34104
- }
34105
- }
34106
- },
34107
- {
34108
- key: "forceZ",
34109
- get: /**
34110
- * Force over lifetime for z axis.
34111
- */ function get() {
34112
- return this._forceZ;
34113
- },
34114
- set: function set(value) {
34115
- var lastValue = this._forceZ;
34116
- if (value !== lastValue) {
34117
- this._forceZ = value;
34118
- this._onCompositeCurveChange(lastValue, value);
34119
- }
34120
- }
34121
- },
34122
- {
34123
- key: "space",
34124
- get: /**
34125
- * Force space.
34126
- */ function get() {
34127
- return this._space;
34128
- },
34129
- set: function set(value) {
34130
- if (value !== this._space) {
34131
- this._space = value;
34132
- this._generator._renderer._onGeneratorParamsChanged();
34133
- }
34134
- }
34135
- }
34136
- ]);
34137
- return ForceOverLifetimeModule;
34138
- }(ParticleGeneratorModule);
34139
- ForceOverLifetimeModule._constantModeMacro = ShaderMacro.getByName("RENDERER_FOL_CONSTANT_MODE");
34140
- ForceOverLifetimeModule._curveModeMacro = ShaderMacro.getByName("RENDERER_FOL_CURVE_MODE");
34141
- ForceOverLifetimeModule._isRandomMacro = ShaderMacro.getByName("RENDERER_FOL_IS_RANDOM_TWO");
34142
- ForceOverLifetimeModule._minConstantProperty = ShaderProperty.getByName("renderer_FOLMinConst");
34143
- ForceOverLifetimeModule._maxConstantProperty = ShaderProperty.getByName("renderer_FOLMaxConst");
34144
- ForceOverLifetimeModule._minGradientXProperty = ShaderProperty.getByName("renderer_FOLMinGradientX");
34145
- ForceOverLifetimeModule._minGradientYProperty = ShaderProperty.getByName("renderer_FOLMinGradientY");
34146
- ForceOverLifetimeModule._minGradientZProperty = ShaderProperty.getByName("renderer_FOLMinGradientZ");
34147
- ForceOverLifetimeModule._maxGradientXProperty = ShaderProperty.getByName("renderer_FOLMaxGradientX");
34148
- ForceOverLifetimeModule._maxGradientYProperty = ShaderProperty.getByName("renderer_FOLMaxGradientY");
34149
- ForceOverLifetimeModule._maxGradientZProperty = ShaderProperty.getByName("renderer_FOLMaxGradientZ");
34150
- ForceOverLifetimeModule._spaceProperty = ShaderProperty.getByName("renderer_FOLSpace");
34151
- __decorate([
34152
- ignoreClone
34153
- ], ForceOverLifetimeModule.prototype, "_forceRand", void 0);
34154
- __decorate([
34155
- ignoreClone
34156
- ], ForceOverLifetimeModule.prototype, "_forceMinConstant", void 0);
34157
- __decorate([
34158
- ignoreClone
34159
- ], ForceOverLifetimeModule.prototype, "_forceMaxConstant", void 0);
34160
- __decorate([
34161
- ignoreClone
34162
- ], ForceOverLifetimeModule.prototype, "_forceMacro", void 0);
34163
- __decorate([
34164
- ignoreClone
34165
- ], ForceOverLifetimeModule.prototype, "_randomModeMacro", void 0);
34166
- __decorate([
34167
- deepClone
34168
- ], ForceOverLifetimeModule.prototype, "_forceX", void 0);
34169
- __decorate([
34170
- deepClone
34171
- ], ForceOverLifetimeModule.prototype, "_forceY", void 0);
34172
- __decorate([
34173
- deepClone
34174
- ], ForceOverLifetimeModule.prototype, "_forceZ", void 0);
34175
-
34176
34176
  /**
34177
34177
  * Particle Generator.
34178
34178
  */ var ParticleGenerator = /*#__PURE__*/ function() {
@@ -34950,7 +34950,6 @@ __decorate([
34950
34950
  };
34951
34951
  _proto._addGravityToBounds = function _addGravityToBounds(maxLifetime, origin, out) {
34952
34952
  var originMin = origin.min, originMax = origin.max;
34953
- var min = out.min, max = out.max;
34954
34953
  var modifierMinMax = ParticleGenerator._tempVector20;
34955
34954
  // Gravity modifier impact
34956
34955
  this._getExtremeValueFromZero(this.main.gravityModifier, modifierMinMax);
@@ -34964,10 +34963,9 @@ __decorate([
34964
34963
  var gravityEffectMaxY = y * maxGravityEffect;
34965
34964
  var gravityEffectMinZ = z * minGravityEffect;
34966
34965
  var gravityEffectMaxZ = z * maxGravityEffect;
34967
- min.set(Math.min(gravityEffectMinX, gravityEffectMaxX), Math.min(gravityEffectMinY, gravityEffectMaxY), Math.min(gravityEffectMinZ, gravityEffectMaxZ));
34968
- max.set(Math.max(gravityEffectMinX, gravityEffectMaxX), Math.max(gravityEffectMinY, gravityEffectMaxY), Math.max(gravityEffectMinZ, gravityEffectMaxZ));
34969
- min.add(originMin);
34970
- max.add(originMax);
34966
+ // `origin` and `out` maybe is same reference
34967
+ out.min.set(Math.min(gravityEffectMinX, gravityEffectMaxX) + originMin.x, Math.min(gravityEffectMinY, gravityEffectMaxY) + originMin.y, Math.min(gravityEffectMinZ, gravityEffectMaxZ) + originMin.z);
34968
+ out.max.set(Math.max(gravityEffectMinX, gravityEffectMaxX) + originMax.x, Math.max(gravityEffectMinY, gravityEffectMaxY) + originMax.y, Math.max(gravityEffectMinZ, gravityEffectMaxZ) + originMax.z);
34971
34969
  };
34972
34970
  _proto._getExtremeValueFromZero = function _getExtremeValueFromZero(curve, out) {
34973
34971
  curve._getMinMax(out);