@woosh/meep-engine 3.28.0 → 3.29.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/build/bundle-worker-terrain.js +1 -1
- package/package.json +1 -1
- package/src/core/binary/BitSet.d.ts +16 -0
- package/src/core/binary/BitSet.d.ts.map +1 -1
- package/src/core/binary/BitSet.js +159 -49
- package/src/core/binary/allocator/OffsetAllocator.d.ts +48 -0
- package/src/core/binary/allocator/OffsetAllocator.d.ts.map +1 -1
- package/src/core/binary/allocator/OffsetAllocator.js +208 -9
- package/src/core/binary/compression/compress_bytes.d.ts +20 -0
- package/src/core/binary/compression/compress_bytes.d.ts.map +1 -0
- package/src/core/binary/compression/compress_bytes.js +35 -0
- package/src/core/binary/compression/decompress_bytes_into.d.ts +30 -0
- package/src/core/binary/compression/decompress_bytes_into.d.ts.map +1 -0
- package/src/core/binary/compression/decompress_bytes_into.js +87 -0
- package/src/core/binary/compression/deflate_decompress_bound.d.ts +27 -0
- package/src/core/binary/compression/deflate_decompress_bound.d.ts.map +1 -0
- package/src/core/binary/compression/deflate_decompress_bound.js +32 -0
- package/src/core/geom/3d/quadric/quadric_attribute_add.d.ts +24 -0
- package/src/core/geom/3d/quadric/quadric_attribute_add.d.ts.map +1 -0
- package/src/core/geom/3d/quadric/quadric_attribute_add.js +31 -0
- package/src/core/geom/3d/quadric/quadric_attribute_reduce.d.ts +46 -0
- package/src/core/geom/3d/quadric/quadric_attribute_reduce.d.ts.map +1 -0
- package/src/core/geom/3d/quadric/quadric_attribute_reduce.js +104 -0
- package/src/core/geom/3d/quadric/quadric_attribute_set_from_triangle.d.ts +62 -0
- package/src/core/geom/3d/quadric/quadric_attribute_set_from_triangle.d.ts.map +1 -0
- package/src/core/geom/3d/quadric/quadric_attribute_set_from_triangle.js +158 -0
- package/src/core/geom/3d/quadric/quadric_attribute_size.d.ts +21 -0
- package/src/core/geom/3d/quadric/quadric_attribute_size.d.ts.map +1 -0
- package/src/core/geom/3d/quadric/quadric_attribute_size.js +24 -0
- package/src/core/geom/3d/quadric/quadric_attribute_solve.d.ts +34 -0
- package/src/core/geom/3d/quadric/quadric_attribute_solve.d.ts.map +1 -0
- package/src/core/geom/3d/quadric/quadric_attribute_solve.js +55 -0
- package/src/core/geom/3d/quadric/quadric_attribute_sub.d.ts +28 -0
- package/src/core/geom/3d/quadric/quadric_attribute_sub.d.ts.map +1 -0
- package/src/core/geom/3d/quadric/quadric_attribute_sub.js +35 -0
- package/src/core/geom/3d/topology/struct/binary/BinaryDataBlock.d.ts +15 -0
- package/src/core/geom/3d/topology/struct/binary/BinaryDataBlock.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/BinaryDataBlock.js +35 -0
- package/src/core/geom/3d/topology/struct/binary/BtWedgeSet.d.ts +93 -0
- package/src/core/geom/3d/topology/struct/binary/BtWedgeSet.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/BtWedgeSet.js +128 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_compute_wedge_attribute_quadrics.d.ts +38 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_compute_wedge_attribute_quadrics.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_compute_wedge_attribute_quadrics.js +113 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_simplify.d.ts +47 -1
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_simplify.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_simplify.js +677 -8
- package/src/core/geom/3d/topology/struct/binary/io/bt_wedges_live_count.d.ts +22 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_wedges_live_count.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_wedges_live_count.js +46 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_wedges_per_vertex.d.ts +19 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_wedges_per_vertex.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_wedges_per_vertex.js +49 -0
- package/src/core/graph/layout/layered/BoxLayoutOptions.d.ts +63 -0
- package/src/core/graph/layout/layered/BoxLayoutOptions.d.ts.map +1 -0
- package/src/core/graph/layout/layered/BoxLayoutOptions.js +80 -0
- package/src/core/{model/node-graph/visual/layout → graph/layout/layered}/LayoutBoxGraph.d.ts +35 -0
- package/src/core/graph/layout/layered/LayoutBoxGraph.d.ts.map +1 -0
- package/src/core/{model/node-graph/visual/layout → graph/layout/layered}/LayoutBoxGraph.js +53 -1
- package/src/core/graph/layout/layered/layout_assign_coordinates.d.ts.map +1 -0
- package/src/core/{model/node-graph/visual/layout → graph/layout/layered}/layout_assign_coordinates.js +72 -68
- package/src/core/graph/layout/layered/layout_assign_layers.d.ts.map +1 -0
- package/src/core/{model/node-graph/visual/layout → graph/layout/layered}/layout_assign_layers.js +4 -2
- package/src/core/graph/layout/layered/layout_break_cycles.d.ts.map +1 -0
- package/src/core/graph/layout/layered/layout_insert_lanes.d.ts.map +1 -0
- package/src/core/graph/layout/layered/layout_order_layers.d.ts.map +1 -0
- package/src/core/graph/layout/layered/layout_orient_links.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/NodeGraphLayoutOptions.d.ts +7 -51
- package/src/core/model/node-graph/visual/layout/NodeGraphLayoutOptions.d.ts.map +1 -1
- package/src/core/model/node-graph/visual/layout/NodeGraphLayoutOptions.js +8 -69
- package/src/core/model/node-graph/visual/layout/layout_build_problem.js +1 -1
- package/src/core/model/node-graph/visual/layout/layout_node_graph.js +6 -6
- package/src/core/model/node-graph/visual/layout/route_grid_build.js +1 -1
- package/src/engine/graphics3/DebugDrawSystem.d.ts +7 -5
- package/src/engine/graphics3/DebugDrawSystem.d.ts.map +1 -1
- package/src/engine/graphics3/DebugDrawSystem.js +206 -203
- package/src/engine/graphics3/DecalSystem.d.ts +4 -5
- package/src/engine/graphics3/DecalSystem.d.ts.map +1 -1
- package/src/engine/graphics3/DecalSystem.js +5 -5
- package/src/engine/graphics3/FogOfWarSystem.d.ts +7 -12
- package/src/engine/graphics3/FogOfWarSystem.d.ts.map +1 -1
- package/src/engine/graphics3/FogOfWarSystem.js +8 -12
- package/src/engine/graphics3/prefab/prefab_instantiate.js +230 -230
- package/src/shade/RENDERER_CONTRACT.md +12 -7
- package/src/shade/playground/caldera/README.md +529 -0
- package/src/shade/playground/caldera/caldera_format.d.ts +151 -0
- package/src/shade/playground/caldera/caldera_format.d.ts.map +1 -0
- package/src/shade/playground/caldera/caldera_format.js +241 -0
- package/src/shade/playground/caldera/index.html +126 -0
- package/src/shade/playground/caldera/main.d.ts.map +1 -0
- package/src/shade/playground/caldera/main.js +1565 -0
- package/src/shade/playground/mesh_row_ceiling/README.md +85 -0
- package/src/shade/playground/mesh_row_ceiling/index.html +31 -0
- package/src/shade/playground/mesh_row_ceiling/main.d.ts +2 -0
- package/src/shade/playground/mesh_row_ceiling/main.d.ts.map +1 -0
- package/src/shade/playground/mesh_row_ceiling/main.js +389 -0
- package/src/shade/playground/vgeo_runtime/README.md +5 -3
- package/src/shade/playground/vgeo_runtime/main.js +3 -2
- package/src/shade/playground/vgeo_runtime/sample_asset.d.ts +3 -3
- package/src/shade/playground/vgeo_runtime/sample_asset.d.ts.map +1 -1
- package/src/shade/playground/vgeo_runtime/sample_asset.js +3 -3
- package/src/shade/playground/vgeo_scene/README.md +103 -24
- package/src/shade/playground/vgeo_scene/main.js +525 -24
- package/src/shade/renderer/GraphicsContext.d.ts.map +1 -1
- package/src/shade/renderer/GraphicsContext.js +6 -0
- package/src/shade/renderer/Renderer.d.ts +2 -0
- package/src/shade/renderer/Renderer.d.ts.map +1 -1
- package/src/shade/renderer/Renderer.js +23 -0
- package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.d.ts.map +1 -1
- package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.js +100 -8
- package/src/shade/renderer/extension/RENDER_EXTENSION_DESIGN.md +69 -33
- package/src/shade/renderer/extension/RenderExtension.d.ts +15 -18
- package/src/shade/renderer/extension/RenderExtension.d.ts.map +1 -1
- package/src/shade/renderer/extension/RenderExtension.js +15 -19
- package/src/shade/renderer/extension/RenderExtensionRegistry.d.ts +5 -5
- package/src/shade/renderer/extension/RenderExtensionRegistry.d.ts.map +1 -1
- package/src/shade/renderer/extension/RenderExtensionRegistry.js +29 -166
- package/src/shade/renderer/geometry/GPUGeometryManager.d.ts.map +1 -1
- package/src/shade/renderer/geometry/GPUGeometryManager.js +73 -16
- package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.d.ts.map +1 -1
- package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.js +18 -3
- package/src/shade/renderer/geometry/meshlet/COMPACTION_PLAN_2026_09_16.md +663 -0
- package/src/shade/renderer/geometry/meshlet/GPUMeshletManager.d.ts +100 -5
- package/src/shade/renderer/geometry/meshlet/GPUMeshletManager.d.ts.map +1 -1
- package/src/shade/renderer/geometry/meshlet/GPUMeshletManager.js +688 -81
- package/src/shade/renderer/geometry/virtual/ATTRIBUTE_PLAN_2026_09_18.md +540 -0
- package/src/shade/renderer/geometry/virtual/VGEO_FORMAT.md +155 -64
- package/src/shade/renderer/geometry/virtual/VIRTUAL_GEOMETRY_DESIGN.md +30 -13
- package/src/shade/renderer/geometry/virtual/VIRTUAL_GEOMETRY_PLAN.md +3 -3
- package/src/shade/renderer/geometry/virtual/WEDGE_PLAN_2026_09_18.md +358 -0
- package/src/shade/renderer/geometry/virtual/build/VGeoBuildOptions.d.ts +57 -7
- package/src/shade/renderer/geometry/virtual/build/VGeoBuildOptions.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/build/VGeoBuildOptions.js +63 -9
- package/src/shade/renderer/geometry/virtual/build/level/VGeoContribution.d.ts +40 -0
- package/src/shade/renderer/geometry/virtual/build/level/VGeoContribution.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/build/level/VGeoContribution.js +24 -0
- package/src/shade/renderer/geometry/virtual/build/level/VGeoFrontier.d.ts +91 -0
- package/src/shade/renderer/geometry/virtual/build/level/VGeoFrontier.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/build/level/VGeoFrontier.js +91 -0
- package/src/shade/renderer/geometry/virtual/build/level/VGeoGroupRepack.d.ts +24 -0
- package/src/shade/renderer/geometry/virtual/build/level/VGeoGroupRepack.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/build/level/VGeoGroupRepack.js +25 -0
- package/src/shade/renderer/geometry/virtual/build/level/VGeoGroupStep.d.ts +77 -0
- package/src/shade/renderer/geometry/virtual/build/level/VGeoGroupStep.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/build/level/VGeoGroupStep.js +84 -0
- package/src/shade/renderer/geometry/virtual/build/level/VGeoLevelOptions.d.ts +19 -6
- package/src/shade/renderer/geometry/virtual/build/level/VGeoLevelOptions.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/build/level/VGeoLevelOptions.js +20 -7
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_build_cluster.d.ts +19 -0
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_build_cluster.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_build_cluster.js +58 -0
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_build_cluster_graph.d.ts +18 -0
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_build_cluster_graph.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_build_cluster_graph.js +116 -0
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_build_group_step.d.ts +18 -0
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_build_group_step.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_build_group_step.js +545 -0
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_build_leaf_frontier.d.ts +16 -0
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_build_leaf_frontier.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_build_leaf_frontier.js +110 -0
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_build_levels.d.ts +2 -27
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_build_levels.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_build_levels.js +120 -1564
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_compute_group_boundary.d.ts +26 -0
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_compute_group_boundary.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_compute_group_boundary.js +123 -0
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_error_bands.d.ts +26 -0
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_error_bands.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_error_bands.js +78 -0
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_partition_into_groups.d.ts +24 -0
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_partition_into_groups.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_partition_into_groups.js +337 -0
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_run_round.d.ts +29 -0
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_run_round.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_run_round.js +147 -0
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_stitch_frontier.d.ts +37 -0
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_stitch_frontier.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_stitch_frontier.js +243 -0
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_try_repack.d.ts +29 -0
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_try_repack.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/build/level/vgeo_try_repack.js +117 -0
- package/src/shade/renderer/geometry/virtual/build/mesh/VGEO_CREASE_ANGLE.d.ts +46 -0
- package/src/shade/renderer/geometry/virtual/build/mesh/VGEO_CREASE_ANGLE.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/build/mesh/VGEO_CREASE_ANGLE.js +45 -0
- package/src/shade/renderer/geometry/virtual/build/mesh/VGEO_DEFAULT_ATTRIBUTE_WEIGHT_RATIOS.d.ts +64 -0
- package/src/shade/renderer/geometry/virtual/build/mesh/VGEO_DEFAULT_ATTRIBUTE_WEIGHT_RATIOS.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/build/mesh/VGEO_DEFAULT_ATTRIBUTE_WEIGHT_RATIOS.js +68 -0
- package/src/shade/renderer/geometry/virtual/build/mesh/VirtualGeometryMesh.d.ts +12 -7
- package/src/shade/renderer/geometry/virtual/build/mesh/VirtualGeometryMesh.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/build/mesh/VirtualGeometryMesh.js +33 -11
- package/src/shade/renderer/geometry/virtual/build/mesh/vgeo_attribute_vector_layout.d.ts +58 -0
- package/src/shade/renderer/geometry/virtual/build/mesh/vgeo_attribute_vector_layout.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/build/mesh/vgeo_attribute_vector_layout.js +79 -0
- package/src/shade/renderer/geometry/virtual/build/mesh/vgeo_attribute_vector_read.d.ts +39 -0
- package/src/shade/renderer/geometry/virtual/build/mesh/vgeo_attribute_vector_read.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/build/mesh/vgeo_attribute_vector_read.js +68 -0
- package/src/shade/renderer/geometry/virtual/build/mesh/vgeo_attribute_vector_write.d.ts +53 -0
- package/src/shade/renderer/geometry/virtual/build/mesh/vgeo_attribute_vector_write.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/build/mesh/vgeo_attribute_vector_write.js +243 -0
- package/src/shade/renderer/geometry/virtual/build/mesh/vgeo_compute_vertex_normals.d.ts +24 -8
- package/src/shade/renderer/geometry/virtual/build/mesh/vgeo_compute_vertex_normals.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/build/mesh/vgeo_compute_vertex_normals.js +250 -25
- package/src/shade/renderer/geometry/virtual/build/mesh/vgeo_compute_vertex_tangents.d.ts +12 -8
- package/src/shade/renderer/geometry/virtual/build/mesh/vgeo_compute_vertex_tangents.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/build/mesh/vgeo_compute_vertex_tangents.js +58 -50
- package/src/shade/renderer/geometry/virtual/build/mesh/vgeo_normalize_source.d.ts +8 -1
- package/src/shade/renderer/geometry/virtual/build/mesh/vgeo_normalize_source.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/build/mesh/vgeo_normalize_source.js +18 -3
- package/src/shade/renderer/geometry/virtual/build/mesh/vgeo_resolve_attribute_weights.d.ts +38 -0
- package/src/shade/renderer/geometry/virtual/build/mesh/vgeo_resolve_attribute_weights.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/build/mesh/vgeo_resolve_attribute_weights.js +81 -0
- package/src/shade/renderer/geometry/virtual/build/partition/VGeoFaceGraph.d.ts +23 -5
- package/src/shade/renderer/geometry/virtual/build/partition/VGeoFaceGraph.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/build/partition/VGeoFaceGraph.js +28 -21
- package/src/shade/renderer/geometry/virtual/build/partition/vgeo_split_face_set.js +1 -1
- package/src/shade/renderer/geometry/virtual/build/partition/vgeo_split_face_set_packed.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/build/partition/vgeo_split_face_set_packed.js +224 -60
- package/src/shade/renderer/geometry/virtual/build/submesh/VGeoGatheredFaces.d.ts +15 -0
- package/src/shade/renderer/geometry/virtual/build/submesh/VGeoGatheredFaces.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/build/submesh/VGeoGatheredFaces.js +17 -0
- package/src/shade/renderer/geometry/virtual/build/submesh/VGeoSubmesh.d.ts +17 -0
- package/src/shade/renderer/geometry/virtual/build/submesh/VGeoSubmesh.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/build/submesh/VGeoSubmesh.js +19 -0
- package/src/shade/renderer/geometry/virtual/build/submesh/vgeo_extract_submesh.d.ts +10 -1
- package/src/shade/renderer/geometry/virtual/build/submesh/vgeo_extract_submesh.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/build/submesh/vgeo_extract_submesh.js +103 -9
- package/src/shade/renderer/geometry/virtual/build/submesh/vgeo_gather_faces.d.ts +14 -2
- package/src/shade/renderer/geometry/virtual/build/submesh/vgeo_gather_faces.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/build/submesh/vgeo_gather_faces.js +38 -14
- package/src/shade/renderer/geometry/virtual/build/vgeo_build.d.ts +6 -2
- package/src/shade/renderer/geometry/virtual/build/vgeo_build.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/build/vgeo_build.js +28 -5
- package/src/shade/renderer/geometry/virtual/build/vgeo_subtree_bounds.d.ts +32 -0
- package/src/shade/renderer/geometry/virtual/build/vgeo_subtree_bounds.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/build/vgeo_subtree_bounds.js +93 -0
- package/src/shade/renderer/geometry/virtual/format/VGeoWriteOptions.d.ts +20 -6
- package/src/shade/renderer/geometry/virtual/format/VGeoWriteOptions.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/format/VGeoWriteOptions.js +22 -8
- package/src/shade/renderer/geometry/virtual/format/attribute/vgeo_layers_copy_corner.d.ts +16 -0
- package/src/shade/renderer/geometry/virtual/format/attribute/vgeo_layers_copy_corner.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/format/attribute/{vgeo_layers_copy_vertex.js → vgeo_layers_copy_corner.js} +8 -8
- package/src/shade/renderer/geometry/virtual/format/attribute/vgeo_layers_declare.d.ts +18 -7
- package/src/shade/renderer/geometry/virtual/format/attribute/vgeo_layers_declare.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/format/attribute/vgeo_layers_declare.js +19 -8
- package/src/shade/renderer/geometry/virtual/format/attribute/vgeo_layers_like.d.ts +3 -3
- package/src/shade/renderer/geometry/virtual/format/attribute/vgeo_layers_like.js +3 -3
- package/src/shade/renderer/geometry/virtual/format/attribute/vgeo_mesh_wedges.d.ts +27 -0
- package/src/shade/renderer/geometry/virtual/format/attribute/vgeo_mesh_wedges.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/format/attribute/vgeo_mesh_wedges.js +97 -0
- package/src/shade/renderer/geometry/virtual/format/cluster/VGEO_CLUSTER_OFFSET.d.ts +7 -3
- package/src/shade/renderer/geometry/virtual/format/cluster/VGEO_CLUSTER_OFFSET.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/format/cluster/VGEO_CLUSTER_OFFSET.js +21 -11
- package/src/shade/renderer/geometry/virtual/format/cluster/VGEO_CLUSTER_OFFSET_V4.d.ts +21 -0
- package/src/shade/renderer/geometry/virtual/format/cluster/VGEO_CLUSTER_OFFSET_V4.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/format/cluster/VGEO_CLUSTER_OFFSET_V4.js +41 -0
- package/src/shade/renderer/geometry/virtual/format/dag/VirtualGeometryCluster.d.ts +19 -1
- package/src/shade/renderer/geometry/virtual/format/dag/VirtualGeometryCluster.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/format/dag/VirtualGeometryCluster.js +20 -1
- package/src/shade/renderer/geometry/virtual/format/frame/VGEO_CODEC_DEFLATE.d.ts +25 -0
- package/src/shade/renderer/geometry/virtual/format/frame/VGEO_CODEC_DEFLATE.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/format/frame/VGEO_CODEC_DEFLATE.js +24 -0
- package/src/shade/renderer/geometry/virtual/format/frame/VGEO_CODEC_LZ4.d.ts +5 -0
- package/src/shade/renderer/geometry/virtual/format/frame/VGEO_CODEC_LZ4.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/format/frame/VGEO_CODEC_LZ4.js +5 -0
- package/src/shade/renderer/geometry/virtual/format/frame/vgeo_codec_name.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/format/frame/vgeo_codec_name.js +5 -0
- package/src/shade/renderer/geometry/virtual/format/frame/vgeo_decode_frame_blob.d.ts +10 -3
- package/src/shade/renderer/geometry/virtual/format/frame/vgeo_decode_frame_blob.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/format/frame/vgeo_decode_frame_blob.js +37 -3
- package/src/shade/renderer/geometry/virtual/format/frame/vgeo_encode_frame_blob.d.ts +21 -13
- package/src/shade/renderer/geometry/virtual/format/frame/vgeo_encode_frame_blob.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/format/frame/vgeo_encode_frame_blob.js +37 -13
- package/src/shade/renderer/geometry/virtual/format/frame/vgeo_frame_decode_bound.d.ts +8 -2
- package/src/shade/renderer/geometry/virtual/format/frame/vgeo_frame_decode_bound.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/format/frame/vgeo_frame_decode_bound.js +14 -2
- package/src/shade/renderer/geometry/virtual/format/header/VGEO_FORMAT_VERSION.d.ts +18 -0
- package/src/shade/renderer/geometry/virtual/format/header/VGEO_FORMAT_VERSION.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/format/header/VGEO_FORMAT_VERSION.js +19 -1
- package/src/shade/renderer/geometry/virtual/format/header/VGEO_HEADER_OFFSET.js +6 -0
- package/src/shade/renderer/geometry/virtual/format/header/VGEO_MAX_LEVEL_COUNT.d.ts +21 -0
- package/src/shade/renderer/geometry/virtual/format/header/VGEO_MAX_LEVEL_COUNT.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/format/header/VGEO_MAX_LEVEL_COUNT.js +20 -0
- package/src/shade/renderer/geometry/virtual/format/header/VGEO_MIN_READER_VERSION.d.ts +9 -0
- package/src/shade/renderer/geometry/virtual/format/header/VGEO_MIN_READER_VERSION.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/format/header/VGEO_MIN_READER_VERSION.js +10 -1
- package/src/shade/renderer/geometry/virtual/format/page/VGEO_PAGE_OFFSET.d.ts +1 -2
- package/src/shade/renderer/geometry/virtual/format/page/VGEO_PAGE_OFFSET.js +10 -3
- package/src/shade/renderer/geometry/virtual/format/page/VGEO_PAGE_OFFSET_V5.d.ts +20 -0
- package/src/shade/renderer/geometry/virtual/format/page/VGEO_PAGE_OFFSET_V5.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/format/page/VGEO_PAGE_OFFSET_V5.js +43 -0
- package/src/shade/renderer/geometry/virtual/format/payload/vgeo_encode_cluster_payload.d.ts +4 -2
- package/src/shade/renderer/geometry/virtual/format/payload/vgeo_encode_cluster_payload.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/format/payload/vgeo_encode_cluster_payload.js +8 -4
- package/src/shade/renderer/geometry/virtual/format/read/VGeoContainerReader.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/format/read/VGeoContainerReader.js +2 -2
- package/src/shade/renderer/geometry/virtual/format/read/VGeoDirectory.d.ts +6 -4
- package/src/shade/renderer/geometry/virtual/format/read/VGeoDirectory.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/format/read/VGeoDirectory.js +6 -4
- package/src/shade/renderer/geometry/virtual/format/read/VGeoPage.d.ts +13 -2
- package/src/shade/renderer/geometry/virtual/format/read/VGeoPage.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/format/read/VGeoPage.js +13 -2
- package/src/shade/renderer/geometry/virtual/format/read/VGeoPageFetcherCore.d.ts +5 -1
- package/src/shade/renderer/geometry/virtual/format/read/VGeoPageFetcherCore.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/format/read/VGeoPageFetcherCore.js +14 -1
- package/src/shade/renderer/geometry/virtual/format/read/vgeo_page_worker_serve.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/format/read/vgeo_page_worker_serve.js +1 -0
- package/src/shade/renderer/geometry/virtual/format/read/vgeo_read_directory.d.ts +4 -1
- package/src/shade/renderer/geometry/virtual/format/read/vgeo_read_directory.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/format/read/vgeo_read_directory.js +53 -11
- package/src/shade/renderer/geometry/virtual/format/read/vgeo_read_header.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/format/read/vgeo_read_header.js +7 -3
- package/src/shade/renderer/geometry/virtual/format/read/vgeo_read_page.d.ts +12 -2
- package/src/shade/renderer/geometry/virtual/format/read/vgeo_read_page.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/format/read/vgeo_read_page.js +111 -33
- package/src/shade/renderer/geometry/virtual/format/vgeo_validate_container.d.ts +6 -2
- package/src/shade/renderer/geometry/virtual/format/vgeo_validate_container.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/format/vgeo_validate_container.js +112 -42
- package/src/shade/renderer/geometry/virtual/format/vgeo_write_container.d.ts +2 -2
- package/src/shade/renderer/geometry/virtual/format/vgeo_write_container.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/format/vgeo_write_container.js +51 -21
- package/src/shade/renderer/geometry/virtual/runtime/CULL_PLAN_2026_09_16.md +385 -0
- package/src/shade/renderer/geometry/virtual/runtime/VGeoPageFetcher.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/runtime/VGeoPageFetcher.js +9 -0
- package/src/shade/renderer/geometry/virtual/runtime/cut/chunk_vgeo_cut_access.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/runtime/cut/chunk_vgeo_cut_access.js +34 -0
- package/src/shade/renderer/geometry/virtual/runtime/cut/chunk_vgeo_cut_arena.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/runtime/cut/chunk_vgeo_cut_arena.js +18 -0
- package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_traverse.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_traverse.js +47 -19
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_CLUSTER_ROW_OFFSET.d.ts +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_CLUSTER_ROW_OFFSET.js +22 -4
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_CLUSTER_ROW_WORDS.d.ts +7 -2
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_CLUSTER_ROW_WORDS.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_CLUSTER_ROW_WORDS.js +8 -3
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_CUT_STAT.d.ts +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_CUT_STAT.js +10 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_CUT_STAT_COUNT.js +1 -1
- package/src/shade/renderer/geometry/virtual/runtime/vgeo_runtime_page_slot_words.d.ts +13 -11
- package/src/shade/renderer/geometry/virtual/runtime/vgeo_runtime_page_slot_words.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/runtime/vgeo_runtime_page_slot_words.js +13 -11
- package/src/shade/renderer/geometry/virtual/runtime/vgeo_runtime_write_page_block.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/runtime/vgeo_runtime_write_page_block.js +4 -0
- package/src/shade/renderer/global_illumination/sharc/shader/shader_sharc_evict.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/sharc/shader/shader_sharc_evict.js +3 -4
- package/src/shade/renderer/gpu_primitive/indirect/IndirectComputeCommandBuildPass.d.ts +6 -2
- package/src/shade/renderer/gpu_primitive/indirect/IndirectComputeCommandBuildPass.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/indirect/IndirectComputeCommandBuildPass.js +90 -12
- package/src/shade/renderer/gpu_primitive/indirect/WEBGPU_GUARANTEED_MAX_COMPUTE_WORKGROUPS_PER_DIMENSION.d.ts +22 -0
- package/src/shade/renderer/gpu_primitive/indirect/WEBGPU_GUARANTEED_MAX_COMPUTE_WORKGROUPS_PER_DIMENSION.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/indirect/WEBGPU_GUARANTEED_MAX_COMPUTE_WORKGROUPS_PER_DIMENSION.js +21 -0
- package/src/shade/renderer/particles/shaders/shader_particle_emit.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_emit.js +13 -8
- package/src/shade/renderer/particles/shaders/shader_particle_simulate.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_simulate.js +3 -6
- package/src/shade/renderer/rasterize/bucket/prepare_meshlet_draw_commands_by_material.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/bucket/prepare_meshlet_draw_commands_by_material.js +4 -12
- package/src/shade/renderer/rasterize/bucket/shader_read_out_bucket.d.ts +0 -2
- package/src/shade/renderer/rasterize/bucket/shader_read_out_bucket.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/bucket/shader_read_out_bucket.js +4 -5
- package/src/shade/renderer/rasterize/cull/hzb/shader_hzb_mesh_filter_2way.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/cull/hzb/shader_hzb_mesh_filter_2way.js +5 -3
- package/src/shade/renderer/rasterize/cull/hzb/shader_hzb_meshlet_filter_1way.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/cull/hzb/shader_hzb_meshlet_filter_1way.js +11 -4
- package/src/shade/renderer/rasterize/cull/hzb/shader_hzb_meshlet_filter_1way_full.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/cull/hzb/shader_hzb_meshlet_filter_1way_full.js +4 -3
- package/src/shade/renderer/rasterize/expand/bucket/meshlet/graph_sort_meshlets_by_bucket_id.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/bucket/meshlet/graph_sort_meshlets_by_bucket_id.js +3 -0
- package/src/shade/renderer/rasterize/expand/bucket/meshlet/shader_meshlets_count_by_rasterization_bucket.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/bucket/meshlet/shader_meshlets_count_by_rasterization_bucket.js +94 -90
- package/src/shade/renderer/rasterize/expand/bucket/meshlet/shader_meshlets_extract_bucket.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/bucket/meshlet/shader_meshlets_extract_bucket.js +13 -5
- package/src/shade/renderer/rasterize/expand/bucket/meshlet/shader_meshlets_rasterization_bucket_sort.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/bucket/meshlet/shader_meshlets_rasterization_bucket_sort.js +96 -89
- package/src/shade/renderer/rasterize/expand/graph_meshlets_filter_one_way.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/graph_meshlets_filter_one_way.js +3 -1
- package/src/shade/renderer/rasterize/expand/graph_meshlets_filter_two_way.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/graph_meshlets_filter_two_way.js +4 -1
- package/src/shade/renderer/rasterize/expand/mesh/shader_mesh_expand_to_meshlets_prefix.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/mesh/shader_mesh_expand_to_meshlets_prefix.js +100 -89
- package/src/shade/renderer/rasterize/expand/mesh/shader_prefix_sum_to_command.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/mesh/shader_prefix_sum_to_command.js +31 -7
- package/src/shade/renderer/rasterize/expand/pass0/pass_mesh_cull.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/pass0/pass_mesh_cull.js +1 -7
- package/src/shade/renderer/rasterize/expand/pass1/filter_meshlets.2-way.compute.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/pass1/filter_meshlets.2-way.compute.js +161 -153
- package/src/shade/renderer/rasterize/fast/graph_extract_meshes_from_bucket.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/fast/graph_extract_meshes_from_bucket.js +2 -7
- package/src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.js +4 -8
- package/src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.js +5 -8
- package/src/shade/renderer/shadow/map/DEFAULT_SHADOWMAP_UPDATE_BUDGET.d.ts +25 -0
- package/src/shade/renderer/shadow/map/DEFAULT_SHADOWMAP_UPDATE_BUDGET.d.ts.map +1 -0
- package/src/shade/renderer/shadow/map/DEFAULT_SHADOWMAP_UPDATE_BUDGET.js +24 -0
- package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.d.ts +10 -0
- package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.d.ts.map +1 -1
- package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.js +30 -21
- package/src/core/model/node-graph/visual/layout/LayoutBoxGraph.d.ts.map +0 -1
- package/src/core/model/node-graph/visual/layout/layout_assign_coordinates.d.ts.map +0 -1
- package/src/core/model/node-graph/visual/layout/layout_assign_layers.d.ts.map +0 -1
- package/src/core/model/node-graph/visual/layout/layout_break_cycles.d.ts.map +0 -1
- package/src/core/model/node-graph/visual/layout/layout_insert_lanes.d.ts.map +0 -1
- package/src/core/model/node-graph/visual/layout/layout_order_layers.d.ts.map +0 -1
- package/src/core/model/node-graph/visual/layout/layout_orient_links.d.ts.map +0 -1
- package/src/shade/playground/vgeo_viewer/cut_geometry.d.ts +0 -61
- package/src/shade/playground/vgeo_viewer/cut_geometry.d.ts.map +0 -1
- package/src/shade/playground/vgeo_viewer/main.d.ts.map +0 -1
- package/src/shade/playground/vgeo_viewer/sample_asset.d.ts +0 -18
- package/src/shade/playground/vgeo_viewer/sample_asset.d.ts.map +0 -1
- package/src/shade/playground/vgeo_viewer/select_cut.d.ts +0 -173
- package/src/shade/playground/vgeo_viewer/select_cut.d.ts.map +0 -1
- package/src/shade/renderer/geometry/virtual/build/VGeoFaceGraph.d.ts +0 -52
- package/src/shade/renderer/geometry/virtual/build/VGeoFaceGraph.d.ts.map +0 -1
- package/src/shade/renderer/geometry/virtual/build/VGeoGatheredFaces.d.ts +0 -24
- package/src/shade/renderer/geometry/virtual/build/VGeoGatheredFaces.d.ts.map +0 -1
- package/src/shade/renderer/geometry/virtual/build/VGeoLevel.d.ts +0 -32
- package/src/shade/renderer/geometry/virtual/build/VGeoLevel.d.ts.map +0 -1
- package/src/shade/renderer/geometry/virtual/build/VGeoLevelOptions.d.ts +0 -59
- package/src/shade/renderer/geometry/virtual/build/VGeoLevelOptions.d.ts.map +0 -1
- package/src/shade/renderer/geometry/virtual/build/VGeoLevelSummary.d.ts +0 -44
- package/src/shade/renderer/geometry/virtual/build/VGeoLevelSummary.d.ts.map +0 -1
- package/src/shade/renderer/geometry/virtual/build/VGeoSubmesh.d.ts +0 -20
- package/src/shade/renderer/geometry/virtual/build/VGeoSubmesh.d.ts.map +0 -1
- package/src/shade/renderer/geometry/virtual/build/VirtualGeometryMesh.d.ts +0 -73
- package/src/shade/renderer/geometry/virtual/build/VirtualGeometryMesh.d.ts.map +0 -1
- package/src/shade/renderer/geometry/virtual/build/vgeo_assemble_pages.d.ts +0 -13
- package/src/shade/renderer/geometry/virtual/build/vgeo_assemble_pages.d.ts.map +0 -1
- package/src/shade/renderer/geometry/virtual/build/vgeo_bounding_sphere.d.ts +0 -12
- package/src/shade/renderer/geometry/virtual/build/vgeo_bounding_sphere.d.ts.map +0 -1
- package/src/shade/renderer/geometry/virtual/build/vgeo_build_levels.d.ts +0 -36
- package/src/shade/renderer/geometry/virtual/build/vgeo_build_levels.d.ts.map +0 -1
- package/src/shade/renderer/geometry/virtual/build/vgeo_build_page_nodes.d.ts +0 -13
- package/src/shade/renderer/geometry/virtual/build/vgeo_build_page_nodes.d.ts.map +0 -1
- package/src/shade/renderer/geometry/virtual/build/vgeo_build_root_group.d.ts +0 -19
- package/src/shade/renderer/geometry/virtual/build/vgeo_build_root_group.d.ts.map +0 -1
- package/src/shade/renderer/geometry/virtual/build/vgeo_compute_vertex_normals.d.ts +0 -29
- package/src/shade/renderer/geometry/virtual/build/vgeo_compute_vertex_normals.d.ts.map +0 -1
- package/src/shade/renderer/geometry/virtual/build/vgeo_compute_vertex_tangents.d.ts +0 -31
- package/src/shade/renderer/geometry/virtual/build/vgeo_compute_vertex_tangents.d.ts.map +0 -1
- package/src/shade/renderer/geometry/virtual/build/vgeo_containing_sphere.d.ts +0 -18
- package/src/shade/renderer/geometry/virtual/build/vgeo_containing_sphere.d.ts.map +0 -1
- package/src/shade/renderer/geometry/virtual/build/vgeo_extract_submesh.d.ts +0 -14
- package/src/shade/renderer/geometry/virtual/build/vgeo_extract_submesh.d.ts.map +0 -1
- package/src/shade/renderer/geometry/virtual/build/vgeo_gather_faces.d.ts +0 -12
- package/src/shade/renderer/geometry/virtual/build/vgeo_gather_faces.d.ts.map +0 -1
- package/src/shade/renderer/geometry/virtual/build/vgeo_graph_components.d.ts +0 -14
- package/src/shade/renderer/geometry/virtual/build/vgeo_graph_components.d.ts.map +0 -1
- package/src/shade/renderer/geometry/virtual/build/vgeo_narrow_indices.d.ts +0 -11
- package/src/shade/renderer/geometry/virtual/build/vgeo_narrow_indices.d.ts.map +0 -1
- package/src/shade/renderer/geometry/virtual/build/vgeo_normalize_source.d.ts +0 -46
- package/src/shade/renderer/geometry/virtual/build/vgeo_normalize_source.d.ts.map +0 -1
- package/src/shade/renderer/geometry/virtual/build/vgeo_page_node_count.d.ts +0 -22
- package/src/shade/renderer/geometry/virtual/build/vgeo_page_node_count.d.ts.map +0 -1
- package/src/shade/renderer/geometry/virtual/build/vgeo_partition_graph.d.ts +0 -29
- package/src/shade/renderer/geometry/virtual/build/vgeo_partition_graph.d.ts.map +0 -1
- package/src/shade/renderer/geometry/virtual/build/vgeo_sphere_inflate_to_contain.d.ts +0 -9
- package/src/shade/renderer/geometry/virtual/build/vgeo_sphere_inflate_to_contain.d.ts.map +0 -1
- package/src/shade/renderer/geometry/virtual/build/vgeo_split_face_set.d.ts +0 -10
- package/src/shade/renderer/geometry/virtual/build/vgeo_split_face_set.d.ts.map +0 -1
- package/src/shade/renderer/geometry/virtual/build/vgeo_split_face_set_packed.d.ts +0 -15
- package/src/shade/renderer/geometry/virtual/build/vgeo_split_face_set_packed.d.ts.map +0 -1
- package/src/shade/renderer/geometry/virtual/format/attribute/vgeo_layers_copy_vertex.d.ts +0 -16
- package/src/shade/renderer/geometry/virtual/format/attribute/vgeo_layers_copy_vertex.d.ts.map +0 -1
- package/src/shade/renderer/loader/gltf/fix_up_material_sides.d.ts +0 -10
- package/src/shade/renderer/loader/gltf/fix_up_material_sides.d.ts.map +0 -1
- package/src/shade/renderer/rasterize/expand/graph_triangles_filter_by_material_side.d.ts +0 -17
- package/src/shade/renderer/rasterize/expand/graph_triangles_filter_by_material_side.d.ts.map +0 -1
- package/src/shade/renderer/rasterize/expand/shader_filter_triangle_by_material_side.d.ts +0 -3
- package/src/shade/renderer/rasterize/expand/shader_filter_triangle_by_material_side.d.ts.map +0 -1
- package/src/shade/renderer/rasterize/forward/chunk_material_side_should_draw.d.ts +0 -8
- package/src/shade/renderer/rasterize/forward/chunk_material_side_should_draw.d.ts.map +0 -1
- /package/src/core/{model/node-graph/visual/layout → graph/layout/layered}/layout_assign_coordinates.d.ts +0 -0
- /package/src/core/{model/node-graph/visual/layout → graph/layout/layered}/layout_assign_layers.d.ts +0 -0
- /package/src/core/{model/node-graph/visual/layout → graph/layout/layered}/layout_break_cycles.d.ts +0 -0
- /package/src/core/{model/node-graph/visual/layout → graph/layout/layered}/layout_break_cycles.js +0 -0
- /package/src/core/{model/node-graph/visual/layout → graph/layout/layered}/layout_insert_lanes.d.ts +0 -0
- /package/src/core/{model/node-graph/visual/layout → graph/layout/layered}/layout_insert_lanes.js +0 -0
- /package/src/core/{model/node-graph/visual/layout → graph/layout/layered}/layout_order_layers.d.ts +0 -0
- /package/src/core/{model/node-graph/visual/layout → graph/layout/layered}/layout_order_layers.js +0 -0
- /package/src/core/{model/node-graph/visual/layout → graph/layout/layered}/layout_orient_links.d.ts +0 -0
- /package/src/core/{model/node-graph/visual/layout → graph/layout/layered}/layout_orient_links.js +0 -0
- /package/src/shade/playground/{vgeo_viewer → caldera}/main.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph_rasterize_partial_opaque.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"graph_rasterize_partial_opaque.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.js"],"names":[],"mappings":"AAwBA;;;;;;;;;;;;;;;GAeG;AACH,gMAFa;IAAC,eAAe,EAAC,MAAM,CAAC;IAAC,cAAc,EAAC,MAAM,CAAC;IAAC,KAAK,EAAC,MAAM,CAAC;IAAC,aAAa,EAAC,MAAM,EAAE,CAAA;CAAC,CAgMjG"}
|
|
@@ -3,7 +3,6 @@ import { noop } from "../../../../core/function/noop.js";
|
|
|
3
3
|
import { BufferResourceDescriptor } from "../../../device/graph/BufferResourceDescriptor.js";
|
|
4
4
|
import { u32 } from "../../shader/type/WEBGPU_WGSL_PRIMITIVE_TYPES.js";
|
|
5
5
|
import { shader_hzb_mesh_filter_2way } from "../cull/hzb/shader_hzb_mesh_filter_2way.js";
|
|
6
|
-
import { U32_CONTAINER_STRUCT } from "../../shader/type/U32_CONTAINER_STRUCT.js";
|
|
7
6
|
import { ShadeDrawMode } from "../../material/ShadeDrawMode.js";
|
|
8
7
|
import { ShadeDrawSide } from "../../material/ShadeDrawSide.js";
|
|
9
8
|
import { TransparencyMode } from "../../material/TransparencyMode.js";
|
|
@@ -96,16 +95,11 @@ export function graph_rasterize_partial_opaque({
|
|
|
96
95
|
0
|
|
97
96
|
);
|
|
98
97
|
|
|
99
|
-
// TODO(chrome-153): transient uniform, not an immediate value — see the shader.
|
|
100
|
-
const u_bucket_index = encoder.allocateTransientValueBuffer(U32_CONTAINER_STRUCT, {
|
|
101
|
-
value: bucket_index,
|
|
102
|
-
});
|
|
103
|
-
|
|
104
98
|
// split 2 ways
|
|
105
99
|
shader_hzb_mesh_filter_2way.dispatchIndirect({
|
|
106
100
|
encoder,
|
|
107
101
|
bindings: {
|
|
108
|
-
bucket_index:
|
|
102
|
+
bucket_index: { value: bucket_index },
|
|
109
103
|
camera_previous,
|
|
110
104
|
bucket_data: buckets,
|
|
111
105
|
scene_database: scene_ctx.scene_database_buffer,
|
|
@@ -187,7 +181,9 @@ export function graph_rasterize_partial_opaque({
|
|
|
187
181
|
|
|
188
182
|
// ----------
|
|
189
183
|
|
|
190
|
-
|
|
184
|
+
// folded: a meshlet collection is past what one dispatch dimension reaches — see
|
|
185
|
+
// IndirectComputeCommandBuildPass
|
|
186
|
+
const gr_command_iterate_meshlets_0 = graph_build_indirect_dispatch_command(graph, meshlet_expansion_0, COMPUTE_SHADER_DEFAULT_GROUP_SIZE, true);
|
|
191
187
|
|
|
192
188
|
const pass_data_meshlets_1 = new MeshletFilter2WayPassData();
|
|
193
189
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph_rasterize_remaining_opaque.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"graph_rasterize_remaining_opaque.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.js"],"names":[],"mappings":"AA6FA;;;;;;;;;;;;;;;;;GAiBG;AACH,kOAFa;IAAC,KAAK,EAAC,MAAM,CAAC;IAAC,aAAa,EAAC,MAAM,EAAE,CAAA;CAAC,CAkGlD"}
|
|
@@ -9,7 +9,6 @@ import { graph_record_stat } from "../../util/graph_record_stat.js";
|
|
|
9
9
|
import { build_indirect_compute_dispatch_command } from "../../gpu_primitive/indirect/IndirectComputeCommandBuildPass.js";
|
|
10
10
|
import { graph_sort_meshlets_by_bucket_id } from "../expand/bucket/meshlet/graph_sort_meshlets_by_bucket_id.js";
|
|
11
11
|
import { shader_meshlets_extract_bucket } from "../expand/bucket/meshlet/shader_meshlets_extract_bucket.js";
|
|
12
|
-
import { U32_CONTAINER_STRUCT } from "../../shader/type/U32_CONTAINER_STRUCT.js";
|
|
13
12
|
import { graph_mesh_filter_one_way } from "../expand/graph_mesh_filter_one_way.js";
|
|
14
13
|
import { graph_meshlets_filter_one_way } from "../expand/graph_meshlets_filter_one_way.js";
|
|
15
14
|
import { graph_meshlets_rasterize } from "../expand/graph_meshlets_rasterize.js";
|
|
@@ -49,6 +48,8 @@ function graph_extract_meshlets_from_bucket({
|
|
|
49
48
|
|
|
50
49
|
const bucket_id = data.bucket_id;
|
|
51
50
|
|
|
51
|
+
// folded: a meshlet collection is past what one dispatch dimension reaches — see
|
|
52
|
+
// IndirectComputeCommandBuildPass
|
|
52
53
|
build_indirect_compute_dispatch_command(
|
|
53
54
|
COMPUTE_SHADER_DEFAULT_GROUP_SIZE,
|
|
54
55
|
encoder,
|
|
@@ -56,19 +57,15 @@ function graph_extract_meshlets_from_bucket({
|
|
|
56
57
|
// the bucketed buffer header consists of pairs of u32 values (count,offset)
|
|
57
58
|
bucket_id * (u32.size * 2),
|
|
58
59
|
command,
|
|
59
|
-
0
|
|
60
|
+
0,
|
|
61
|
+
true,
|
|
60
62
|
);
|
|
61
63
|
|
|
62
|
-
// TODO(chrome-153): transient uniform, not an immediate value — see the shader.
|
|
63
|
-
const u_bucket_index = encoder.allocateTransientValueBuffer(U32_CONTAINER_STRUCT, {
|
|
64
|
-
value: bucket_id,
|
|
65
|
-
});
|
|
66
|
-
|
|
67
64
|
shader_meshlets_extract_bucket.dispatchIndirect({
|
|
68
65
|
encoder,
|
|
69
66
|
command,
|
|
70
67
|
bindings: {
|
|
71
|
-
bucket_index:
|
|
68
|
+
bucket_index: { value: bucket_id },
|
|
72
69
|
bucket_data: buckets,
|
|
73
70
|
output: output,
|
|
74
71
|
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default per-frame shadow refresh budget, measured in **views** (one cube face counts as one
|
|
3
|
+
* view, one CSM cascade counts as one view, etc.). A point light costs 6 views, a spot light 1, a
|
|
4
|
+
* directional SHADOWMAP_CSM_CASCADE_COUNT. A bigger light consumes more of the budget, which
|
|
5
|
+
* keeps the cost of the refresh step roughly proportional to how much work we're asking the
|
|
6
|
+
* GPU to do — a single point light running the meshlet rasterization pipeline 6 times is
|
|
7
|
+
* equivalent work to 6 spot lights.
|
|
8
|
+
*
|
|
9
|
+
* Directional lights are always refreshed unconditionally (they drive the whole scene) and
|
|
10
|
+
* their view cost is charged against the budget, so they effectively reduce the pool available
|
|
11
|
+
* for local lights that frame.
|
|
12
|
+
*
|
|
13
|
+
* Unused budget is carried over between frames when demand exceeds supply. This lets a light
|
|
14
|
+
* that's too expensive to fit in a single frame (e.g. a point needing 6 views when only 2 are
|
|
15
|
+
* free) eventually get its turn without permanently starving other lights.
|
|
16
|
+
*
|
|
17
|
+
* Only the starting value: what a scene actually spends is
|
|
18
|
+
* {@link GPUSceneShadowmapContext.update_budget}, which the renderer pushes from
|
|
19
|
+
* {@link Renderer.shadow_update_budget} every frame. Raise it to keep more lights current for more
|
|
20
|
+
* raster work per frame, lower it to spend less.
|
|
21
|
+
*
|
|
22
|
+
* @type {number}
|
|
23
|
+
*/
|
|
24
|
+
export const DEFAULT_SHADOWMAP_UPDATE_BUDGET: number;
|
|
25
|
+
//# sourceMappingURL=DEFAULT_SHADOWMAP_UPDATE_BUDGET.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DEFAULT_SHADOWMAP_UPDATE_BUDGET.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/shadow/map/DEFAULT_SHADOWMAP_UPDATE_BUDGET.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,8CAFU,MAAM,CAEiC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default per-frame shadow refresh budget, measured in **views** (one cube face counts as one
|
|
3
|
+
* view, one CSM cascade counts as one view, etc.). A point light costs 6 views, a spot light 1, a
|
|
4
|
+
* directional SHADOWMAP_CSM_CASCADE_COUNT. A bigger light consumes more of the budget, which
|
|
5
|
+
* keeps the cost of the refresh step roughly proportional to how much work we're asking the
|
|
6
|
+
* GPU to do — a single point light running the meshlet rasterization pipeline 6 times is
|
|
7
|
+
* equivalent work to 6 spot lights.
|
|
8
|
+
*
|
|
9
|
+
* Directional lights are always refreshed unconditionally (they drive the whole scene) and
|
|
10
|
+
* their view cost is charged against the budget, so they effectively reduce the pool available
|
|
11
|
+
* for local lights that frame.
|
|
12
|
+
*
|
|
13
|
+
* Unused budget is carried over between frames when demand exceeds supply. This lets a light
|
|
14
|
+
* that's too expensive to fit in a single frame (e.g. a point needing 6 views when only 2 are
|
|
15
|
+
* free) eventually get its turn without permanently starving other lights.
|
|
16
|
+
*
|
|
17
|
+
* Only the starting value: what a scene actually spends is
|
|
18
|
+
* {@link GPUSceneShadowmapContext.update_budget}, which the renderer pushes from
|
|
19
|
+
* {@link Renderer.shadow_update_budget} every frame. Raise it to keep more lights current for more
|
|
20
|
+
* raster work per frame, lower it to spend less.
|
|
21
|
+
*
|
|
22
|
+
* @type {number}
|
|
23
|
+
*/
|
|
24
|
+
export const DEFAULT_SHADOWMAP_UPDATE_BUDGET = 8;
|
|
@@ -50,6 +50,16 @@ export class GPUSceneShadowmapContext {
|
|
|
50
50
|
* @type {boolean}
|
|
51
51
|
*/
|
|
52
52
|
use_tetrahedron_point_shadows: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* @param {number} v views per frame, at least one. A higher budget keeps more lights current
|
|
55
|
+
* and rasterizes more per frame; a lower one refreshes fewer of them per frame and
|
|
56
|
+
* leaves the rest sampling older depth until their turn comes around.
|
|
57
|
+
*/
|
|
58
|
+
set update_budget(v: number);
|
|
59
|
+
/**
|
|
60
|
+
* @returns {number} views this scene may spend refreshing shadowmaps each frame
|
|
61
|
+
*/
|
|
62
|
+
get update_budget(): number;
|
|
53
63
|
/**
|
|
54
64
|
* @returns {number} number of shadowmaps rasterized in the most recent draw pass
|
|
55
65
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GPUSceneShadowmapContext.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/shadow/map/GPUSceneShadowmapContext.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GPUSceneShadowmapContext.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/shadow/map/GPUSceneShadowmapContext.js"],"names":[],"mappings":"AAsFA;;GAEG;AACH;IAgPI;;;;;;;;OAQG;IACH,sBAPW,eAAe,aACf,eAAe,SAGf,kBAAkB,EA+D5B;IApTD,2BAAwG;IAExG;;;OAGG;IACH,SAFU,iBAAiB,CAEnB;IAQR;;;;;;;;OAQG;IACH,qBAFU,WAAW,CAED;IAsCpB;;;;;;;;OAQG;IACH,SAFU,OAAO,CAEF;IAEf;;;;;;;;;;OAUG;IACH,+BAFU,OAAO,CAEqB;IA2BtC;;;;OAIG;IACH,6BAIC;IAhBD;;OAEG;IACH,4BAEC;IA8ED;;OAEG;IACH,iCAEC;IAED;;;;;;OAMG;IACH,oCAEC;IAED;;;;;OAKG;IACH,oCAEC;IAkGD;;;;;OAKG;IACH,iCAMC;IAgHD;;;;OAIG;IACH,eAHW,KAAK,GACH,SAAS,GAAC,SAAS,CAI/B;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2CG;IACH,6BAPW,MAAM,SAEN,eAAe,eACf,MAAM,mBACN,UAAU,MAAM,CAAC,QAgE3B;IAyED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,kBAFW,sBAAsB,QAsFhC;IAsbD;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,kBALa,OAAO,CAwOnB;IAED;;;;OAIG;IACH,iBAHW,MAAM,GACJ,KAAK,CAWjB;IAED,gBAiBC;;CACJ;qCAn9CY,OAAO,2CAA2C,EAAE,sBAAsB;8BAC1E,OAAO,0BAA0B,EAAE,eAAe;qBAClD,OAAO,wBAAwB,EAAE,MAAM;iCACvC,OAAO,mCAAmC,EAAE,kBAAkB;oBAC9D,OAAO,4BAA4B,EAAE,KAAK;8BAC1C,OAAO,gCAAgC,EAAE,eAAe;wBACxD,OAAO,gBAAgB,EAAE,SAAS;oCA9DX,+DAA+D;kCAkBjE,oCAAoC;4BAG1C,2BAA2B;kBAtBrC,wCAAwC"}
|
|
@@ -30,6 +30,7 @@ import {
|
|
|
30
30
|
shader_csm_caster_range_accumulate,
|
|
31
31
|
shader_csm_caster_range_publish,
|
|
32
32
|
} from "./csm/shader/shader_csm_caster_range.js";
|
|
33
|
+
import { DEFAULT_SHADOWMAP_UPDATE_BUDGET } from "./DEFAULT_SHADOWMAP_UPDATE_BUDGET.js";
|
|
33
34
|
import { DirectionalLightShadowmap } from "./DirectionalLightShadowmap.js";
|
|
34
35
|
import { POINT_SHADOW_CUBE_COLS, POINT_SHADOW_CUBE_ROWS } from "./POINT_SHADOW_CUBE_LAYOUT.js";
|
|
35
36
|
import {
|
|
@@ -83,26 +84,6 @@ const DEFAULT_SHADOWMAP_DIRECTIONAL_RESOLUTION = [
|
|
|
83
84
|
*/
|
|
84
85
|
const DEFAULT_SHADOWMAP_LOCAL_RESOLUTION = 128;
|
|
85
86
|
|
|
86
|
-
/**
|
|
87
|
-
* Per-frame shadow refresh budget, measured in **views** (one cube face counts as one view,
|
|
88
|
-
* one CSM cascade counts as one view, etc.). A point light costs 6 views, a spot light 1, a
|
|
89
|
-
* directional SHADOWMAP_CSM_CASCADE_COUNT. A bigger light consumes more of the budget, which
|
|
90
|
-
* keeps the cost of the refresh step roughly proportional to how much work we're asking the
|
|
91
|
-
* GPU to do — a single point light running the meshlet rasterization pipeline 6 times is
|
|
92
|
-
* equivalent work to 6 spot lights.
|
|
93
|
-
*
|
|
94
|
-
* Directional lights are always refreshed unconditionally (they drive the whole scene) and
|
|
95
|
-
* their view cost is charged against the budget, so they effectively reduce the pool available
|
|
96
|
-
* for local lights that frame.
|
|
97
|
-
*
|
|
98
|
-
* Unused budget is carried over between frames when demand exceeds supply — see
|
|
99
|
-
* {@link GPUSceneShadowmapContext.#budget_carry_over}. This lets a light that's too expensive
|
|
100
|
-
* to fit in a single frame (e.g. a point needing 6 views when only 2 are free) eventually get
|
|
101
|
-
* its turn without permanently starving other lights.
|
|
102
|
-
* @type {number}
|
|
103
|
-
*/
|
|
104
|
-
const SHADOWMAP_UPDATE_BUDGET = 8;
|
|
105
|
-
|
|
106
87
|
/**
|
|
107
88
|
* Shadows for a single scene
|
|
108
89
|
*/
|
|
@@ -200,6 +181,34 @@ export class GPUSceneShadowmapContext {
|
|
|
200
181
|
*/
|
|
201
182
|
#current_frame_index = -1;
|
|
202
183
|
|
|
184
|
+
/**
|
|
185
|
+
* Per-frame refresh budget in views, spent by {@link select_for_draw} on top of
|
|
186
|
+
* {@link #budget_carry_over}. Defaults to {@link DEFAULT_SHADOWMAP_UPDATE_BUDGET}, which is
|
|
187
|
+
* also where the view accounting is written down; the renderer pushes its own
|
|
188
|
+
* {@link Renderer.shadow_update_budget} here before each frame's light update, alongside
|
|
189
|
+
* {@link enabled}.
|
|
190
|
+
* @type {number}
|
|
191
|
+
*/
|
|
192
|
+
#update_budget = DEFAULT_SHADOWMAP_UPDATE_BUDGET;
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* @returns {number} views this scene may spend refreshing shadowmaps each frame
|
|
196
|
+
*/
|
|
197
|
+
get update_budget() {
|
|
198
|
+
return this.#update_budget;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* @param {number} v views per frame, at least one. A higher budget keeps more lights current
|
|
203
|
+
* and rasterizes more per frame; a lower one refreshes fewer of them per frame and
|
|
204
|
+
* leaves the rest sampling older depth until their turn comes around.
|
|
205
|
+
*/
|
|
206
|
+
set update_budget(v) {
|
|
207
|
+
assert.isPositiveInteger(v, 'update_budget');
|
|
208
|
+
|
|
209
|
+
this.#update_budget = v;
|
|
210
|
+
}
|
|
211
|
+
|
|
203
212
|
/**
|
|
204
213
|
* View-budget surplus carried forward from prior frames. Accumulates whenever we had
|
|
205
214
|
* non-directional candidates that couldn't fit in the per-frame budget (i.e. a point light
|
|
@@ -602,7 +611,7 @@ export class GPUSceneShadowmapContext {
|
|
|
602
611
|
// Steps 4 and 5: score every map and greedy-fill the view budget in score order. See
|
|
603
612
|
// ShadowmapDrawSelector for why this is a heap drain rather than a sort — the budget
|
|
604
613
|
// consumes a handful of winners out of however many candidates the scene has.
|
|
605
|
-
const budget_total =
|
|
614
|
+
const budget_total = this.#update_budget + this.#budget_carry_over;
|
|
606
615
|
const selector = this.#selector;
|
|
607
616
|
|
|
608
617
|
selector.select(shadowmaps, frame_index, budget_total);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LayoutBoxGraph.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/model/node-graph/visual/layout/LayoutBoxGraph.js"],"names":[],"mappings":"AAEA;;;GAGG;AACH,8BAFU,MAAM,CAEiB;AAEjC;;;;;;;;GAQG;AACH,8BAFU,MAAM,CAEiB;AAEjC;;;;;;;;;;;;;;;;;;;GAmBG;AACH;IAyFI;;;OAGG;IACH,wBAHW,MAAM,eACN,MAAM,EAIhB;IA7FD;;OAEG;IACH,WAFU,MAAM,CAEF;IAEd;;;OAGG;IACH,OAFU,YAAY,CAEhB;IAEN;;;OAGG;IACH,OAFU,YAAY,CAEhB;IAEN;;OAEG;IACH,OAFU,YAAY,CAEhB;IAEN;;OAEG;IACH,OAFU,YAAY,CAEhB;IAEN;;;OAGG;IACH,WAFU,UAAU,CAEV;IAEV;;;OAGG;IACH,UAFU,UAAU,CAEX;IAET;;OAEG;IACH,YAFU,MAAM,CAED;IAEf;;OAEG;IACH,WAFU,UAAU,CAEV;IAEV;;OAEG;IACH,SAFU,UAAU,CAEZ;IAER;;;OAGG;IACH,aAFU,YAAY,CAEV;IAEZ;;;OAGG;IACH,WAFU,YAAY,CAEZ;IAEV;;;OAGG;IACH,YAFU,UAAU,CAET;IAEX;;OAEG;IACH,UAFU,UAAU,CAEX;IAET;;OAEG;IACH,WAFU,UAAU,CAEV;IAEV;;OAEG;IACH,SAFU,UAAU,CAEZ;IAUR;;;;;;;;;OASG;IACH,kBAJW,MAAM,cACN,MAAM,GACJ,IAAI,CAwBhB;IAED;;;;;;OAMG;IACH,eANW,MAAM,SACN,MAAM,UACN,MAAM,QACN,MAAM,GACJ,IAAI,CAMhB;IAED;;;;;;;OAOG;IACH,gBAPW,MAAM,QACN,MAAM,MACN,MAAM,UACN,MAAM,QACN,MAAM,GACJ,IAAI,CAOhB;IAED;;;;;;;;OAQG;IACH,mBAFa,IAAI,CAsChB;IAED;;;OAGG;IACH,gBAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;OAGG;IACH,eAHW,MAAM,GACJ,MAAM,CAIlB;CACJ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"layout_assign_coordinates.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/model/node-graph/visual/layout/layout_assign_coordinates.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,8EAVW,MAAM,SACN,UAAU,QACV,UAAU,eACV,UAAU,oCAER;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CAgC3C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"layout_assign_layers.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/model/node-graph/visual/layout/layout_assign_layers.js"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,sEAPW,UAAU,GAER,MAAM,CAsDlB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"layout_break_cycles.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/model/node-graph/visual/layout/layout_break_cycles.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,4DANa,UAAU,CAmOtB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"layout_insert_lanes.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/model/node-graph/visual/layout/layout_insert_lanes.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,yEARW,UAAU,GAGR,MAAM,CA8ElB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"layout_order_layers.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/model/node-graph/visual/layout/layout_order_layers.js"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wEATW,MAAM,UACN,MAAM,GACJ;IAAC,KAAK,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,WAAW,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAC,CAyJ7F"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"layout_orient_links.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/model/node-graph/visual/layout/layout_orient_links.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,qEANW,UAAU,GACR,MAAM,CAkClB"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Decode the selected clusters into one geometry.
|
|
3
|
-
*
|
|
4
|
-
* @param {VGeoCut} cut
|
|
5
|
-
* @param {VGEO_COLOR_MODE} color_mode
|
|
6
|
-
* @returns {VGeoCutGeometry}
|
|
7
|
-
*/
|
|
8
|
-
export function vgeo_build_cut_geometry(cut: VGeoCut, color_mode: VGEO_COLOR_MODE): VGeoCutGeometry;
|
|
9
|
-
/**
|
|
10
|
-
* What a cluster's colour is keyed on.
|
|
11
|
-
*
|
|
12
|
-
* The two normal modes are not keyed on the cluster at all: they paint every vertex with its own
|
|
13
|
-
* direction, and the cluster boundaries go with it. `stored normal` is the container's own
|
|
14
|
-
* {@link VGEO_ATTRIBUTE.NORMAL }, decoded out of the payload — the only mode that shows an attribute
|
|
15
|
-
* the file carries rather than something derived from it. `geometric normal` is the area-weighted
|
|
16
|
-
* normal of the decoded triangles, which is what every other mode shades with. The pair is the
|
|
17
|
-
* point: they agree where the builder's normals still describe the geometry it shipped, and a source
|
|
18
|
-
* with no normals at all makes the first one flat.
|
|
19
|
-
*
|
|
20
|
-
* `clamp` is the streaming one: it paints the clusters a coarser page is standing in for, so the
|
|
21
|
-
* regions still waiting on bytes are visible as regions rather than as a number in a panel.
|
|
22
|
-
*/
|
|
23
|
-
export type VGEO_COLOR_MODE = string;
|
|
24
|
-
export namespace VGEO_COLOR_MODE {
|
|
25
|
-
let Cluster: string;
|
|
26
|
-
let Group: string;
|
|
27
|
-
let Page: string;
|
|
28
|
-
let Level: string;
|
|
29
|
-
let Error: string;
|
|
30
|
-
let Clamp: string;
|
|
31
|
-
let StoredNormal: string;
|
|
32
|
-
let GeometricNormal: string;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* A cut, decoded into one geometry.
|
|
36
|
-
*
|
|
37
|
-
* Nothing about it depends on where the camera is: the mesh is drawn solid and the depth buffer
|
|
38
|
-
* orders it, so the triangle list is uploaded once when the cut is taken and never touched again.
|
|
39
|
-
*/
|
|
40
|
-
export class VGeoCutGeometry {
|
|
41
|
-
/**
|
|
42
|
-
* Position and colour, indexed by {@link triangles}.
|
|
43
|
-
* @type {Geometry}
|
|
44
|
-
*/
|
|
45
|
-
geometry: Geometry;
|
|
46
|
-
/**
|
|
47
|
-
* `3 · triangle_count` — the full triangle list, in cluster order, and the geometry's index.
|
|
48
|
-
* @type {Uint32Array}
|
|
49
|
-
*/
|
|
50
|
-
triangles: Uint32Array;
|
|
51
|
-
/**
|
|
52
|
-
* @type {number}
|
|
53
|
-
*/
|
|
54
|
-
triangle_count: number;
|
|
55
|
-
/**
|
|
56
|
-
* @type {number}
|
|
57
|
-
*/
|
|
58
|
-
vertex_count: number;
|
|
59
|
-
}
|
|
60
|
-
import { Geometry } from "../../renderer/geometry/Geometry.js";
|
|
61
|
-
//# sourceMappingURL=cut_geometry.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cut_geometry.d.ts","sourceRoot":"","sources":["../../../../../src/shade/playground/vgeo_viewer/cut_geometry.js"],"names":[],"mappings":"AAqOA;;;;;;GAMG;AACH,kEAHW,eAAe,GACb,eAAe,CAsM3B;;;;;;;;;;;;;;;8BArXS,MAAM;;;;;;;;;;;AA4IhB;;;;;GAKG;AACH;IACI;;;OAGG;IACH,UAFU,QAAQ,CAEQ;IAE1B;;;OAGG;IACH,WAFU,WAAW,CAEU;IAE/B;;OAEG;IACH,gBAFU,MAAM,CAEG;IAEnB;;OAEG;IACH,cAFU,MAAM,CAEC;CACpB;yBA5NwB,qCAAqC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../../../src/shade/playground/vgeo_viewer/main.js"],"names":[],"mappings":""}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Build a sample container and hand back a source over it.
|
|
3
|
-
*
|
|
4
|
-
* The page size is deliberately far below the 256 KB default: a sample that came out as one page
|
|
5
|
-
* would be a container with nothing to stream, and the point of opening this one is to watch it
|
|
6
|
-
* arrive.
|
|
7
|
-
*
|
|
8
|
-
* @param {number} [major]
|
|
9
|
-
* @param {number} [minor]
|
|
10
|
-
* @param {number} [page_size] target decoded bytes per page
|
|
11
|
-
* @returns {{source: VGeoByteSource, build_ms: number}}
|
|
12
|
-
*/
|
|
13
|
-
export function vgeo_sample_source(major?: number, minor?: number, page_size?: number): {
|
|
14
|
-
source: VGeoByteSource;
|
|
15
|
-
build_ms: number;
|
|
16
|
-
};
|
|
17
|
-
import { VGeoByteSource } from "../../renderer/geometry/virtual/format/read/VGeoByteSource.js";
|
|
18
|
-
//# sourceMappingURL=sample_asset.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sample_asset.d.ts","sourceRoot":"","sources":["../../../../../src/shade/playground/vgeo_viewer/sample_asset.js"],"names":[],"mappings":"AA0GA;;;;;;;;;;;GAWG;AACH,2CALW,MAAM,UACN,MAAM,cACN,MAAM,GACJ;IAAC,MAAM,EAAE,cAAc,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAC,CAiBtD;+BA1HM,+DAA+D"}
|
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Select the cut for a view from whatever the reader currently holds.
|
|
3
|
-
*
|
|
4
|
-
* A traversal rather than a flat pass over every cluster, per design §4 — and it gets the cut rule's
|
|
5
|
-
* first half for free. The rule is `project(parent) > τ AND project(self) ≤ τ`; a group is only ever
|
|
6
|
-
* reached by descending *through* the cluster whose step consumed it, and that descent happened
|
|
7
|
-
* precisely because the step projected above τ. Every cluster of a group shares that step's sphere
|
|
8
|
-
* and error, so the parent test is satisfied by the act of arriving.
|
|
9
|
-
*
|
|
10
|
-
* The residency clamp is the live one here, and it is the reason a cut can be taken at all before
|
|
11
|
-
* the file has finished arriving: a cluster that wants a page nobody has is drawn as it stands.
|
|
12
|
-
*
|
|
13
|
-
* @param {VGeoContainerReader} reader
|
|
14
|
-
* @param {VGeoCutView} view
|
|
15
|
-
* @returns {VGeoCut}
|
|
16
|
-
*/
|
|
17
|
-
export function vgeo_select_cut(reader: VGeoContainerReader, view: VGeoCutView): VGeoCut;
|
|
18
|
-
/**
|
|
19
|
-
* Selecting a cut from a partially resident container.
|
|
20
|
-
*
|
|
21
|
-
* The traversal itself is the runtime's rule, not a debug approximation of it: descend the page
|
|
22
|
-
* graph from the root's parentless groups, refine a cluster whose error projects above τ, take it
|
|
23
|
-
* when it does not. What this file adds is the part a whole-file reader never has to think about —
|
|
24
|
-
* what to do when the page a refinement wants is not here.
|
|
25
|
-
*
|
|
26
|
-
* The answer is the format's (`VGEO_FORMAT.md` §10): **draw the coarser cluster and say so**. The
|
|
27
|
-
* result is a genuine surface — watertight, correct, merely coarser in that region — and the want it
|
|
28
|
-
* records carries the exact byte range that would refine it. That is what makes streaming safe in
|
|
29
|
-
* any arrival order, and it is why this file's most interesting number is `clamped`.
|
|
30
|
-
*
|
|
31
|
-
* "Not here" is `VGeoContainerReader.is_selectable`, not `is_resident`, and the difference is the
|
|
32
|
-
* one thing about this traversal that is not obvious: a group is refined into only once every page
|
|
33
|
-
* holding one of its *parents* is installed. Residency alone lets a group be entered through the
|
|
34
|
-
* parents that arrived while a coarse cluster still covers the one that did not, and then both are
|
|
35
|
-
* drawn over the same surface. §10 calls that out by name — "no holes **and no double-draw**, in any
|
|
36
|
-
* arrival order" — and the second half is the one that fails silently.
|
|
37
|
-
*
|
|
38
|
-
* @author Alex Goldring
|
|
39
|
-
* @copyright Company Named Limited (c) 2026
|
|
40
|
-
*/
|
|
41
|
-
/**
|
|
42
|
-
* The view a cut is selected for. `VIRTUAL_GEOMETRY_DESIGN.md` §4: a cut is selected at one camera's
|
|
43
|
-
* distances and pixel budget, and is the wrong cut for any other.
|
|
44
|
-
*/
|
|
45
|
-
export class VGeoCutView {
|
|
46
|
-
/**
|
|
47
|
-
* Camera position, object space — the viewer draws at identity, so world and object agree.
|
|
48
|
-
* @type {Float32Array}
|
|
49
|
-
*/
|
|
50
|
-
eye: Float32Array;
|
|
51
|
-
/**
|
|
52
|
-
* Pixels of permitted error. The one quality dial.
|
|
53
|
-
* @type {number}
|
|
54
|
-
*/
|
|
55
|
-
tau: number;
|
|
56
|
-
/**
|
|
57
|
-
* Height of the render target, in pixels — the projection's numerator.
|
|
58
|
-
* @type {number}
|
|
59
|
-
*/
|
|
60
|
-
screen_height: number;
|
|
61
|
-
/**
|
|
62
|
-
* @type {number}
|
|
63
|
-
*/
|
|
64
|
-
fov_y: number;
|
|
65
|
-
/**
|
|
66
|
-
* @type {boolean}
|
|
67
|
-
*/
|
|
68
|
-
cull_enabled: boolean;
|
|
69
|
-
/**
|
|
70
|
-
* Six normalized world-space planes, as {@link Camera.frustum} holds them.
|
|
71
|
-
* @type {Float32Array}
|
|
72
|
-
*/
|
|
73
|
-
frustum: Float32Array;
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* What one traversal came to, including what it had to look at to get there and what it could not
|
|
77
|
-
* reach.
|
|
78
|
-
*
|
|
79
|
-
* A cut holds the {@link VGeoPage} objects it selected from rather than page indices, so it stays
|
|
80
|
-
* drawable across an eviction: the bytes it needs are reachable from the cut itself. Nothing here
|
|
81
|
-
* goes stale because residency moved under it.
|
|
82
|
-
*/
|
|
83
|
-
export class VGeoCut {
|
|
84
|
-
/**
|
|
85
|
-
* The page each selected cluster came from, parallel to {@link clusters}.
|
|
86
|
-
* @type {VGeoPage[]}
|
|
87
|
-
*/
|
|
88
|
-
pages: VGeoPage[];
|
|
89
|
-
/**
|
|
90
|
-
* Selected clusters, as indices within the page at the same position of {@link pages}. There is
|
|
91
|
-
* no global cluster id in the format and none in the reader; a cluster is a page and an index.
|
|
92
|
-
* @type {number[]}
|
|
93
|
-
*/
|
|
94
|
-
clusters: number[];
|
|
95
|
-
/**
|
|
96
|
-
* @type {number}
|
|
97
|
-
*/
|
|
98
|
-
triangle_count: number;
|
|
99
|
-
/**
|
|
100
|
-
* @type {number}
|
|
101
|
-
*/
|
|
102
|
-
vertex_count: number;
|
|
103
|
-
/**
|
|
104
|
-
* @type {number}
|
|
105
|
-
*/
|
|
106
|
-
groups_visited: number;
|
|
107
|
-
/**
|
|
108
|
-
* @type {number}
|
|
109
|
-
*/
|
|
110
|
-
clusters_tested: number;
|
|
111
|
-
/**
|
|
112
|
-
* Clusters whose subtree the frustum threw away, which is a whole region rather than one
|
|
113
|
-
* cluster — the reason culling belongs in the traversal and not after it.
|
|
114
|
-
* @type {number}
|
|
115
|
-
*/
|
|
116
|
-
culled: number;
|
|
117
|
-
/**
|
|
118
|
-
* Clusters that projected above τ and were drawn anyway, because the page holding their
|
|
119
|
-
* refinement is not resident.
|
|
120
|
-
*
|
|
121
|
-
* **This is the number that says a cut is still arriving.** Zero means the cut on screen is the
|
|
122
|
-
* one the container's own metric selects for this view; anything above it means part of the
|
|
123
|
-
* surface is standing in for something finer, and {@link wants} says exactly what to fetch to
|
|
124
|
-
* fix it.
|
|
125
|
-
*
|
|
126
|
-
* @type {number}
|
|
127
|
-
*/
|
|
128
|
-
clamped: number;
|
|
129
|
-
/**
|
|
130
|
-
* Of those, the ones whose child group's page is **here** and merely not selectable yet, because
|
|
131
|
-
* a page holding one of that group's other parents is not.
|
|
132
|
-
*
|
|
133
|
-
* They carry no want: there is nothing to fetch from a cluster that already has the bytes it
|
|
134
|
-
* points at. What unblocks them is elsewhere in the same cut — the cluster clamped directly
|
|
135
|
-
* against the missing page — so this number is not a second streaming frontier, it is how much
|
|
136
|
-
* of the coarseness on screen is the ancestor rule holding a group back rather than bandwidth.
|
|
137
|
-
*
|
|
138
|
-
* @type {number}
|
|
139
|
-
*/
|
|
140
|
-
clamped_on_activation: number;
|
|
141
|
-
/**
|
|
142
|
-
* Which clusters those were, keyed `page · 65536 + cluster`. What the panel counts, a display
|
|
143
|
-
* can paint — so the regions still waiting on bytes are visible as regions.
|
|
144
|
-
* @type {Set<number>}
|
|
145
|
-
*/
|
|
146
|
-
clamped_keys: Set<number>;
|
|
147
|
-
/**
|
|
148
|
-
* Clusters whose `child_ref` names an entry outside their page's child table.
|
|
149
|
-
*
|
|
150
|
-
* Impossible in a file the validator accepts, and reachable here precisely because validation is
|
|
151
|
-
* off by default — so it is counted and the cluster is drawn as a leaf, rather than read out of
|
|
152
|
-
* bounds or thrown out of a traversal that was two thirds of the way to a picture.
|
|
153
|
-
*
|
|
154
|
-
* @type {number}
|
|
155
|
-
*/
|
|
156
|
-
broken_child_refs: number;
|
|
157
|
-
/**
|
|
158
|
-
* The pages this cut would need to stop being clamped, one entry per page, most wanted first.
|
|
159
|
-
* @type {VGeoPageWant[]}
|
|
160
|
-
*/
|
|
161
|
-
wants: VGeoPageWant[];
|
|
162
|
-
/**
|
|
163
|
-
* Distinct pages the traversal read from.
|
|
164
|
-
* @type {number}
|
|
165
|
-
*/
|
|
166
|
-
pages_touched: number;
|
|
167
|
-
/**
|
|
168
|
-
* @type {number}
|
|
169
|
-
*/
|
|
170
|
-
duration_ms: number;
|
|
171
|
-
}
|
|
172
|
-
import { VGeoPageWant } from "../../renderer/geometry/virtual/format/read/VGeoPageWant.js";
|
|
173
|
-
//# sourceMappingURL=select_cut.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"select_cut.d.ts","sourceRoot":"","sources":["../../../../../src/shade/playground/vgeo_viewer/select_cut.js"],"names":[],"mappings":"AAsPA;;;;;;;;;;;;;;;GAeG;AACH,mEAHW,WAAW,GACT,OAAO,CAgKnB;AA5ZD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;;GAGG;AACH;IACI;;;OAGG;IACH,KAFU,YAAY,CAEI;IAE1B;;;OAGG;IACH,KAFU,MAAM,CAER;IAER;;;OAGG;IACH,eAFU,MAAM,CAEK;IAErB;;OAEG;IACH,OAFU,MAAM,CAEQ;IAExB;;OAEG;IACH,cAFU,OAAO,CAEI;IAErB;;;OAGG;IACH,SAFU,YAAY,CAES;CAClC;AAED;;;;;;;GAOG;AACH;IACI;;;OAGG;IACH,OAFU,UAAU,CAET;IAEX;;;;OAIG;IACH,UAFU,MAAM,EAAE,CAEJ;IAEd;;OAEG;IACH,gBAFU,MAAM,CAEG;IAEnB;;OAEG;IACH,cAFU,MAAM,CAEC;IAEjB;;OAEG;IACH,gBAFU,MAAM,CAEG;IAEnB;;OAEG;IACH,iBAFU,MAAM,CAEI;IAEpB;;;;OAIG;IACH,QAFU,MAAM,CAEL;IAEX;;;;;;;;;;OAUG;IACH,SAFU,MAAM,CAEJ;IAEZ;;;;;;;;;;OAUG;IACH,uBAFU,MAAM,CAEU;IAE1B;;;;OAIG;IACH,cAFU,IAAI,MAAM,CAAC,CAEI;IAEzB;;;;;;;;OAQG;IACH,mBAFU,MAAM,CAEM;IAEtB;;;OAGG;IACH,OAFU,YAAY,EAAE,CAEb;IAEX;;;OAGG;IACH,eAFU,MAAM,CAEE;IAElB;;OAEG;IACH,aAFU,MAAM,CAEA;CACnB;6BAjLM,6DAA6D"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
export class VGeoFaceGraph {
|
|
2
|
-
/**
|
|
3
|
-
* @param {BinaryTopology} mesh
|
|
4
|
-
* @param {BinaryTopologyFaceGraph} face_graph
|
|
5
|
-
*/
|
|
6
|
-
constructor(mesh: BinaryTopology, face_graph: BinaryTopologyFaceGraph);
|
|
7
|
-
/**
|
|
8
|
-
* @type {BinaryTopology}
|
|
9
|
-
*/
|
|
10
|
-
mesh: BinaryTopology;
|
|
11
|
-
/**
|
|
12
|
-
* CSR over dense face-graph vertices; edge weights are shared-edge counts.
|
|
13
|
-
* @type {MetisGraph}
|
|
14
|
-
*/
|
|
15
|
-
graph: MetisGraph;
|
|
16
|
-
/**
|
|
17
|
-
* `vertex_face_ids[dense] = face id`.
|
|
18
|
-
* @type {Uint32Array}
|
|
19
|
-
*/
|
|
20
|
-
vertex_face_ids: Uint32Array;
|
|
21
|
-
/**
|
|
22
|
-
* Scratch stamp for unique-vertex counting, one entry per mesh vertex slot.
|
|
23
|
-
* @type {Int32Array}
|
|
24
|
-
*/
|
|
25
|
-
vertex_stamp: Int32Array;
|
|
26
|
-
/**
|
|
27
|
-
* Monotonic stamp value, so the scratch never needs clearing.
|
|
28
|
-
* @type {number}
|
|
29
|
-
*/
|
|
30
|
-
stamp: number;
|
|
31
|
-
/**
|
|
32
|
-
* Scratch `graph vertex -> its position in the member list being split right now`, one entry per
|
|
33
|
-
* graph vertex. Only the entries of that member list mean anything, which is all
|
|
34
|
-
* {@link vgeo_split_face_set}'s partition step ever reads: it consults this exclusively for
|
|
35
|
-
* neighbours the membership stamp has already confirmed are members.
|
|
36
|
-
*
|
|
37
|
-
* Dense rather than a `Map` because the keys are dense face-graph vertices to begin with, and
|
|
38
|
-
* because a `Map` cannot answer this question at all past 2^24 entries — the leaf cut runs over
|
|
39
|
-
* every face of the mesh at once, so a mesh of more than 16.7M triangles in one connected
|
|
40
|
-
* component would otherwise stop the builder dead.
|
|
41
|
-
* @type {Uint32Array}
|
|
42
|
-
*/
|
|
43
|
-
member_index: Uint32Array;
|
|
44
|
-
/**
|
|
45
|
-
* How many distinct mesh vertices a set of dense face-graph vertices touches.
|
|
46
|
-
*
|
|
47
|
-
* @param {number[]|Int32Array} members dense face-graph vertices
|
|
48
|
-
* @returns {number}
|
|
49
|
-
*/
|
|
50
|
-
count_unique_vertices(members: number[] | Int32Array): number;
|
|
51
|
-
}
|
|
52
|
-
//# sourceMappingURL=VGeoFaceGraph.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VGeoFaceGraph.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/geometry/virtual/build/VGeoFaceGraph.js"],"names":[],"mappings":"AAcA;IA4CI;;;OAGG;IACH,uEAMC;IArDD;;OAEG;IACH,qBAAY;IAEZ;;;OAGG;IACH,kBAAa;IAEb;;;OAGG;IACH,iBAFU,WAAW,CAEE;IAEvB;;;OAGG;IACH,cAFU,UAAU,CAEA;IAEpB;;;OAGG;IACH,OAFU,MAAM,CAEN;IAEV;;;;;;;;;;;OAWG;IACH,cAFU,WAAW,CAED;IAcpB;;;;;OAKG;IACH,+BAHW,MAAM,EAAE,GAAC,UAAU,GACjB,MAAM,CA2BlB;CACJ"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A face set gathered into standalone, locally-indexed form.
|
|
3
|
-
*
|
|
4
|
-
* @author Alex Goldring
|
|
5
|
-
* @copyright Company Named Limited (c) 2026
|
|
6
|
-
*/
|
|
7
|
-
export class VGeoGatheredFaces {
|
|
8
|
-
/**
|
|
9
|
-
* `3 * vertex_count` local coordinates.
|
|
10
|
-
* @type {Float32Array}
|
|
11
|
-
*/
|
|
12
|
-
positions: Float32Array;
|
|
13
|
-
/**
|
|
14
|
-
* `3 * triangle_count` local vertex indices.
|
|
15
|
-
* @type {Uint32Array}
|
|
16
|
-
*/
|
|
17
|
-
indices: Uint32Array;
|
|
18
|
-
/**
|
|
19
|
-
* Vertex ids in the mesh this was pulled out of, one per local vertex, in first-use order.
|
|
20
|
-
* @type {Uint32Array}
|
|
21
|
-
*/
|
|
22
|
-
vertex_ids: Uint32Array;
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=VGeoGatheredFaces.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VGeoGatheredFaces.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/geometry/virtual/build/VGeoGatheredFaces.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH;IACI;;;OAGG;IACH,WAFU,YAAY,CAEU;IAEhC;;;OAGG;IACH,SAFU,WAAW,CAEQ;IAE7B;;;OAGG;IACH,YAFU,WAAW,CAEW;CACnC"}
|