@nodetool-ai/game-renderer 0.8.4-a24.3 → 0.8.4
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/README.md +13 -0
- package/dist/.nodetool-build-stamp +1 -1
- package/dist/audio/player.d.ts +1 -0
- package/dist/audio/player.d.ts.map +1 -1
- package/dist/audio/player.js +13 -2
- package/dist/audio/player.js.map +1 -1
- package/dist/build-fingerprint.d.ts +3 -0
- package/dist/build-fingerprint.d.ts.map +1 -0
- package/dist/build-fingerprint.js +9 -0
- package/dist/build-fingerprint.js.map +1 -0
- package/dist/build-tauri.d.ts +3 -1
- package/dist/build-tauri.d.ts.map +1 -1
- package/dist/build-tauri.js +54 -8
- package/dist/build-tauri.js.map +1 -1
- package/dist/build.d.ts +4 -1
- package/dist/build.d.ts.map +1 -1
- package/dist/build.js +24 -11
- package/dist/build.js.map +1 -1
- package/dist/build3d.d.ts +2 -0
- package/dist/build3d.d.ts.map +1 -1
- package/dist/build3d.js +21 -6
- package/dist/build3d.js.map +1 -1
- package/dist/canvas2d.d.ts +1 -0
- package/dist/canvas2d.d.ts.map +1 -1
- package/dist/canvas2d.js +15 -10
- package/dist/canvas2d.js.map +1 -1
- package/dist/export-media.d.ts +7 -0
- package/dist/export-media.d.ts.map +1 -0
- package/dist/export-media.js +73 -0
- package/dist/export-media.js.map +1 -0
- package/dist/frame.d.ts +5 -0
- package/dist/frame.d.ts.map +1 -1
- package/dist/frame.js +7 -1
- package/dist/frame.js.map +1 -1
- package/dist/game3d-capture-page.js +306 -276
- package/dist/game3d-player.js +399 -350
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lighting.d.ts.map +1 -1
- package/dist/lighting.js +4 -3
- package/dist/lighting.js.map +1 -1
- package/dist/mouse-input.d.ts +18 -0
- package/dist/mouse-input.d.ts.map +1 -0
- package/dist/mouse-input.js +135 -0
- package/dist/mouse-input.js.map +1 -0
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +2 -2
- package/dist/node.js.map +1 -1
- package/dist/node3d.d.ts.map +1 -1
- package/dist/node3d.js +5 -3
- package/dist/node3d.js.map +1 -1
- package/dist/particles/particles3d.d.ts +12 -10
- package/dist/particles/particles3d.d.ts.map +1 -1
- package/dist/particles/particles3d.js +81 -60
- package/dist/particles/particles3d.js.map +1 -1
- package/dist/particles/pass3d.d.ts +6 -4
- package/dist/particles/pass3d.d.ts.map +1 -1
- package/dist/particles/pass3d.js +28 -15
- package/dist/particles/pass3d.js.map +1 -1
- package/dist/particles/render2d.d.ts +3 -2
- package/dist/particles/render2d.d.ts.map +1 -1
- package/dist/particles/render2d.js +9 -2
- package/dist/particles/render2d.js.map +1 -1
- package/dist/particles/simulator.d.ts +13 -1
- package/dist/particles/simulator.d.ts.map +1 -1
- package/dist/particles/simulator.js +173 -44
- package/dist/particles/simulator.js.map +1 -1
- package/dist/particles/transparency3d.d.ts +17 -0
- package/dist/particles/transparency3d.d.ts.map +1 -0
- package/dist/particles/transparency3d.js +117 -0
- package/dist/particles/transparency3d.js.map +1 -0
- package/dist/player-v1.js +275 -256
- package/dist/renderer3d/animation/index.d.ts +2 -0
- package/dist/renderer3d/animation/index.d.ts.map +1 -1
- package/dist/renderer3d/animation/index.js +24 -10
- package/dist/renderer3d/animation/index.js.map +1 -1
- package/dist/renderer3d/assets/image-preparation.d.ts +9 -0
- package/dist/renderer3d/assets/image-preparation.d.ts.map +1 -1
- package/dist/renderer3d/assets/image-preparation.js +14 -4
- package/dist/renderer3d/assets/image-preparation.js.map +1 -1
- package/dist/renderer3d/assets/instances.d.ts.map +1 -1
- package/dist/renderer3d/assets/instances.js +38 -1
- package/dist/renderer3d/assets/instances.js.map +1 -1
- package/dist/renderer3d/decals/geometry.d.ts +27 -0
- package/dist/renderer3d/decals/geometry.d.ts.map +1 -0
- package/dist/renderer3d/decals/geometry.js +142 -0
- package/dist/renderer3d/decals/geometry.js.map +1 -0
- package/dist/renderer3d/decals/index.d.ts +29 -0
- package/dist/renderer3d/decals/index.d.ts.map +1 -0
- package/dist/renderer3d/decals/index.js +284 -0
- package/dist/renderer3d/decals/index.js.map +1 -0
- package/dist/renderer3d/environment/height-fog.d.ts +14 -0
- package/dist/renderer3d/environment/height-fog.d.ts.map +1 -0
- package/dist/renderer3d/environment/height-fog.js +114 -0
- package/dist/renderer3d/environment/height-fog.js.map +1 -0
- package/dist/renderer3d/environment/index.d.ts.map +1 -1
- package/dist/renderer3d/environment/index.js +4 -1
- package/dist/renderer3d/environment/index.js.map +1 -1
- package/dist/renderer3d/environment/sky.d.ts +1 -0
- package/dist/renderer3d/environment/sky.d.ts.map +1 -1
- package/dist/renderer3d/environment/sky.js +33 -16
- package/dist/renderer3d/environment/sky.js.map +1 -1
- package/dist/renderer3d/import.d.ts.map +1 -1
- package/dist/renderer3d/import.js +19 -3
- package/dist/renderer3d/import.js.map +1 -1
- package/dist/renderer3d/index.d.ts.map +1 -1
- package/dist/renderer3d/index.js +27 -4
- package/dist/renderer3d/index.js.map +1 -1
- package/dist/renderer3d/material-hooks.d.ts +8 -0
- package/dist/renderer3d/material-hooks.d.ts.map +1 -0
- package/dist/renderer3d/material-hooks.js +53 -0
- package/dist/renderer3d/material-hooks.js.map +1 -0
- package/dist/renderer3d/pipeline.d.ts +1 -0
- package/dist/renderer3d/pipeline.d.ts.map +1 -1
- package/dist/renderer3d/pipeline.js.map +1 -1
- package/dist/renderer3d/preparation.d.ts +1 -0
- package/dist/renderer3d/preparation.d.ts.map +1 -1
- package/dist/renderer3d/preparation.js +37 -4
- package/dist/renderer3d/preparation.js.map +1 -1
- package/dist/renderer3d/scene-sync.d.ts.map +1 -1
- package/dist/renderer3d/scene-sync.js +16 -1
- package/dist/renderer3d/scene-sync.js.map +1 -1
- package/dist/renderer3d/shadows/cascades.d.ts +2 -1
- package/dist/renderer3d/shadows/cascades.d.ts.map +1 -1
- package/dist/renderer3d/shadows/cascades.js +19 -37
- package/dist/renderer3d/shadows/cascades.js.map +1 -1
- package/dist/renderer3d/shadows/index.d.ts +1 -0
- package/dist/renderer3d/shadows/index.d.ts.map +1 -1
- package/dist/renderer3d/shadows/index.js +3 -2
- package/dist/renderer3d/shadows/index.js.map +1 -1
- package/dist/renderer3d/types.d.ts +1 -0
- package/dist/renderer3d/types.d.ts.map +1 -1
- package/dist/save-storage.d.ts.map +1 -1
- package/dist/save-storage.js +23 -7
- package/dist/save-storage.js.map +1 -1
- package/dist/smoke.d.ts.map +1 -1
- package/dist/smoke.js +27 -12
- package/dist/smoke.js.map +1 -1
- package/dist/standalone-assets.d.ts +25 -0
- package/dist/standalone-assets.d.ts.map +1 -0
- package/dist/standalone-assets.js +111 -0
- package/dist/standalone-assets.js.map +1 -0
- package/dist/standalone-frame.d.ts +7 -0
- package/dist/standalone-frame.d.ts.map +1 -0
- package/dist/standalone-frame.js +2 -0
- package/dist/standalone-frame.js.map +1 -0
- package/dist/standalone-player.d.ts +3 -2
- package/dist/standalone-player.d.ts.map +1 -1
- package/dist/standalone-player.js +246 -76
- package/dist/standalone-player.js.map +1 -1
- package/dist/standalone-player3d.d.ts +4 -3
- package/dist/standalone-player3d.d.ts.map +1 -1
- package/dist/standalone-player3d.js +193 -115
- package/dist/standalone-player3d.js.map +1 -1
- package/dist/touch-controls.d.ts +10 -1
- package/dist/touch-controls.d.ts.map +1 -1
- package/dist/touch-controls.js +98 -10
- package/dist/touch-controls.js.map +1 -1
- package/dist/touch-input.d.ts +13 -0
- package/dist/touch-input.d.ts.map +1 -0
- package/dist/touch-input.js +71 -0
- package/dist/touch-input.js.map +1 -0
- package/dist/ui/controller.d.ts +7 -0
- package/dist/ui/controller.d.ts.map +1 -1
- package/dist/ui/controller.js +40 -9
- package/dist/ui/controller.js.map +1 -1
- package/dist/webgpu/lighting.d.ts +1 -1
- package/dist/webgpu/lighting.d.ts.map +1 -1
- package/dist/webgpu/lighting.js +4 -3
- package/dist/webgpu/lighting.js.map +1 -1
- package/dist/webgpu.js +1 -1
- package/dist/webgpu.js.map +1 -1
- package/package.json +5 -5
|
@@ -7,6 +7,7 @@ import { ParticleSimulator, particleSourcesFromFrame } from "./simulator.js";
|
|
|
7
7
|
export class GameParticles3D {
|
|
8
8
|
simulator;
|
|
9
9
|
tickSeconds;
|
|
10
|
+
identity = null;
|
|
10
11
|
constructor(tickRate, maxSceneParticles) {
|
|
11
12
|
if (!(tickRate > 0)) {
|
|
12
13
|
throw new Error("Particle tick rate must be positive");
|
|
@@ -19,25 +20,31 @@ export class GameParticles3D {
|
|
|
19
20
|
return this.simulator.count;
|
|
20
21
|
}
|
|
21
22
|
tick(frame, events) {
|
|
23
|
+
const identity = JSON.stringify([frame.gameId, frame.sceneId]);
|
|
24
|
+
if (identity !== this.identity || events.some((event) => event.kind === "sceneTransition")) {
|
|
25
|
+
this.clear();
|
|
26
|
+
this.identity = identity;
|
|
27
|
+
}
|
|
22
28
|
this.simulator.sync(particleSourcesFromFrame(frame));
|
|
23
29
|
this.simulator.emit(events);
|
|
24
30
|
this.simulator.step(this.tickSeconds);
|
|
25
31
|
}
|
|
26
|
-
forEachParticle(visit) {
|
|
27
|
-
this.simulator.forEachParticle(visit);
|
|
32
|
+
forEachParticle(visit, interpolation = 1) {
|
|
33
|
+
this.simulator.forEachParticle(visit, interpolation);
|
|
28
34
|
}
|
|
29
35
|
clear() {
|
|
30
36
|
this.simulator.clear();
|
|
37
|
+
this.identity = null;
|
|
31
38
|
}
|
|
32
39
|
}
|
|
33
40
|
/** Copies every live particle of a field, in the field's order. */
|
|
34
|
-
export function gameParticleSamples3D(field) {
|
|
41
|
+
export function gameParticleSamples3D(field, interpolation = 1) {
|
|
35
42
|
const samples = [];
|
|
36
43
|
field.forEachParticle((particle) => {
|
|
37
44
|
samples.push({ emitter: particle.emitter, entityId: particle.entityId, emitterId: particle.emitterId, x: particle.x, y: particle.y, z: particle.z,
|
|
38
45
|
vx: particle.vx, vy: particle.vy, vz: particle.vz, size: particle.size, rotation: particle.rotation,
|
|
39
46
|
r: particle.r, g: particle.g, b: particle.b, opacity: particle.opacity, life: particle.life });
|
|
40
|
-
});
|
|
47
|
+
}, interpolation);
|
|
41
48
|
return samples;
|
|
42
49
|
}
|
|
43
50
|
/**
|
|
@@ -46,9 +53,11 @@ export function gameParticleSamples3D(field) {
|
|
|
46
53
|
*/
|
|
47
54
|
export function gameParticleFieldFromSamples3D(samples, frame) {
|
|
48
55
|
const emitters = new Map();
|
|
49
|
-
|
|
50
|
-
for (const
|
|
51
|
-
|
|
56
|
+
if (samples.some(sample => sample.emitter === undefined)) {
|
|
57
|
+
for (const entity of frame.entities) {
|
|
58
|
+
for (const emitter of entity.particles?.emitters ?? []) {
|
|
59
|
+
emitters.set(`${entity.entityId}\u0000${emitter.id}`, emitter);
|
|
60
|
+
}
|
|
52
61
|
}
|
|
53
62
|
}
|
|
54
63
|
return {
|
|
@@ -81,13 +90,15 @@ function batchKey(emitter) {
|
|
|
81
90
|
return { key: `quad:${blend}`, shape: "quad", blend, lit: false };
|
|
82
91
|
}
|
|
83
92
|
/**
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
*
|
|
93
|
+
* Sorts all visible particles before forming contiguous compatible runs. Equal depths retain field order.
|
|
94
|
+
* A material may occur in multiple runs: joining those runs would move it across another transparent material.
|
|
95
|
+
* Previous run buffers are reused, and no particles are dropped to reduce the draw count.
|
|
96
|
+
* Scene-depth boundaries split otherwise compatible runs so ordinary transparent objects can draw between them.
|
|
87
97
|
*/
|
|
88
|
-
export function packParticleBatches3D(field, viewer, previous = []) {
|
|
89
|
-
// A scene has a handful of batches, so linear lookups beat building maps every frame.
|
|
98
|
+
export function packParticleBatches3D(field, viewer, previous = [], interpolation = 1, sceneDepths) {
|
|
90
99
|
const batches = [];
|
|
100
|
+
const kinds = [];
|
|
101
|
+
const emitterKinds = new Map();
|
|
91
102
|
let drawn = 0;
|
|
92
103
|
let soft = false;
|
|
93
104
|
field.forEachParticle((particle) => {
|
|
@@ -95,22 +106,17 @@ export function packParticleBatches3D(field, viewer, previous = []) {
|
|
|
95
106
|
return;
|
|
96
107
|
}
|
|
97
108
|
const emitter = particle.emitter;
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
batch.count = 0;
|
|
103
|
-
batches.push(batch);
|
|
104
|
-
}
|
|
105
|
-
if ((batch.count + 1) * PARTICLE_INSTANCE_STRIDE_3D > batch.data.length) {
|
|
106
|
-
const grown = new Float32Array(batch.data.length * 2);
|
|
107
|
-
grown.set(batch.data);
|
|
108
|
-
batch.data = grown;
|
|
109
|
+
let kind = emitterKinds.get(emitter);
|
|
110
|
+
if (!kind) {
|
|
111
|
+
kind = batchKey(emitter);
|
|
112
|
+
emitterKinds.set(emitter, kind);
|
|
109
113
|
}
|
|
114
|
+
kinds.push(kind);
|
|
115
|
+
growScratch(drawn + 1);
|
|
110
116
|
const render = emitter.render;
|
|
111
117
|
const softness = kind.shape === "quad" ? emitter.softness ?? 0 : 0;
|
|
112
|
-
const data =
|
|
113
|
-
const base =
|
|
118
|
+
const data = sortData;
|
|
119
|
+
const base = drawn * PARTICLE_INSTANCE_STRIDE_3D;
|
|
114
120
|
data[base] = particle.x;
|
|
115
121
|
data[base + 1] = particle.y;
|
|
116
122
|
data[base + 2] = particle.z;
|
|
@@ -127,50 +133,65 @@ export function packParticleBatches3D(field, viewer, previous = []) {
|
|
|
127
133
|
data[base + 13] = render?.kind === "stretched" ? render.speedScale : 0;
|
|
128
134
|
data[base + 14] = softness;
|
|
129
135
|
data[base + 15] = render?.kind === "stretched" || (render?.kind === "mesh" && render.align === "velocity") ? 1 : 0;
|
|
130
|
-
|
|
136
|
+
sortDepths[drawn] = (particle.x - viewer.x) * viewer.forwardX + (particle.y - viewer.y) * viewer.forwardY + (particle.z - viewer.z) * viewer.forwardZ;
|
|
137
|
+
sortOrder[drawn] = drawn;
|
|
131
138
|
drawn += 1;
|
|
132
139
|
soft ||= softness > 0;
|
|
133
|
-
});
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
140
|
+
}, interpolation);
|
|
141
|
+
const order = sortOrder.subarray(0, drawn).sort((first, second) => sortDepths[second] - sortDepths[first] || first - second);
|
|
142
|
+
const reusable = new Map(previous.map(batch => [batch.key, batch]));
|
|
143
|
+
const occurrences = new Map();
|
|
144
|
+
// Query lazily: an empty field must not walk a potentially large scene.
|
|
145
|
+
const boundaries = drawn > 0 && sceneDepths ? [...sceneDepths()].sort((a, b) => b - a) : [];
|
|
146
|
+
let boundary = 0;
|
|
147
|
+
for (let start = 0; start < drawn;) {
|
|
148
|
+
const kind = kinds[order[start]];
|
|
149
|
+
const depth = sortDepths[order[start]];
|
|
150
|
+
while (boundary < boundaries.length && boundaries[boundary] >= depth) {
|
|
151
|
+
boundary++;
|
|
152
|
+
}
|
|
153
|
+
let end = start + 1;
|
|
154
|
+
while (end < drawn && kinds[order[end]].key === kind.key
|
|
155
|
+
&& (boundary === boundaries.length || sortDepths[order[end]] > boundaries[boundary])) {
|
|
156
|
+
end += 1;
|
|
157
|
+
}
|
|
158
|
+
const occurrence = occurrences.get(kind.key) ?? 0;
|
|
159
|
+
occurrences.set(kind.key, occurrence + 1);
|
|
160
|
+
const key = occurrence === 0 ? kind.key : `${kind.key}:${occurrence}`;
|
|
161
|
+
const count = end - start;
|
|
162
|
+
const capacity = PARTICLE_INSTANCE_STRIDE_3D * 2 ** Math.ceil(Math.log2(count));
|
|
163
|
+
const batch = reusable.get(key) ?? { ...kind, key, depth, count: 0, data: new Float32Array(capacity) };
|
|
164
|
+
// Hysteresis avoids small size-change reallocations without retaining every run's historical peak.
|
|
165
|
+
if (batch.data.length < capacity || batch.data.length > capacity * 4) {
|
|
166
|
+
batch.data = new Float32Array(capacity);
|
|
137
167
|
}
|
|
168
|
+
batch.count = count;
|
|
169
|
+
batch.depth = depth;
|
|
170
|
+
for (let index = start; index < end; index += 1) {
|
|
171
|
+
const from = order[index] * PARTICLE_INSTANCE_STRIDE_3D;
|
|
172
|
+
batch.data.set(sortData.subarray(from, from + PARTICLE_INSTANCE_STRIDE_3D), (index - start) * PARTICLE_INSTANCE_STRIDE_3D);
|
|
173
|
+
}
|
|
174
|
+
batches.push(batch);
|
|
175
|
+
start = end;
|
|
138
176
|
}
|
|
139
177
|
return { batches, drawn, soft };
|
|
140
178
|
}
|
|
141
|
-
/**
|
|
179
|
+
/** Packing is synchronous. Shared scratch copies views before a field reuses its mutable particle object. */
|
|
180
|
+
let sortData = new Float32Array(0);
|
|
142
181
|
let sortDepths = new Float64Array(0);
|
|
143
182
|
let sortOrder = new Uint32Array(0);
|
|
144
|
-
function
|
|
145
|
-
const stride = PARTICLE_INSTANCE_STRIDE_3D;
|
|
146
|
-
const count = batch.count;
|
|
147
|
-
const source = batch.data;
|
|
183
|
+
function growScratch(count) {
|
|
148
184
|
if (sortDepths.length < count) {
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
}
|
|
160
|
-
if (sorted) {
|
|
161
|
-
return;
|
|
162
|
-
}
|
|
163
|
-
// The index tie-break keeps field order between equal depths whatever the engine's sort does.
|
|
164
|
-
const order = sortOrder.subarray(0, count).sort((first, second) => depths[second] - depths[first] || first - second);
|
|
165
|
-
let target = batch.spare;
|
|
166
|
-
if (!target || target.length < source.length) {
|
|
167
|
-
target = new Float32Array(source.length);
|
|
168
|
-
}
|
|
169
|
-
for (let to = 0; to < count; to += 1) {
|
|
170
|
-
const from = order[to] * stride;
|
|
171
|
-
target.set(source.subarray(from, from + stride), to * stride);
|
|
185
|
+
const capacity = Math.max(count, sortDepths.length * 2, 64);
|
|
186
|
+
const data = new Float32Array(capacity * PARTICLE_INSTANCE_STRIDE_3D);
|
|
187
|
+
const depths = new Float64Array(capacity);
|
|
188
|
+
const order = new Uint32Array(capacity);
|
|
189
|
+
data.set(sortData);
|
|
190
|
+
depths.set(sortDepths);
|
|
191
|
+
order.set(sortOrder);
|
|
192
|
+
sortData = data;
|
|
193
|
+
sortDepths = depths;
|
|
194
|
+
sortOrder = order;
|
|
172
195
|
}
|
|
173
|
-
batch.spare = source;
|
|
174
|
-
batch.data = target;
|
|
175
196
|
}
|
|
176
197
|
//# sourceMappingURL=particles3d.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"particles3d.js","sourceRoot":"","sources":["../../src/particles/particles3d.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAqB,MAAM,gBAAgB,CAAC;AAEhG;;;;GAIG;AACH,MAAM,OAAO,eAAe;IACjB,SAAS,CAAoB;IACrB,WAAW,CAAS;
|
|
1
|
+
{"version":3,"file":"particles3d.js","sourceRoot":"","sources":["../../src/particles/particles3d.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,8 +11,8 @@ export interface GameParticlePassHost3D {
|
|
|
11
11
|
particles(): GameParticleField | null;
|
|
12
12
|
}
|
|
13
13
|
/**
|
|
14
|
-
* Draws 3D particles: camera-facing and stretched billboards and instanced mesh shapes, one draw call per
|
|
15
|
-
*
|
|
14
|
+
* Draws 3D particles: camera-facing and stretched billboards and instanced mesh shapes, one draw call per contiguous
|
|
15
|
+
* compatible run between scene-transparency depths. The pass runs before the scene pass and puts its meshes in the scene, so particles depth
|
|
16
16
|
* test against the scene and take its fog and post-processing. When a billboard has a softness distance, the pass
|
|
17
17
|
* first renders the scene's depth into a texture and the billboard fades out where it nears the geometry behind it.
|
|
18
18
|
*/
|
|
@@ -20,6 +20,8 @@ export declare class GameParticlePass3D {
|
|
|
20
20
|
private readonly host;
|
|
21
21
|
private readonly group;
|
|
22
22
|
private readonly draws;
|
|
23
|
+
private readonly transparency;
|
|
24
|
+
private renderer;
|
|
23
25
|
private batches;
|
|
24
26
|
private readonly quadGeometry;
|
|
25
27
|
/** Depth-only stand-ins for scene materials, so the depth pre-pass keeps each material's cut-outs and skips what never writes depth. */
|
|
@@ -48,8 +50,8 @@ export declare class GameParticlePass3D {
|
|
|
48
50
|
/**
|
|
49
51
|
* Renders the scene's depth without particles into a texture, keeping every renderer and scene setting it changes.
|
|
50
52
|
* Each mesh draws with a depth-only copy of its material, so alpha-tested cut-outs keep their holes, and transparent
|
|
51
|
-
* or non-depth-writing materials are skipped as they write no depth in the scene pass either.
|
|
52
|
-
*
|
|
53
|
+
* or non-depth-writing materials are skipped as they write no depth in the scene pass either. Its submitted work
|
|
54
|
+
* remains in the renderer counters so frame stats and budgets include this pass.
|
|
53
55
|
*/
|
|
54
56
|
private renderDepth;
|
|
55
57
|
private swapDepthMaterials;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pass3d.d.ts","sourceRoot":"","sources":["../../src/particles/pass3d.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAmB,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAEnF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"pass3d.d.ts","sourceRoot":"","sources":["../../src/particles/pass3d.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAmB,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAEnF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGvD,+HAA+H;AAC/H,eAAO,MAAM,qBAAqB,cAAc,CAAC;AACjD,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAEhD,+EAA+E;AAC/E,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;IAC5B,8DAA8D;IAC9D,SAAS,IAAI,iBAAiB,GAAG,IAAI,CAAC;CACvC;AA6GD;;;;;GAKG;AACH,qBAAa,kBAAkB;IA0BW,OAAO,CAAC,QAAQ,CAAC,IAAI;IAzB7D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;IAC3C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA2B;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgC;IAC7D,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiC;IAC9D,wIAAwI;IACxI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsD;IACrF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6B;IACvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8D;IACtF,OAAO,CAAC,WAAW,CAAwC;IAC3D,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuB;IAC5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuB;IACtD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuB;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAC9C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAChD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAChD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuB;IAC7C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA0B;IAC/C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA0B;IAC/C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;IAC3C,yCAAyC;IACzC,KAAK,SAAK;IAEV,YAAY,QAAQ,EAAE,gBAAgB,EAAmB,IAAI,EAAE,sBAAsB,EAIpF;IAED,qHAAqH;IACrH,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,OAAO,IAAI,IAAI,CAYd;IAED,OAAO,CAAC,OAAO;IAyCf;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAgCnB,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,WAAW;IAkCnB,OAAO,CAAC,YAAY;IAsCpB,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,OAAO;CAMhB"}
|
package/dist/particles/pass3d.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as THREE from "three";
|
|
2
2
|
import { PARTICLE_INSTANCE_STRIDE_3D, packParticleBatches3D } from "./particles3d.js";
|
|
3
|
+
import { ParticleTransparency3D } from "./transparency3d.js";
|
|
3
4
|
/** Pass name in `RenderPipeline3D`. It runs before the scene pass so particles draw with the scene and its post-processing. */
|
|
4
5
|
export const GAME_PARTICLE_PASS_3D = "particles";
|
|
5
6
|
export const GAME_PARTICLE_PASS_ORDER_3D = -0.5;
|
|
@@ -89,8 +90,8 @@ function withInstanceOpacity(material) {
|
|
|
89
90
|
}
|
|
90
91
|
const UP = new THREE.Vector3(0, 1, 0);
|
|
91
92
|
/**
|
|
92
|
-
* Draws 3D particles: camera-facing and stretched billboards and instanced mesh shapes, one draw call per
|
|
93
|
-
*
|
|
93
|
+
* Draws 3D particles: camera-facing and stretched billboards and instanced mesh shapes, one draw call per contiguous
|
|
94
|
+
* compatible run between scene-transparency depths. The pass runs before the scene pass and puts its meshes in the scene, so particles depth
|
|
94
95
|
* test against the scene and take its fog and post-processing. When a billboard has a softness distance, the pass
|
|
95
96
|
* first renders the scene's depth into a texture and the billboard fades out where it nears the geometry behind it.
|
|
96
97
|
*/
|
|
@@ -98,6 +99,8 @@ export class GameParticlePass3D {
|
|
|
98
99
|
host;
|
|
99
100
|
group = new THREE.Group();
|
|
100
101
|
draws = new Map();
|
|
102
|
+
transparency = new ParticleTransparency3D();
|
|
103
|
+
renderer = null;
|
|
101
104
|
batches = [];
|
|
102
105
|
quadGeometry = new THREE.PlaneGeometry(1, 1);
|
|
103
106
|
/** Depth-only stand-ins for scene materials, so the depth pre-pass keeps each material's cut-outs and skips what never writes depth. */
|
|
@@ -129,6 +132,9 @@ export class GameParticlePass3D {
|
|
|
129
132
|
return this.depthTarget ? this.depthTarget.width * this.depthTarget.height * 8 : 0;
|
|
130
133
|
}
|
|
131
134
|
dispose() {
|
|
135
|
+
this.renderer?.setTransparentSort(null);
|
|
136
|
+
this.renderer = null;
|
|
137
|
+
this.transparency.clear();
|
|
132
138
|
for (const draw of this.draws.values()) {
|
|
133
139
|
this.release(draw);
|
|
134
140
|
}
|
|
@@ -142,7 +148,13 @@ export class GameParticlePass3D {
|
|
|
142
148
|
this.depthTarget?.dispose();
|
|
143
149
|
this.depthTarget = null;
|
|
144
150
|
}
|
|
145
|
-
prepare({ renderer, scene, camera }) {
|
|
151
|
+
prepare({ renderer, scene, camera, interpolation = 1 }) {
|
|
152
|
+
if (this.renderer !== renderer) {
|
|
153
|
+
this.renderer?.setTransparentSort(null);
|
|
154
|
+
this.renderer = renderer;
|
|
155
|
+
renderer.setTransparentSort(this.transparency.compare);
|
|
156
|
+
}
|
|
157
|
+
this.transparency.clear();
|
|
146
158
|
if (this.group.parent !== scene) {
|
|
147
159
|
scene.add(this.group);
|
|
148
160
|
}
|
|
@@ -151,18 +163,23 @@ export class GameParticlePass3D {
|
|
|
151
163
|
camera.getWorldDirection(this.cameraForward);
|
|
152
164
|
const packed = field
|
|
153
165
|
? packParticleBatches3D(field, { x: this.cameraPosition.x, y: this.cameraPosition.y, z: this.cameraPosition.z,
|
|
154
|
-
forwardX: this.cameraForward.x, forwardY: this.cameraForward.y, forwardZ: this.cameraForward.z }, this.batches)
|
|
166
|
+
forwardX: this.cameraForward.x, forwardY: this.cameraForward.y, forwardZ: this.cameraForward.z }, this.batches, interpolation, () => this.transparency.depths(scene, camera, this.group))
|
|
155
167
|
: { batches: [], drawn: 0, soft: false };
|
|
156
168
|
this.batches = packed.batches;
|
|
157
169
|
this.drawn = packed.drawn;
|
|
158
170
|
this.frame += 1;
|
|
159
|
-
for (const batch of packed.batches) {
|
|
171
|
+
for (const [order, batch] of packed.batches.entries()) {
|
|
160
172
|
if (batch.shape === "quad") {
|
|
161
173
|
this.updateQuads(batch);
|
|
162
174
|
}
|
|
163
175
|
else {
|
|
164
176
|
this.updateMeshes(batch, batch.shape);
|
|
165
177
|
}
|
|
178
|
+
const draw = this.draws.get(batch.key);
|
|
179
|
+
if (!draw) {
|
|
180
|
+
throw new Error(`Particle run ${batch.key} was not prepared`);
|
|
181
|
+
}
|
|
182
|
+
this.transparency.add(draw.mesh, batch.depth, order, camera);
|
|
166
183
|
}
|
|
167
184
|
for (const [key, draw] of this.draws) {
|
|
168
185
|
if (draw.frame !== this.frame) {
|
|
@@ -187,8 +204,8 @@ export class GameParticlePass3D {
|
|
|
187
204
|
/**
|
|
188
205
|
* Renders the scene's depth without particles into a texture, keeping every renderer and scene setting it changes.
|
|
189
206
|
* Each mesh draws with a depth-only copy of its material, so alpha-tested cut-outs keep their holes, and transparent
|
|
190
|
-
* or non-depth-writing materials are skipped as they write no depth in the scene pass either.
|
|
191
|
-
*
|
|
207
|
+
* or non-depth-writing materials are skipped as they write no depth in the scene pass either. Its submitted work
|
|
208
|
+
* remains in the renderer counters so frame stats and budgets include this pass.
|
|
192
209
|
*/
|
|
193
210
|
renderDepth(renderer, scene, camera) {
|
|
194
211
|
const size = renderer.getDrawingBufferSize(this.size);
|
|
@@ -201,9 +218,6 @@ export class GameParticlePass3D {
|
|
|
201
218
|
const target = renderer.getRenderTarget();
|
|
202
219
|
const background = scene.background;
|
|
203
220
|
const shadowUpdate = renderer.shadowMap.autoUpdate;
|
|
204
|
-
const counters = renderer.info.render;
|
|
205
|
-
const calls = counters.calls;
|
|
206
|
-
const triangles = counters.triangles;
|
|
207
221
|
try {
|
|
208
222
|
// The scene pass renders this frame's shadow maps. Depth needs none.
|
|
209
223
|
renderer.shadowMap.autoUpdate = false;
|
|
@@ -223,8 +237,6 @@ export class GameParticlePass3D {
|
|
|
223
237
|
this.group.visible = true;
|
|
224
238
|
scene.background = background;
|
|
225
239
|
renderer.setRenderTarget(target);
|
|
226
|
-
counters.calls = calls;
|
|
227
|
-
counters.triangles = triangles;
|
|
228
240
|
}
|
|
229
241
|
const depth = this.depthTarget.depthTexture;
|
|
230
242
|
if (!depth) {
|
|
@@ -271,7 +283,7 @@ export class GameParticlePass3D {
|
|
|
271
283
|
}
|
|
272
284
|
updateQuads(batch) {
|
|
273
285
|
let draw = this.draws.get(batch.key);
|
|
274
|
-
if (draw?.kind === "quad" && draw.buffer.array.length
|
|
286
|
+
if (draw?.kind === "quad" && draw.buffer.array.length !== batch.data.length) {
|
|
275
287
|
this.release(draw);
|
|
276
288
|
this.draws.delete(batch.key);
|
|
277
289
|
draw = undefined;
|
|
@@ -323,7 +335,8 @@ export class GameParticlePass3D {
|
|
|
323
335
|
}
|
|
324
336
|
updateMeshes(batch, shape) {
|
|
325
337
|
let draw = this.draws.get(batch.key);
|
|
326
|
-
|
|
338
|
+
const capacity = batch.data.length / PARTICLE_INSTANCE_STRIDE_3D;
|
|
339
|
+
if (draw?.kind === "mesh" && draw.mesh.instanceMatrix.count !== capacity) {
|
|
327
340
|
this.release(draw);
|
|
328
341
|
this.draws.delete(batch.key);
|
|
329
342
|
draw = undefined;
|
|
@@ -370,7 +383,7 @@ export class GameParticlePass3D {
|
|
|
370
383
|
const opacity = new THREE.InstancedBufferAttribute(new Float32Array(capacity), 1);
|
|
371
384
|
opacity.setUsage(THREE.DynamicDrawUsage);
|
|
372
385
|
geometry.setAttribute("particleOpacity", opacity);
|
|
373
|
-
const options = { transparent: true, depthWrite:
|
|
386
|
+
const options = { transparent: true, depthWrite: false,
|
|
374
387
|
blending: batch.blend === "additive" ? THREE.AdditiveBlending : THREE.NormalBlending };
|
|
375
388
|
const material = batch.lit ? new THREE.MeshStandardMaterial({ ...options, roughness: 0.8, metalness: 0 }) : new THREE.MeshBasicMaterial(options);
|
|
376
389
|
withInstanceOpacity(material);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pass3d.js","sourceRoot":"","sources":["../../src/particles/pass3d.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pass3d.js","sourceRoot":"","sources":["../../src/particles/pass3d.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import type { GameEvent, GameParticleEmission, GameParticleSprite, GameRenderFra
|
|
|
2
2
|
import { ParticleSimulator, type ParticleView } from "./simulator.js";
|
|
3
3
|
/** What a 2D renderer reads from a particle simulation. */
|
|
4
4
|
export interface GameParticleField {
|
|
5
|
-
forEachParticle(visit: (particle: Readonly<ParticleView>) => void): void;
|
|
5
|
+
forEachParticle(visit: (particle: Readonly<ParticleView>) => void, interpolation?: number): void;
|
|
6
6
|
}
|
|
7
7
|
/** Asset id of the built-in soft round dot that particles without a sprite draw with. */
|
|
8
8
|
export declare const PARTICLE_DOT_ASSET = "nodetool:particle-dot";
|
|
@@ -30,11 +30,12 @@ export declare function particleCell(sprite: GameParticleSprite, life: number):
|
|
|
30
30
|
export declare class GameParticles2D implements GameParticleField {
|
|
31
31
|
readonly simulator: ParticleSimulator;
|
|
32
32
|
private readonly tickSeconds;
|
|
33
|
+
private identity;
|
|
33
34
|
constructor(tickRate: number, maxSceneParticles?: number);
|
|
34
35
|
/** Live particles, for the frame budget. */
|
|
35
36
|
get count(): number;
|
|
36
37
|
tick(frame: GameRenderFrame, events: readonly (GameEvent | GameParticleEmission)[]): void;
|
|
37
|
-
forEachParticle(visit: (particle: Readonly<ParticleView>) => void): void;
|
|
38
|
+
forEachParticle(visit: (particle: Readonly<ParticleView>) => void, interpolation?: number): void;
|
|
38
39
|
clear(): void;
|
|
39
40
|
}
|
|
40
41
|
//# sourceMappingURL=render2d.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render2d.d.ts","sourceRoot":"","sources":["../../src/particles/render2d.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAElH,OAAO,EAAE,iBAAiB,EAA4B,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEhG,2DAA2D;AAC3D,MAAM,WAAW,iBAAiB;IAChC,eAAe,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"render2d.d.ts","sourceRoot":"","sources":["../../src/particles/render2d.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAElH,OAAO,EAAE,iBAAiB,EAA4B,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEhG,2DAA2D;AAC3D,MAAM,WAAW,iBAAiB;IAChC,eAAe,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClG;AAED,yFAAyF;AACzF,eAAO,MAAM,kBAAkB,0BAA0B,CAAC;AAE1D,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC;;;GAGG;AACH,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAE3C,wFAAwF;AACxF,wBAAgB,iBAAiB,CAAC,IAAI,SAAoB,GAAG,iBAAiB,CAe7E;AAED,4EAA4E;AAC5E,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,gEAAgE;AAChE,wBAAgB,YAAY,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAU/F;AAED;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,iBAAiB;IACvD,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAuB;IAEvC,YAAY,QAAQ,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAMvD;IAED,4CAA4C;IAC5C,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,CAAC,SAAS,GAAG,oBAAoB,CAAC,EAAE,GAAG,IAAI,CASxF;IAED,eAAe,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,aAAa,SAAI,GAAG,IAAI,CAE1F;IAED,KAAK,IAAI,IAAI,CAGZ;CACF"}
|
|
@@ -44,6 +44,7 @@ export function particleCell(sprite, life) {
|
|
|
44
44
|
export class GameParticles2D {
|
|
45
45
|
simulator;
|
|
46
46
|
tickSeconds;
|
|
47
|
+
identity = null;
|
|
47
48
|
constructor(tickRate, maxSceneParticles) {
|
|
48
49
|
if (!(tickRate > 0)) {
|
|
49
50
|
throw new Error("Particle tick rate must be positive");
|
|
@@ -56,15 +57,21 @@ export class GameParticles2D {
|
|
|
56
57
|
return this.simulator.count;
|
|
57
58
|
}
|
|
58
59
|
tick(frame, events) {
|
|
60
|
+
const identity = frame.gameId ?? "";
|
|
61
|
+
if (identity !== this.identity || events.some((event) => event.kind === "sceneTransition")) {
|
|
62
|
+
this.clear();
|
|
63
|
+
this.identity = identity;
|
|
64
|
+
}
|
|
59
65
|
this.simulator.sync(particleSourcesFromFrame(frame));
|
|
60
66
|
this.simulator.emit(events);
|
|
61
67
|
this.simulator.step(this.tickSeconds);
|
|
62
68
|
}
|
|
63
|
-
forEachParticle(visit) {
|
|
64
|
-
this.simulator.forEachParticle(visit);
|
|
69
|
+
forEachParticle(visit, interpolation = 1) {
|
|
70
|
+
this.simulator.forEachParticle(visit, interpolation);
|
|
65
71
|
}
|
|
66
72
|
clear() {
|
|
67
73
|
this.simulator.clear();
|
|
74
|
+
this.identity = null;
|
|
68
75
|
}
|
|
69
76
|
}
|
|
70
77
|
//# sourceMappingURL=render2d.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render2d.js","sourceRoot":"","sources":["../../src/particles/render2d.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAqB,MAAM,gBAAgB,CAAC;AAOhG,yFAAyF;AACzF,MAAM,CAAC,MAAM,kBAAkB,GAAG,uBAAuB,CAAC;AAE1D,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAEpC;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAE3C,wFAAwF;AACxF,MAAM,UAAU,iBAAiB,CAAC,IAAI,GAAG,iBAAiB;IACxD,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;IACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;YACnE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;YACrB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;YACzB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;YACzB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,OAAO,GAAG,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AASD,gEAAgE;AAChE,MAAM,UAAU,YAAY,CAAC,MAA0B,EAAE,IAAY;IACnE,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;IAC3C,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACf,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,KAAK,EAAE,KAAK,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACrC,yEAAyE;IACzE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC;IAC/F,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AAC/D,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,eAAe;IACjB,SAAS,CAAoB;IACrB,WAAW,CAAS;
|
|
1
|
+
{"version":3,"file":"render2d.js","sourceRoot":"","sources":["../../src/particles/render2d.ts"],"names":[],"mappings":"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"}
|