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