@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/module.js
CHANGED
|
@@ -15742,8 +15742,8 @@ Joint = __decorate([
|
|
|
15742
15742
|
continue;
|
|
15743
15743
|
}
|
|
15744
15744
|
var cameras = scene._activeCameras;
|
|
15745
|
-
for(var j =
|
|
15746
|
-
var camera = cameras[
|
|
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
|
-
*
|
|
27032
|
-
*/ var
|
|
27033
|
-
|
|
27034
|
-
|
|
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 =
|
|
27037
|
-
|
|
27038
|
-
|
|
27039
|
-
|
|
27040
|
-
_this.
|
|
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 =
|
|
27067
|
+
var _proto = ParticleRenderer.prototype;
|
|
27044
27068
|
/**
|
|
27045
|
-
* @
|
|
27046
|
-
*/ _proto.
|
|
27047
|
-
|
|
27048
|
-
|
|
27049
|
-
|
|
27069
|
+
* @internal
|
|
27070
|
+
*/ _proto._onEnable = function _onEnable() {
|
|
27071
|
+
if (this.generator.main.playOnEnabled) {
|
|
27072
|
+
this.generator.play(false);
|
|
27073
|
+
}
|
|
27050
27074
|
};
|
|
27051
|
-
|
|
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: "
|
|
27132
|
+
key: "renderMode",
|
|
27054
27133
|
get: /**
|
|
27055
|
-
*
|
|
27134
|
+
* Specifies how particles are rendered.
|
|
27056
27135
|
*/ function get() {
|
|
27057
|
-
return this.
|
|
27136
|
+
return this._renderMode;
|
|
27058
27137
|
},
|
|
27059
27138
|
set: function set(value) {
|
|
27060
|
-
|
|
27061
|
-
|
|
27062
|
-
|
|
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: "
|
|
27171
|
+
key: "mesh",
|
|
27068
27172
|
get: /**
|
|
27069
|
-
*
|
|
27173
|
+
* The mesh of particle.
|
|
27174
|
+
* @remarks Valid when `renderMode` is `Mesh`.
|
|
27070
27175
|
*/ function get() {
|
|
27071
|
-
return this.
|
|
27176
|
+
return this._mesh;
|
|
27072
27177
|
},
|
|
27073
27178
|
set: function set(value) {
|
|
27074
|
-
this.
|
|
27075
|
-
if (value) {
|
|
27076
|
-
|
|
27077
|
-
|
|
27078
|
-
|
|
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
|
|
27084
|
-
}(
|
|
27085
|
-
|
|
27086
|
-
|
|
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
|
|
29086
|
-
*/ var
|
|
29087
|
-
_inherits(
|
|
29088
|
-
function
|
|
29206
|
+
* Particle Material.
|
|
29207
|
+
*/ var ParticleMaterial = /*#__PURE__*/ function(BaseMaterial1) {
|
|
29208
|
+
_inherits(ParticleMaterial, BaseMaterial1);
|
|
29209
|
+
function ParticleMaterial(engine) {
|
|
29089
29210
|
var _this;
|
|
29090
|
-
_this =
|
|
29091
|
-
|
|
29092
|
-
|
|
29093
|
-
|
|
29094
|
-
|
|
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 =
|
|
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
|
-
* @
|
|
29135
|
-
*/ _proto.
|
|
29136
|
-
var
|
|
29137
|
-
|
|
29138
|
-
|
|
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(
|
|
29226
|
+
_create_class(ParticleMaterial, [
|
|
29164
29227
|
{
|
|
29165
|
-
key: "
|
|
29228
|
+
key: "baseColor",
|
|
29166
29229
|
get: /**
|
|
29167
|
-
*
|
|
29230
|
+
* Base color.
|
|
29168
29231
|
*/ function get() {
|
|
29169
|
-
return this.
|
|
29232
|
+
return this.shaderData.getColor(BaseMaterial._baseColorProp);
|
|
29170
29233
|
},
|
|
29171
29234
|
set: function set(value) {
|
|
29172
|
-
|
|
29173
|
-
|
|
29174
|
-
|
|
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: "
|
|
29242
|
+
key: "baseTexture",
|
|
29205
29243
|
get: /**
|
|
29206
|
-
*
|
|
29207
|
-
* @remarks Valid when `renderMode` is `Mesh`.
|
|
29244
|
+
* Base texture.
|
|
29208
29245
|
*/ function get() {
|
|
29209
|
-
return this.
|
|
29246
|
+
return this.shaderData.getTexture(BaseMaterial._baseTextureProp);
|
|
29210
29247
|
},
|
|
29211
29248
|
set: function set(value) {
|
|
29212
|
-
|
|
29213
|
-
if (
|
|
29214
|
-
|
|
29215
|
-
|
|
29216
|
-
(
|
|
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
|
|
29226
|
-
}(
|
|
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
|