@woosh/meep-engine 3.68.0 → 3.69.0
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/CHANGELOG.md +45 -0
- package/editor/ecs/component/editors/ecs/Trail3DEditor.d.ts +2 -17
- package/editor/ecs/component/editors/ecs/Trail3DEditor.d.ts.map +1 -1
- package/editor/ecs/component/editors/ecs/Trail3DEditor.js +3 -18
- package/package.json +1 -1
- package/src/engine/graphics/ecs/trail3d/Trail3D.d.ts +33 -65
- package/src/engine/graphics/ecs/trail3d/Trail3D.d.ts.map +1 -1
- package/src/engine/graphics/ecs/trail3d/Trail3D.js +37 -245
- package/src/engine/graphics/ecs/trail3d/Trail3DFlags.d.ts +0 -4
- package/src/engine/graphics/ecs/trail3d/Trail3DFlags.js +4 -10
- package/src/engine/graphics/ecs/trail3d/seed_trail_stroke.d.ts +13 -10
- package/src/engine/graphics/ecs/trail3d/seed_trail_stroke.d.ts.map +1 -1
- package/src/engine/graphics/ecs/trail3d/seed_trail_stroke.js +28 -37
- package/src/engine/graphics/ecs/trail3d/trail_knot_count.d.ts +10 -0
- package/src/engine/graphics/ecs/trail3d/trail_knot_count.d.ts.map +1 -0
- package/src/engine/graphics/ecs/trail3d/trail_knot_count.js +27 -0
- package/src/engine/graphics/trail/TrailKnots.d.ts +62 -0
- package/src/engine/graphics/trail/TrailKnots.d.ts.map +1 -0
- package/src/engine/graphics/trail/TrailKnots.js +137 -0
- package/src/engine/graphics/trail/tube/TubeXMaterialSpec.d.ts +1 -1
- package/src/engine/graphics/trail/tube/TubeXMaterialSpec.js +1 -1
- package/src/engine/graphics3/EntityRowHold.d.ts +48 -0
- package/src/engine/graphics3/EntityRowHold.d.ts.map +1 -0
- package/src/engine/graphics3/EntityRowHold.js +128 -0
- package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts +6 -2
- package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts.map +1 -1
- package/src/engine/graphics3/GPUParticleEmitterSystem.js +11 -44
- package/src/engine/graphics3/Trail3DSystem.d.ts +69 -35
- package/src/engine/graphics3/Trail3DSystem.d.ts.map +1 -1
- package/src/engine/graphics3/Trail3DSystem.js +380 -81
- package/src/engine/physics/fluid/ecs/FluidObstacle.d.ts +17 -0
- package/src/engine/physics/fluid/ecs/FluidObstacle.d.ts.map +1 -1
- package/src/engine/physics/fluid/ecs/FluidObstacle.js +22 -2
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +6 -5
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts.map +1 -1
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.js +14 -3
- package/src/engine/physics/fluid/obstacle/FLUID_OBSTACLE_RECORD_STRUCT.d.ts +9 -1
- package/src/engine/physics/fluid/obstacle/FLUID_OBSTACLE_RECORD_STRUCT.d.ts.map +1 -1
- package/src/engine/physics/fluid/obstacle/FLUID_OBSTACLE_RECORD_STRUCT.js +11 -1
- package/src/engine/physics/fluid/obstacle/fluid_obstacle_record_create.d.ts +5 -0
- package/src/engine/physics/fluid/obstacle/fluid_obstacle_record_create.d.ts.map +1 -1
- package/src/engine/physics/fluid/obstacle/fluid_obstacle_record_create.js +2 -0
- package/src/engine/physics/fluid/obstacle/fluid_obstacle_write_gpu_record.d.ts +4 -3
- package/src/engine/physics/fluid/obstacle/fluid_obstacle_write_gpu_record.d.ts.map +1 -1
- package/src/engine/physics/fluid/obstacle/fluid_obstacle_write_gpu_record.js +11 -3
- package/src/shade/playground/trails/index.html +50 -0
- package/src/shade/playground/trails/main.d.ts +2 -0
- package/src/shade/playground/trails/main.d.ts.map +1 -0
- package/src/shade/playground/trails/main.js +258 -0
- package/src/shade/renderer/animation/animation_curve_write_keys.d.ts +18 -0
- package/src/shade/renderer/animation/animation_curve_write_keys.d.ts.map +1 -0
- package/src/shade/renderer/animation/animation_curve_write_keys.js +34 -0
- package/src/shade/renderer/deferred/tonemap/ColorGrade.d.ts.map +1 -1
- package/src/shade/renderer/deferred/tonemap/ColorGrade.js +13 -36
- package/src/shade/renderer/dynamic/GPUDynamicMeshResidency.js +2 -2
- package/src/shade/renderer/dynamic/chunk_dynamic_mesh_avboit_vertex.d.ts +2 -13
- package/src/shade/renderer/dynamic/chunk_dynamic_mesh_avboit_vertex.d.ts.map +1 -1
- package/src/shade/renderer/dynamic/chunk_dynamic_mesh_avboit_vertex.js +6 -21
- package/src/shade/renderer/dynamic/graph_dynamic_mesh_avboit.d.ts +17 -6
- package/src/shade/renderer/dynamic/graph_dynamic_mesh_avboit.d.ts.map +1 -1
- package/src/shade/renderer/dynamic/graph_dynamic_mesh_avboit.js +38 -178
- package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_draw.d.ts +7 -9
- package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_draw.d.ts.map +1 -1
- package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_draw.js +17 -106
- package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_splat.d.ts +7 -17
- package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_splat.d.ts.map +1 -1
- package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_splat.js +18 -118
- package/src/shade/renderer/fluid/forcing/FLUID_FORCING.d.ts +14 -0
- package/src/shade/renderer/fluid/forcing/FLUID_FORCING.d.ts.map +1 -1
- package/src/shade/renderer/fluid/forcing/FLUID_FORCING.js +18 -0
- package/src/shade/renderer/fluid/forcing/FLUID_FORCING_APPLY_STRUCT.d.ts +3 -1
- package/src/shade/renderer/fluid/forcing/FLUID_FORCING_APPLY_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/fluid/forcing/FLUID_FORCING_APPLY_STRUCT.js +4 -1
- package/src/shade/renderer/fluid/forcing/GPUFluidForcing.d.ts +9 -0
- package/src/shade/renderer/fluid/forcing/GPUFluidForcing.d.ts.map +1 -1
- package/src/shade/renderer/fluid/forcing/GPUFluidForcing.js +20 -4
- package/src/shade/renderer/fluid/forcing/chunk_fluid_forcing_cell.d.ts +11 -2
- package/src/shade/renderer/fluid/forcing/chunk_fluid_forcing_cell.d.ts.map +1 -1
- package/src/shade/renderer/fluid/forcing/chunk_fluid_forcing_cell.js +59 -2
- package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_apply.d.ts +4 -1
- package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_apply.d.ts.map +1 -1
- package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_apply.js +367 -341
- package/src/shade/renderer/fluid/mac/shader_fluid_mac_advect_correct.d.ts +6 -2
- package/src/shade/renderer/fluid/mac/shader_fluid_mac_advect_correct.d.ts.map +1 -1
- package/src/shade/renderer/fluid/mac/shader_fluid_mac_advect_correct.js +339 -282
- package/src/shade/renderer/grass/press/shader_grass_press_mark.d.ts +3 -2
- package/src/shade/renderer/grass/press/shader_grass_press_mark.d.ts.map +1 -1
- package/src/shade/renderer/grass/press/shader_grass_press_mark.js +5 -3
- package/src/shade/renderer/rasterize/native/avboit/avboit_unlit_draw.d.ts +49 -0
- package/src/shade/renderer/rasterize/native/avboit/avboit_unlit_draw.d.ts.map +1 -0
- package/src/shade/renderer/rasterize/native/avboit/avboit_unlit_draw.js +144 -0
- package/src/shade/renderer/rasterize/native/avboit/avboit_unlit_splat.d.ts +71 -0
- package/src/shade/renderer/rasterize/native/avboit/avboit_unlit_splat.d.ts.map +1 -0
- package/src/shade/renderer/rasterize/native/avboit/avboit_unlit_splat.js +152 -0
- package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_unlit_varyings.d.ts +21 -0
- package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_unlit_varyings.d.ts.map +1 -0
- package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_unlit_varyings.js +30 -0
- package/src/shade/renderer/rasterize/native/avboit/graph_avboit_unlit.d.ts +101 -0
- package/src/shade/renderer/rasterize/native/avboit/graph_avboit_unlit.d.ts.map +1 -0
- package/src/shade/renderer/rasterize/native/avboit/graph_avboit_unlit.js +306 -0
- package/src/shade/renderer/rasterize/native/avboit/shader_avboit_splat.d.ts +9 -0
- package/src/shade/renderer/rasterize/native/avboit/shader_avboit_splat.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/avboit/shader_avboit_splat.js +11 -4
- package/src/shade/renderer/trails/GPUTrailAVBOITChannel.d.ts +69 -0
- package/src/shade/renderer/trails/GPUTrailAVBOITChannel.d.ts.map +1 -0
- package/src/shade/renderer/trails/GPUTrailAVBOITChannel.js +129 -0
- package/src/shade/renderer/trails/GPUTrailSystem.d.ts +164 -0
- package/src/shade/renderer/trails/GPUTrailSystem.d.ts.map +1 -0
- package/src/shade/renderer/trails/GPUTrailSystem.js +725 -0
- package/src/shade/renderer/trails/data/TRAIL_DATABASE_SPEC.d.ts +14 -0
- package/src/shade/renderer/trails/data/TRAIL_DATABASE_SPEC.d.ts.map +1 -0
- package/src/shade/renderer/trails/data/TRAIL_DATABASE_SPEC.js +38 -0
- package/src/shade/renderer/trails/data/TRAIL_KNOT.d.ts +66 -0
- package/src/shade/renderer/trails/data/TRAIL_KNOT.d.ts.map +1 -0
- package/src/shade/renderer/trails/data/TRAIL_KNOT.js +154 -0
- package/src/shade/renderer/trails/data/TRAIL_RECORD.d.ts +19 -0
- package/src/shade/renderer/trails/data/TRAIL_RECORD.d.ts.map +1 -0
- package/src/shade/renderer/trails/data/TRAIL_RECORD.js +68 -0
- package/src/shade/renderer/trails/data/TRAIL_STATE.d.ts +18 -0
- package/src/shade/renderer/trails/data/TRAIL_STATE.d.ts.map +1 -0
- package/src/shade/renderer/trails/data/TRAIL_STATE.js +43 -0
- package/src/shade/renderer/trails/graph_trails.d.ts +58 -0
- package/src/shade/renderer/trails/graph_trails.d.ts.map +1 -0
- package/src/shade/renderer/trails/graph_trails.js +155 -0
- package/src/shade/renderer/trails/graph_trails_avboit.d.ts +126 -0
- package/src/shade/renderer/trails/graph_trails_avboit.d.ts.map +1 -0
- package/src/shade/renderer/trails/graph_trails_avboit.js +300 -0
- package/src/shade/renderer/trails/runtime/TrailFadeCurves.d.ts +56 -0
- package/src/shade/renderer/trails/runtime/TrailFadeCurves.d.ts.map +1 -0
- package/src/shade/renderer/trails/runtime/TrailFadeCurves.js +220 -0
- package/src/shade/renderer/trails/runtime/TrailKnotPool.d.ts +49 -0
- package/src/shade/renderer/trails/runtime/TrailKnotPool.d.ts.map +1 -0
- package/src/shade/renderer/trails/runtime/TrailKnotPool.js +162 -0
- package/src/shade/renderer/trails/runtime/TrailParameters.d.ts +52 -0
- package/src/shade/renderer/trails/runtime/TrailParameters.d.ts.map +1 -0
- package/src/shade/renderer/trails/runtime/TrailParameters.js +126 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_frame_transport.d.ts +23 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_frame_transport.d.ts.map +1 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_frame_transport.js +57 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_knot_alpha.d.ts +14 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_knot_alpha.d.ts.map +1 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_knot_alpha.js +40 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_seed.d.ts +18 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_seed.d.ts.map +1 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_seed.js +64 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_segment.d.ts +14 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_segment.d.ts.map +1 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_segment.js +51 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_update.d.ts +48 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_update.d.ts.map +1 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_update.js +197 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_vertex.d.ts +34 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_vertex.d.ts.map +1 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_vertex.js +111 -0
- package/src/shade/renderer/trails/shaders/shader_trail_avboit.d.ts +24 -0
- package/src/shade/renderer/trails/shaders/shader_trail_avboit.d.ts.map +1 -0
- package/src/shade/renderer/trails/shaders/shader_trail_avboit.js +78 -0
- package/src/shade/renderer/trails/shaders/shader_trail_avboit_segments.d.ts +23 -0
- package/src/shade/renderer/trails/shaders/shader_trail_avboit_segments.d.ts.map +1 -0
- package/src/shade/renderer/trails/shaders/shader_trail_avboit_segments.js +130 -0
- package/src/shade/renderer/trails/shaders/shader_trail_draw_args.d.ts +29 -0
- package/src/shade/renderer/trails/shaders/shader_trail_draw_args.d.ts.map +1 -0
- package/src/shade/renderer/trails/shaders/shader_trail_draw_args.js +78 -0
- package/src/shade/renderer/trails/shaders/shader_trail_seed.d.ts +18 -0
- package/src/shade/renderer/trails/shaders/shader_trail_seed.d.ts.map +1 -0
- package/src/shade/renderer/trails/shaders/shader_trail_seed.js +79 -0
- package/src/shade/renderer/trails/shaders/shader_trail_update.d.ts +20 -0
- package/src/shade/renderer/trails/shaders/shader_trail_update.d.ts.map +1 -0
- package/src/shade/renderer/trails/shaders/shader_trail_update.js +101 -0
- package/src/engine/graphics/ecs/trail3d/advance_trail.d.ts +0 -18
- package/src/engine/graphics/ecs/trail3d/advance_trail.d.ts.map +0 -1
- package/src/engine/graphics/ecs/trail3d/advance_trail.js +0 -42
- package/src/engine/graphics/ecs/trail3d/seed_trail_tube.d.ts +0 -14
- package/src/engine/graphics/ecs/trail3d/seed_trail_tube.d.ts.map +0 -1
- package/src/engine/graphics/ecs/trail3d/seed_trail_tube.js +0 -75
- package/src/engine/graphics/ecs/trail3d/trail_head_position.d.ts +0 -17
- package/src/engine/graphics/ecs/trail3d/trail_head_position.d.ts.map +0 -1
- package/src/engine/graphics/ecs/trail3d/trail_head_position.js +0 -19
- package/src/engine/graphics/trail/tube/TubeX.d.ts +0 -186
- package/src/engine/graphics/trail/tube/TubeX.d.ts.map +0 -1
- package/src/engine/graphics/trail/tube/TubeX.js +0 -575
- package/src/engine/graphics/trail/tube/simulator/TubeXFixedPhysicsSimulator.d.ts +0 -16
- package/src/engine/graphics/trail/tube/simulator/TubeXFixedPhysicsSimulator.d.ts.map +0 -1
- package/src/engine/graphics/trail/tube/simulator/TubeXFixedPhysicsSimulator.js +0 -34
- package/src/engine/graphics/trail/tube/tube_attributes_spec.d.ts +0 -27
- package/src/engine/graphics/trail/tube/tube_attributes_spec.d.ts.map +0 -1
- package/src/engine/graphics/trail/tube/tube_attributes_spec.js +0 -70
- package/src/engine/graphics3/trail/trail_tube_write_geometry.d.ts +0 -38
- package/src/engine/graphics3/trail/trail_tube_write_geometry.d.ts.map +0 -1
- package/src/engine/graphics3/trail/trail_tube_write_geometry.js +0 -119
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,51 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
### Trails: `Trail3DSystem` simulates and extrudes them on the GPU
|
|
6
|
+
|
|
7
|
+
- **Breaking:** `Trail3DSystem` takes the scene its entities are in, `new Trail3DSystem(graphics, scene)`, as
|
|
8
|
+
`ShadedGeometrySystem` and `GPUParticleEmitterSystem` do. It simulates every trail in compute and extrudes its
|
|
9
|
+
tube in the vertex stage, drawn inside the transparency pipeline as before. The CPU builds no geometry and
|
|
10
|
+
uploads only the trails whose fields changed: a frame costs a comparison of each trail's fields.
|
|
11
|
+
- **Breaking:** a trail's head follows its entity's transform as the scene holds it, so a translation written by
|
|
12
|
+
hand moves the trail only once it is announced (`t64_announce_change`), as for meshes and particle emitters.
|
|
13
|
+
The system read `transform.matrix` every frame before.
|
|
14
|
+
- **Breaking:** a trail's knots live on the GPU only. Removed from `Trail3D`: `tube`, `build()`, `updateHead()`,
|
|
15
|
+
`dispose()`, `time`, `timeSinceLastUpdate`, `distanceSinceLastUpdate`, `trailingIndex`, `mesh` and `bvh`; from
|
|
16
|
+
`Trail3DFlags`: `Aging`, `Built`, `BoundsNeedUpdate` and `Reseed` (`Spawning` and `Lit` keep their values);
|
|
17
|
+
`Trail3DSystem.batch`; and the modules `TubeX`, `TubeXFixedPhysicsSimulator`, `tube_attributes_spec`,
|
|
18
|
+
`trail_tube_write_geometry`, `seed_trail_tube`, `advance_trail` and `trail_head_position`. `trail_knot_count`
|
|
19
|
+
moves to `src/engine/graphics/ecs/trail3d/trail_knot_count.js`. `Trail3D` is not serializable, so no save is
|
|
20
|
+
affected.
|
|
21
|
+
- **Changed:** `seed_trail_stroke` writes the stroke into `Trail3D.knots` alone. `make_gradient_stroke` is
|
|
22
|
+
unchanged.
|
|
23
|
+
- **Added:** `Trail3D.warmup`, on by default: a new trail fades in over its first `maxAge` seconds, its head born as
|
|
24
|
+
old as the time left of that first life. Turn it off for a trail that must be whole from its first frame, a
|
|
25
|
+
tracer. It round-trips through JSON.
|
|
26
|
+
- **Added:** `Trail3D.knots`, a `TrailKnots` of knots laid down whole (a stroke, a helix), drawn as they are, and
|
|
27
|
+
`Trail3D.clearCount`, which moves with every `clear()`.
|
|
28
|
+
- Measured on an AMD RDNA2 iGPU (2 CUs) at 1258×566, 8 radial segments, every trail moving and in view, both
|
|
29
|
+
systems in one page: 100 trails of 2 s cost 22.8 ms of CPU a frame on the old system and 0.69 ms on this one;
|
|
30
|
+
1,000 trails of 2 s, 184 ms and 1.85 ms. Drawing them costs the GPU about the same, most of it in the vertex
|
|
31
|
+
stage: 0.70 against 0.81 ms at 100 trails, 6.3 against 7.2 ms at 1,000, the second figure including the
|
|
32
|
+
update and the cull. 10,000 trails of 2 s cost 10.8 ms of CPU, 4.5 ms of it moving and announcing the
|
|
33
|
+
transforms and 4.3 ms inside the render call, and 65.5 ms of GPU. One trail costs the GPU 25 µs a frame, where
|
|
34
|
+
it cost 9 µs: the update, the cull and the draw arguments are passes of their own however few trails there are.
|
|
35
|
+
|
|
36
|
+
Migrating:
|
|
37
|
+
|
|
38
|
+
- Pass the scene: `new Trail3DSystem(graphics, scene)`.
|
|
39
|
+
- Announce every translation written to a trail's entity by hand (nekomancer's guide motes and speed ribbons).
|
|
40
|
+
- A system subclass that scaled the tube's vertex colours after each update (nekomancer) puts the factor into
|
|
41
|
+
`trail.color` when the trail is made instead: colour is linear and unbounded, so the trail looks the same.
|
|
42
|
+
- Code that seeded a tube and drove its head (meep-shooter's projectiles: `seed_trail_tube`, `updateHead`, the
|
|
43
|
+
writes to `time` and `timeSinceLastUpdate`, `system.update(0)` before rendering) drops all of it: the head
|
|
44
|
+
follows the announced transform. Where `time = maxAge` was written to show a tracer whole at once, set
|
|
45
|
+
`warmup = false`.
|
|
46
|
+
- A shape written into `trail.tube` after `trail.build` (queep-3-arena's helix) goes into a `TrailKnots` on
|
|
47
|
+
`trail.knots` instead: `setCount`, then `setKnot` with each knot's position, frame, thickness and starting age.
|
|
48
|
+
- A trail that only hangs on an entity (meep-demo-castle) needs nothing.
|
|
49
|
+
|
|
5
50
|
### Network: the render delay comes down by the clock, and starts over after a wait of the client's own (SW_303, SW_304)
|
|
6
51
|
|
|
7
52
|
- **Breaking:** `AdaptiveRenderDelay`'s `decay_per_sample_ms` is replaced by `decay_rate`: milliseconds of delay shed
|
|
@@ -10,25 +10,10 @@ export class Trail3DEditor extends ObjectEditor {
|
|
|
10
10
|
spawnDistance: {
|
|
11
11
|
description: string;
|
|
12
12
|
};
|
|
13
|
-
|
|
13
|
+
knots: {
|
|
14
14
|
transient: boolean;
|
|
15
15
|
};
|
|
16
|
-
|
|
17
|
-
transient: boolean;
|
|
18
|
-
};
|
|
19
|
-
timeSinceLastUpdate: {
|
|
20
|
-
transient: boolean;
|
|
21
|
-
};
|
|
22
|
-
distanceSinceLastUpdate: {
|
|
23
|
-
transient: boolean;
|
|
24
|
-
};
|
|
25
|
-
tube: {
|
|
26
|
-
transient: boolean;
|
|
27
|
-
};
|
|
28
|
-
mesh: {
|
|
29
|
-
transient: boolean;
|
|
30
|
-
};
|
|
31
|
-
bvh: {
|
|
16
|
+
clearCount: {
|
|
32
17
|
transient: boolean;
|
|
33
18
|
};
|
|
34
19
|
flags: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Trail3DEditor.d.ts","sourceRoot":"","sources":["../../../../../../editor/ecs/component/editors/ecs/Trail3DEditor.js"],"names":[],"mappings":"AAKA;IACI
|
|
1
|
+
{"version":3,"file":"Trail3DEditor.d.ts","sourceRoot":"","sources":["../../../../../../editor/ecs/component/editors/ecs/Trail3DEditor.js"],"names":[],"mappings":"AAKA;IACI;;;;;;;;;;;;;;;;;;;;;;;;MA4BC;CACJ;6BAhC4B,8BAA8B;+BAF5B,6BAA6B"}
|
|
@@ -11,30 +11,15 @@ export class Trail3DEditor extends ObjectEditor {
|
|
|
11
11
|
description: "How long does the trail persist in time"
|
|
12
12
|
},
|
|
13
13
|
radialSegments: {
|
|
14
|
-
description: "Radial resolution of the tube (
|
|
14
|
+
description: "Radial resolution of the tube (fixed when the trail is registered)"
|
|
15
15
|
},
|
|
16
16
|
spawnDistance: {
|
|
17
17
|
description: "Distance between segments when spawning by distance"
|
|
18
18
|
},
|
|
19
|
-
|
|
19
|
+
knots: {
|
|
20
20
|
transient: true
|
|
21
21
|
},
|
|
22
|
-
|
|
23
|
-
transient: true
|
|
24
|
-
},
|
|
25
|
-
timeSinceLastUpdate: {
|
|
26
|
-
transient: true
|
|
27
|
-
},
|
|
28
|
-
distanceSinceLastUpdate: {
|
|
29
|
-
transient: true
|
|
30
|
-
},
|
|
31
|
-
tube: {
|
|
32
|
-
transient: true
|
|
33
|
-
},
|
|
34
|
-
mesh: {
|
|
35
|
-
transient: true
|
|
36
|
-
},
|
|
37
|
-
bvh: {
|
|
22
|
+
clearCount: {
|
|
38
23
|
transient: true
|
|
39
24
|
},
|
|
40
25
|
flags: {
|
package/package.json
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
export default Trail3D;
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
3
|
+
* A tube left behind an entity — the volumetric counterpart of {@link Trail2D}. The head follows the
|
|
4
|
+
* entity at {@link offset}; knots are laid down behind it as it travels, each with the frame its ring
|
|
5
|
+
* stands in, and fade by {@link fade} as they age towards {@link maxAge}.
|
|
6
|
+
*
|
|
7
|
+
* The component is the trail's description. Its knots live where {@link Trail3DSystem} simulates and
|
|
8
|
+
* draws them, on the GPU; a game writes these fields and the system picks the change up.
|
|
7
9
|
*/
|
|
8
10
|
declare class Trail3D {
|
|
9
11
|
static fromJSON(json: any): Trail3D;
|
|
10
12
|
/**
|
|
11
|
-
* Age at which a trail knot disappears, in seconds.
|
|
13
|
+
* Age at which a trail knot disappears, in seconds. How many knots the trail holds is fixed when the
|
|
14
|
+
* system registers it: a later change moves the fade and how often a knot is laid down, not the
|
|
15
|
+
* length of the ring.
|
|
12
16
|
* @type {number}
|
|
13
17
|
*/
|
|
14
18
|
maxAge: number;
|
|
@@ -18,8 +22,8 @@ declare class Trail3D {
|
|
|
18
22
|
*/
|
|
19
23
|
width: number;
|
|
20
24
|
/**
|
|
21
|
-
* Number of radial subdivisions around the tube. Higher = rounder tube.
|
|
22
|
-
*
|
|
25
|
+
* Number of radial subdivisions around the tube. Higher = rounder tube. Fixed when the system
|
|
26
|
+
* registers the trail; re-add the component to change it.
|
|
23
27
|
* @type {number}
|
|
24
28
|
*/
|
|
25
29
|
radialSegments: number;
|
|
@@ -34,25 +38,6 @@ declare class Trail3D {
|
|
|
34
38
|
* @type {number}
|
|
35
39
|
*/
|
|
36
40
|
spawnDistance: number;
|
|
37
|
-
/**
|
|
38
|
-
* Current simulated time since trail birth.
|
|
39
|
-
* @type {number}
|
|
40
|
-
*/
|
|
41
|
-
time: number;
|
|
42
|
-
/**
|
|
43
|
-
* @type {number}
|
|
44
|
-
*/
|
|
45
|
-
trailingIndex: number;
|
|
46
|
-
/**
|
|
47
|
-
* Time elapsed since the last knot was committed.
|
|
48
|
-
* @type {number}
|
|
49
|
-
*/
|
|
50
|
-
timeSinceLastUpdate: number;
|
|
51
|
-
/**
|
|
52
|
-
* Distance the head has travelled since the last knot was committed.
|
|
53
|
-
* @type {number}
|
|
54
|
-
*/
|
|
55
|
-
distanceSinceLastUpdate: number;
|
|
56
41
|
/**
|
|
57
42
|
* RGB tints the tube; alpha is the trail's base opacity, which {@link fade}
|
|
58
43
|
* scales as each knot ages.
|
|
@@ -83,35 +68,34 @@ declare class Trail3D {
|
|
|
83
68
|
*/
|
|
84
69
|
readonly offset: Vector3;
|
|
85
70
|
/**
|
|
86
|
-
*
|
|
87
|
-
*
|
|
71
|
+
* Whether a new trail fades in over its first {@link maxAge} seconds: its head is born
|
|
72
|
+
* `maxAge - t` old while the trail is `t` seconds old, so the stretch laid down first is the
|
|
73
|
+
* faintest. On by default; turn it off for a trail that must be fully visible from its first
|
|
74
|
+
* frame, a tracer.
|
|
75
|
+
* @type {boolean}
|
|
88
76
|
*/
|
|
89
|
-
|
|
77
|
+
warmup: boolean;
|
|
90
78
|
/**
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
* transient
|
|
96
|
-
* @type {Mesh|null}
|
|
79
|
+
* Knots laid down whole by the author — a stroke, a helix — instead of by the entity's travel, or
|
|
80
|
+
* null for a trail the entity draws. See {@link TrailKnots}; {@link seed_trail_stroke} writes one.
|
|
81
|
+
* @type {import("../../trail/TrailKnots.js").TrailKnots|null}
|
|
97
82
|
*/
|
|
98
|
-
|
|
83
|
+
knots: import("../../trail/TrailKnots.js").TrailKnots | null;
|
|
84
|
+
/**
|
|
85
|
+
* Moved by every {@link clear}, so the system sees the request by comparing it.
|
|
86
|
+
* @type {number}
|
|
87
|
+
*/
|
|
88
|
+
clearCount: number;
|
|
99
89
|
/**
|
|
100
90
|
* transient
|
|
101
91
|
* @type {TubeXMaterialSpec}
|
|
102
92
|
*/
|
|
103
93
|
material: TubeXMaterialSpec;
|
|
104
|
-
/**
|
|
105
|
-
* @readonly
|
|
106
|
-
* @type {BvhClient}
|
|
107
|
-
*/
|
|
108
|
-
readonly bvh: BvhClient;
|
|
109
94
|
/**
|
|
110
95
|
* @private
|
|
111
96
|
* @type {Trail3DFlags|number}
|
|
112
97
|
*/
|
|
113
98
|
private flags;
|
|
114
|
-
dispose(): void;
|
|
115
99
|
set textureURL(v: string);
|
|
116
100
|
get textureURL(): string;
|
|
117
101
|
set depthWrite(v: boolean);
|
|
@@ -131,8 +115,7 @@ declare class Trail3D {
|
|
|
131
115
|
*
|
|
132
116
|
* Stored in {@link Trail3DFlags.Lit}. This is a build-time option — it selects
|
|
133
117
|
* the compiled material and the mesh's shadow settings — so it must be set
|
|
134
|
-
* before the trail is
|
|
135
|
-
* afterwards.
|
|
118
|
+
* before the trail is registered with the system.
|
|
136
119
|
*
|
|
137
120
|
* @returns {boolean}
|
|
138
121
|
*/
|
|
@@ -158,18 +141,12 @@ declare class Trail3D {
|
|
|
158
141
|
*/
|
|
159
142
|
getFlag(flag: number | Trail3DFlags): boolean;
|
|
160
143
|
/**
|
|
161
|
-
*
|
|
162
|
-
*
|
|
163
|
-
*
|
|
164
|
-
*
|
|
165
|
-
* @param {number} segment_count
|
|
166
|
-
*/
|
|
167
|
-
build(segment_count: number): void;
|
|
168
|
-
/**
|
|
169
|
-
* Clear the trail's geometry and reset its state.
|
|
144
|
+
* Erase the trail: at the next frame every knot expires and collapses onto the head where the entity
|
|
145
|
+
* stands, so nothing bridges what comes after to what went before (a teleport leaves no streak). The
|
|
146
|
+
* trail keeps its birth, so its warm-up does not run again.
|
|
170
147
|
*/
|
|
171
148
|
clear(): void;
|
|
172
|
-
fromJSON({ maxAge, width, radialSegments, spawnMode, spawnDistance, textureURL, depthWrite, lightingEnabled, offset, color, fade }: {
|
|
149
|
+
fromJSON({ maxAge, width, radialSegments, spawnMode, spawnDistance, textureURL, depthWrite, lightingEnabled, warmup, offset, color, fade }: {
|
|
173
150
|
maxAge?: number;
|
|
174
151
|
width?: number;
|
|
175
152
|
radialSegments?: number;
|
|
@@ -178,6 +155,7 @@ declare class Trail3D {
|
|
|
178
155
|
textureURL: any;
|
|
179
156
|
depthWrite?: boolean;
|
|
180
157
|
lightingEnabled?: boolean;
|
|
158
|
+
warmup?: boolean;
|
|
181
159
|
offset?: Vector3;
|
|
182
160
|
color?: {
|
|
183
161
|
r: number;
|
|
@@ -205,6 +183,7 @@ declare class Trail3D {
|
|
|
205
183
|
textureURL: string;
|
|
206
184
|
depthWrite: boolean;
|
|
207
185
|
lightingEnabled: boolean;
|
|
186
|
+
warmup: boolean;
|
|
208
187
|
offset: {
|
|
209
188
|
x: number;
|
|
210
189
|
y: number;
|
|
@@ -215,15 +194,6 @@ declare class Trail3D {
|
|
|
215
194
|
* @param {Trail3D} other
|
|
216
195
|
*/
|
|
217
196
|
equals(other: Trail3D): boolean;
|
|
218
|
-
/**
|
|
219
|
-
* @param {number} x
|
|
220
|
-
* @param {number} y
|
|
221
|
-
* @param {number} z
|
|
222
|
-
* @param {number} head_age
|
|
223
|
-
* @returns {boolean} whether the head position changed
|
|
224
|
-
*/
|
|
225
|
-
updateHead(x: number, y: number, z: number, head_age: number): boolean;
|
|
226
|
-
#private;
|
|
227
197
|
}
|
|
228
198
|
declare namespace Trail3D {
|
|
229
199
|
let typeName: string;
|
|
@@ -233,8 +203,6 @@ import { TrailSpawnMode } from "../../trail/TrailSpawnMode.js";
|
|
|
233
203
|
import { Color } from "../../../../core/color/Color.js";
|
|
234
204
|
import { AnimationCurve } from "../../../animation/curve/AnimationCurve.js";
|
|
235
205
|
import Vector3 from "../../../../core/geom/Vector3.js";
|
|
236
|
-
import { TubeX } from "../../trail/tube/TubeX.js";
|
|
237
206
|
import { TubeXMaterialSpec } from "../../trail/tube/TubeXMaterialSpec.js";
|
|
238
|
-
import { BvhClient } from "../../../../core/bvh2/bvh3/BvhClient.js";
|
|
239
207
|
import { Trail3DFlags } from "./Trail3DFlags.js";
|
|
240
208
|
//# sourceMappingURL=Trail3D.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Trail3D.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/trail3d/Trail3D.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"Trail3D.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/trail3d/Trail3D.js"],"names":[],"mappings":";AAkBA;;;;;;;GAOG;AACH;IA6LI,oCAMC;IAjMD;;;;;OAKG;IACH,QAFU,MAAM,CAES;IAEzB;;;OAGG;IACH,OAFU,MAAM,CAEM;IAEtB;;;;OAIG;IACH,gBAFU,MAAM,CAEyB;IAEzC;;;OAGG;IACH,WAFU,cAAc,GAAC,MAAM,CAEC;IAEhC;;;;OAIG;IACH,eAFU,MAAM,CAEuB;IAEvC;;;;;;;OAOG;IACH,gBAFU,KAAK,CAEe;IAE9B;;;;;;;;;OASG;IACH,MAFU,cAAc,CAEG;IAE3B;;;;;;;OAOG;IACH,iBAFU,OAAO,CAEM;IAEvB;;;;;;OAMG;IACH,QAFU,OAAO,CAEH;IAEd;;;;OAIG;IACH,OAFU,OAAO,2BAA2B,EAAE,UAAU,GAAC,IAAI,CAEhD;IAEb;;;OAGG;IACH,YAFU,MAAM,CAED;IAEf;;;OAGG;IACH,UAFU,iBAAiB,CAEQ;IAEnC;;;OAGG;IACH,cAAsB;IAMtB,0BAEC;IAND,yBAEC;IAUD,2BAEC;IAND,0BAEC;IAyBD;;OAEG;IACH,gCAEC;IAxBD;;;;;;;;;;;;;;OAcG;IACH,+BAEC;IASD;;;OAGG;IACH,cAHW,MAAM,GAAC,YAAY,GACjB,IAAI,CAIhB;IAED;;;OAGG;IACH,gBAHW,MAAM,GAAC,YAAY,GACjB,IAAI,CAIhB;IAED;;;OAGG;IACH,gBAHW,MAAM,GAAC,YAAY,SACnB,OAAO,QAQjB;IAED;;;OAGG;IACH,cAHW,MAAM,GAAC,YAAY,GACjB,OAAO,CAInB;IAED;;;;OAIG;IACH,cAEC;IAUD;;;;;;;;;;;;;;;;;;aAqCC;IAED;;;;;;;;;;;;;;;;;;;;;;;;MAeC;IAED;;OAEG;IACH,cAFW,OAAO,WAgBjB;CACJ;;;;;+BAtS8B,+BAA+B;sBAHxC,iCAAiC;+BAExB,4CAA4C;oBADvD,kCAAkC;kCAGpB,uCAAuC;6BAE5C,mBAAmB"}
|