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