@woosh/meep-engine 2.165.7 → 2.167.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.
Files changed (146) hide show
  1. package/build/bundle-worker-image-decoder.js +1 -1
  2. package/package.json +1 -1
  3. package/src/CORRECTNESS_HUNT_2026_07_24.md +142 -0
  4. package/src/core/binary/BinaryBuffer.js +1 -1
  5. package/src/core/binary/EncodingBinaryBuffer.d.ts.map +1 -1
  6. package/src/core/binary/EncodingBinaryBuffer.js +3 -1
  7. package/src/core/cache/Cache.d.ts.map +1 -1
  8. package/src/core/cache/Cache.js +0 -4
  9. package/src/core/cache/CacheElement.d.ts.map +1 -1
  10. package/src/core/cache/CacheElement.js +4 -0
  11. package/src/core/cache/FrequencySketch.d.ts +0 -21
  12. package/src/core/cache/FrequencySketch.d.ts.map +1 -1
  13. package/src/core/cache/FrequencySketch.js +66 -65
  14. package/src/core/cache/wtinylfu/CacheElementWTinylfu.d.ts +17 -0
  15. package/src/core/cache/wtinylfu/CacheElementWTinylfu.d.ts.map +1 -0
  16. package/src/core/cache/wtinylfu/CacheElementWTinylfu.js +18 -0
  17. package/src/core/cache/wtinylfu/CacheRegionType.d.ts +10 -0
  18. package/src/core/cache/wtinylfu/CacheRegionType.d.ts.map +1 -0
  19. package/src/core/cache/wtinylfu/CacheRegionType.js +10 -0
  20. package/src/core/cache/wtinylfu/CacheRegionWTinylfu.d.ts +66 -0
  21. package/src/core/cache/wtinylfu/CacheRegionWTinylfu.d.ts.map +1 -0
  22. package/src/core/cache/wtinylfu/CacheRegionWTinylfu.js +183 -0
  23. package/src/core/cache/wtinylfu/CacheWTinylfu.d.ts +279 -0
  24. package/src/core/cache/wtinylfu/CacheWTinylfu.d.ts.map +1 -0
  25. package/src/core/cache/wtinylfu/CacheWTinylfu.js +807 -0
  26. package/src/core/cache/wtinylfu/benchmark/CacheWTinylfu.bench.md +243 -0
  27. package/src/core/cache/wtinylfu/wtinylfuDecisions.d.ts +80 -0
  28. package/src/core/cache/wtinylfu/wtinylfuDecisions.d.ts.map +1 -0
  29. package/src/core/cache/wtinylfu/wtinylfuDecisions.js +102 -0
  30. package/src/core/collection/RingBuffer.d.ts.map +1 -1
  31. package/src/core/collection/RingBuffer.js +15 -3
  32. package/src/core/collection/map/HashMap.d.ts +1 -1
  33. package/src/core/collection/map/HashMap.d.ts.map +1 -1
  34. package/src/core/collection/map/HashMap.js +5 -17
  35. package/src/core/geom/2d/line/line2_compute_segment_point_distance_sqr.d.ts.map +1 -1
  36. package/src/core/geom/2d/line/line2_compute_segment_point_distance_sqr.js +5 -0
  37. package/src/core/geom/ConicRay.d.ts.map +1 -1
  38. package/src/core/geom/ConicRay.js +9 -2
  39. package/src/core/geom/Quaternion.d.ts.map +1 -1
  40. package/src/core/geom/Quaternion.js +7 -3
  41. package/src/core/math/build_gaussian_kernel_1d.d.ts +2 -2
  42. package/src/core/math/build_gaussian_kernel_1d.d.ts.map +1 -1
  43. package/src/core/math/build_gaussian_kernel_1d.js +4 -2
  44. package/src/core/math/build_gaussian_kernel_2d.d.ts +2 -2
  45. package/src/core/math/build_gaussian_kernel_2d.d.ts.map +1 -1
  46. package/src/core/math/build_gaussian_kernel_2d.js +4 -2
  47. package/src/core/math/gaussian.d.ts +2 -2
  48. package/src/core/math/gaussian.js +2 -2
  49. package/src/core/math/spline/spline3_bezier_bounds.d.ts.map +1 -1
  50. package/src/core/math/spline/spline3_bezier_bounds.js +10 -3
  51. package/src/core/math/spline/spline3_bezier_to_hermite.d.ts +8 -7
  52. package/src/core/math/spline/spline3_bezier_to_hermite.d.ts.map +1 -1
  53. package/src/core/math/spline/spline3_bezier_to_hermite.js +13 -12
  54. package/src/core/math/spline/spline3_hermite_bounds.d.ts.map +1 -1
  55. package/src/core/math/spline/spline3_hermite_bounds.js +10 -3
  56. package/src/core/math/spline/spline3_hermite_bounds_t.d.ts.map +1 -1
  57. package/src/core/math/spline/spline3_hermite_bounds_t.js +115 -109
  58. package/src/core/math/spline/spline3_hermite_to_bezier.d.ts +2 -0
  59. package/src/core/math/spline/spline3_hermite_to_bezier.d.ts.map +1 -1
  60. package/src/core/math/spline/spline3_hermite_to_bezier.js +2 -0
  61. package/src/core/math/statistics/computeStatisticalMean.js +1 -1
  62. package/src/core/math/statistics/gaussian_amplitude.d.ts.map +1 -1
  63. package/src/core/math/statistics/gaussian_amplitude.js +3 -1
  64. package/src/engine/animation/clip/ecd_bind_animation_curve.d.ts.map +1 -1
  65. package/src/engine/animation/clip/ecd_bind_animation_curve.js +10 -1
  66. package/src/engine/animation/clip/hemisphere_align_quaternion_values.d.ts +20 -0
  67. package/src/engine/animation/clip/hemisphere_align_quaternion_values.d.ts.map +1 -0
  68. package/src/engine/animation/clip/hemisphere_align_quaternion_values.js +37 -0
  69. package/src/engine/animation/keyed2/AnimationTrackPlayback.d.ts.map +1 -1
  70. package/src/engine/animation/keyed2/AnimationTrackPlayback.js +5 -1
  71. package/src/engine/ecs/EntityComponentDataset.d.ts.map +1 -1
  72. package/src/engine/ecs/EntityComponentDataset.js +5 -21
  73. package/src/engine/ecs/fow/FogOfWar.d.ts +22 -0
  74. package/src/engine/ecs/fow/FogOfWar.d.ts.map +1 -1
  75. package/src/engine/ecs/fow/FogOfWar.js +202 -54
  76. package/src/engine/ecs/fow/FogOfWarEdgeMode.d.ts +16 -0
  77. package/src/engine/ecs/fow/FogOfWarEdgeMode.d.ts.map +1 -0
  78. package/src/engine/ecs/fow/FogOfWarEdgeMode.js +39 -0
  79. package/src/engine/ecs/fow/FogOfWarSystem.d.ts.map +1 -1
  80. package/src/engine/ecs/fow/FogOfWarSystem.js +1 -0
  81. package/src/engine/ecs/fow/serialization/FogOfWarSerializationAdapter.d.ts.map +1 -1
  82. package/src/engine/ecs/fow/serialization/FogOfWarSerializationAdapter.js +3 -0
  83. package/src/engine/ecs/fow/shader/FogOfWarRenderer.d.ts +7 -0
  84. package/src/engine/ecs/fow/shader/FogOfWarRenderer.d.ts.map +1 -1
  85. package/src/engine/ecs/fow/shader/FogOfWarRenderer.js +155 -145
  86. package/src/engine/ecs/fow/shader/screenSpaceFogOfWarShader.d.ts.map +1 -1
  87. package/src/engine/ecs/fow/shader/screenSpaceFogOfWarShader.js +33 -8
  88. package/src/engine/ecs/storage/binary/collection/BinaryCollectionDeSerializer.d.ts.map +1 -1
  89. package/src/engine/ecs/storage/binary/collection/BinaryCollectionDeSerializer.js +3 -1
  90. package/src/engine/graphics/GraphicsEngine.d.ts +5 -1
  91. package/src/engine/graphics/GraphicsEngine.d.ts.map +1 -1
  92. package/src/engine/graphics/GraphicsEngine.js +14 -3
  93. package/src/engine/graphics/composit/CompositLayer.d.ts.map +1 -1
  94. package/src/engine/graphics/composit/CompositLayer.js +258 -255
  95. package/src/engine/graphics/composit/LayerCompositer.d.ts +12 -0
  96. package/src/engine/graphics/composit/LayerCompositer.d.ts.map +1 -1
  97. package/src/engine/graphics/composit/LayerCompositer.js +19 -10
  98. package/src/engine/graphics/ecs/highlight/plugin/OutlineRenderPlugin.d.ts +1 -1
  99. package/src/engine/graphics/ecs/highlight/plugin/OutlineRenderPlugin.d.ts.map +1 -1
  100. package/src/engine/graphics/ecs/highlight/plugin/OutlineRenderPlugin.js +10 -4
  101. package/src/engine/graphics/ecs/highlight/renderer/OutlineRenderer.d.ts +6 -0
  102. package/src/engine/graphics/ecs/highlight/renderer/OutlineRenderer.d.ts.map +1 -1
  103. package/src/engine/graphics/ecs/highlight/renderer/OutlineRenderer.js +21 -0
  104. package/src/engine/graphics/ecs/path/ribbon/RibbonPathBuilder.d.ts.map +1 -1
  105. package/src/engine/graphics/ecs/path/ribbon/RibbonPathBuilder.js +5 -23
  106. package/src/engine/graphics/ecs/path/tube/build/estimatePathViaIterativeIntegral.d.ts.map +1 -1
  107. package/src/engine/graphics/ecs/path/tube/build/estimatePathViaIterativeIntegral.js +6 -4
  108. package/src/engine/graphics/ecs/water/WaterSystem.d.ts.map +1 -1
  109. package/src/engine/graphics/ecs/water/WaterSystem.js +9 -3
  110. package/src/engine/graphics/particles/ecs/ParticleEmitterSystem.d.ts +12 -0
  111. package/src/engine/graphics/particles/ecs/ParticleEmitterSystem.d.ts.map +1 -1
  112. package/src/engine/graphics/particles/ecs/ParticleEmitterSystem.js +46 -9
  113. package/src/engine/graphics/particles/particular/engine/ParticularEngine.d.ts +5 -0
  114. package/src/engine/graphics/particles/particular/engine/ParticularEngine.d.ts.map +1 -1
  115. package/src/engine/graphics/particles/particular/engine/ParticularEngine.js +8 -0
  116. package/src/engine/graphics/particles/particular/engine/shader/MaterialRecord.d.ts +7 -0
  117. package/src/engine/graphics/particles/particular/engine/shader/MaterialRecord.d.ts.map +1 -1
  118. package/src/engine/graphics/particles/particular/engine/shader/MaterialRecord.js +8 -0
  119. package/src/engine/graphics/particles/particular/engine/shader/ShaderManager.d.ts +10 -2
  120. package/src/engine/graphics/particles/particular/engine/shader/ShaderManager.d.ts.map +1 -1
  121. package/src/engine/graphics/particles/particular/engine/shader/ShaderManager.js +42 -10
  122. package/src/engine/graphics/render/buffer/FrameBuffer.d.ts.map +1 -1
  123. package/src/engine/graphics/render/buffer/FrameBuffer.js +5 -2
  124. package/src/engine/graphics/render/buffer/simple-fx/ao/AmbientOcclusionPostProcessEffect.d.ts +13 -1
  125. package/src/engine/graphics/render/buffer/simple-fx/ao/AmbientOcclusionPostProcessEffect.d.ts.map +1 -1
  126. package/src/engine/graphics/render/buffer/simple-fx/ao/AmbientOcclusionPostProcessEffect.js +40 -7
  127. package/src/engine/graphics/render/buffer/simple-fx/taa/TemporalSupersamplingRenderPlugin.d.ts.map +1 -1
  128. package/src/engine/graphics/render/buffer/simple-fx/taa/TemporalSupersamplingRenderPlugin.js +10 -4
  129. package/src/engine/graphics/render/forward_plus/LightManager.d.ts.map +1 -1
  130. package/src/engine/graphics/render/forward_plus/LightManager.js +1235 -1232
  131. package/src/engine/graphics/render/forward_plus/plugin/ForwardPlusRenderingPlugin.d.ts +5 -0
  132. package/src/engine/graphics/render/forward_plus/plugin/ForwardPlusRenderingPlugin.d.ts.map +1 -1
  133. package/src/engine/graphics/render/forward_plus/plugin/ForwardPlusRenderingPlugin.js +11 -10
  134. package/src/engine/graphics/trail/tube/TubeX.d.ts.map +1 -1
  135. package/src/engine/graphics/trail/tube/TubeX.js +557 -555
  136. package/src/engine/graphics/trail/x/RibbonXPlugin.d.ts +12 -1
  137. package/src/engine/graphics/trail/x/RibbonXPlugin.d.ts.map +1 -1
  138. package/src/engine/graphics/trail/x/RibbonXPlugin.js +15 -8
  139. package/src/engine/input/ecs/systems/InputControllerSystem.d.ts.map +1 -1
  140. package/src/engine/input/ecs/systems/InputControllerSystem.js +9 -6
  141. package/src/engine/navigation/ecs/components/Path.d.ts +5 -2
  142. package/src/engine/navigation/ecs/components/Path.d.ts.map +1 -1
  143. package/src/engine/navigation/ecs/components/Path.js +10 -4
  144. package/src/engine/navigation/ecs/path_following/PathFollowingSystem.js +1 -1
  145. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
  146. package/src/engine/physics/fluid/ecs/FluidSystem.d.ts +3 -3
@@ -15,6 +15,11 @@ export class ForwardPlusRenderingPlugin extends EnginePlugin {
15
15
  * @private
16
16
  */
17
17
  private __prepare_for_render;
18
+ /**
19
+ * The `fp_resolution` uniform divides `gl_FragCoord` to find the froxel a fragment belongs to,
20
+ * so it has to be the device-pixel grid the fragment is being rasterized on, not the CSS size of
21
+ * the viewport.
22
+ */
18
23
  updateResolution(): void;
19
24
  startup(): Promise<void>;
20
25
  shutdown(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"ForwardPlusRenderingPlugin.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/render/forward_plus/plugin/ForwardPlusRenderingPlugin.js"],"names":[],"mappings":"AAMA;IAOQ,8BAAmC;IAEnC,2BAAsC;IAGtC,4CAGE;IAGN;;;;;OAKG;IACH,wBAJW,MAAM,KACN,MAAM,KACN,MAAM,QAIhB;IAED;;;;OAIG;IACH,6BAIC;IAED,yBAIC;IAED,yBAcC;IAED,0BAkBC;IAED,gCAEC;CAEJ;6BA1F4B,oCAAoC;6BACpC,oBAAoB;wCAFT,OAAO;oCAGX,0BAA0B"}
1
+ {"version":3,"file":"ForwardPlusRenderingPlugin.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/render/forward_plus/plugin/ForwardPlusRenderingPlugin.js"],"names":[],"mappings":"AAMA;IAOQ,8BAAmC;IAEnC,2BAAsC;IAGtC,4CAGE;IAGN;;;;;OAKG;IACH,wBAJW,MAAM,KACN,MAAM,KACN,MAAM,QAIhB;IAED;;;;OAIG;IACH,6BAIC;IAED;;;;OAIG;IACH,yBAEC;IAED,yBAaC;IAED,0BAiBC;IAED,gCAEC;CAEJ;6BA3F4B,oCAAoC;6BACpC,oBAAoB;wCAFT,OAAO;oCAGX,0BAA0B"}
@@ -43,10 +43,13 @@ export class ForwardPlusRenderingPlugin extends EnginePlugin {
43
43
  this.__light_manager.buildTiles(view.camera);
44
44
  }
45
45
 
46
+ /**
47
+ * The `fp_resolution` uniform divides `gl_FragCoord` to find the froxel a fragment belongs to,
48
+ * so it has to be the device-pixel grid the fragment is being rasterized on, not the CSS size of
49
+ * the viewport.
50
+ */
46
51
  updateResolution() {
47
- const graphics = this.engine.graphics;
48
-
49
- graphics.getResolution(this.__resolution);
52
+ this.__resolution.copy(this.engine.graphics.output_resolution);
50
53
  }
51
54
 
52
55
  async startup() {
@@ -54,14 +57,13 @@ export class ForwardPlusRenderingPlugin extends EnginePlugin {
54
57
 
55
58
  graphics.getMaterialManager().addCompileStep(this.__material_transformer);
56
59
 
57
- graphics.viewport.size.onChanged.add(this.updateResolution, this);
58
- graphics.pixelRatio.onChanged.add(this.updateResolution, this);
59
-
60
+ // one subscription on the render resolution itself rather than two on the inputs it is
61
+ // derived from: this no longer depends on the graphics engine happening to recompute
62
+ // `output_resolution` before our handler runs on the same signal
63
+ graphics.output_resolution.process(this.updateResolution, this);
60
64
 
61
65
  graphics.main_view.on.preRender.add(this.__prepare_for_render, this);
62
66
 
63
- this.updateResolution();
64
-
65
67
  await super.startup();
66
68
  }
67
69
 
@@ -74,8 +76,7 @@ export class ForwardPlusRenderingPlugin extends EnginePlugin {
74
76
  console.warn('Failed to remove material transformer');
75
77
  }
76
78
 
77
- graphics.viewport.size.onChanged.remove(this.updateResolution, this);
78
- graphics.pixelRatio.onChanged.remove(this.updateResolution, this);
79
+ graphics.output_resolution.onChanged.remove(this.updateResolution, this);
79
80
 
80
81
  graphics.main_view.on.preRender.remove(this.__prepare_for_render, this);
81
82
 
@@ -1 +1 @@
1
- {"version":3,"file":"TubeX.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/trail/tube/TubeX.js"],"names":[],"mappings":"AAsCA;;;;;;;;;;;;;;GAcG;AACH;IAuDI,gBAEC;IAED;;OAEG;IACH,eAFa,cAAc,CAI1B;IAED;;OAEG;IACH,YAFa,MAAM,CAIlB;IAED;;OAEG;IACH,qBAFa,MAAM,CAIlB;IAED,uBAEC;IAED,uBAEC;IAUD,sBAqCC;IAyFD;;;OAGG;IACH,wBAHW,MAAM,EAAE,GAAC,YAAY,cACrB,MAAM,QAShB;IAED;;;;;OAKG;IACH,sBAHW,MAAM,EAAE,GAAC,YAAY,cACrB,MAAM,QAShB;IAED;;;;OAIG;IACH,wBAHW,MAAM,EAAE,GAAC,YAAY,cACrB,MAAM,QAShB;IAED;;;;;;;OAOG;IACH,qCANW,MAAM,mBACN,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,QAahB;IAED;;;;;OAKG;IACH,oCAJW,MAAM,mBACN,MAAM,SACN,MAAM,QAUhB;IAED;;;;;;OAMG;IACH,0CALW,MAAM,mBACN,MAAM,SACN,MAAM,GACJ,MAAM,CAclB;IAED;;;;;OAKG;IACH,4BALW,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,QAQhB;IAED;;;;;;;;;;OAUG;IACH,yBARW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,QAOhB;IAED;;;;;OAKG;IACH,yBALW,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,QAQhB;IAED;;;OAGG;IACH,yBAHW,MAAM,SACN,MAAM,QAMhB;IAED;;;OAGG;IACH,6BAHW,MAAM,SACN,MAAM,QAMhB;IAED;;;OAGG;IACH,gBAHW,MAAM,WACN,MAAM,QAgDhB;IAED;;;OAGG;IACH,2BAFW,QAAM,UAAU,MAAM,CAAC,QA4BjC;IAED;;;;;OAKG;IACH,eAoBC;;CACJ;;;;+BAliBM,OAAO;AAkBd;;;;GAIG;AACH,uCAFU,MAAM,CAEkB"}
1
+ {"version":3,"file":"TubeX.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/trail/tube/TubeX.js"],"names":[],"mappings":"AAsCA;;;;;;;;;;;;;;GAcG;AACH;IAuDI,gBAEC;IAED;;OAEG;IACH,eAFa,cAAc,CAI1B;IAED;;OAEG;IACH,YAFa,MAAM,CAIlB;IAED;;OAEG;IACH,qBAFa,MAAM,CAIlB;IAED,uBAEC;IAED,uBAEC;IAUD,sBAqCC;IAyFD;;;OAGG;IACH,wBAHW,MAAM,EAAE,GAAC,YAAY,cACrB,MAAM,QAShB;IAED;;;;;OAKG;IACH,sBAHW,MAAM,EAAE,GAAC,YAAY,cACrB,MAAM,QAShB;IAED;;;;OAIG;IACH,wBAHW,MAAM,EAAE,GAAC,YAAY,cACrB,MAAM,QAShB;IAED;;;;;;;OAOG;IACH,qCANW,MAAM,mBACN,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,QAahB;IAED;;;;;OAKG;IACH,oCAJW,MAAM,mBACN,MAAM,SACN,MAAM,QAUhB;IAED;;;;;;OAMG;IACH,0CALW,MAAM,mBACN,MAAM,SACN,MAAM,GACJ,MAAM,CAclB;IAED;;;;;OAKG;IACH,4BALW,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,QAQhB;IAED;;;;;;;;;;OAUG;IACH,yBARW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,QAOhB;IAED;;;;;OAKG;IACH,yBALW,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,QAQhB;IAED;;;OAGG;IACH,yBAHW,MAAM,SACN,MAAM,QAMhB;IAED;;;OAGG;IACH,6BAHW,MAAM,SACN,MAAM,QAMhB;IAED;;;OAGG;IACH,gBAHW,MAAM,WACN,MAAM,QAgDhB;IAED;;;OAGG;IACH,2BAFW,QAAM,UAAU,MAAM,CAAC,QA4BjC;IAED;;;;;OAKG;IACH,eAsBC;;CACJ;;;;+BApiBM,OAAO;AAkBd;;;;GAIG;AACH,uCAFU,MAAM,CAEkB"}