@woosh/meep-engine 2.34.49 → 2.35.2

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 (57) hide show
  1. package/core/bvh2/BinaryNode.js +19 -35
  2. package/core/bvh2/aabb3/aabb3_intersects_frustum_array.js +5 -5
  3. package/core/bvh2/aabb3/aabb3_intersects_frustum_degree.js +6 -6
  4. package/core/bvh2/aabb3_combined_surface_area.js +21 -0
  5. package/core/bvh2/traversal/queryBinaryNode_CollectData.js +1 -2
  6. package/core/bvh2/traversal/queryBinaryNode_FrustumIntersections.js +42 -17
  7. package/core/cache/Cache.d.ts +2 -0
  8. package/core/cache/Cache.js +27 -23
  9. package/core/collection/HashMap.js +1 -1
  10. package/core/geom/3d/frustum/frustum_from_projection_matrix_array.js +2 -0
  11. package/core/math/max2.js +2 -6
  12. package/core/math/min2.js +2 -6
  13. package/engine/asset/loaders/geometry/geometry/computeGeometryEquality.js +1 -1
  14. package/engine/asset/loaders/geometry/geometry/computeGeometryHash.js +9 -1
  15. package/engine/ecs/EntityComponentDataset.js +7 -2
  16. package/engine/ecs/foliage/ViewState.js +13 -3
  17. package/engine/ecs/parent/EntityNode.js +23 -11
  18. package/engine/ecs/transform/Transform.js +15 -13
  19. package/engine/graphics/ecs/highlight/system/ShadedGeometryHighlightSystem.js +13 -4
  20. package/engine/graphics/ecs/mesh-v2/ShadedGeometry.js +46 -108
  21. package/engine/graphics/ecs/mesh-v2/ShadedGeometrySystem.js +72 -10
  22. package/engine/graphics/ecs/mesh-v2/build_three_object.js +39 -0
  23. package/engine/graphics/ecs/mesh-v2/render/AbstractRenderAdapter.js +67 -0
  24. package/engine/graphics/ecs/mesh-v2/render/GenericRendererAdapter.js +48 -0
  25. package/engine/graphics/ecs/mesh-v2/render/InstancedRendererAdapter.js +158 -0
  26. package/engine/graphics/ecs/mesh-v2/render/ShadedGeometryRendererContext.js +98 -0
  27. package/engine/graphics/ecs/mesh-v2/sample/load_gltf.js +5 -0
  28. package/engine/graphics/ecs/mesh-v2/sample/prototypeShadedGeometry.js +37 -10
  29. package/engine/graphics/ecs/mesh-v2/three_object_to_entity_composition.js +8 -3
  30. package/engine/graphics/geometry/instancing/InstancedMeshGroup.js +29 -82
  31. package/engine/graphics/geometry/instancing/rewriteMaterial.js +9 -45
  32. package/engine/graphics/material/optimization/BUFFER_GEOMETRY_UVS.js +10 -0
  33. package/engine/graphics/material/optimization/MaterialDescriptor.js +46 -0
  34. package/engine/graphics/material/optimization/MaterialOptimizationContext.js +470 -201
  35. package/engine/graphics/material/optimization/UvContext.js +18 -0
  36. package/engine/graphics/material/optimization/is_compliant_mesh.js +71 -0
  37. package/engine/graphics/material/optimization/prepare_atlas_texture.js +23 -0
  38. package/engine/graphics/material/optimization/prototypeMaterialOptimizer.js +127 -0
  39. package/engine/graphics/micron/format/MicronGeometryPatch.js +1 -1
  40. package/engine/graphics/micron/format/VirtualGeometry.js +47 -11
  41. package/engine/graphics/micron/format/serialization/MicronGeometryBinarySerializationAdapter.js +16 -0
  42. package/engine/graphics/micron/prototypeVirtualGeometry.js +3 -2
  43. package/engine/graphics/micron/render/VirtualGeometryBuilder.js +5 -7
  44. package/engine/graphics/micron/render/instanced/AttributeDataTexture.js +1 -45
  45. package/engine/graphics/micron/render/instanced/ThreeInstancedAdapter.js +18 -7
  46. package/engine/graphics/micron/render/refinement/RefinementSpec.js +0 -1
  47. package/engine/graphics/micron/render/refinement/get_geometry_patch_cut.js +17 -24
  48. package/engine/graphics/micron/render/v1/MaterialContext.js +3 -2
  49. package/engine/graphics/micron/render/v1/VGThreeRenderer.js +20 -4
  50. package/engine/graphics/render/utils/ThreeBypassRenderer.js +3 -2
  51. package/engine/graphics/render/visibility/IncrementalDeltaSet.js +1 -0
  52. package/engine/graphics/texture/normalized_internal_format.js +48 -0
  53. package/engine/graphics/texture/sampler/Sampler2D.js +6 -0
  54. package/engine/graphics/texture/sampler/sampler2d_copy_channel_data.js +25 -0
  55. package/engine/graphics/texture/sampler/scaleSampler2D.js +3 -0
  56. package/engine/graphics/texture/sampler/util/drawSamplerHTML.js +14 -1
  57. package/package.json +1 -1
@@ -0,0 +1,46 @@
1
+ import { traverseMaterialTextures } from "../../../asset/loaders/material/traverseMaterialTextures.js";
2
+ import { UvContext } from "./UvContext.js";
3
+ import { max2 } from "../../../../core/math/max2.js";
4
+
5
+ export class MaterialDescriptor {
6
+ constructor() {
7
+
8
+ /**
9
+ *
10
+ * @type {THREE.Material|null}
11
+ */
12
+ this.source_material = null;
13
+
14
+ /**
15
+ *
16
+ * @type {UvContext[]}
17
+ */
18
+ this.uvs = [];
19
+ }
20
+
21
+ build_uvs() {
22
+
23
+ traverseMaterialTextures(this.source_material, (t, attachment) => {
24
+ const uv_index = attachment.uv_index;
25
+
26
+ let uv_context = this.uvs[uv_index];
27
+
28
+ if (uv_context === undefined) {
29
+ uv_context = new UvContext();
30
+ uv_context.resolution.set(1, 1);
31
+
32
+ this.uvs[uv_index] = uv_context;
33
+ }
34
+
35
+ const image = t.image;
36
+
37
+ if (image !== undefined && image.width !== undefined) {
38
+ uv_context.resolution.x = max2(uv_context.resolution.x, image.width);
39
+ uv_context.resolution.y = max2(uv_context.resolution.y, image.height);
40
+ }
41
+
42
+ });
43
+
44
+ }
45
+
46
+ }