@galacean/engine-core 1.1.0-beta.5 → 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
@@ -15742,8 +15742,8 @@ Joint = __decorate([
15742
15742
  continue;
15743
15743
  }
15744
15744
  var cameras = scene._activeCameras;
15745
- for(var j = 0; j < cameras.length; j++){
15746
- var camera = cameras[i];
15745
+ for(var j = cameras.length - 1; j >= 0; j--){
15746
+ var camera = cameras[j];
15747
15747
  if (!camera.enabled || camera.renderTarget) {
15748
15748
  continue;
15749
15749
  }
@@ -17058,11 +17058,11 @@ ShaderPool.init();
17058
17058
  /**
17059
17059
  * @internal
17060
17060
  */ _proto.destroy = function destroy() {
17061
+ this.texture = null;
17061
17062
  this._mesh._addReferCount(-1);
17062
17063
  this._mesh = null;
17063
17064
  this._material._addReferCount(-1);
17064
17065
  this._material = null;
17065
- this.texture = null;
17066
17066
  this.solidColor = null;
17067
17067
  this.sky.destroy();
17068
17068
  };
@@ -17307,7 +17307,7 @@ ShaderPool.init();
17307
17307
  var _this = this, pendingDestroyScripts = _this._disposeDestroyScripts, disposeDestroyScripts = _this._pendingDestroyScripts;
17308
17308
  this._disposeDestroyScripts = disposeDestroyScripts;
17309
17309
  this._pendingDestroyScripts = pendingDestroyScripts;
17310
- length = disposeDestroyScripts.length;
17310
+ var length = disposeDestroyScripts.length;
17311
17311
  if (length > 0) {
17312
17312
  for(var i = length - 1; i >= 0; i--){
17313
17313
  disposeDestroyScripts[i].onDestroy();
@@ -27027,64 +27027,203 @@ var SunMode;
27027
27027
  SkyProceduralMaterial._sunSimpleMacro = ShaderMacro.getByName("MATERIAL_SUN_SIMPLE");
27028
27028
  })();
27029
27029
 
27030
+ var SubPrimitive = function SubPrimitive() {
27031
+ };
27032
+
27030
27033
  /**
27031
- * Particle Material.
27032
- */ var ParticleMaterial = /*#__PURE__*/ function(BaseMaterial1) {
27033
- _inherits(ParticleMaterial, BaseMaterial1);
27034
- 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) {
27035
27056
  var _this;
27036
- _this = BaseMaterial1.call(this, engine, Shader.find("particle-shader")) || this;
27037
- var shaderData = _this.shaderData;
27038
- shaderData.enableMacro("MATERIAL_OMIT_NORMAL");
27039
- shaderData.setColor(BaseMaterial._baseColorProp, new Color$1(1, 1, 1, 1));
27040
- _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);
27041
27065
  return _this;
27042
27066
  }
27043
- var _proto = ParticleMaterial.prototype;
27067
+ var _proto = ParticleRenderer.prototype;
27044
27068
  /**
27045
- * @inheritdoc
27046
- */ _proto.clone = function clone() {
27047
- var dest = new ParticleMaterial(this._engine);
27048
- this.cloneTo(dest);
27049
- return dest;
27069
+ * @internal
27070
+ */ _proto._onEnable = function _onEnable() {
27071
+ if (this.generator.main.playOnEnabled) {
27072
+ this.generator.play(false);
27073
+ }
27050
27074
  };
27051
- _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, [
27052
27131
  {
27053
- key: "baseColor",
27132
+ key: "renderMode",
27054
27133
  get: /**
27055
- * Base color.
27134
+ * Specifies how particles are rendered.
27056
27135
  */ function get() {
27057
- return this.shaderData.getColor(BaseMaterial._baseColorProp);
27136
+ return this._renderMode;
27058
27137
  },
27059
27138
  set: function set(value) {
27060
- var baseColor = this.shaderData.getColor(BaseMaterial._baseColorProp);
27061
- if (value !== baseColor) {
27062
- 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
+ }
27063
27167
  }
27064
27168
  }
27065
27169
  },
27066
27170
  {
27067
- key: "baseTexture",
27171
+ key: "mesh",
27068
27172
  get: /**
27069
- * Base texture.
27173
+ * The mesh of particle.
27174
+ * @remarks Valid when `renderMode` is `Mesh`.
27070
27175
  */ function get() {
27071
- return this.shaderData.getTexture(BaseMaterial._baseTextureProp);
27176
+ return this._mesh;
27072
27177
  },
27073
27178
  set: function set(value) {
27074
- this.shaderData.setTexture(BaseMaterial._baseTextureProp, value);
27075
- if (value) {
27076
- this.shaderData.enableMacro(BaseMaterial._baseTextureMacro);
27077
- } else {
27078
- 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
+ }
27079
27188
  }
27080
27189
  }
27081
27190
  }
27082
27191
  ]);
27083
- return ParticleMaterial;
27084
- }(BaseMaterial);
27085
-
27086
- var SubPrimitive = function SubPrimitive() {
27087
- };
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);
27088
27227
 
27089
27228
  /**
27090
27229
  * Particle curve mode.
@@ -27106,18 +27245,6 @@ var SubPrimitive = function SubPrimitive() {
27106
27245
  ParticleGradientMode[ParticleGradientMode[/* Random value between two color gradients. */ "TwoGradients"] = 3] = "TwoGradients";
27107
27246
  })(ParticleGradientMode || (ParticleGradientMode = {}));
27108
27247
 
27109
- /**
27110
- * The rendering mode for particle renderer.
27111
- */ var ParticleRenderMode;
27112
- (function(ParticleRenderMode) {
27113
- ParticleRenderMode[ParticleRenderMode[/** Render particles as billboards facing the active camera. */ "Billboard"] = 0] = "Billboard";
27114
- ParticleRenderMode[ParticleRenderMode[/** Stretch particles in the direction of motion. */ "StretchBillboard"] = 1] = "StretchBillboard";
27115
- ParticleRenderMode[ParticleRenderMode[/** Render particles as billboards always facing up along the y-Axis. */ "HorizontalBillboard"] = 2] = "HorizontalBillboard";
27116
- ParticleRenderMode[ParticleRenderMode[/** Render particles as billboards always facing the player, but not pitching along the x-Axis. */ "VerticalBillboard"] = 3] = "VerticalBillboard";
27117
- ParticleRenderMode[ParticleRenderMode[/** Render particles as meshes. */ "Mesh"] = 4] = "Mesh";
27118
- ParticleRenderMode[ParticleRenderMode[/** Do not render particles. */ "None"] = 5] = "None";
27119
- })(ParticleRenderMode || (ParticleRenderMode = {}));
27120
-
27121
27248
  /**
27122
27249
  * The space to simulate particles in.
27123
27250
  */ var ParticleSimulationSpace;
@@ -27126,12 +27253,6 @@ var SubPrimitive = function SubPrimitive() {
27126
27253
  ParticleSimulationSpace[ParticleSimulationSpace[/** Simulate particles in world space. */ "World"] = 1] = "World";
27127
27254
  })(ParticleSimulationSpace || (ParticleSimulationSpace = {}));
27128
27255
 
27129
- var ParticleStopMode;
27130
- (function(ParticleStopMode) {
27131
- ParticleStopMode[ParticleStopMode[/** Stop emitting new particles and clear existing particles immediately. */ "StopEmittingAndClear"] = 0] = "StopEmittingAndClear";
27132
- ParticleStopMode[ParticleStopMode[/** Stop emitting new particles, but keep existing particles until they expire. */ "StopEmitting"] = 1] = "StopEmitting";
27133
- })(ParticleStopMode || (ParticleStopMode = {}));
27134
-
27135
27256
  /**
27136
27257
  * @internal
27137
27258
  */ var ParticleRandomSubSeeds;
@@ -29082,181 +29203,60 @@ __decorate([
29082
29203
  ], ParticleGenerator.prototype, "_instanceVertices", void 0);
29083
29204
 
29084
29205
  /**
29085
- * Particle Renderer Component.
29086
- */ var ParticleRenderer = /*#__PURE__*/ function(Renderer1) {
29087
- _inherits(ParticleRenderer, Renderer1);
29088
- function ParticleRenderer(entity) {
29206
+ * Particle Material.
29207
+ */ var ParticleMaterial = /*#__PURE__*/ function(BaseMaterial1) {
29208
+ _inherits(ParticleMaterial, BaseMaterial1);
29209
+ function ParticleMaterial(engine) {
29089
29210
  var _this;
29090
- _this = Renderer1.call(this, entity) || this;
29091
- /** Particle generator. */ _this.generator = new ParticleGenerator(_assert_this_initialized(_this));
29092
- /** Specifies how much particles stretch depending on their velocity. */ _this.velocityScale = 0;
29093
- /** 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;
29094
- /** The pivot of particle. */ _this.pivot = new Vector3();
29095
- _this._currentRenderModeMacro = ParticleRenderer._billboardModeMacro;
29096
- _this.shaderData.enableMacro(ParticleRenderer._billboardModeMacro);
29097
- _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;
29098
29216
  return _this;
29099
29217
  }
29100
- var _proto = ParticleRenderer.prototype;
29101
- /**
29102
- * @internal
29103
- */ _proto._onEnable = function _onEnable() {
29104
- if (this.generator.main.playOnEnabled) {
29105
- this.generator.play(false);
29106
- }
29107
- };
29108
- /**
29109
- * @internal
29110
- */ _proto._onDisable = function _onDisable() {
29111
- this.generator.stop(false, ParticleStopMode.StopEmittingAndClear);
29112
- };
29113
- /**
29114
- * @internal
29115
- */ _proto._prepareRender = function _prepareRender(context) {
29116
- if (!this._supportInstancedArrays) {
29117
- return;
29118
- }
29119
- var generator = this.generator;
29120
- generator._update(this.engine.time.deltaTime);
29121
- // No particles to render
29122
- if (generator._firstActiveElement === generator._firstFreeElement) {
29123
- return;
29124
- }
29125
- Renderer1.prototype._prepareRender.call(this, context);
29126
- };
29127
- /**
29128
- * @internal
29129
- */ _proto._updateBounds = function _updateBounds(worldBounds) {
29130
- worldBounds.min.set(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);
29131
- worldBounds.max.set(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);
29132
- };
29218
+ var _proto = ParticleMaterial.prototype;
29133
29219
  /**
29134
- * @internal
29135
- */ _proto._updateShaderData = function _updateShaderData(context) {
29136
- var shaderData = this.shaderData;
29137
- shaderData.setFloat(ParticleRenderer._lengthScale, this.lengthScale);
29138
- shaderData.setFloat(ParticleRenderer._speedScale, this.velocityScale);
29139
- shaderData.setFloat(ParticleRenderer._currentTime, this.generator._playTime);
29140
- shaderData.setVector3(ParticleRenderer._pivotOffsetProperty, this.pivot);
29141
- this.generator._updateShaderData(shaderData);
29142
- };
29143
- _proto._render = function _render(context) {
29144
- var generator = this.generator;
29145
- var primitive = generator._primitive;
29146
- if (generator._firstActiveElement < generator._firstFreeElement) {
29147
- primitive.instanceCount = generator._firstFreeElement - generator._firstActiveElement;
29148
- } else {
29149
- var instanceCount = generator._currentParticleCount - generator._firstActiveElement;
29150
- if (generator._firstFreeElement > 0) {
29151
- instanceCount += generator._firstFreeElement;
29152
- }
29153
- primitive.instanceCount = instanceCount;
29154
- }
29155
- var material = this.getMaterial();
29156
- var renderData = this._engine._renderDataPool.getFromPool();
29157
- renderData.setX(this, material, generator._primitive, generator._subPrimitive);
29158
- context.camera._renderPipeline.pushRenderData(context, renderData);
29159
- };
29160
- _proto._onDestroy = function _onDestroy() {
29161
- this.generator._destroy();
29220
+ * @inheritdoc
29221
+ */ _proto.clone = function clone() {
29222
+ var dest = new ParticleMaterial(this._engine);
29223
+ this.cloneTo(dest);
29224
+ return dest;
29162
29225
  };
29163
- _create_class(ParticleRenderer, [
29226
+ _create_class(ParticleMaterial, [
29164
29227
  {
29165
- key: "renderMode",
29228
+ key: "baseColor",
29166
29229
  get: /**
29167
- * Specifies how particles are rendered.
29230
+ * Base color.
29168
29231
  */ function get() {
29169
- return this._renderMode;
29232
+ return this.shaderData.getColor(BaseMaterial._baseColorProp);
29170
29233
  },
29171
29234
  set: function set(value) {
29172
- if (this._renderMode !== value) {
29173
- var lastRenderMode = this._renderMode;
29174
- this._renderMode = value;
29175
- var renderModeMacro = null;
29176
- var shaderData = this.shaderData;
29177
- switch(value){
29178
- case ParticleRenderMode.Billboard:
29179
- renderModeMacro = ParticleRenderer._billboardModeMacro;
29180
- break;
29181
- case ParticleRenderMode.StretchBillboard:
29182
- renderModeMacro = ParticleRenderer._stretchedBillboardModeMacro;
29183
- break;
29184
- case ParticleRenderMode.HorizontalBillboard:
29185
- throw "Not implemented";
29186
- case ParticleRenderMode.VerticalBillboard:
29187
- throw "Not implemented";
29188
- case ParticleRenderMode.Mesh:
29189
- throw "Not implemented";
29190
- }
29191
- if (this._currentRenderModeMacro !== renderModeMacro) {
29192
- this._currentRenderModeMacro && shaderData.disableMacro(this._currentRenderModeMacro);
29193
- renderModeMacro && shaderData.enableMacro(renderModeMacro);
29194
- this._currentRenderModeMacro = renderModeMacro;
29195
- }
29196
- // @ts-ignore
29197
- if (lastRenderMode !== ParticleRenderMode.Mesh !== (value === ParticleRenderMode.Mesh)) {
29198
- this.generator._reorganizeGeometryBuffers();
29199
- }
29235
+ var baseColor = this.shaderData.getColor(BaseMaterial._baseColorProp);
29236
+ if (value !== baseColor) {
29237
+ baseColor.copyFrom(value);
29200
29238
  }
29201
29239
  }
29202
29240
  },
29203
29241
  {
29204
- key: "mesh",
29242
+ key: "baseTexture",
29205
29243
  get: /**
29206
- * The mesh of particle.
29207
- * @remarks Valid when `renderMode` is `Mesh`.
29244
+ * Base texture.
29208
29245
  */ function get() {
29209
- return this._mesh;
29246
+ return this.shaderData.getTexture(BaseMaterial._baseTextureProp);
29210
29247
  },
29211
29248
  set: function set(value) {
29212
- var lastMesh = this._mesh;
29213
- if (lastMesh !== value) {
29214
- var _lastMesh, _value;
29215
- this._mesh = value;
29216
- (_lastMesh = lastMesh) == null ? void 0 : _lastMesh._addReferCount(-1);
29217
- (_value = value) == null ? void 0 : _value._addReferCount(1);
29218
- if (this.renderMode === ParticleRenderMode.Mesh) {
29219
- this.generator._reorganizeGeometryBuffers();
29220
- }
29249
+ this.shaderData.setTexture(BaseMaterial._baseTextureProp, value);
29250
+ if (value) {
29251
+ this.shaderData.enableMacro(BaseMaterial._baseTextureMacro);
29252
+ } else {
29253
+ this.shaderData.disableMacro(BaseMaterial._baseTextureMacro);
29221
29254
  }
29222
29255
  }
29223
29256
  }
29224
29257
  ]);
29225
- return ParticleRenderer;
29226
- }(Renderer);
29227
- (function() {
29228
- ParticleRenderer._billboardModeMacro = ShaderMacro.getByName("RENDERER_MODE_SPHERE_BILLBOARD");
29229
- })();
29230
- (function() {
29231
- ParticleRenderer._stretchedBillboardModeMacro = ShaderMacro.getByName("RENDERER_MODE_STRETCHED_BILLBOARD");
29232
- })();
29233
- (function() {
29234
- ParticleRenderer._horizontalBillboardModeMacro = ShaderMacro.getByName("RENDERER_MODE_HORIZONTAL_BILLBOARD");
29235
- })();
29236
- (function() {
29237
- ParticleRenderer._verticalBillboardModeMacro = ShaderMacro.getByName("RENDERER_MODE_VERTICAL_BILLBOARD");
29238
- })();
29239
- (function() {
29240
- ParticleRenderer._renderModeMeshMacro = ShaderMacro.getByName("RENDERER_MODE_MESH");
29241
- })();
29242
- (function() {
29243
- ParticleRenderer._pivotOffsetProperty = ShaderProperty.getByName("renderer_PivotOffset");
29244
- })();
29245
- (function() {
29246
- ParticleRenderer._lengthScale = ShaderProperty.getByName("renderer_StretchedBillboardLengthScale");
29247
- })();
29248
- (function() {
29249
- ParticleRenderer._speedScale = ShaderProperty.getByName("renderer_StretchedBillboardSpeedScale");
29250
- })();
29251
- (function() {
29252
- ParticleRenderer._currentTime = ShaderProperty.getByName("renderer_CurrentTime");
29253
- })();
29254
- __decorate([
29255
- deepClone
29256
- ], ParticleRenderer.prototype, "generator", void 0);
29257
- __decorate([
29258
- shallowClone
29259
- ], ParticleRenderer.prototype, "pivot", void 0);
29258
+ return ParticleMaterial;
29259
+ }(BaseMaterial);
29260
29260
 
29261
29261
  /**
29262
29262
  * A burst is a particle emission event, where a number of particles are all emitted at the same time
@@ -29896,5 +29896,5 @@ var cacheDir = new Vector3();
29896
29896
  return CubeProbe;
29897
29897
  }(Probe);
29898
29898
 
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, 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 };
29900
29900
  //# sourceMappingURL=module.js.map