@woosh/meep-engine 2.72.0 → 2.73.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 (24) hide show
  1. package/build/meep.cjs +34 -185
  2. package/build/meep.min.js +1 -1
  3. package/build/meep.module.js +34 -185
  4. package/package.json +3 -2
  5. package/src/engine/graphics/ecs/camera/FrustumProjector.js +31 -182
  6. package/src/engine/graphics/texture/virtual/v2/NOTES.md +11 -1
  7. package/src/engine/graphics/texture/virtual/v2/ShaderUsage.js +7 -5
  8. package/src/engine/graphics/texture/virtual/v2/SparseTexture.js +182 -0
  9. package/src/engine/graphics/texture/virtual/v2/TextureTile.js +31 -0
  10. package/src/engine/graphics/texture/virtual/v2/TileLoader.js +215 -0
  11. package/src/engine/graphics/texture/virtual/v2/UsageDebugView.js +24 -11
  12. package/src/engine/graphics/texture/virtual/v2/UsageMetadata.js +77 -145
  13. package/src/engine/graphics/texture/virtual/v2/UsagePyramidDebugView.js +27 -14
  14. package/src/engine/graphics/texture/virtual/v2/VirtualTextureManager.js +13 -4
  15. package/src/engine/graphics/texture/virtual/v2/compose_finger_print.js +13 -0
  16. package/src/engine/graphics/texture/virtual/v2/finger_print_to_tile_index.js +37 -0
  17. package/src/engine/graphics/texture/virtual/v2/prototype.js +29 -11
  18. package/src/engine/graphics/texture/virtual/v2/tile_index_to_finger_print.js +31 -0
  19. package/src/engine/graphics/clouds/MaterialTransformer.js +0 -0
  20. package/src/engine/graphics/clouds/TerrainCloudsPlugin.js +0 -0
  21. package/src/engine/graphics/clouds/cs_build_fragment_shader.js +0 -0
  22. package/src/engine/graphics/clouds/cs_build_vertex_shader.js +0 -0
  23. package/src/engine/graphics/ecs/camera/TiltCameraController.js +0 -69
  24. package/src/engine/graphics/ecs/camera/is_valid_distance_value.js +0 -11
package/build/meep.cjs CHANGED
@@ -111514,7 +111514,7 @@ function aabb3_matrix4_project_by_corners(
111514
111514
  result[5] = z1;
111515
111515
  }
111516
111516
 
111517
- const corners = [];
111517
+ const corners$1 = [];
111518
111518
 
111519
111519
  class Decal extends AbstractLight {
111520
111520
  constructor() {
@@ -111600,9 +111600,9 @@ class Decal extends AbstractLight {
111600
111600
  }
111601
111601
 
111602
111602
  getAABB(result) {
111603
- aabb3_build_corners(corners, 0, -0.5, -0.5, -0.5, 0.5, 0.5, 0.5);
111603
+ aabb3_build_corners(corners$1, 0, -0.5, -0.5, -0.5, 0.5, 0.5, 0.5);
111604
111604
 
111605
- aabb3_matrix4_project_by_corners(result, corners, this.transform);
111605
+ aabb3_matrix4_project_by_corners(result, corners$1, this.transform);
111606
111606
  }
111607
111607
 
111608
111608
  toArray(destination, address) {
@@ -113434,190 +113434,41 @@ class ForwardPlusRenderingPlugin extends EnginePlugin {
113434
113434
  */
113435
113435
 
113436
113436
 
113437
- const projectInWorldSpace = (function () {
113438
- const corners = [
113439
- new Vector3(-1, -1, 0),
113440
- new Vector3(-1, -1, 0),
113437
+ const corners = [
113438
+ new Vector3(-1, -1, 0),
113439
+ new Vector3(-1, -1, 0),
113441
113440
 
113442
- new Vector3(-1, 1, 0),
113443
- new Vector3(-1, 1, 0),
113441
+ new Vector3(-1, 1, 0),
113442
+ new Vector3(-1, 1, 0),
113444
113443
 
113445
- new Vector3(1, -1, 0),
113446
- new Vector3(1, -1, 0),
113444
+ new Vector3(1, -1, 0),
113445
+ new Vector3(1, -1, 0),
113447
113446
 
113448
- new Vector3(1, 1, 0),
113449
- new Vector3(1, 1, 0)
113450
- ];
113451
-
113452
-
113453
- /**
113454
- *
113455
- * @param {Number} nearZ
113456
- * @param {Number} farZ
113457
- * @param {THREE.Camera} camera
113458
- * @param {THREE.Matrix4} matrixWorldInverse
113459
- * @param {function} callback
113460
- */
113461
- function projectInWorldSpace(nearZ, farZ, camera, callback) {
113462
- corners[0].set(-1, -1, nearZ);
113463
- corners[1].set(-1, -1, farZ);
113464
-
113465
- corners[2].set(-1, 1, nearZ);
113466
- corners[3].set(-1, 1, farZ);
113467
-
113468
- corners[4].set(1, -1, nearZ);
113469
- corners[5].set(1, -1, farZ);
113470
-
113471
- corners[6].set(1, 1, nearZ);
113472
- corners[7].set(1, 1, farZ);
113473
-
113474
- //compute corners of view frustum in light space
113475
- let x0 = Number.POSITIVE_INFINITY;
113476
- let y0 = Number.POSITIVE_INFINITY;
113477
- let z0 = Number.POSITIVE_INFINITY;
113478
-
113479
- let x1 = Number.NEGATIVE_INFINITY;
113480
- let y1 = Number.NEGATIVE_INFINITY;
113481
- let z1 = Number.NEGATIVE_INFINITY;
113482
-
113483
-
113484
- for (let i = 0; i < 8; i++) {
113485
- const corner = corners[i];
113486
- corner.unproject(camera);
113487
-
113488
- if (corner.x < x0) {
113489
- x0 = corner.x;
113490
- }
113491
- if (corner.x > x1) {
113492
- x1 = corner.x;
113493
- }
113494
-
113495
- if (corner.y < y0) {
113496
- y0 = corner.y;
113497
- }
113498
- if (corner.y > y1) {
113499
- y1 = corner.y;
113500
- }
113501
-
113502
- if (corner.z < z0) {
113503
- z0 = corner.z;
113504
- }
113505
- if (corner.z > z1) {
113506
- z1 = corner.z;
113507
- }
113508
- }
113509
-
113510
- callback(x0, y0, z0, x1, y1, z1);
113511
- }
113512
-
113513
- return projectInWorldSpace;
113514
- })();
113515
-
113516
- const project = (function () {
113517
- const corners = [
113518
- new Vector3(-1, -1, 0),
113519
- new Vector3(-1, -1, 0),
113520
-
113521
- new Vector3(-1, 1, 0),
113522
- new Vector3(-1, 1, 0),
113523
-
113524
- new Vector3(1, -1, 0),
113525
- new Vector3(1, -1, 0),
113526
-
113527
- new Vector3(1, 1, 0),
113528
- new Vector3(1, 1, 0)
113529
- ];
113530
-
113531
-
113532
- /**
113533
- *
113534
- * @param {Number} nearZ
113535
- * @param {Number} farZ
113536
- * @param {THREE.Camera} camera
113537
- * @param {THREE.Matrix4} matrixWorldInverse
113538
- * @param {AABB3} result
113539
- */
113540
- function project(nearZ, farZ, camera, matrixWorldInverse, result) {
113541
- corners[0].set(-1, -1, nearZ);
113542
- corners[1].set(-1, -1, farZ);
113543
-
113544
- corners[2].set(-1, 1, nearZ);
113545
- corners[3].set(-1, 1, farZ);
113546
-
113547
- corners[4].set(1, -1, nearZ);
113548
- corners[5].set(1, -1, farZ);
113549
-
113550
- corners[6].set(1, 1, nearZ);
113551
- corners[7].set(1, 1, farZ);
113552
-
113553
- //compute corners of view frustum in light space
113554
- let x0 = Number.POSITIVE_INFINITY;
113555
- let y0 = Number.POSITIVE_INFINITY;
113556
- let z0 = Number.POSITIVE_INFINITY;
113557
-
113558
- let x1 = Number.NEGATIVE_INFINITY;
113559
- let y1 = Number.NEGATIVE_INFINITY;
113560
- let z1 = Number.NEGATIVE_INFINITY;
113561
-
113562
-
113563
- for (let i = 0; i < 8; i++) {
113564
- const corner = corners[i];
113565
- corner.unproject(camera);
113566
- corner.applyMatrix4(matrixWorldInverse);
113567
-
113568
- if (corner.x < x0) {
113569
- x0 = corner.x;
113570
- }
113571
- if (corner.x > x1) {
113572
- x1 = corner.x;
113573
- }
113574
-
113575
- if (corner.y < y0) {
113576
- y0 = corner.y;
113577
- }
113578
- if (corner.y > y1) {
113579
- y1 = corner.y;
113580
- }
113581
-
113582
- if (corner.z < z0) {
113583
- z0 = corner.z;
113584
- }
113585
- if (corner.z > z1) {
113586
- z1 = corner.z;
113587
- }
113588
- }
113589
-
113590
- result.setBounds(x0, y0, z0, x1, y1, z1);
113591
- }
113447
+ new Vector3(1, 1, 0),
113448
+ new Vector3(1, 1, 0)
113449
+ ];
113592
113450
 
113593
- return project;
113594
- })();
113595
113451
 
113596
113452
  /**
113597
113453
  *
113598
- * @param _x0
113599
- * @param _y0
113600
- * @param _z0
113601
- * @param _x1
113602
- * @param _y1
113603
- * @param _z1
113604
- * @param {Camera} camera
113605
- * @param callback
113454
+ * @param {Number} nearZ
113455
+ * @param {Number} farZ
113456
+ * @param {THREE.Camera} camera
113457
+ * @param {THREE.Matrix4} matrixWorldInverse
113458
+ * @param {AABB3} result
113606
113459
  */
113607
- function unproject(_x0, _y0, _z0, _x1, _y1, _z1, camera, callback) {
113608
- const corners = [
113609
- new Vector3(_x0, _y0, _z0),
113610
- new Vector3(_x0, _y0, _z1),
113460
+ function project(nearZ, farZ, camera, matrixWorldInverse, result) {
113461
+ corners[0].set(-1, -1, nearZ);
113462
+ corners[1].set(-1, -1, farZ);
113611
113463
 
113612
- new Vector3(_x0, _y1, _z0),
113613
- new Vector3(_x0, _y1, _z1),
113464
+ corners[2].set(-1, 1, nearZ);
113465
+ corners[3].set(-1, 1, farZ);
113614
113466
 
113615
- new Vector3(_x1, _y0, _z0),
113616
- new Vector3(_x1, _y0, _z1),
113467
+ corners[4].set(1, -1, nearZ);
113468
+ corners[5].set(1, -1, farZ);
113617
113469
 
113618
- new Vector3(_x1, _y1, _z0),
113619
- new Vector3(_x1, _y1, _z1)
113620
- ];
113470
+ corners[6].set(1, 1, nearZ);
113471
+ corners[7].set(1, 1, farZ);
113621
113472
 
113622
113473
  //compute corners of view frustum in light space
113623
113474
  let x0 = Number.POSITIVE_INFINITY;
@@ -113629,8 +113480,10 @@ function unproject(_x0, _y0, _z0, _x1, _y1, _z1, camera, callback) {
113629
113480
  let z1 = Number.NEGATIVE_INFINITY;
113630
113481
 
113631
113482
 
113632
- corners.forEach(function (corner) {
113633
- corner.project(camera);
113483
+ for (let i = 0; i < 8; i++) {
113484
+ const corner = corners[i];
113485
+ corner.unproject(camera);
113486
+ corner.applyMatrix4(matrixWorldInverse);
113634
113487
 
113635
113488
  if (corner.x < x0) {
113636
113489
  x0 = corner.x;
@@ -113652,21 +113505,17 @@ function unproject(_x0, _y0, _z0, _x1, _y1, _z1, camera, callback) {
113652
113505
  if (corner.z > z1) {
113653
113506
  z1 = corner.z;
113654
113507
  }
113655
- });
113508
+ }
113656
113509
 
113657
- callback(x0, y0, z0, x1, y1, z1);
113510
+ result.setBounds(x0, y0, z0, x1, y1, z1);
113658
113511
  }
113659
113512
 
113513
+
113660
113514
  var FrustumProjector = {
113661
113515
  /**
113662
113516
  * @deprecated use non-threejs specific code
113663
113517
  */
113664
113518
  project,
113665
- unproject,
113666
- /**
113667
- * @deprecated use non-threejs specific code
113668
- */
113669
- projectInWorldSpace
113670
113519
  };
113671
113520
 
113672
113521
  class SystemEntityContext {