@galacean/engine-core 1.1.0-beta.4 → 1.1.0-beta.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
@@ -2537,8 +2537,8 @@ var ActiveChangeFlag;
2537
2537
  var _this;
2538
2538
  _this = EngineObject1.call(this, entity.engine) || this;
2539
2539
  /** @internal */ _this._awoken = false;
2540
- _this._phasedActive = false;
2541
2540
  _this._phasedActiveInScene = false;
2541
+ _this._phasedActive = false;
2542
2542
  _this._enabled = true;
2543
2543
  _this._entity = entity;
2544
2544
  return _this;
@@ -2670,10 +2670,10 @@ __decorate([
2670
2670
  ], Component.prototype, "_awoken", void 0);
2671
2671
  __decorate([
2672
2672
  ignoreClone
2673
- ], Component.prototype, "_phasedActive", void 0);
2673
+ ], Component.prototype, "_phasedActiveInScene", void 0);
2674
2674
  __decorate([
2675
2675
  ignoreClone
2676
- ], Component.prototype, "_phasedActiveInScene", void 0);
2676
+ ], Component.prototype, "_phasedActive", void 0);
2677
2677
  __decorate([
2678
2678
  assignmentClone
2679
2679
  ], Component.prototype, "_enabled", void 0);
@@ -12587,16 +12587,31 @@ var SafeLoopArray = /*#__PURE__*/ function() {
12587
12587
  }
12588
12588
  var _proto = SceneManager.prototype;
12589
12589
  _proto.addScene = function addScene(indexOrScene, scene) {
12590
+ var scenes = this._scenes;
12591
+ var index;
12590
12592
  if (typeof indexOrScene === "number") {
12591
- this._scenes.add(indexOrScene, scene);
12593
+ if (indexOrScene < 0 || indexOrScene > scenes.length) {
12594
+ throw "The index is out of range.";
12595
+ }
12596
+ index = indexOrScene;
12592
12597
  } else {
12598
+ index = scenes.length;
12593
12599
  scene = indexOrScene;
12594
- this._scenes.push(scene);
12595
12600
  }
12596
12601
  if (scene.engine !== this.engine) {
12597
12602
  throw "The scene is not belong to this engine.";
12598
12603
  }
12599
- scene._processActive(true);
12604
+ if (scene._sceneManager) {
12605
+ var currentIndex = scenes.indexOf(scene);
12606
+ if (currentIndex !== index) {
12607
+ scenes.removeByIndex(currentIndex);
12608
+ scenes.add(index, scene);
12609
+ }
12610
+ } else {
12611
+ scene._sceneManager = this;
12612
+ scenes.add(index, scene);
12613
+ scene.isActive && scene._processActive(true);
12614
+ }
12600
12615
  };
12601
12616
  /**
12602
12617
  * Remove scene.
@@ -12607,7 +12622,8 @@ var SafeLoopArray = /*#__PURE__*/ function() {
12607
12622
  if (index !== -1) {
12608
12623
  var removedScene = scenes.getArray()[index];
12609
12624
  scenes.removeByIndex(index);
12610
- removedScene._processActive(false);
12625
+ scene._sceneManager = null;
12626
+ removedScene.isActive && removedScene._processActive(false);
12611
12627
  }
12612
12628
  };
12613
12629
  /**
@@ -13811,9 +13827,9 @@ var Collider = /*#__PURE__*/ function(Component1) {
13811
13827
  oldCollider.removeShape(shape);
13812
13828
  }
13813
13829
  this._shapes.push(shape);
13814
- this.scene.physics._addColliderShape(shape);
13815
13830
  shape._collider = this;
13816
13831
  this._nativeCollider.addShape(shape._nativeShape);
13832
+ this._phasedActiveInScene && this.scene.physics._addColliderShape(shape);
13817
13833
  }
13818
13834
  };
13819
13835
  /**
@@ -13823,7 +13839,7 @@ var Collider = /*#__PURE__*/ function(Component1) {
13823
13839
  var index = this._shapes.indexOf(shape);
13824
13840
  if (index !== -1) {
13825
13841
  this._shapes.splice(index, 1);
13826
- this.scene.physics._removeColliderShape(shape);
13842
+ this._phasedActiveInScene && this.scene.physics._removeColliderShape(shape);
13827
13843
  shape._collider = null;
13828
13844
  this._nativeCollider.removeShape(shape._nativeShape);
13829
13845
  }
@@ -13834,7 +13850,7 @@ var Collider = /*#__PURE__*/ function(Component1) {
13834
13850
  var shapes = this._shapes;
13835
13851
  for(var i = 0, n = shapes.length; i < n; i++){
13836
13852
  var shape = shapes[i];
13837
- this.scene.physics._removeColliderShape(shape);
13853
+ this._phasedActiveInScene && this.scene.physics._removeColliderShape(shape);
13838
13854
  shape._destroy();
13839
13855
  this._nativeCollider.removeShape(shape._nativeShape);
13840
13856
  }
@@ -13859,12 +13875,22 @@ var Collider = /*#__PURE__*/ function(Component1) {
13859
13875
  /**
13860
13876
  * @internal
13861
13877
  */ _proto._onEnableInScene = function _onEnableInScene() {
13862
- this.scene.physics._addCollider(this);
13878
+ var physics = this.scene.physics;
13879
+ physics._addCollider(this);
13880
+ var shapes = this.shapes;
13881
+ for(var i = 0, n = shapes.length; i < n; i++){
13882
+ physics._addColliderShape(shapes[i]);
13883
+ }
13863
13884
  };
13864
13885
  /**
13865
13886
  * @internal
13866
13887
  */ _proto._onDisableInScene = function _onDisableInScene() {
13867
- this.scene.physics._removeCollider(this);
13888
+ var physics = this.scene.physics;
13889
+ physics._removeCollider(this);
13890
+ var shapes = this.shapes;
13891
+ for(var i = 0, n = shapes.length; i < n; i++){
13892
+ physics._removeColliderShape(shapes[i]);
13893
+ }
13868
13894
  };
13869
13895
  /**
13870
13896
  * @internal
@@ -14242,12 +14268,22 @@ var Collision = function Collision() {
14242
14268
  /**
14243
14269
  * @internal
14244
14270
  */ _proto._onEnableInScene = function _onEnableInScene() {
14245
- this.scene.physics._addCharacterController(this);
14271
+ var physics = this.scene.physics;
14272
+ physics._addCharacterController(this);
14273
+ var shapes = this.shapes;
14274
+ for(var i = 0, n = shapes.length; i < n; i++){
14275
+ physics._addColliderShape(shapes[i]);
14276
+ }
14246
14277
  };
14247
14278
  /**
14248
14279
  * @internal
14249
14280
  */ _proto._onDisableInScene = function _onDisableInScene() {
14250
- this.scene.physics._removeCharacterController(this);
14281
+ var physics = this.scene.physics;
14282
+ physics._removeCharacterController(this);
14283
+ var shapes = this.shapes;
14284
+ for(var i = 0, n = shapes.length; i < n; i++){
14285
+ physics._removeColliderShape(shapes[i]);
14286
+ }
14251
14287
  };
14252
14288
  _proto._setUpDirection = function _setUpDirection() {
14253
14289
  this._nativeCollider.setUpDirection(this._upDirection);
@@ -15706,8 +15742,8 @@ Joint = __decorate([
15706
15742
  continue;
15707
15743
  }
15708
15744
  var cameras = scene._activeCameras;
15709
- for(var j = 0; j < cameras.length; j++){
15710
- var camera = cameras[i];
15745
+ for(var j = cameras.length - 1; j >= 0; j--){
15746
+ var camera = cameras[j];
15711
15747
  if (!camera.enabled || camera.renderTarget) {
15712
15748
  continue;
15713
15749
  }
@@ -16399,10 +16435,6 @@ ShaderPool.init();
16399
16435
  magentaMaterial.isGCIgnored = true;
16400
16436
  magentaMaterial.shaderData.setColor("material_BaseColor", new Color(1.0, 0.0, 1.01, 1.0));
16401
16437
  _this._magentaMaterial = magentaMaterial;
16402
- var backgroundTextureMaterial = new Material(_assert_this_initialized(_this), Shader.find("background-texture"));
16403
- backgroundTextureMaterial.isGCIgnored = true;
16404
- backgroundTextureMaterial.renderState.depthState.compareFunction = CompareFunction.LessEqual;
16405
- _this._backgroundTextureMaterial = backgroundTextureMaterial;
16406
16438
  var innerSettings = _this._settings;
16407
16439
  var colorSpace = configuration.colorSpace || ColorSpace.Linear;
16408
16440
  colorSpace === ColorSpace.Gamma && _this._macroCollection.enable(Engine._gammaMacro);
@@ -17020,26 +17052,22 @@ ShaderPool.init();
17020
17052
  this./** @internal */ _textureFillMode = BackgroundTextureFillMode.AspectFitHeight;
17021
17053
  this._texture = null;
17022
17054
  this._initMesh(_engine);
17055
+ this._initMaterial(_engine);
17023
17056
  }
17024
17057
  var _proto = Background.prototype;
17025
17058
  /**
17026
17059
  * @internal
17027
17060
  */ _proto.destroy = function destroy() {
17061
+ this.texture = null;
17028
17062
  this._mesh._addReferCount(-1);
17029
17063
  this._mesh = null;
17030
- this.texture = null;
17064
+ this._material._addReferCount(-1);
17065
+ this._material = null;
17031
17066
  this.solidColor = null;
17032
17067
  this.sky.destroy();
17033
17068
  };
17034
17069
  /**
17035
17070
  * @internal
17036
- * Standalone for CanvasRenderer plugin.
17037
- */ _proto._initMesh = function _initMesh(engine) {
17038
- this._mesh = this._createPlane(engine);
17039
- this._mesh._addReferCount(1);
17040
- };
17041
- /**
17042
- * @internal
17043
17071
  */ _proto._resizeBackgroundTexture = function _resizeBackgroundTexture() {
17044
17072
  if (!this._texture) {
17045
17073
  return;
@@ -17073,6 +17101,15 @@ ShaderPool.init();
17073
17101
  _backgroundTextureMesh.setPositions(positions);
17074
17102
  _backgroundTextureMesh.uploadData(false);
17075
17103
  };
17104
+ _proto._initMesh = function _initMesh(engine) {
17105
+ this._mesh = this._createPlane(engine);
17106
+ this._mesh._addReferCount(1);
17107
+ };
17108
+ _proto._initMaterial = function _initMaterial(engine) {
17109
+ var material = this._material = new Material(engine, Shader.find("background-texture"));
17110
+ material.renderState.depthState.compareFunction = CompareFunction.LessEqual;
17111
+ material._addReferCount(1);
17112
+ };
17076
17113
  _proto._createPlane = function _createPlane(engine) {
17077
17114
  var mesh = new ModelMesh(engine);
17078
17115
  mesh.isGCIgnored = true;
@@ -17112,7 +17149,7 @@ ShaderPool.init();
17112
17149
  (_value = value) == null ? void 0 : _value._addReferCount(1);
17113
17150
  (_this__texture = this._texture) == null ? void 0 : _this__texture._addReferCount(-1);
17114
17151
  this._texture = value;
17115
- this._engine._backgroundTextureMaterial.shaderData.setTexture("material_BaseTexture", value);
17152
+ this._material.shaderData.setTexture("material_BaseTexture", value);
17116
17153
  }
17117
17154
  }
17118
17155
  },
@@ -17270,7 +17307,7 @@ ShaderPool.init();
17270
17307
  var _this = this, pendingDestroyScripts = _this._disposeDestroyScripts, disposeDestroyScripts = _this._pendingDestroyScripts;
17271
17308
  this._disposeDestroyScripts = disposeDestroyScripts;
17272
17309
  this._pendingDestroyScripts = pendingDestroyScripts;
17273
- length = disposeDestroyScripts.length;
17310
+ var length = disposeDestroyScripts.length;
17274
17311
  if (length > 0) {
17275
17312
  for(var i = length - 1; i >= 0; i--){
17276
17313
  disposeDestroyScripts[i].onDestroy();
@@ -18192,6 +18229,7 @@ __decorate([
18192
18229
  _this._fogEnd = 300;
18193
18230
  _this._fogDensity = 0.01;
18194
18231
  _this._fogParams = new Vector4();
18232
+ _this._isActive = true;
18195
18233
  _this.name = name || "";
18196
18234
  var shaderData = _this.shaderData;
18197
18235
  shaderData._addReferCount(1);
@@ -18439,6 +18477,24 @@ __decorate([
18439
18477
  this._fogParams.w = density / Math.sqrt(Math.LN2);
18440
18478
  };
18441
18479
  _create_class(Scene, [
18480
+ {
18481
+ key: "isActive",
18482
+ get: /**
18483
+ * Whether the scene is active.
18484
+ */ function get() {
18485
+ return this._isActive;
18486
+ },
18487
+ set: function set(value) {
18488
+ if (this._isActive !== value) {
18489
+ this._isActive = value;
18490
+ if (value) {
18491
+ this._sceneManager && this._processActive(true);
18492
+ } else {
18493
+ this._sceneManager && this._processActive(false);
18494
+ }
18495
+ }
18496
+ }
18497
+ },
18442
18498
  {
18443
18499
  key: "shaderData",
18444
18500
  get: /**
@@ -18757,7 +18813,11 @@ __decorate([
18757
18813
  * @internal
18758
18814
  */ _proto._onDestroy = function _onDestroy() {
18759
18815
  Component1.prototype._onDestroy.call(this);
18760
- this.scene._componentsManager.addPendingDestroyScript(this);
18816
+ if (this.scene) {
18817
+ this.scene._componentsManager.addPendingDestroyScript(this);
18818
+ } else {
18819
+ this.onDestroy();
18820
+ }
18761
18821
  };
18762
18822
  return Script;
18763
18823
  }(Component);
@@ -20307,8 +20367,8 @@ var /**
20307
20367
  };
20308
20368
  _proto._drawBackgroundTexture = function _drawBackgroundTexture(engine, background) {
20309
20369
  var rhi = engine._hardwareRenderer;
20310
- var material = engine._backgroundTextureMaterial, canvas = engine.canvas;
20311
- var mesh = background._mesh;
20370
+ var canvas = engine.canvas;
20371
+ var material = background._material, mesh = background._mesh;
20312
20372
  if ((this._lastCanvasSize.x !== canvas.width || this._lastCanvasSize.y !== canvas.height) && background._textureFillMode !== BackgroundTextureFillMode.Fill) {
20313
20373
  this._lastCanvasSize.set(canvas.width, canvas.height);
20314
20374
  background._resizeBackgroundTexture();
@@ -20483,7 +20543,7 @@ var Camera = (_Camera = /*#__PURE__*/ function(Component1) {
20483
20543
  // Use the intersection of the near clipping plane as the origin point.
20484
20544
  var origin = this._innerViewportToWorldPoint(point.x, point.y, 0.0, invViewProjMat, out.origin);
20485
20545
  // Use the intersection of the far clipping plane as the origin point.
20486
- var direction = this._innerViewportToWorldPoint(point.x, point.y, 1.0, invViewProjMat, out.direction);
20546
+ var direction = this._innerViewportToWorldPoint(point.x, point.y, 1 - MathUtil$1.zeroTolerance, invViewProjMat, out.direction);
20487
20547
  Vector3.subtract(direction, origin, direction);
20488
20548
  direction.normalize();
20489
20549
  return out;
@@ -26967,64 +27027,203 @@ var SunMode;
26967
27027
  SkyProceduralMaterial._sunSimpleMacro = ShaderMacro.getByName("MATERIAL_SUN_SIMPLE");
26968
27028
  })();
26969
27029
 
27030
+ var SubPrimitive = function SubPrimitive() {
27031
+ };
27032
+
26970
27033
  /**
26971
- * Particle Material.
26972
- */ var ParticleMaterial = /*#__PURE__*/ function(BaseMaterial1) {
26973
- _inherits(ParticleMaterial, BaseMaterial1);
26974
- function ParticleMaterial(engine) {
27034
+ * The rendering mode for particle renderer.
27035
+ */ var ParticleRenderMode;
27036
+ (function(ParticleRenderMode) {
27037
+ ParticleRenderMode[ParticleRenderMode[/** Render particles as billboards facing the active camera. */ "Billboard"] = 0] = "Billboard";
27038
+ ParticleRenderMode[ParticleRenderMode[/** Stretch particles in the direction of motion. */ "StretchBillboard"] = 1] = "StretchBillboard";
27039
+ ParticleRenderMode[ParticleRenderMode[/** Render particles as billboards always facing up along the y-Axis. */ "HorizontalBillboard"] = 2] = "HorizontalBillboard";
27040
+ ParticleRenderMode[ParticleRenderMode[/** Render particles as billboards always facing the player, but not pitching along the x-Axis. */ "VerticalBillboard"] = 3] = "VerticalBillboard";
27041
+ ParticleRenderMode[ParticleRenderMode[/** Render particles as meshes. */ "Mesh"] = 4] = "Mesh";
27042
+ ParticleRenderMode[ParticleRenderMode[/** Do not render particles. */ "None"] = 5] = "None";
27043
+ })(ParticleRenderMode || (ParticleRenderMode = {}));
27044
+
27045
+ var ParticleStopMode;
27046
+ (function(ParticleStopMode) {
27047
+ ParticleStopMode[ParticleStopMode[/** Stop emitting new particles and clear existing particles immediately. */ "StopEmittingAndClear"] = 0] = "StopEmittingAndClear";
27048
+ ParticleStopMode[ParticleStopMode[/** Stop emitting new particles, but keep existing particles until they expire. */ "StopEmitting"] = 1] = "StopEmitting";
27049
+ })(ParticleStopMode || (ParticleStopMode = {}));
27050
+
27051
+ /**
27052
+ * Particle Renderer Component.
27053
+ */ var ParticleRenderer = /*#__PURE__*/ function(Renderer1) {
27054
+ _inherits(ParticleRenderer, Renderer1);
27055
+ function ParticleRenderer(entity) {
26975
27056
  var _this;
26976
- _this = BaseMaterial1.call(this, engine, Shader.find("particle-shader")) || this;
26977
- var shaderData = _this.shaderData;
26978
- shaderData.enableMacro("MATERIAL_OMIT_NORMAL");
26979
- shaderData.setColor(BaseMaterial._baseColorProp, new Color$1(1, 1, 1, 1));
26980
- _this.isTransparent = true;
27057
+ _this = Renderer1.call(this, entity) || this;
27058
+ /** Particle generator. */ _this.generator = new ParticleGenerator(_assert_this_initialized(_this));
27059
+ /** Specifies how much particles stretch depending on their velocity. */ _this.velocityScale = 0;
27060
+ /** How much are the particles stretched in their direction of motion, defined as the length of the particle compared to its width. */ _this.lengthScale = 2;
27061
+ /** The pivot of particle. */ _this.pivot = new Vector3();
27062
+ _this._currentRenderModeMacro = ParticleRenderer._billboardModeMacro;
27063
+ _this.shaderData.enableMacro(ParticleRenderer._billboardModeMacro);
27064
+ _this._supportInstancedArrays = _this.engine._hardwareRenderer.canIUse(GLCapabilityType.instancedArrays);
26981
27065
  return _this;
26982
27066
  }
26983
- var _proto = ParticleMaterial.prototype;
27067
+ var _proto = ParticleRenderer.prototype;
26984
27068
  /**
26985
- * @inheritdoc
26986
- */ _proto.clone = function clone() {
26987
- var dest = new ParticleMaterial(this._engine);
26988
- this.cloneTo(dest);
26989
- return dest;
27069
+ * @internal
27070
+ */ _proto._onEnable = function _onEnable() {
27071
+ if (this.generator.main.playOnEnabled) {
27072
+ this.generator.play(false);
27073
+ }
26990
27074
  };
26991
- _create_class(ParticleMaterial, [
27075
+ /**
27076
+ * @internal
27077
+ */ _proto._onDisable = function _onDisable() {
27078
+ this.generator.stop(false, ParticleStopMode.StopEmittingAndClear);
27079
+ };
27080
+ /**
27081
+ * @internal
27082
+ */ _proto._prepareRender = function _prepareRender(context) {
27083
+ if (!this._supportInstancedArrays) {
27084
+ return;
27085
+ }
27086
+ var generator = this.generator;
27087
+ generator._update(this.engine.time.deltaTime);
27088
+ // No particles to render
27089
+ if (generator._firstActiveElement === generator._firstFreeElement) {
27090
+ return;
27091
+ }
27092
+ Renderer1.prototype._prepareRender.call(this, context);
27093
+ };
27094
+ /**
27095
+ * @internal
27096
+ */ _proto._updateBounds = function _updateBounds(worldBounds) {
27097
+ worldBounds.min.set(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);
27098
+ worldBounds.max.set(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);
27099
+ };
27100
+ /**
27101
+ * @internal
27102
+ */ _proto._updateShaderData = function _updateShaderData(context) {
27103
+ var shaderData = this.shaderData;
27104
+ shaderData.setFloat(ParticleRenderer._lengthScale, this.lengthScale);
27105
+ shaderData.setFloat(ParticleRenderer._speedScale, this.velocityScale);
27106
+ shaderData.setFloat(ParticleRenderer._currentTime, this.generator._playTime);
27107
+ shaderData.setVector3(ParticleRenderer._pivotOffsetProperty, this.pivot);
27108
+ this.generator._updateShaderData(shaderData);
27109
+ };
27110
+ _proto._render = function _render(context) {
27111
+ var generator = this.generator;
27112
+ var primitive = generator._primitive;
27113
+ if (generator._firstActiveElement < generator._firstFreeElement) {
27114
+ primitive.instanceCount = generator._firstFreeElement - generator._firstActiveElement;
27115
+ } else {
27116
+ var instanceCount = generator._currentParticleCount - generator._firstActiveElement;
27117
+ if (generator._firstFreeElement > 0) {
27118
+ instanceCount += generator._firstFreeElement;
27119
+ }
27120
+ primitive.instanceCount = instanceCount;
27121
+ }
27122
+ var material = this.getMaterial();
27123
+ var renderData = this._engine._renderDataPool.getFromPool();
27124
+ renderData.setX(this, material, generator._primitive, generator._subPrimitive);
27125
+ context.camera._renderPipeline.pushRenderData(context, renderData);
27126
+ };
27127
+ _proto._onDestroy = function _onDestroy() {
27128
+ this.generator._destroy();
27129
+ };
27130
+ _create_class(ParticleRenderer, [
26992
27131
  {
26993
- key: "baseColor",
27132
+ key: "renderMode",
26994
27133
  get: /**
26995
- * Base color.
27134
+ * Specifies how particles are rendered.
26996
27135
  */ function get() {
26997
- return this.shaderData.getColor(BaseMaterial._baseColorProp);
27136
+ return this._renderMode;
26998
27137
  },
26999
27138
  set: function set(value) {
27000
- var baseColor = this.shaderData.getColor(BaseMaterial._baseColorProp);
27001
- if (value !== baseColor) {
27002
- baseColor.copyFrom(value);
27139
+ if (this._renderMode !== value) {
27140
+ var lastRenderMode = this._renderMode;
27141
+ this._renderMode = value;
27142
+ var renderModeMacro = null;
27143
+ var shaderData = this.shaderData;
27144
+ switch(value){
27145
+ case ParticleRenderMode.Billboard:
27146
+ renderModeMacro = ParticleRenderer._billboardModeMacro;
27147
+ break;
27148
+ case ParticleRenderMode.StretchBillboard:
27149
+ renderModeMacro = ParticleRenderer._stretchedBillboardModeMacro;
27150
+ break;
27151
+ case ParticleRenderMode.HorizontalBillboard:
27152
+ throw "Not implemented";
27153
+ case ParticleRenderMode.VerticalBillboard:
27154
+ throw "Not implemented";
27155
+ case ParticleRenderMode.Mesh:
27156
+ throw "Not implemented";
27157
+ }
27158
+ if (this._currentRenderModeMacro !== renderModeMacro) {
27159
+ this._currentRenderModeMacro && shaderData.disableMacro(this._currentRenderModeMacro);
27160
+ renderModeMacro && shaderData.enableMacro(renderModeMacro);
27161
+ this._currentRenderModeMacro = renderModeMacro;
27162
+ }
27163
+ // @ts-ignore
27164
+ if (lastRenderMode !== ParticleRenderMode.Mesh !== (value === ParticleRenderMode.Mesh)) {
27165
+ this.generator._reorganizeGeometryBuffers();
27166
+ }
27003
27167
  }
27004
27168
  }
27005
27169
  },
27006
27170
  {
27007
- key: "baseTexture",
27171
+ key: "mesh",
27008
27172
  get: /**
27009
- * Base texture.
27173
+ * The mesh of particle.
27174
+ * @remarks Valid when `renderMode` is `Mesh`.
27010
27175
  */ function get() {
27011
- return this.shaderData.getTexture(BaseMaterial._baseTextureProp);
27176
+ return this._mesh;
27012
27177
  },
27013
27178
  set: function set(value) {
27014
- this.shaderData.setTexture(BaseMaterial._baseTextureProp, value);
27015
- if (value) {
27016
- this.shaderData.enableMacro(BaseMaterial._baseTextureMacro);
27017
- } else {
27018
- this.shaderData.disableMacro(BaseMaterial._baseTextureMacro);
27179
+ var lastMesh = this._mesh;
27180
+ if (lastMesh !== value) {
27181
+ var _lastMesh, _value;
27182
+ this._mesh = value;
27183
+ (_lastMesh = lastMesh) == null ? void 0 : _lastMesh._addReferCount(-1);
27184
+ (_value = value) == null ? void 0 : _value._addReferCount(1);
27185
+ if (this.renderMode === ParticleRenderMode.Mesh) {
27186
+ this.generator._reorganizeGeometryBuffers();
27187
+ }
27019
27188
  }
27020
27189
  }
27021
27190
  }
27022
27191
  ]);
27023
- return ParticleMaterial;
27024
- }(BaseMaterial);
27025
-
27026
- var SubPrimitive = function SubPrimitive() {
27027
- };
27192
+ return ParticleRenderer;
27193
+ }(Renderer);
27194
+ (function() {
27195
+ ParticleRenderer._billboardModeMacro = ShaderMacro.getByName("RENDERER_MODE_SPHERE_BILLBOARD");
27196
+ })();
27197
+ (function() {
27198
+ ParticleRenderer._stretchedBillboardModeMacro = ShaderMacro.getByName("RENDERER_MODE_STRETCHED_BILLBOARD");
27199
+ })();
27200
+ (function() {
27201
+ ParticleRenderer._horizontalBillboardModeMacro = ShaderMacro.getByName("RENDERER_MODE_HORIZONTAL_BILLBOARD");
27202
+ })();
27203
+ (function() {
27204
+ ParticleRenderer._verticalBillboardModeMacro = ShaderMacro.getByName("RENDERER_MODE_VERTICAL_BILLBOARD");
27205
+ })();
27206
+ (function() {
27207
+ ParticleRenderer._renderModeMeshMacro = ShaderMacro.getByName("RENDERER_MODE_MESH");
27208
+ })();
27209
+ (function() {
27210
+ ParticleRenderer._pivotOffsetProperty = ShaderProperty.getByName("renderer_PivotOffset");
27211
+ })();
27212
+ (function() {
27213
+ ParticleRenderer._lengthScale = ShaderProperty.getByName("renderer_StretchedBillboardLengthScale");
27214
+ })();
27215
+ (function() {
27216
+ ParticleRenderer._speedScale = ShaderProperty.getByName("renderer_StretchedBillboardSpeedScale");
27217
+ })();
27218
+ (function() {
27219
+ ParticleRenderer._currentTime = ShaderProperty.getByName("renderer_CurrentTime");
27220
+ })();
27221
+ __decorate([
27222
+ deepClone
27223
+ ], ParticleRenderer.prototype, "generator", void 0);
27224
+ __decorate([
27225
+ shallowClone
27226
+ ], ParticleRenderer.prototype, "pivot", void 0);
27028
27227
 
27029
27228
  /**
27030
27229
  * Particle curve mode.
@@ -27046,18 +27245,6 @@ var SubPrimitive = function SubPrimitive() {
27046
27245
  ParticleGradientMode[ParticleGradientMode[/* Random value between two color gradients. */ "TwoGradients"] = 3] = "TwoGradients";
27047
27246
  })(ParticleGradientMode || (ParticleGradientMode = {}));
27048
27247
 
27049
- /**
27050
- * The rendering mode for particle renderer.
27051
- */ var ParticleRenderMode;
27052
- (function(ParticleRenderMode) {
27053
- ParticleRenderMode[ParticleRenderMode[/** Render particles as billboards facing the active camera. */ "Billboard"] = 0] = "Billboard";
27054
- ParticleRenderMode[ParticleRenderMode[/** Stretch particles in the direction of motion. */ "StretchBillboard"] = 1] = "StretchBillboard";
27055
- ParticleRenderMode[ParticleRenderMode[/** Render particles as billboards always facing up along the y-Axis. */ "HorizontalBillboard"] = 2] = "HorizontalBillboard";
27056
- ParticleRenderMode[ParticleRenderMode[/** Render particles as billboards always facing the player, but not pitching along the x-Axis. */ "VerticalBillboard"] = 3] = "VerticalBillboard";
27057
- ParticleRenderMode[ParticleRenderMode[/** Render particles as meshes. */ "Mesh"] = 4] = "Mesh";
27058
- ParticleRenderMode[ParticleRenderMode[/** Do not render particles. */ "None"] = 5] = "None";
27059
- })(ParticleRenderMode || (ParticleRenderMode = {}));
27060
-
27061
27248
  /**
27062
27249
  * The space to simulate particles in.
27063
27250
  */ var ParticleSimulationSpace;
@@ -27066,12 +27253,6 @@ var SubPrimitive = function SubPrimitive() {
27066
27253
  ParticleSimulationSpace[ParticleSimulationSpace[/** Simulate particles in world space. */ "World"] = 1] = "World";
27067
27254
  })(ParticleSimulationSpace || (ParticleSimulationSpace = {}));
27068
27255
 
27069
- var ParticleStopMode;
27070
- (function(ParticleStopMode) {
27071
- ParticleStopMode[ParticleStopMode[/** Stop emitting new particles and clear existing particles immediately. */ "StopEmittingAndClear"] = 0] = "StopEmittingAndClear";
27072
- ParticleStopMode[ParticleStopMode[/** Stop emitting new particles, but keep existing particles until they expire. */ "StopEmitting"] = 1] = "StopEmitting";
27073
- })(ParticleStopMode || (ParticleStopMode = {}));
27074
-
27075
27256
  /**
27076
27257
  * @internal
27077
27258
  */ var ParticleRandomSubSeeds;
@@ -29022,181 +29203,60 @@ __decorate([
29022
29203
  ], ParticleGenerator.prototype, "_instanceVertices", void 0);
29023
29204
 
29024
29205
  /**
29025
- * Particle Renderer Component.
29026
- */ var ParticleRenderer = /*#__PURE__*/ function(Renderer1) {
29027
- _inherits(ParticleRenderer, Renderer1);
29028
- function ParticleRenderer(entity) {
29206
+ * Particle Material.
29207
+ */ var ParticleMaterial = /*#__PURE__*/ function(BaseMaterial1) {
29208
+ _inherits(ParticleMaterial, BaseMaterial1);
29209
+ function ParticleMaterial(engine) {
29029
29210
  var _this;
29030
- _this = Renderer1.call(this, entity) || this;
29031
- /** Particle generator. */ _this.generator = new ParticleGenerator(_assert_this_initialized(_this));
29032
- /** Specifies how much particles stretch depending on their velocity. */ _this.velocityScale = 0;
29033
- /** How much are the particles stretched in their direction of motion, defined as the length of the particle compared to its width. */ _this.lengthScale = 2;
29034
- /** The pivot of particle. */ _this.pivot = new Vector3();
29035
- _this._currentRenderModeMacro = ParticleRenderer._billboardModeMacro;
29036
- _this.shaderData.enableMacro(ParticleRenderer._billboardModeMacro);
29037
- _this._supportInstancedArrays = _this.engine._hardwareRenderer.canIUse(GLCapabilityType.instancedArrays);
29211
+ _this = BaseMaterial1.call(this, engine, Shader.find("particle-shader")) || this;
29212
+ var shaderData = _this.shaderData;
29213
+ shaderData.enableMacro("MATERIAL_OMIT_NORMAL");
29214
+ shaderData.setColor(BaseMaterial._baseColorProp, new Color$1(1, 1, 1, 1));
29215
+ _this.isTransparent = true;
29038
29216
  return _this;
29039
29217
  }
29040
- var _proto = ParticleRenderer.prototype;
29041
- /**
29042
- * @internal
29043
- */ _proto._onEnable = function _onEnable() {
29044
- if (this.generator.main.playOnEnabled) {
29045
- this.generator.play(false);
29046
- }
29047
- };
29048
- /**
29049
- * @internal
29050
- */ _proto._onDisable = function _onDisable() {
29051
- this.generator.stop(false, ParticleStopMode.StopEmittingAndClear);
29052
- };
29053
- /**
29054
- * @internal
29055
- */ _proto._prepareRender = function _prepareRender(context) {
29056
- if (!this._supportInstancedArrays) {
29057
- return;
29058
- }
29059
- var generator = this.generator;
29060
- generator._update(this.engine.time.deltaTime);
29061
- // No particles to render
29062
- if (generator._firstActiveElement === generator._firstFreeElement) {
29063
- return;
29064
- }
29065
- Renderer1.prototype._prepareRender.call(this, context);
29066
- };
29067
- /**
29068
- * @internal
29069
- */ _proto._updateBounds = function _updateBounds(worldBounds) {
29070
- worldBounds.min.set(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);
29071
- worldBounds.max.set(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);
29072
- };
29218
+ var _proto = ParticleMaterial.prototype;
29073
29219
  /**
29074
- * @internal
29075
- */ _proto._updateShaderData = function _updateShaderData(context) {
29076
- var shaderData = this.shaderData;
29077
- shaderData.setFloat(ParticleRenderer._lengthScale, this.lengthScale);
29078
- shaderData.setFloat(ParticleRenderer._speedScale, this.velocityScale);
29079
- shaderData.setFloat(ParticleRenderer._currentTime, this.generator._playTime);
29080
- shaderData.setVector3(ParticleRenderer._pivotOffsetProperty, this.pivot);
29081
- this.generator._updateShaderData(shaderData);
29082
- };
29083
- _proto._render = function _render(context) {
29084
- var generator = this.generator;
29085
- var primitive = generator._primitive;
29086
- if (generator._firstActiveElement < generator._firstFreeElement) {
29087
- primitive.instanceCount = generator._firstFreeElement - generator._firstActiveElement;
29088
- } else {
29089
- var instanceCount = generator._currentParticleCount - generator._firstActiveElement;
29090
- if (generator._firstFreeElement > 0) {
29091
- instanceCount += generator._firstFreeElement;
29092
- }
29093
- primitive.instanceCount = instanceCount;
29094
- }
29095
- var material = this.getMaterial();
29096
- var renderData = this._engine._renderDataPool.getFromPool();
29097
- renderData.setX(this, material, generator._primitive, generator._subPrimitive);
29098
- context.camera._renderPipeline.pushRenderData(context, renderData);
29099
- };
29100
- _proto._onDestroy = function _onDestroy() {
29101
- this.generator._destroy();
29220
+ * @inheritdoc
29221
+ */ _proto.clone = function clone() {
29222
+ var dest = new ParticleMaterial(this._engine);
29223
+ this.cloneTo(dest);
29224
+ return dest;
29102
29225
  };
29103
- _create_class(ParticleRenderer, [
29226
+ _create_class(ParticleMaterial, [
29104
29227
  {
29105
- key: "renderMode",
29228
+ key: "baseColor",
29106
29229
  get: /**
29107
- * Specifies how particles are rendered.
29230
+ * Base color.
29108
29231
  */ function get() {
29109
- return this._renderMode;
29232
+ return this.shaderData.getColor(BaseMaterial._baseColorProp);
29110
29233
  },
29111
29234
  set: function set(value) {
29112
- if (this._renderMode !== value) {
29113
- var lastRenderMode = this._renderMode;
29114
- this._renderMode = value;
29115
- var renderModeMacro = null;
29116
- var shaderData = this.shaderData;
29117
- switch(value){
29118
- case ParticleRenderMode.Billboard:
29119
- renderModeMacro = ParticleRenderer._billboardModeMacro;
29120
- break;
29121
- case ParticleRenderMode.StretchBillboard:
29122
- renderModeMacro = ParticleRenderer._stretchedBillboardModeMacro;
29123
- break;
29124
- case ParticleRenderMode.HorizontalBillboard:
29125
- throw "Not implemented";
29126
- case ParticleRenderMode.VerticalBillboard:
29127
- throw "Not implemented";
29128
- case ParticleRenderMode.Mesh:
29129
- throw "Not implemented";
29130
- }
29131
- if (this._currentRenderModeMacro !== renderModeMacro) {
29132
- this._currentRenderModeMacro && shaderData.disableMacro(this._currentRenderModeMacro);
29133
- renderModeMacro && shaderData.enableMacro(renderModeMacro);
29134
- this._currentRenderModeMacro = renderModeMacro;
29135
- }
29136
- // @ts-ignore
29137
- if (lastRenderMode !== ParticleRenderMode.Mesh !== (value === ParticleRenderMode.Mesh)) {
29138
- this.generator._reorganizeGeometryBuffers();
29139
- }
29235
+ var baseColor = this.shaderData.getColor(BaseMaterial._baseColorProp);
29236
+ if (value !== baseColor) {
29237
+ baseColor.copyFrom(value);
29140
29238
  }
29141
29239
  }
29142
29240
  },
29143
29241
  {
29144
- key: "mesh",
29242
+ key: "baseTexture",
29145
29243
  get: /**
29146
- * The mesh of particle.
29147
- * @remarks Valid when `renderMode` is `Mesh`.
29244
+ * Base texture.
29148
29245
  */ function get() {
29149
- return this._mesh;
29246
+ return this.shaderData.getTexture(BaseMaterial._baseTextureProp);
29150
29247
  },
29151
29248
  set: function set(value) {
29152
- var lastMesh = this._mesh;
29153
- if (lastMesh !== value) {
29154
- var _lastMesh, _value;
29155
- this._mesh = value;
29156
- (_lastMesh = lastMesh) == null ? void 0 : _lastMesh._addReferCount(-1);
29157
- (_value = value) == null ? void 0 : _value._addReferCount(1);
29158
- if (this.renderMode === ParticleRenderMode.Mesh) {
29159
- this.generator._reorganizeGeometryBuffers();
29160
- }
29249
+ this.shaderData.setTexture(BaseMaterial._baseTextureProp, value);
29250
+ if (value) {
29251
+ this.shaderData.enableMacro(BaseMaterial._baseTextureMacro);
29252
+ } else {
29253
+ this.shaderData.disableMacro(BaseMaterial._baseTextureMacro);
29161
29254
  }
29162
29255
  }
29163
29256
  }
29164
29257
  ]);
29165
- return ParticleRenderer;
29166
- }(Renderer);
29167
- (function() {
29168
- ParticleRenderer._billboardModeMacro = ShaderMacro.getByName("RENDERER_MODE_SPHERE_BILLBOARD");
29169
- })();
29170
- (function() {
29171
- ParticleRenderer._stretchedBillboardModeMacro = ShaderMacro.getByName("RENDERER_MODE_STRETCHED_BILLBOARD");
29172
- })();
29173
- (function() {
29174
- ParticleRenderer._horizontalBillboardModeMacro = ShaderMacro.getByName("RENDERER_MODE_HORIZONTAL_BILLBOARD");
29175
- })();
29176
- (function() {
29177
- ParticleRenderer._verticalBillboardModeMacro = ShaderMacro.getByName("RENDERER_MODE_VERTICAL_BILLBOARD");
29178
- })();
29179
- (function() {
29180
- ParticleRenderer._renderModeMeshMacro = ShaderMacro.getByName("RENDERER_MODE_MESH");
29181
- })();
29182
- (function() {
29183
- ParticleRenderer._pivotOffsetProperty = ShaderProperty.getByName("renderer_PivotOffset");
29184
- })();
29185
- (function() {
29186
- ParticleRenderer._lengthScale = ShaderProperty.getByName("renderer_StretchedBillboardLengthScale");
29187
- })();
29188
- (function() {
29189
- ParticleRenderer._speedScale = ShaderProperty.getByName("renderer_StretchedBillboardSpeedScale");
29190
- })();
29191
- (function() {
29192
- ParticleRenderer._currentTime = ShaderProperty.getByName("renderer_CurrentTime");
29193
- })();
29194
- __decorate([
29195
- deepClone
29196
- ], ParticleRenderer.prototype, "generator", void 0);
29197
- __decorate([
29198
- shallowClone
29199
- ], ParticleRenderer.prototype, "pivot", void 0);
29258
+ return ParticleMaterial;
29259
+ }(BaseMaterial);
29200
29260
 
29201
29261
  /**
29202
29262
  * A burst is a particle emission event, where a number of particles are all emitted at the same time
@@ -29836,5 +29896,5 @@ var cacheDir = new Vector3();
29836
29896
  return CubeProbe;
29837
29897
  }(Probe);
29838
29898
 
29839
- export { AmbientLight, AnimationArrayCurve, AnimationBoolCurve, AnimationClip, AnimationClipCurveBinding, AnimationColorCurve, AnimationCurve, AnimationEvent, AnimationFloatArrayCurve, AnimationFloatCurve, AnimationQuaternionCurve, AnimationRectCurve, AnimationRefCurve, AnimationVector2Curve, AnimationVector3Curve, AnimationVector4Curve, Animator, AnimatorConditionMode, AnimatorController, AnimatorControllerLayer, AnimatorCullingMode, AnimatorLayerBlendingMode, AnimatorState, AnimatorStateMachine, AnimatorStateTransition, AssetPromise, AssetType, Background, BackgroundMode, BackgroundTextureFillMode, BaseMaterial, Basic2DBatcher, BasicRenderPipeline, BlendFactor, BlendMode, BlendOperation, BlendShape, BlendShapeFrame, BlendState, BlinnPhongMaterial, BoolUpdateFlag, BoxColliderShape, BoxShape, Buffer, BufferBindFlag, BufferMesh, BufferUsage, BufferUtil, Burst, Camera, CameraClearFlags, CapsuleColliderShape, CharacterController, CircleShape, CloneManager, Collider, ColliderShape, ColliderShapeUpAxis, CollisionDetectionMode, ColorSpace, ColorWriteMask, CompareFunction, Component, ConeEmitType, ConeShape, ContentRestorer, ControllerCollisionFlag, ControllerNonWalkableMode, CubeProbe, CullMode, CurveKey, DataType, DependentMode, DepthState, DepthTextureMode, DiffuseMode, DirectLight, DynamicCollider, DynamicColliderConstraints, Engine, EngineObject, Entity, EventDispatcher, FixedJoint, FogMode, Font, FontStyle, GLCapabilityType, HemisphereShape, HingeJoint, HitResult, IndexBufferBinding, IndexFormat, InputManager, InterpolationType, Joint, JointLimits, JointMotor, Keyframe, Keys, Layer, Light, Loader, Logger, Material, Mesh, MeshRenderer, MeshTopology, ModelMesh, OverflowMode, PBRBaseMaterial, PBRMaterial, PBRSpecularMaterial, ParticleCompositeCurve, ParticleCurve, ParticleCurveMode, ParticleGradientMode, ParticleMaterial, ParticleRenderMode, ParticleRenderer, ParticleScaleMode, ParticleShapeArcMode, ParticleSimulationSpace, ParticleStopMode, PhysicsMaterial, PhysicsMaterialCombineMode, PhysicsScene, PipelineStage, PlaneColliderShape, Platform, PointLight, Pointer, PointerButton, PointerPhase, Primitive, PrimitiveMesh, Probe, RasterState, ReferResource, RenderBufferDepthFormat, RenderFace, RenderPass, RenderQueue, RenderQueueType, RenderState, RenderStateElementKey as RenderStateDataKey, RenderTarget, RenderTargetBlendState, Renderer, ResourceManager, Scene, SceneManager, Script, SetDataOptions, Shader, ShaderData, ShaderFactory, ShaderMacro, ShaderMacroCollection, ShaderPass, ShaderProperty, ShaderPropertyType, ShaderTagKey, ShadowCascadesMode, ShadowResolution, ShadowType, Skin, SkinnedMeshRenderer, Sky, SkyBoxMaterial, SkyProceduralMaterial, SphereColliderShape, SphereShape, SpotLight, SpringJoint, Sprite, SpriteAtlas, SpriteDrawMode, SpriteMask, SpriteMaskInteraction, SpriteMaskLayer, SpriteRenderer, SpriteTileMode, StateMachineScript, StaticCollider, StencilOperation, StencilState, SubMesh, SubShader, SunMode, SystemInfo, TextHorizontalAlignment, TextRenderer, TextUtils, TextVerticalAlignment, Texture, Texture2D, Texture2DArray, TextureCoordinate, TextureCube, TextureCubeFace, TextureDepthCompareFunction, TextureFilterMode, TextureFormat, TextureUsage, TextureWrapMode, Time, TrailMaterial, TrailRenderer, Transform, UnlitMaterial, Utils, VertexAttribute, VertexBufferBinding, VertexElement, VertexElementFormat, WrapMode, assignmentClone, deepClone, dependentComponents, ignoreClone, request, resourceLoader, shallowClone };
29899
+ export { AmbientLight, AnimationArrayCurve, AnimationBoolCurve, AnimationClip, AnimationClipCurveBinding, AnimationColorCurve, AnimationCurve, AnimationEvent, AnimationFloatArrayCurve, AnimationFloatCurve, AnimationQuaternionCurve, AnimationRectCurve, AnimationRefCurve, AnimationVector2Curve, AnimationVector3Curve, AnimationVector4Curve, Animator, AnimatorConditionMode, AnimatorController, AnimatorControllerLayer, AnimatorCullingMode, AnimatorLayerBlendingMode, AnimatorState, AnimatorStateMachine, AnimatorStateTransition, AssetPromise, AssetType, Background, BackgroundMode, BackgroundTextureFillMode, BaseMaterial, Basic2DBatcher, BasicRenderPipeline, BlendFactor, BlendMode, BlendOperation, BlendShape, BlendShapeFrame, BlendState, BlinnPhongMaterial, BoolUpdateFlag, BoxColliderShape, BoxShape, Buffer, BufferBindFlag, BufferMesh, BufferUsage, BufferUtil, Burst, Camera, CameraClearFlags, CapsuleColliderShape, CharacterController, CircleShape, CloneManager, Collider, ColliderShape, ColliderShapeUpAxis, CollisionDetectionMode, ColorSpace, ColorWriteMask, CompareFunction, Component, ConeEmitType, ConeShape, ContentRestorer, ControllerCollisionFlag, ControllerNonWalkableMode, CubeProbe, CullMode, CurveKey, DataType, DependentMode, DepthState, DepthTextureMode, DiffuseMode, DirectLight, DynamicCollider, DynamicColliderConstraints, Engine, EngineObject, Entity, EventDispatcher, FixedJoint, FogMode, Font, FontStyle, GLCapabilityType, HemisphereShape, HingeJoint, HitResult, IndexBufferBinding, IndexFormat, InputManager, InterpolationType, Joint, JointLimits, JointMotor, Keyframe, Keys, Layer, Light, Loader, Logger, Material, Mesh, MeshRenderer, MeshTopology, ModelMesh, OverflowMode, PBRBaseMaterial, PBRMaterial, PBRSpecularMaterial, ParticleCompositeCurve, ParticleCurve, ParticleCurveMode, ParticleGenerator, ParticleGradientMode, ParticleMaterial, ParticleRenderMode, ParticleRenderer, ParticleScaleMode, ParticleShapeArcMode, ParticleSimulationSpace, ParticleStopMode, PhysicsMaterial, PhysicsMaterialCombineMode, PhysicsScene, PipelineStage, PlaneColliderShape, Platform, PointLight, Pointer, PointerButton, PointerPhase, Primitive, PrimitiveMesh, Probe, RasterState, ReferResource, RenderBufferDepthFormat, RenderFace, RenderPass, RenderQueue, RenderQueueType, RenderState, RenderStateElementKey as RenderStateDataKey, RenderTarget, RenderTargetBlendState, Renderer, ResourceManager, Scene, SceneManager, Script, SetDataOptions, Shader, ShaderData, ShaderFactory, ShaderMacro, ShaderMacroCollection, ShaderPass, ShaderProperty, ShaderPropertyType, ShaderTagKey, ShadowCascadesMode, ShadowResolution, ShadowType, Skin, SkinnedMeshRenderer, Sky, SkyBoxMaterial, SkyProceduralMaterial, SphereColliderShape, SphereShape, SpotLight, SpringJoint, Sprite, SpriteAtlas, SpriteDrawMode, SpriteMask, SpriteMaskInteraction, SpriteMaskLayer, SpriteRenderer, SpriteTileMode, StateMachineScript, StaticCollider, StencilOperation, StencilState, SubMesh, SubShader, SunMode, SystemInfo, TextHorizontalAlignment, TextRenderer, TextUtils, TextVerticalAlignment, Texture, Texture2D, Texture2DArray, TextureCoordinate, TextureCube, TextureCubeFace, TextureDepthCompareFunction, TextureFilterMode, TextureFormat, TextureUsage, TextureWrapMode, Time, TrailMaterial, TrailRenderer, Transform, UnlitMaterial, Utils, VertexAttribute, VertexBufferBinding, VertexElement, VertexElementFormat, WrapMode, assignmentClone, deepClone, dependentComponents, ignoreClone, request, resourceLoader, shallowClone };
29840
29900
  //# sourceMappingURL=module.js.map