@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/main.js +211 -210
- package/dist/main.js.map +1 -1
- package/dist/miniprogram.js +211 -210
- package/dist/module.js +211 -211
- package/dist/module.js.map +1 -1
- package/package.json +3 -3
- package/types/particle/ParticleGenerator.d.ts +0 -2
- package/types/particle/index.d.ts +1 -0
package/dist/miniprogram.js
CHANGED
|
@@ -15747,8 +15747,8 @@ exports.Joint = __decorate([
|
|
|
15747
15747
|
continue;
|
|
15748
15748
|
}
|
|
15749
15749
|
var cameras = scene._activeCameras;
|
|
15750
|
-
for(var j =
|
|
15751
|
-
var camera = cameras[
|
|
15750
|
+
for(var j = cameras.length - 1; j >= 0; j--){
|
|
15751
|
+
var camera = cameras[j];
|
|
15752
15752
|
if (!camera.enabled || camera.renderTarget) {
|
|
15753
15753
|
continue;
|
|
15754
15754
|
}
|
|
@@ -17063,11 +17063,11 @@ ShaderPool.init();
|
|
|
17063
17063
|
/**
|
|
17064
17064
|
* @internal
|
|
17065
17065
|
*/ _proto.destroy = function destroy() {
|
|
17066
|
+
this.texture = null;
|
|
17066
17067
|
this._mesh._addReferCount(-1);
|
|
17067
17068
|
this._mesh = null;
|
|
17068
17069
|
this._material._addReferCount(-1);
|
|
17069
17070
|
this._material = null;
|
|
17070
|
-
this.texture = null;
|
|
17071
17071
|
this.solidColor = null;
|
|
17072
17072
|
this.sky.destroy();
|
|
17073
17073
|
};
|
|
@@ -17312,7 +17312,7 @@ ShaderPool.init();
|
|
|
17312
17312
|
var _this = this, pendingDestroyScripts = _this._disposeDestroyScripts, disposeDestroyScripts = _this._pendingDestroyScripts;
|
|
17313
17313
|
this._disposeDestroyScripts = disposeDestroyScripts;
|
|
17314
17314
|
this._pendingDestroyScripts = pendingDestroyScripts;
|
|
17315
|
-
length = disposeDestroyScripts.length;
|
|
17315
|
+
var length = disposeDestroyScripts.length;
|
|
17316
17316
|
if (length > 0) {
|
|
17317
17317
|
for(var i = length - 1; i >= 0; i--){
|
|
17318
17318
|
disposeDestroyScripts[i].onDestroy();
|
|
@@ -27032,64 +27032,203 @@ exports.SunMode = void 0;
|
|
|
27032
27032
|
SkyProceduralMaterial._sunSimpleMacro = ShaderMacro.getByName("MATERIAL_SUN_SIMPLE");
|
|
27033
27033
|
})();
|
|
27034
27034
|
|
|
27035
|
+
var SubPrimitive = function SubPrimitive() {
|
|
27036
|
+
};
|
|
27037
|
+
|
|
27035
27038
|
/**
|
|
27036
|
-
*
|
|
27037
|
-
*/
|
|
27038
|
-
|
|
27039
|
-
|
|
27039
|
+
* The rendering mode for particle renderer.
|
|
27040
|
+
*/ exports.ParticleRenderMode = void 0;
|
|
27041
|
+
(function(ParticleRenderMode) {
|
|
27042
|
+
ParticleRenderMode[ParticleRenderMode[/** Render particles as billboards facing the active camera. */ "Billboard"] = 0] = "Billboard";
|
|
27043
|
+
ParticleRenderMode[ParticleRenderMode[/** Stretch particles in the direction of motion. */ "StretchBillboard"] = 1] = "StretchBillboard";
|
|
27044
|
+
ParticleRenderMode[ParticleRenderMode[/** Render particles as billboards always facing up along the y-Axis. */ "HorizontalBillboard"] = 2] = "HorizontalBillboard";
|
|
27045
|
+
ParticleRenderMode[ParticleRenderMode[/** Render particles as billboards always facing the player, but not pitching along the x-Axis. */ "VerticalBillboard"] = 3] = "VerticalBillboard";
|
|
27046
|
+
ParticleRenderMode[ParticleRenderMode[/** Render particles as meshes. */ "Mesh"] = 4] = "Mesh";
|
|
27047
|
+
ParticleRenderMode[ParticleRenderMode[/** Do not render particles. */ "None"] = 5] = "None";
|
|
27048
|
+
})(exports.ParticleRenderMode || (exports.ParticleRenderMode = {}));
|
|
27049
|
+
|
|
27050
|
+
exports.ParticleStopMode = void 0;
|
|
27051
|
+
(function(ParticleStopMode) {
|
|
27052
|
+
ParticleStopMode[ParticleStopMode[/** Stop emitting new particles and clear existing particles immediately. */ "StopEmittingAndClear"] = 0] = "StopEmittingAndClear";
|
|
27053
|
+
ParticleStopMode[ParticleStopMode[/** Stop emitting new particles, but keep existing particles until they expire. */ "StopEmitting"] = 1] = "StopEmitting";
|
|
27054
|
+
})(exports.ParticleStopMode || (exports.ParticleStopMode = {}));
|
|
27055
|
+
|
|
27056
|
+
/**
|
|
27057
|
+
* Particle Renderer Component.
|
|
27058
|
+
*/ var ParticleRenderer = /*#__PURE__*/ function(Renderer1) {
|
|
27059
|
+
_inherits(ParticleRenderer, Renderer1);
|
|
27060
|
+
function ParticleRenderer(entity) {
|
|
27040
27061
|
var _this;
|
|
27041
|
-
_this =
|
|
27042
|
-
|
|
27043
|
-
|
|
27044
|
-
|
|
27045
|
-
_this.
|
|
27062
|
+
_this = Renderer1.call(this, entity) || this;
|
|
27063
|
+
/** Particle generator. */ _this.generator = new ParticleGenerator(_assert_this_initialized(_this));
|
|
27064
|
+
/** Specifies how much particles stretch depending on their velocity. */ _this.velocityScale = 0;
|
|
27065
|
+
/** 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;
|
|
27066
|
+
/** The pivot of particle. */ _this.pivot = new miniprogram.Vector3();
|
|
27067
|
+
_this._currentRenderModeMacro = ParticleRenderer._billboardModeMacro;
|
|
27068
|
+
_this.shaderData.enableMacro(ParticleRenderer._billboardModeMacro);
|
|
27069
|
+
_this._supportInstancedArrays = _this.engine._hardwareRenderer.canIUse(exports.GLCapabilityType.instancedArrays);
|
|
27046
27070
|
return _this;
|
|
27047
27071
|
}
|
|
27048
|
-
var _proto =
|
|
27072
|
+
var _proto = ParticleRenderer.prototype;
|
|
27049
27073
|
/**
|
|
27050
|
-
* @
|
|
27051
|
-
*/ _proto.
|
|
27052
|
-
|
|
27053
|
-
|
|
27054
|
-
|
|
27074
|
+
* @internal
|
|
27075
|
+
*/ _proto._onEnable = function _onEnable() {
|
|
27076
|
+
if (this.generator.main.playOnEnabled) {
|
|
27077
|
+
this.generator.play(false);
|
|
27078
|
+
}
|
|
27055
27079
|
};
|
|
27056
|
-
|
|
27080
|
+
/**
|
|
27081
|
+
* @internal
|
|
27082
|
+
*/ _proto._onDisable = function _onDisable() {
|
|
27083
|
+
this.generator.stop(false, exports.ParticleStopMode.StopEmittingAndClear);
|
|
27084
|
+
};
|
|
27085
|
+
/**
|
|
27086
|
+
* @internal
|
|
27087
|
+
*/ _proto._prepareRender = function _prepareRender(context) {
|
|
27088
|
+
if (!this._supportInstancedArrays) {
|
|
27089
|
+
return;
|
|
27090
|
+
}
|
|
27091
|
+
var generator = this.generator;
|
|
27092
|
+
generator._update(this.engine.time.deltaTime);
|
|
27093
|
+
// No particles to render
|
|
27094
|
+
if (generator._firstActiveElement === generator._firstFreeElement) {
|
|
27095
|
+
return;
|
|
27096
|
+
}
|
|
27097
|
+
Renderer1.prototype._prepareRender.call(this, context);
|
|
27098
|
+
};
|
|
27099
|
+
/**
|
|
27100
|
+
* @internal
|
|
27101
|
+
*/ _proto._updateBounds = function _updateBounds(worldBounds) {
|
|
27102
|
+
worldBounds.min.set(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);
|
|
27103
|
+
worldBounds.max.set(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);
|
|
27104
|
+
};
|
|
27105
|
+
/**
|
|
27106
|
+
* @internal
|
|
27107
|
+
*/ _proto._updateShaderData = function _updateShaderData(context) {
|
|
27108
|
+
var shaderData = this.shaderData;
|
|
27109
|
+
shaderData.setFloat(ParticleRenderer._lengthScale, this.lengthScale);
|
|
27110
|
+
shaderData.setFloat(ParticleRenderer._speedScale, this.velocityScale);
|
|
27111
|
+
shaderData.setFloat(ParticleRenderer._currentTime, this.generator._playTime);
|
|
27112
|
+
shaderData.setVector3(ParticleRenderer._pivotOffsetProperty, this.pivot);
|
|
27113
|
+
this.generator._updateShaderData(shaderData);
|
|
27114
|
+
};
|
|
27115
|
+
_proto._render = function _render(context) {
|
|
27116
|
+
var generator = this.generator;
|
|
27117
|
+
var primitive = generator._primitive;
|
|
27118
|
+
if (generator._firstActiveElement < generator._firstFreeElement) {
|
|
27119
|
+
primitive.instanceCount = generator._firstFreeElement - generator._firstActiveElement;
|
|
27120
|
+
} else {
|
|
27121
|
+
var instanceCount = generator._currentParticleCount - generator._firstActiveElement;
|
|
27122
|
+
if (generator._firstFreeElement > 0) {
|
|
27123
|
+
instanceCount += generator._firstFreeElement;
|
|
27124
|
+
}
|
|
27125
|
+
primitive.instanceCount = instanceCount;
|
|
27126
|
+
}
|
|
27127
|
+
var material = this.getMaterial();
|
|
27128
|
+
var renderData = this._engine._renderDataPool.getFromPool();
|
|
27129
|
+
renderData.setX(this, material, generator._primitive, generator._subPrimitive);
|
|
27130
|
+
context.camera._renderPipeline.pushRenderData(context, renderData);
|
|
27131
|
+
};
|
|
27132
|
+
_proto._onDestroy = function _onDestroy() {
|
|
27133
|
+
this.generator._destroy();
|
|
27134
|
+
};
|
|
27135
|
+
_create_class(ParticleRenderer, [
|
|
27057
27136
|
{
|
|
27058
|
-
key: "
|
|
27137
|
+
key: "renderMode",
|
|
27059
27138
|
get: /**
|
|
27060
|
-
*
|
|
27139
|
+
* Specifies how particles are rendered.
|
|
27061
27140
|
*/ function get() {
|
|
27062
|
-
return this.
|
|
27141
|
+
return this._renderMode;
|
|
27063
27142
|
},
|
|
27064
27143
|
set: function set(value) {
|
|
27065
|
-
|
|
27066
|
-
|
|
27067
|
-
|
|
27144
|
+
if (this._renderMode !== value) {
|
|
27145
|
+
var lastRenderMode = this._renderMode;
|
|
27146
|
+
this._renderMode = value;
|
|
27147
|
+
var renderModeMacro = null;
|
|
27148
|
+
var shaderData = this.shaderData;
|
|
27149
|
+
switch(value){
|
|
27150
|
+
case exports.ParticleRenderMode.Billboard:
|
|
27151
|
+
renderModeMacro = ParticleRenderer._billboardModeMacro;
|
|
27152
|
+
break;
|
|
27153
|
+
case exports.ParticleRenderMode.StretchBillboard:
|
|
27154
|
+
renderModeMacro = ParticleRenderer._stretchedBillboardModeMacro;
|
|
27155
|
+
break;
|
|
27156
|
+
case exports.ParticleRenderMode.HorizontalBillboard:
|
|
27157
|
+
throw "Not implemented";
|
|
27158
|
+
case exports.ParticleRenderMode.VerticalBillboard:
|
|
27159
|
+
throw "Not implemented";
|
|
27160
|
+
case exports.ParticleRenderMode.Mesh:
|
|
27161
|
+
throw "Not implemented";
|
|
27162
|
+
}
|
|
27163
|
+
if (this._currentRenderModeMacro !== renderModeMacro) {
|
|
27164
|
+
this._currentRenderModeMacro && shaderData.disableMacro(this._currentRenderModeMacro);
|
|
27165
|
+
renderModeMacro && shaderData.enableMacro(renderModeMacro);
|
|
27166
|
+
this._currentRenderModeMacro = renderModeMacro;
|
|
27167
|
+
}
|
|
27168
|
+
// @ts-ignore
|
|
27169
|
+
if (lastRenderMode !== exports.ParticleRenderMode.Mesh !== (value === exports.ParticleRenderMode.Mesh)) {
|
|
27170
|
+
this.generator._reorganizeGeometryBuffers();
|
|
27171
|
+
}
|
|
27068
27172
|
}
|
|
27069
27173
|
}
|
|
27070
27174
|
},
|
|
27071
27175
|
{
|
|
27072
|
-
key: "
|
|
27176
|
+
key: "mesh",
|
|
27073
27177
|
get: /**
|
|
27074
|
-
*
|
|
27178
|
+
* The mesh of particle.
|
|
27179
|
+
* @remarks Valid when `renderMode` is `Mesh`.
|
|
27075
27180
|
*/ function get() {
|
|
27076
|
-
return this.
|
|
27181
|
+
return this._mesh;
|
|
27077
27182
|
},
|
|
27078
27183
|
set: function set(value) {
|
|
27079
|
-
this.
|
|
27080
|
-
if (value) {
|
|
27081
|
-
|
|
27082
|
-
|
|
27083
|
-
|
|
27184
|
+
var lastMesh = this._mesh;
|
|
27185
|
+
if (lastMesh !== value) {
|
|
27186
|
+
var _lastMesh, _value;
|
|
27187
|
+
this._mesh = value;
|
|
27188
|
+
(_lastMesh = lastMesh) == null ? void 0 : _lastMesh._addReferCount(-1);
|
|
27189
|
+
(_value = value) == null ? void 0 : _value._addReferCount(1);
|
|
27190
|
+
if (this.renderMode === exports.ParticleRenderMode.Mesh) {
|
|
27191
|
+
this.generator._reorganizeGeometryBuffers();
|
|
27192
|
+
}
|
|
27084
27193
|
}
|
|
27085
27194
|
}
|
|
27086
27195
|
}
|
|
27087
27196
|
]);
|
|
27088
|
-
return
|
|
27089
|
-
}(
|
|
27090
|
-
|
|
27091
|
-
|
|
27092
|
-
};
|
|
27197
|
+
return ParticleRenderer;
|
|
27198
|
+
}(exports.Renderer);
|
|
27199
|
+
(function() {
|
|
27200
|
+
ParticleRenderer._billboardModeMacro = ShaderMacro.getByName("RENDERER_MODE_SPHERE_BILLBOARD");
|
|
27201
|
+
})();
|
|
27202
|
+
(function() {
|
|
27203
|
+
ParticleRenderer._stretchedBillboardModeMacro = ShaderMacro.getByName("RENDERER_MODE_STRETCHED_BILLBOARD");
|
|
27204
|
+
})();
|
|
27205
|
+
(function() {
|
|
27206
|
+
ParticleRenderer._horizontalBillboardModeMacro = ShaderMacro.getByName("RENDERER_MODE_HORIZONTAL_BILLBOARD");
|
|
27207
|
+
})();
|
|
27208
|
+
(function() {
|
|
27209
|
+
ParticleRenderer._verticalBillboardModeMacro = ShaderMacro.getByName("RENDERER_MODE_VERTICAL_BILLBOARD");
|
|
27210
|
+
})();
|
|
27211
|
+
(function() {
|
|
27212
|
+
ParticleRenderer._renderModeMeshMacro = ShaderMacro.getByName("RENDERER_MODE_MESH");
|
|
27213
|
+
})();
|
|
27214
|
+
(function() {
|
|
27215
|
+
ParticleRenderer._pivotOffsetProperty = ShaderProperty.getByName("renderer_PivotOffset");
|
|
27216
|
+
})();
|
|
27217
|
+
(function() {
|
|
27218
|
+
ParticleRenderer._lengthScale = ShaderProperty.getByName("renderer_StretchedBillboardLengthScale");
|
|
27219
|
+
})();
|
|
27220
|
+
(function() {
|
|
27221
|
+
ParticleRenderer._speedScale = ShaderProperty.getByName("renderer_StretchedBillboardSpeedScale");
|
|
27222
|
+
})();
|
|
27223
|
+
(function() {
|
|
27224
|
+
ParticleRenderer._currentTime = ShaderProperty.getByName("renderer_CurrentTime");
|
|
27225
|
+
})();
|
|
27226
|
+
__decorate([
|
|
27227
|
+
deepClone
|
|
27228
|
+
], ParticleRenderer.prototype, "generator", void 0);
|
|
27229
|
+
__decorate([
|
|
27230
|
+
shallowClone
|
|
27231
|
+
], ParticleRenderer.prototype, "pivot", void 0);
|
|
27093
27232
|
|
|
27094
27233
|
/**
|
|
27095
27234
|
* Particle curve mode.
|
|
@@ -27111,18 +27250,6 @@ var SubPrimitive = function SubPrimitive() {
|
|
|
27111
27250
|
ParticleGradientMode[ParticleGradientMode[/* Random value between two color gradients. */ "TwoGradients"] = 3] = "TwoGradients";
|
|
27112
27251
|
})(exports.ParticleGradientMode || (exports.ParticleGradientMode = {}));
|
|
27113
27252
|
|
|
27114
|
-
/**
|
|
27115
|
-
* The rendering mode for particle renderer.
|
|
27116
|
-
*/ exports.ParticleRenderMode = void 0;
|
|
27117
|
-
(function(ParticleRenderMode) {
|
|
27118
|
-
ParticleRenderMode[ParticleRenderMode[/** Render particles as billboards facing the active camera. */ "Billboard"] = 0] = "Billboard";
|
|
27119
|
-
ParticleRenderMode[ParticleRenderMode[/** Stretch particles in the direction of motion. */ "StretchBillboard"] = 1] = "StretchBillboard";
|
|
27120
|
-
ParticleRenderMode[ParticleRenderMode[/** Render particles as billboards always facing up along the y-Axis. */ "HorizontalBillboard"] = 2] = "HorizontalBillboard";
|
|
27121
|
-
ParticleRenderMode[ParticleRenderMode[/** Render particles as billboards always facing the player, but not pitching along the x-Axis. */ "VerticalBillboard"] = 3] = "VerticalBillboard";
|
|
27122
|
-
ParticleRenderMode[ParticleRenderMode[/** Render particles as meshes. */ "Mesh"] = 4] = "Mesh";
|
|
27123
|
-
ParticleRenderMode[ParticleRenderMode[/** Do not render particles. */ "None"] = 5] = "None";
|
|
27124
|
-
})(exports.ParticleRenderMode || (exports.ParticleRenderMode = {}));
|
|
27125
|
-
|
|
27126
27253
|
/**
|
|
27127
27254
|
* The space to simulate particles in.
|
|
27128
27255
|
*/ exports.ParticleSimulationSpace = void 0;
|
|
@@ -27131,12 +27258,6 @@ var SubPrimitive = function SubPrimitive() {
|
|
|
27131
27258
|
ParticleSimulationSpace[ParticleSimulationSpace[/** Simulate particles in world space. */ "World"] = 1] = "World";
|
|
27132
27259
|
})(exports.ParticleSimulationSpace || (exports.ParticleSimulationSpace = {}));
|
|
27133
27260
|
|
|
27134
|
-
exports.ParticleStopMode = void 0;
|
|
27135
|
-
(function(ParticleStopMode) {
|
|
27136
|
-
ParticleStopMode[ParticleStopMode[/** Stop emitting new particles and clear existing particles immediately. */ "StopEmittingAndClear"] = 0] = "StopEmittingAndClear";
|
|
27137
|
-
ParticleStopMode[ParticleStopMode[/** Stop emitting new particles, but keep existing particles until they expire. */ "StopEmitting"] = 1] = "StopEmitting";
|
|
27138
|
-
})(exports.ParticleStopMode || (exports.ParticleStopMode = {}));
|
|
27139
|
-
|
|
27140
27261
|
/**
|
|
27141
27262
|
* @internal
|
|
27142
27263
|
*/ var ParticleRandomSubSeeds;
|
|
@@ -29087,181 +29208,60 @@ __decorate([
|
|
|
29087
29208
|
], ParticleGenerator.prototype, "_instanceVertices", void 0);
|
|
29088
29209
|
|
|
29089
29210
|
/**
|
|
29090
|
-
* Particle
|
|
29091
|
-
*/ var
|
|
29092
|
-
_inherits(
|
|
29093
|
-
function
|
|
29211
|
+
* Particle Material.
|
|
29212
|
+
*/ var ParticleMaterial = /*#__PURE__*/ function(BaseMaterial1) {
|
|
29213
|
+
_inherits(ParticleMaterial, BaseMaterial1);
|
|
29214
|
+
function ParticleMaterial(engine) {
|
|
29094
29215
|
var _this;
|
|
29095
|
-
_this =
|
|
29096
|
-
|
|
29097
|
-
|
|
29098
|
-
|
|
29099
|
-
|
|
29100
|
-
_this._currentRenderModeMacro = ParticleRenderer._billboardModeMacro;
|
|
29101
|
-
_this.shaderData.enableMacro(ParticleRenderer._billboardModeMacro);
|
|
29102
|
-
_this._supportInstancedArrays = _this.engine._hardwareRenderer.canIUse(exports.GLCapabilityType.instancedArrays);
|
|
29216
|
+
_this = BaseMaterial1.call(this, engine, Shader.find("particle-shader")) || this;
|
|
29217
|
+
var shaderData = _this.shaderData;
|
|
29218
|
+
shaderData.enableMacro("MATERIAL_OMIT_NORMAL");
|
|
29219
|
+
shaderData.setColor(BaseMaterial._baseColorProp, new miniprogram.Color(1, 1, 1, 1));
|
|
29220
|
+
_this.isTransparent = true;
|
|
29103
29221
|
return _this;
|
|
29104
29222
|
}
|
|
29105
|
-
var _proto =
|
|
29106
|
-
/**
|
|
29107
|
-
* @internal
|
|
29108
|
-
*/ _proto._onEnable = function _onEnable() {
|
|
29109
|
-
if (this.generator.main.playOnEnabled) {
|
|
29110
|
-
this.generator.play(false);
|
|
29111
|
-
}
|
|
29112
|
-
};
|
|
29113
|
-
/**
|
|
29114
|
-
* @internal
|
|
29115
|
-
*/ _proto._onDisable = function _onDisable() {
|
|
29116
|
-
this.generator.stop(false, exports.ParticleStopMode.StopEmittingAndClear);
|
|
29117
|
-
};
|
|
29118
|
-
/**
|
|
29119
|
-
* @internal
|
|
29120
|
-
*/ _proto._prepareRender = function _prepareRender(context) {
|
|
29121
|
-
if (!this._supportInstancedArrays) {
|
|
29122
|
-
return;
|
|
29123
|
-
}
|
|
29124
|
-
var generator = this.generator;
|
|
29125
|
-
generator._update(this.engine.time.deltaTime);
|
|
29126
|
-
// No particles to render
|
|
29127
|
-
if (generator._firstActiveElement === generator._firstFreeElement) {
|
|
29128
|
-
return;
|
|
29129
|
-
}
|
|
29130
|
-
Renderer1.prototype._prepareRender.call(this, context);
|
|
29131
|
-
};
|
|
29132
|
-
/**
|
|
29133
|
-
* @internal
|
|
29134
|
-
*/ _proto._updateBounds = function _updateBounds(worldBounds) {
|
|
29135
|
-
worldBounds.min.set(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);
|
|
29136
|
-
worldBounds.max.set(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);
|
|
29137
|
-
};
|
|
29223
|
+
var _proto = ParticleMaterial.prototype;
|
|
29138
29224
|
/**
|
|
29139
|
-
* @
|
|
29140
|
-
*/ _proto.
|
|
29141
|
-
var
|
|
29142
|
-
|
|
29143
|
-
|
|
29144
|
-
shaderData.setFloat(ParticleRenderer._currentTime, this.generator._playTime);
|
|
29145
|
-
shaderData.setVector3(ParticleRenderer._pivotOffsetProperty, this.pivot);
|
|
29146
|
-
this.generator._updateShaderData(shaderData);
|
|
29147
|
-
};
|
|
29148
|
-
_proto._render = function _render(context) {
|
|
29149
|
-
var generator = this.generator;
|
|
29150
|
-
var primitive = generator._primitive;
|
|
29151
|
-
if (generator._firstActiveElement < generator._firstFreeElement) {
|
|
29152
|
-
primitive.instanceCount = generator._firstFreeElement - generator._firstActiveElement;
|
|
29153
|
-
} else {
|
|
29154
|
-
var instanceCount = generator._currentParticleCount - generator._firstActiveElement;
|
|
29155
|
-
if (generator._firstFreeElement > 0) {
|
|
29156
|
-
instanceCount += generator._firstFreeElement;
|
|
29157
|
-
}
|
|
29158
|
-
primitive.instanceCount = instanceCount;
|
|
29159
|
-
}
|
|
29160
|
-
var material = this.getMaterial();
|
|
29161
|
-
var renderData = this._engine._renderDataPool.getFromPool();
|
|
29162
|
-
renderData.setX(this, material, generator._primitive, generator._subPrimitive);
|
|
29163
|
-
context.camera._renderPipeline.pushRenderData(context, renderData);
|
|
29164
|
-
};
|
|
29165
|
-
_proto._onDestroy = function _onDestroy() {
|
|
29166
|
-
this.generator._destroy();
|
|
29225
|
+
* @inheritdoc
|
|
29226
|
+
*/ _proto.clone = function clone() {
|
|
29227
|
+
var dest = new ParticleMaterial(this._engine);
|
|
29228
|
+
this.cloneTo(dest);
|
|
29229
|
+
return dest;
|
|
29167
29230
|
};
|
|
29168
|
-
_create_class(
|
|
29231
|
+
_create_class(ParticleMaterial, [
|
|
29169
29232
|
{
|
|
29170
|
-
key: "
|
|
29233
|
+
key: "baseColor",
|
|
29171
29234
|
get: /**
|
|
29172
|
-
*
|
|
29235
|
+
* Base color.
|
|
29173
29236
|
*/ function get() {
|
|
29174
|
-
return this.
|
|
29237
|
+
return this.shaderData.getColor(BaseMaterial._baseColorProp);
|
|
29175
29238
|
},
|
|
29176
29239
|
set: function set(value) {
|
|
29177
|
-
|
|
29178
|
-
|
|
29179
|
-
|
|
29180
|
-
var renderModeMacro = null;
|
|
29181
|
-
var shaderData = this.shaderData;
|
|
29182
|
-
switch(value){
|
|
29183
|
-
case exports.ParticleRenderMode.Billboard:
|
|
29184
|
-
renderModeMacro = ParticleRenderer._billboardModeMacro;
|
|
29185
|
-
break;
|
|
29186
|
-
case exports.ParticleRenderMode.StretchBillboard:
|
|
29187
|
-
renderModeMacro = ParticleRenderer._stretchedBillboardModeMacro;
|
|
29188
|
-
break;
|
|
29189
|
-
case exports.ParticleRenderMode.HorizontalBillboard:
|
|
29190
|
-
throw "Not implemented";
|
|
29191
|
-
case exports.ParticleRenderMode.VerticalBillboard:
|
|
29192
|
-
throw "Not implemented";
|
|
29193
|
-
case exports.ParticleRenderMode.Mesh:
|
|
29194
|
-
throw "Not implemented";
|
|
29195
|
-
}
|
|
29196
|
-
if (this._currentRenderModeMacro !== renderModeMacro) {
|
|
29197
|
-
this._currentRenderModeMacro && shaderData.disableMacro(this._currentRenderModeMacro);
|
|
29198
|
-
renderModeMacro && shaderData.enableMacro(renderModeMacro);
|
|
29199
|
-
this._currentRenderModeMacro = renderModeMacro;
|
|
29200
|
-
}
|
|
29201
|
-
// @ts-ignore
|
|
29202
|
-
if (lastRenderMode !== exports.ParticleRenderMode.Mesh !== (value === exports.ParticleRenderMode.Mesh)) {
|
|
29203
|
-
this.generator._reorganizeGeometryBuffers();
|
|
29204
|
-
}
|
|
29240
|
+
var baseColor = this.shaderData.getColor(BaseMaterial._baseColorProp);
|
|
29241
|
+
if (value !== baseColor) {
|
|
29242
|
+
baseColor.copyFrom(value);
|
|
29205
29243
|
}
|
|
29206
29244
|
}
|
|
29207
29245
|
},
|
|
29208
29246
|
{
|
|
29209
|
-
key: "
|
|
29247
|
+
key: "baseTexture",
|
|
29210
29248
|
get: /**
|
|
29211
|
-
*
|
|
29212
|
-
* @remarks Valid when `renderMode` is `Mesh`.
|
|
29249
|
+
* Base texture.
|
|
29213
29250
|
*/ function get() {
|
|
29214
|
-
return this.
|
|
29251
|
+
return this.shaderData.getTexture(BaseMaterial._baseTextureProp);
|
|
29215
29252
|
},
|
|
29216
29253
|
set: function set(value) {
|
|
29217
|
-
|
|
29218
|
-
if (
|
|
29219
|
-
|
|
29220
|
-
|
|
29221
|
-
(
|
|
29222
|
-
(_value = value) == null ? void 0 : _value._addReferCount(1);
|
|
29223
|
-
if (this.renderMode === exports.ParticleRenderMode.Mesh) {
|
|
29224
|
-
this.generator._reorganizeGeometryBuffers();
|
|
29225
|
-
}
|
|
29254
|
+
this.shaderData.setTexture(BaseMaterial._baseTextureProp, value);
|
|
29255
|
+
if (value) {
|
|
29256
|
+
this.shaderData.enableMacro(BaseMaterial._baseTextureMacro);
|
|
29257
|
+
} else {
|
|
29258
|
+
this.shaderData.disableMacro(BaseMaterial._baseTextureMacro);
|
|
29226
29259
|
}
|
|
29227
29260
|
}
|
|
29228
29261
|
}
|
|
29229
29262
|
]);
|
|
29230
|
-
return
|
|
29231
|
-
}(
|
|
29232
|
-
(function() {
|
|
29233
|
-
ParticleRenderer._billboardModeMacro = ShaderMacro.getByName("RENDERER_MODE_SPHERE_BILLBOARD");
|
|
29234
|
-
})();
|
|
29235
|
-
(function() {
|
|
29236
|
-
ParticleRenderer._stretchedBillboardModeMacro = ShaderMacro.getByName("RENDERER_MODE_STRETCHED_BILLBOARD");
|
|
29237
|
-
})();
|
|
29238
|
-
(function() {
|
|
29239
|
-
ParticleRenderer._horizontalBillboardModeMacro = ShaderMacro.getByName("RENDERER_MODE_HORIZONTAL_BILLBOARD");
|
|
29240
|
-
})();
|
|
29241
|
-
(function() {
|
|
29242
|
-
ParticleRenderer._verticalBillboardModeMacro = ShaderMacro.getByName("RENDERER_MODE_VERTICAL_BILLBOARD");
|
|
29243
|
-
})();
|
|
29244
|
-
(function() {
|
|
29245
|
-
ParticleRenderer._renderModeMeshMacro = ShaderMacro.getByName("RENDERER_MODE_MESH");
|
|
29246
|
-
})();
|
|
29247
|
-
(function() {
|
|
29248
|
-
ParticleRenderer._pivotOffsetProperty = ShaderProperty.getByName("renderer_PivotOffset");
|
|
29249
|
-
})();
|
|
29250
|
-
(function() {
|
|
29251
|
-
ParticleRenderer._lengthScale = ShaderProperty.getByName("renderer_StretchedBillboardLengthScale");
|
|
29252
|
-
})();
|
|
29253
|
-
(function() {
|
|
29254
|
-
ParticleRenderer._speedScale = ShaderProperty.getByName("renderer_StretchedBillboardSpeedScale");
|
|
29255
|
-
})();
|
|
29256
|
-
(function() {
|
|
29257
|
-
ParticleRenderer._currentTime = ShaderProperty.getByName("renderer_CurrentTime");
|
|
29258
|
-
})();
|
|
29259
|
-
__decorate([
|
|
29260
|
-
deepClone
|
|
29261
|
-
], ParticleRenderer.prototype, "generator", void 0);
|
|
29262
|
-
__decorate([
|
|
29263
|
-
shallowClone
|
|
29264
|
-
], ParticleRenderer.prototype, "pivot", void 0);
|
|
29263
|
+
return ParticleMaterial;
|
|
29264
|
+
}(BaseMaterial);
|
|
29265
29265
|
|
|
29266
29266
|
/**
|
|
29267
29267
|
* A burst is a particle emission event, where a number of particles are all emitted at the same time
|
|
@@ -29967,6 +29967,7 @@ exports.PBRMaterial = PBRMaterial;
|
|
|
29967
29967
|
exports.PBRSpecularMaterial = PBRSpecularMaterial;
|
|
29968
29968
|
exports.ParticleCompositeCurve = ParticleCompositeCurve;
|
|
29969
29969
|
exports.ParticleCurve = ParticleCurve;
|
|
29970
|
+
exports.ParticleGenerator = ParticleGenerator;
|
|
29970
29971
|
exports.ParticleMaterial = ParticleMaterial;
|
|
29971
29972
|
exports.ParticleRenderer = ParticleRenderer;
|
|
29972
29973
|
exports.PhysicsMaterial = PhysicsMaterial;
|