@woosh/meep-engine 3.15.0 → 3.16.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/editor/Editor.js +7 -7
- package/editor/actions/concrete/TransformModifyAction.d.ts +4 -4
- package/editor/actions/concrete/TransformModifyAction.d.ts.map +1 -1
- package/editor/actions/concrete/TransformModifyAction.js +4 -4
- package/editor/camera/camera_framing.js +7 -7
- package/editor/ecs/component/editors/ecs/Transform64Editor.d.ts +20 -0
- package/editor/ecs/component/editors/ecs/Transform64Editor.d.ts.map +1 -0
- package/editor/ecs/component/editors/ecs/Transform64Editor.js +70 -0
- package/editor/ecs/component/prototypeObjectEditor.js +2 -2
- package/editor/ecs/component/registerEngineComponentEditors.js +3 -3
- package/editor/particles/effect/ParticleEffectDocument.d.ts +396 -0
- package/editor/particles/effect/ParticleEffectDocument.d.ts.map +1 -0
- package/editor/particles/effect/ParticleEffectDocument.js +989 -0
- package/editor/particles/effect/ParticleReferenceSimulation.d.ts +113 -0
- package/editor/particles/effect/ParticleReferenceSimulation.d.ts.map +1 -0
- package/editor/particles/effect/ParticleReferenceSimulation.js +377 -0
- package/editor/particles/effect/actions/ParticleGroupDefineAction.d.ts +35 -0
- package/editor/particles/effect/actions/ParticleGroupDefineAction.d.ts.map +1 -0
- package/editor/particles/effect/actions/ParticleGroupDefineAction.js +45 -0
- package/editor/particles/effect/make_starter_particle_effect.d.ts +23 -0
- package/editor/particles/effect/make_starter_particle_effect.d.ts.map +1 -0
- package/editor/particles/effect/make_starter_particle_effect.js +177 -0
- package/editor/persistence/buildNewSceneDataset.d.ts.map +1 -1
- package/editor/persistence/buildNewSceneDataset.js +10 -8
- package/editor/process/symbolic/AudioEmitterSymbolicDisplay.js +67 -67
- package/editor/process/symbolic/CameraSymbolicDisplay.js +146 -146
- package/editor/process/symbolic/GridPositionSymbolicDisplay.js +6 -6
- package/editor/process/symbolic/LightSymbolicDisplay.js +172 -172
- package/editor/process/symbolic/ParticleEmitterSymbolicDisplay.d.ts.map +1 -1
- package/editor/process/symbolic/ParticleEmitterSymbolicDisplay.js +6 -3
- package/editor/process/symbolic/PositionedMarkerSymbolicDisplay.js +6 -6
- package/editor/selection/editor_pick.js +130 -130
- package/editor/templates/entity_templates.js +7 -7
- package/editor/tools/TransformToolV2.d.ts +3 -3
- package/editor/tools/TransformToolV2.d.ts.map +1 -1
- package/editor/tools/TransformToolV2.js +58 -25
- package/editor/tools/paint/TerrainHeightPaintTool.d.ts.map +1 -1
- package/editor/tools/paint/TerrainHeightPaintTool.js +11 -9
- package/editor/tools/v2/GizmoNode.js +2 -2
- package/editor/tools/v2/TransformControls.d.ts +3 -3
- package/editor/tools/v2/TransformControls.d.ts.map +1 -1
- package/editor/tools/v2/TransformControls.js +1003 -971
- package/editor/tools/v2/handle/gizmo_drag_plane.d.ts.map +1 -1
- package/editor/tools/v2/handle/gizmo_drag_plane.js +6 -1
- package/editor/view/ecs/components/common/AutoCanvasView.js +17 -0
- package/editor/view/node-graph/NodeGraphEditorView.d.ts +143 -2
- package/editor/view/node-graph/NodeGraphEditorView.d.ts.map +1 -1
- package/editor/view/node-graph/NodeGraphEditorView.js +358 -6
- package/editor/view/node-graph/NodeGraphMinimapView.d.ts +120 -0
- package/editor/view/node-graph/NodeGraphMinimapView.d.ts.map +1 -0
- package/editor/view/node-graph/NodeGraphMinimapView.js +859 -0
- package/editor/view/node-graph/NodeGraphPaletteView.d.ts +112 -0
- package/editor/view/node-graph/NodeGraphPaletteView.d.ts.map +1 -0
- package/editor/view/node-graph/NodeGraphPaletteView.js +352 -0
- package/editor/view/node-graph/NodeGraphSearchMenuView.d.ts +76 -0
- package/editor/view/node-graph/NodeGraphSearchMenuView.d.ts.map +1 -0
- package/editor/view/node-graph/NodeGraphSearchMenuView.js +247 -0
- package/editor/view/node-graph/NodeGraphView.d.ts +147 -5
- package/editor/view/node-graph/NodeGraphView.d.ts.map +1 -1
- package/editor/view/node-graph/NodeGraphView.js +809 -76
- package/editor/view/node-graph/NodeIconView.d.ts +33 -0
- package/editor/view/node-graph/NodeIconView.d.ts.map +1 -0
- package/editor/view/node-graph/NodeIconView.js +54 -0
- package/editor/view/node-graph/NodeView.d.ts +71 -1
- package/editor/view/node-graph/NodeView.d.ts.map +1 -1
- package/editor/view/node-graph/NodeView.js +318 -17
- package/editor/view/node-graph/PortView.d.ts +41 -1
- package/editor/view/node-graph/PortView.d.ts.map +1 -1
- package/editor/view/node-graph/PortView.js +121 -69
- package/editor/view/node-graph/actions/ConnectionDeleteAction.d.ts +16 -3
- package/editor/view/node-graph/actions/ConnectionDeleteAction.d.ts.map +1 -1
- package/editor/view/node-graph/actions/ConnectionDeleteAction.js +29 -3
- package/editor/view/node-graph/actions/NodeCreateAction.d.ts +65 -0
- package/editor/view/node-graph/actions/NodeCreateAction.d.ts.map +1 -0
- package/editor/view/node-graph/actions/NodeCreateAction.js +108 -0
- package/editor/view/node-graph/actions/NodeDeleteAction.d.ts +6 -0
- package/editor/view/node-graph/actions/NodeDeleteAction.d.ts.map +1 -1
- package/editor/view/node-graph/actions/NodeDeleteAction.js +24 -2
- package/editor/view/node-graph/connection_wire_geometry.d.ts +34 -0
- package/editor/view/node-graph/connection_wire_geometry.d.ts.map +1 -1
- package/editor/view/node-graph/connection_wire_geometry.js +79 -3
- package/editor/view/node-graph/node-graph.css +678 -0
- package/editor/view/particles/effect/ParticleCodeEditorView.d.ts +37 -0
- package/editor/view/particles/effect/ParticleCodeEditorView.d.ts.map +1 -0
- package/editor/view/particles/effect/ParticleCodeEditorView.js +479 -0
- package/editor/view/particles/effect/ParticleEffectEditorView.d.ts +61 -0
- package/editor/view/particles/effect/ParticleEffectEditorView.d.ts.map +1 -0
- package/editor/view/particles/effect/ParticleEffectEditorView.js +223 -0
- package/editor/view/particles/effect/ParticleEmitterInspectorView.d.ts +25 -0
- package/editor/view/particles/effect/ParticleEmitterInspectorView.d.ts.map +1 -0
- package/editor/view/particles/effect/ParticleEmitterInspectorView.js +606 -0
- package/editor/view/particles/effect/ParticleGraphEditorView.d.ts +156 -0
- package/editor/view/particles/effect/ParticleGraphEditorView.d.ts.map +1 -0
- package/editor/view/particles/effect/ParticleGraphEditorView.js +1636 -0
- package/editor/view/particles/effect/ParticleNodeParametersView.d.ts +22 -0
- package/editor/view/particles/effect/ParticleNodeParametersView.d.ts.map +1 -0
- package/editor/view/particles/effect/ParticleNodeParametersView.js +520 -0
- package/editor/view/particles/effect/ParticlePreviewView.d.ts +52 -0
- package/editor/view/particles/effect/ParticlePreviewView.d.ts.map +1 -0
- package/editor/view/particles/effect/ParticlePreviewView.js +533 -0
- package/editor/view/particles/effect/particle-editor.css +556 -0
- package/editor/view/prepareMeshLibrary.d.ts.map +1 -1
- package/editor/view/prepareMeshLibrary.js +8 -4
- package/package.json +1 -1
- package/samples/engine/first-scene/main.js +152 -152
- package/samples/generation/generators/mir_generator_place_bases.js +3 -3
- package/src/core/assert.d.ts +28 -24
- package/src/core/assert.d.ts.map +1 -1
- package/src/core/assert.js +34 -26
- package/src/core/geom/3d/shape/PosedShape3D.d.ts +17 -0
- package/src/core/geom/3d/shape/PosedShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/PosedShape3D.js +34 -2
- package/src/core/graph/format/graphviz/graphviz_escape_html_label.d.ts +17 -0
- package/src/core/graph/format/graphviz/graphviz_escape_html_label.d.ts.map +1 -0
- package/src/core/graph/format/graphviz/graphviz_escape_html_label.js +25 -0
- package/src/core/graph/format/graphviz/graphviz_escape_quoted.d.ts +16 -0
- package/src/core/graph/format/graphviz/graphviz_escape_quoted.d.ts.map +1 -0
- package/src/core/graph/format/graphviz/graphviz_escape_quoted.js +24 -0
- package/src/core/model/node-graph/NodeGraph.d.ts +12 -0
- package/src/core/model/node-graph/NodeGraph.d.ts.map +1 -1
- package/src/core/model/node-graph/NodeGraph.js +21 -6
- package/src/core/model/node-graph/node/NodeDescription.d.ts +36 -0
- package/src/core/model/node-graph/node/NodeDescription.d.ts.map +1 -1
- package/src/core/model/node-graph/node/NodeDescription.js +41 -0
- package/src/core/model/node-graph/visual/ConnectionVisualData.d.ts +119 -0
- package/src/core/model/node-graph/visual/ConnectionVisualData.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/ConnectionVisualData.js +317 -0
- package/src/core/model/node-graph/visual/NodeDescriptionVisualRegistry.d.ts +4 -0
- package/src/core/model/node-graph/visual/NodeDescriptionVisualRegistry.d.ts.map +1 -1
- package/src/core/model/node-graph/visual/NodeDescriptionVisualRegistry.js +125 -22
- package/src/core/model/node-graph/visual/NodeGraphVisualData.d.ts +91 -2
- package/src/core/model/node-graph/visual/NodeGraphVisualData.d.ts.map +1 -1
- package/src/core/model/node-graph/visual/NodeGraphVisualData.js +164 -113
- package/src/core/model/node-graph/visual/layout/LayoutBoxGraph.d.ts +162 -0
- package/src/core/model/node-graph/visual/layout/LayoutBoxGraph.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/LayoutBoxGraph.js +288 -0
- package/src/core/model/node-graph/visual/layout/LayoutProblem.d.ts +109 -0
- package/src/core/model/node-graph/visual/layout/LayoutProblem.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/LayoutProblem.js +141 -0
- package/src/core/model/node-graph/visual/layout/NodeGraphLayoutOptions.d.ts +149 -0
- package/src/core/model/node-graph/visual/layout/NodeGraphLayoutOptions.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/NodeGraphLayoutOptions.js +175 -0
- package/src/core/model/node-graph/visual/layout/RouteGrid.d.ts +137 -0
- package/src/core/model/node-graph/visual/layout/RouteGrid.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/RouteGrid.js +242 -0
- package/src/core/model/node-graph/visual/layout/RouteSearch.d.ts +114 -0
- package/src/core/model/node-graph/visual/layout/RouteSearch.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/RouteSearch.js +300 -0
- package/src/core/model/node-graph/visual/layout/RouteSet.d.ts +86 -0
- package/src/core/model/node-graph/visual/layout/RouteSet.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/RouteSet.js +168 -0
- package/src/core/model/node-graph/visual/layout/layout_assign_coordinates.d.ts +48 -0
- package/src/core/model/node-graph/visual/layout/layout_assign_coordinates.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/layout_assign_coordinates.js +555 -0
- package/src/core/model/node-graph/visual/layout/layout_assign_layers.d.ts +34 -0
- package/src/core/model/node-graph/visual/layout/layout_assign_layers.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/layout_assign_layers.js +202 -0
- package/src/core/model/node-graph/visual/layout/layout_break_cycles.d.ts +34 -0
- package/src/core/model/node-graph/visual/layout/layout_break_cycles.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/layout_break_cycles.js +254 -0
- package/src/core/model/node-graph/visual/layout/layout_build_problem.d.ts +29 -0
- package/src/core/model/node-graph/visual/layout/layout_build_problem.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/layout_build_problem.js +184 -0
- package/src/core/model/node-graph/visual/layout/layout_insert_lanes.d.ts +29 -0
- package/src/core/model/node-graph/visual/layout/layout_insert_lanes.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/layout_insert_lanes.js +95 -0
- package/src/core/model/node-graph/visual/layout/layout_node_graph.d.ts +56 -0
- package/src/core/model/node-graph/visual/layout/layout_node_graph.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/layout_node_graph.js +131 -0
- package/src/core/model/node-graph/visual/layout/layout_order_layers.d.ts +36 -0
- package/src/core/model/node-graph/visual/layout/layout_order_layers.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/layout_order_layers.js +415 -0
- package/src/core/model/node-graph/visual/layout/layout_orient_links.d.ts +21 -0
- package/src/core/model/node-graph/visual/layout/layout_orient_links.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/layout_orient_links.js +49 -0
- package/src/core/model/node-graph/visual/layout/route_connections.d.ts +41 -0
- package/src/core/model/node-graph/visual/layout/route_connections.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/route_connections.js +309 -0
- package/src/core/model/node-graph/visual/layout/route_grid_build.d.ts +33 -0
- package/src/core/model/node-graph/visual/layout/route_grid_build.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/route_grid_build.js +237 -0
- package/src/core/model/node-graph/visual/layout/route_nudge.d.ts +25 -0
- package/src/core/model/node-graph/visual/layout/route_nudge.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/route_nudge.js +220 -0
- package/src/core/model/node-graph/visual/layout/route_to_spline.d.ts +29 -0
- package/src/core/model/node-graph/visual/layout/route_to_spline.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/route_to_spline.js +120 -0
- package/src/engine/EngineHarness.d.ts.map +1 -1
- package/src/engine/EngineHarness.js +593 -586
- package/src/engine/EntityCreator.js +116 -116
- package/src/engine/achievements/AchievementManager.js +437 -437
- package/src/engine/animation/AnimatedActions.js +111 -111
- package/src/engine/animation/AnimationUtils.d.ts.map +1 -1
- package/src/engine/animation/AnimationUtils.js +246 -234
- package/src/engine/animation/Animations.d.ts +1 -0
- package/src/engine/animation/Animations.d.ts.map +1 -1
- package/src/engine/animation/Animations.js +13 -5
- package/src/engine/animation/clip/bind_property_writer.d.ts.map +1 -1
- package/src/engine/animation/clip/bind_property_writer.js +12 -5
- package/src/engine/animation/curve/binding/BoundTransform64Writer.d.ts +29 -0
- package/src/engine/animation/curve/binding/BoundTransform64Writer.d.ts.map +1 -0
- package/src/engine/animation/curve/binding/BoundTransform64Writer.js +80 -0
- package/src/engine/animation/removeEntityWithMeshParticlesEffect.js +4 -4
- package/src/engine/asset/loaders/gltf_test_fixtures.d.ts.map +1 -1
- package/src/engine/asset/loaders/gltf_test_fixtures.js +5 -4
- package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.d.ts +12 -12
- package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.d.ts.map +1 -1
- package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.js +77 -44
- package/src/engine/control/first-person/abilities/LedgeGrab.js +1 -1
- package/src/engine/control/first-person/abilities/Mantle.js +1 -1
- package/src/engine/control/first-person/abilities/Slide.js +1 -1
- package/src/engine/control/first-person/collision/KinematicMover.d.ts +5 -9
- package/src/engine/control/first-person/collision/KinematicMover.d.ts.map +1 -1
- package/src/engine/control/first-person/collision/KinematicMover.js +59 -29
- package/src/engine/control/first-person/sensors/FirstPersonSensorsSystem.d.ts +2 -2
- package/src/engine/control/first-person/sensors/FirstPersonSensorsSystem.d.ts.map +1 -1
- package/src/engine/control/first-person/sensors/FirstPersonSensorsSystem.js +7 -7
- package/src/engine/ecs/EventType.d.ts +1 -0
- package/src/engine/ecs/EventType.js +35 -10
- package/src/engine/ecs/dynamic_actions/actions/definition/SendRequestActionDescription.d.ts.map +1 -1
- package/src/engine/ecs/dynamic_actions/actions/definition/SendRequestActionDescription.js +12 -4
- package/src/engine/ecs/fow/FogOfWarRevealerSystem.d.ts +4 -4
- package/src/engine/ecs/fow/FogOfWarRevealerSystem.d.ts.map +1 -1
- package/src/engine/ecs/fow/FogOfWarRevealerSystem.js +10 -11
- package/src/engine/ecs/grid/pick.js +1 -1
- package/src/engine/ecs/gui/hud/HeadsUpDisplaySystem.d.ts +1 -1
- package/src/engine/ecs/gui/hud/HeadsUpDisplaySystem.js +13 -13
- package/src/engine/ecs/gui/hud/testHudEdgeStick.js +3 -3
- package/src/engine/ecs/ik/InverseKinematicsSystem.d.ts +10 -10
- package/src/engine/ecs/ik/InverseKinematicsSystem.d.ts.map +1 -1
- package/src/engine/ecs/ik/InverseKinematicsSystem.js +8 -8
- package/src/engine/ecs/ik/TwoBoneInverseKinematicsSolver.d.ts.map +1 -1
- package/src/engine/ecs/ik/TwoBoneInverseKinematicsSolver.js +120 -97
- package/src/engine/ecs/ik/ik_bone_chain.d.ts +16 -5
- package/src/engine/ecs/ik/ik_bone_chain.d.ts.map +1 -1
- package/src/engine/ecs/ik/ik_bone_chain.js +16 -4
- package/src/engine/ecs/ik/ik_probe_terrain_contact.d.ts +7 -3
- package/src/engine/ecs/ik/ik_probe_terrain_contact.d.ts.map +1 -1
- package/src/engine/ecs/ik/ik_probe_terrain_contact.js +20 -16
- package/src/engine/ecs/ik/ik_write_local_rotation.d.ts +18 -0
- package/src/engine/ecs/ik/ik_write_local_rotation.d.ts.map +1 -0
- package/src/engine/ecs/ik/ik_write_local_rotation.js +30 -0
- package/src/engine/ecs/parent/EntityNode.d.ts +24 -6
- package/src/engine/ecs/parent/EntityNode.d.ts.map +1 -1
- package/src/engine/ecs/parent/EntityNode.js +54 -42
- package/src/engine/ecs/parent/EntityNodeFlags.d.ts +0 -1
- package/src/engine/ecs/parent/EntityNodeFlags.js +7 -8
- package/src/engine/ecs/speaker/VoiceSystem.d.ts +2 -2
- package/src/engine/ecs/speaker/VoiceSystem.d.ts.map +1 -1
- package/src/engine/ecs/speaker/VoiceSystem.js +4 -4
- package/src/engine/ecs/storage/populateEngineSerializationRegistry.d.ts.map +1 -1
- package/src/engine/ecs/storage/populateEngineSerializationRegistry.js +2 -0
- package/src/engine/ecs/terrain/ecs/Terrain.d.ts +5 -2
- package/src/engine/ecs/terrain/ecs/Terrain.d.ts.map +1 -1
- package/src/engine/ecs/terrain/ecs/Terrain.js +7 -4
- package/src/engine/ecs/terrain/ecs/TerrainSystem.js +3 -3
- package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.d.ts +7 -7
- package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.d.ts.map +1 -1
- package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.js +84 -36
- package/src/engine/ecs/transform/TRANSFORM64_MIGRATION_PLAN_2026_09_04.md +513 -0
- package/src/engine/ecs/transform/Transform64.d.ts +48 -11
- package/src/engine/ecs/transform/Transform64.d.ts.map +1 -1
- package/src/engine/ecs/transform/Transform64.js +54 -15
- package/src/engine/ecs/transform/Transform64SerializationAdapter.d.ts +37 -0
- package/src/engine/ecs/transform/Transform64SerializationAdapter.d.ts.map +1 -0
- package/src/engine/ecs/transform/Transform64SerializationAdapter.js +75 -0
- package/src/engine/ecs/transform/__probe.d.ts +4 -0
- package/src/engine/ecs/transform/__probe.d.ts.map +1 -0
- package/src/engine/ecs/transform/t64_allocation_probe.d.ts +31 -0
- package/src/engine/ecs/transform/t64_allocation_probe.d.ts.map +1 -0
- package/src/engine/ecs/transform/t64_allocation_probe.js +78 -0
- package/src/engine/ecs/transform/t64_announce_change.d.ts +33 -0
- package/src/engine/ecs/transform/t64_announce_change.d.ts.map +1 -0
- package/src/engine/ecs/transform/t64_announce_change.js +39 -0
- package/src/engine/ecs/transform/t64_equals_components.d.ts +30 -0
- package/src/engine/ecs/transform/t64_equals_components.d.ts.map +1 -0
- package/src/engine/ecs/transform/t64_equals_components.js +59 -0
- package/src/engine/ecs/transform/t64_read_rotation.d.ts +13 -0
- package/src/engine/ecs/transform/t64_read_rotation.d.ts.map +1 -0
- package/src/engine/ecs/transform/t64_read_rotation.js +16 -0
- package/src/engine/ecs/transform/t64_read_translation.d.ts +14 -0
- package/src/engine/ecs/transform/t64_read_translation.d.ts.map +1 -0
- package/src/engine/ecs/transform/t64_read_translation.js +17 -0
- package/src/engine/ecs/transform-attachment/TransformAttachment.d.ts +5 -5
- package/src/engine/ecs/transform-attachment/TransformAttachment.d.ts.map +1 -1
- package/src/engine/ecs/transform-attachment/TransformAttachment.js +4 -4
- package/src/engine/ecs/transform-attachment/TransformAttachmentSystem.d.ts +10 -10
- package/src/engine/ecs/transform-attachment/TransformAttachmentSystem.d.ts.map +1 -1
- package/src/engine/ecs/transform-attachment/TransformAttachmentSystem.js +71 -20
- package/src/engine/graphics/debug/createDebugLabel.js +3 -3
- package/src/engine/graphics/ecs/camera/pp/PerfectPanner.d.ts.map +1 -1
- package/src/engine/graphics/ecs/camera/pp/PerfectPanner.js +5 -4
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.d.ts.map +1 -1
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.js +8 -3
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.d.ts +6 -6
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.js +25 -13
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraLanderSystem.js +1 -1
- package/src/engine/graphics/ecs/mesh/setMesh.js +2 -2
- package/src/engine/graphics/ecs/path/entity/EntityPath.d.ts.map +1 -1
- package/src/engine/graphics/ecs/path/entity/EntityPath.js +21 -7
- package/src/engine/graphics/ecs/path/entity/EntityPathMarkerDefinition.d.ts +4 -4
- package/src/engine/graphics/ecs/path/entity/EntityPathMarkerDefinition.d.ts.map +1 -1
- package/src/engine/graphics/ecs/path/entity/EntityPathMarkerDefinition.js +4 -4
- package/src/engine/graphics/ecs/sprite/SpriteSystemPE.d.ts +2 -2
- package/src/engine/graphics/ecs/sprite/SpriteSystemPE.d.ts.map +1 -1
- package/src/engine/graphics/ecs/sprite/SpriteSystemPE.js +145 -135
- package/src/engine/graphics/geometry/MikkT/Build4RuleGroups.js +2 -2
- package/src/engine/graphics/geometry/MikkT/DegenEpilogue.js +1 -1
- package/src/engine/graphics/geometry/MikkT/DegenPrologue.js +1 -1
- package/src/engine/graphics/geometry/MikkT/EvalTspace.js +1 -1
- package/src/engine/graphics/geometry/MikkT/GenerateTSpaces.js +3 -3
- package/src/engine/graphics/render/frame_graph/CORRECTNESS_FIXES_2026_09_04.md +659 -0
- package/src/engine/graphics/render/frame_graph/FRAME_GRAPH_RECOMMENDATIONS.md +21 -5
- package/src/engine/graphics/render/frame_graph/FrameGraph.d.ts +45 -0
- package/src/engine/graphics/render/frame_graph/FrameGraph.d.ts.map +1 -1
- package/src/engine/graphics/render/frame_graph/FrameGraph.js +282 -60
- package/src/engine/graphics/render/frame_graph/FramePassBuilder.d.ts.map +1 -1
- package/src/engine/graphics/render/frame_graph/FramePassBuilder.js +20 -9
- package/src/engine/graphics/render/frame_graph/FramePassNode.d.ts +12 -0
- package/src/engine/graphics/render/frame_graph/FramePassNode.d.ts.map +1 -1
- package/src/engine/graphics/render/frame_graph/FramePassNode.js +13 -0
- package/src/engine/graphics/render/frame_graph/FramePassResources.d.ts.map +1 -1
- package/src/engine/graphics/render/frame_graph/FramePassResources.js +5 -0
- package/src/engine/graphics/render/frame_graph/ResourceEntry.d.ts +19 -1
- package/src/engine/graphics/render/frame_graph/ResourceEntry.d.ts.map +1 -1
- package/src/engine/graphics/render/frame_graph/ResourceEntry.js +23 -1
- package/src/engine/graphics/render/frame_graph/backend/void/VoidRenderContext.d.ts +15 -1
- package/src/engine/graphics/render/frame_graph/backend/void/VoidRenderContext.d.ts.map +1 -1
- package/src/engine/graphics/render/frame_graph/backend/void/VoidRenderContext.js +33 -16
- package/src/engine/graphics/render/frame_graph/resource/RenderResourceManager.d.ts.map +1 -1
- package/src/engine/graphics/render/frame_graph/resource/RenderResourceManager.js +19 -1
- package/src/engine/graphics/sh3/path_tracer/populate_path_traced_scene_from_ecd.js +6 -6
- package/src/engine/graphics3/CameraSystem.d.ts +6 -6
- package/src/engine/graphics3/CameraSystem.d.ts.map +1 -1
- package/src/engine/graphics3/CameraSystem.js +170 -170
- package/src/engine/graphics3/DecalSystem.d.ts +6 -6
- package/src/engine/graphics3/DecalSystem.d.ts.map +1 -1
- package/src/engine/graphics3/DecalSystem.js +449 -449
- package/src/engine/graphics3/LightSystem.d.ts +6 -6
- package/src/engine/graphics3/LightSystem.d.ts.map +1 -1
- package/src/engine/graphics3/LightSystem.js +234 -221
- package/src/engine/graphics3/MeshSystem.d.ts +6 -6
- package/src/engine/graphics3/MeshSystem.d.ts.map +1 -1
- package/src/engine/graphics3/MeshSystem.js +53 -22
- package/src/engine/graphics3/ParticipatingMediaSystem.d.ts +20 -15
- package/src/engine/graphics3/ParticipatingMediaSystem.d.ts.map +1 -1
- package/src/engine/graphics3/ParticipatingMediaSystem.js +198 -184
- package/src/engine/graphics3/ParticleEmitterSystem.d.ts +6 -6
- package/src/engine/graphics3/ParticleEmitterSystem.d.ts.map +1 -1
- package/src/engine/graphics3/ParticleEmitterSystem.js +310 -289
- package/src/engine/graphics3/PickingSystem.d.ts +6 -6
- package/src/engine/graphics3/PickingSystem.d.ts.map +1 -1
- package/src/engine/graphics3/PickingSystem.js +273 -273
- package/src/engine/graphics3/ShadedGeometrySystem.d.ts +6 -6
- package/src/engine/graphics3/ShadedGeometrySystem.d.ts.map +1 -1
- package/src/engine/graphics3/ShadedGeometrySystem.js +180 -169
- package/src/engine/graphics3/TerrainSystem.d.ts.map +1 -1
- package/src/engine/graphics3/TerrainSystem.js +565 -566
- package/src/engine/graphics3/Trail3DSystem.d.ts +6 -6
- package/src/engine/graphics3/Trail3DSystem.d.ts.map +1 -1
- package/src/engine/graphics3/Trail3DSystem.js +221 -221
- package/src/engine/graphics3/camera_sync_from_transform.d.ts +2 -2
- package/src/engine/graphics3/camera_sync_from_transform.d.ts.map +1 -1
- package/src/engine/graphics3/camera_sync_from_transform.js +2 -1
- package/src/engine/graphics3/debug/gizmo_view_from_camera.js +4 -4
- package/src/engine/graphics3/particles/GPUParticularRenderer.d.ts +6 -0
- package/src/engine/graphics3/particles/GPUParticularRenderer.d.ts.map +1 -1
- package/src/engine/graphics3/particles/GPUParticularRenderer.js +82 -53
- package/src/engine/graphics3/particles/particle_gpu_records.d.ts +12 -8
- package/src/engine/graphics3/particles/particle_gpu_records.d.ts.map +1 -1
- package/src/engine/graphics3/particles/particle_gpu_records.js +53 -45
- package/src/engine/graphics3/preview/make_model_preview_scene.js +1 -1
- package/src/engine/graphics3/shade_camera_projection_ray.js +4 -4
- package/src/engine/graphics3/shade_node_to_entity_composition.d.ts.map +1 -1
- package/src/engine/graphics3/shade_node_to_entity_composition.js +88 -84
- package/src/engine/grid/grid2transform/GridPosition2TransformSystem.d.ts +7 -7
- package/src/engine/grid/grid2transform/GridPosition2TransformSystem.d.ts.map +1 -1
- package/src/engine/grid/grid2transform/GridPosition2TransformSystem.js +8 -8
- package/src/engine/grid/transform2grid/Transform2GridPositionSystem.d.ts +9 -8
- package/src/engine/grid/transform2grid/Transform2GridPositionSystem.d.ts.map +1 -1
- package/src/engine/grid/transform2grid/Transform2GridPositionSystem.js +29 -8
- package/src/engine/input/ecs/controllers/KeyboardCameraController.js +2 -2
- package/src/engine/intelligence/behavior/ecs/OrbitingBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/ecs/OrbitingBehavior.js +35 -21
- package/src/engine/intelligence/behavior/util/RotationBehavior.js +5 -5
- package/src/engine/intelligence/mcts/StateNode.js +1 -1
- package/src/engine/interpolation/TransformPoseSerializationAdapter.d.ts +7 -7
- package/src/engine/interpolation/TransformPoseSerializationAdapter.d.ts.map +1 -1
- package/src/engine/interpolation/TransformPoseSerializationAdapter.js +14 -15
- package/src/engine/interpolation/pose_interpoland.d.ts +2 -2
- package/src/engine/interpolation/pose_interpoland.js +4 -4
- package/src/engine/navigation/ecs/path_following/PathFollowingSystem.d.ts +4 -4
- package/src/engine/navigation/ecs/path_following/PathFollowingSystem.d.ts.map +1 -1
- package/src/engine/navigation/ecs/path_following/PathFollowingSystem.js +39 -14
- package/src/engine/network/adapters/TransformReplicationAdapter.d.ts +7 -7
- package/src/engine/network/adapters/TransformReplicationAdapter.d.ts.map +1 -1
- package/src/engine/network/adapters/TransformReplicationAdapter.js +19 -20
- package/src/engine/network/replication/Replicator.d.ts +5 -3
- package/src/engine/network/replication/Replicator.d.ts.map +1 -1
- package/src/engine/network/replication/Replicator.js +65 -16
- package/src/engine/physics/broadphase/compute_fat_world_aabb.js +3 -3
- package/src/engine/physics/ccd/linear_sweep.d.ts.map +1 -1
- package/src/engine/physics/ccd/linear_sweep.js +9 -3
- package/src/engine/physics/constraint/solve_constraints.js +10 -10
- package/src/engine/physics/ecs/ColliderObserverSystem.d.ts +8 -8
- package/src/engine/physics/ecs/ColliderObserverSystem.d.ts.map +1 -1
- package/src/engine/physics/ecs/ColliderObserverSystem.js +6 -6
- package/src/engine/physics/ecs/PhysicsSystem.d.ts +22 -32
- package/src/engine/physics/ecs/PhysicsSystem.d.ts.map +1 -1
- package/src/engine/physics/ecs/PhysicsSystem.js +2337 -2310
- package/src/engine/physics/ecs/find_non_finite_physics_state.js +6 -6
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +7 -7
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts.map +1 -1
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.js +16 -8
- package/src/engine/physics/fluid/ecs/FluidSystem.d.ts +4 -4
- package/src/engine/physics/fluid/ecs/FluidSystem.d.ts.map +1 -1
- package/src/engine/physics/fluid/ecs/FluidSystem.js +6 -6
- package/src/engine/physics/fluid/ecs/WorkerFluidSystem.d.ts +2 -2
- package/src/engine/physics/fluid/ecs/WorkerFluidSystem.d.ts.map +1 -1
- package/src/engine/physics/fluid/ecs/WorkerFluidSystem.js +4 -4
- package/src/engine/physics/fluid/ecs/fluid_reanchor_field.js +7 -7
- package/src/engine/physics/fluid/effector/ImpulseFluidEffector.js +4 -4
- package/src/engine/physics/fluid/effector/WakeFluidEffector.js +7 -7
- package/src/engine/physics/inertia/world_inverse_inertia.js +1 -1
- package/src/engine/physics/integration/integrate_position.d.ts.map +1 -1
- package/src/engine/physics/integration/integrate_position.js +13 -12
- package/src/engine/physics/inverse_kinematics/fabrik/fabrik_solve.d.ts.map +1 -1
- package/src/engine/physics/inverse_kinematics/fabrik/fabrik_solve.js +23 -5
- package/src/engine/physics/narrowphase/compute_penetration.js +18 -14
- package/src/engine/physics/narrowphase/convex_convex_manifold.js +2 -2
- package/src/engine/physics/narrowphase/mesh_mesh_tet_manifold.js +9 -9
- package/src/engine/physics/narrowphase/narrowphase_step.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/narrowphase_step.js +95 -68
- package/src/engine/physics/narrowphase/refine_ray_concave.js +1 -1
- package/src/engine/physics/narrowphase/refine_ray_hit.js +3 -3
- package/src/engine/physics/queries/overlap_shape.d.ts.map +1 -1
- package/src/engine/physics/queries/overlap_shape.js +19 -7
- package/src/engine/physics/queries/raycast.js +3 -3
- package/src/engine/physics/queries/shape_cast.d.ts.map +1 -1
- package/src/engine/physics/queries/shape_cast.js +628 -620
- package/src/engine/physics/solver/solve_contacts.js +10 -10
- package/src/engine/physics/vehicle/RaycastVehicle.d.ts +6 -5
- package/src/engine/physics/vehicle/RaycastVehicle.d.ts.map +1 -1
- package/src/engine/physics/vehicle/RaycastVehicle.js +10 -5
- package/src/engine/sound/ecs/SoundListenerSystem.d.ts +16 -4
- package/src/engine/sound/ecs/SoundListenerSystem.d.ts.map +1 -1
- package/src/engine/sound/ecs/SoundListenerSystem.js +70 -11
- package/src/engine/sound/ecs/audio/AudioEmitterSystem.d.ts +7 -7
- package/src/engine/sound/ecs/audio/AudioEmitterSystem.d.ts.map +1 -1
- package/src/engine/sound/ecs/audio/AudioEmitterSystem.js +343 -338
- package/src/engine/sound/ecs/audio/LiveEmitterSet.d.ts +2 -2
- package/src/engine/sound/ecs/audio/LiveEmitterSet.d.ts.map +1 -1
- package/src/engine/sound/ecs/audio/LiveEmitterSet.js +356 -345
- package/src/engine/sound/ecs/audio/SpatialAudioIndex.d.ts +23 -2
- package/src/engine/sound/ecs/audio/SpatialAudioIndex.d.ts.map +1 -1
- package/src/engine/sound/ecs/audio/SpatialAudioIndex.js +174 -140
- package/src/engine/sound/ecs/trigger/AudioEventTriggerSystem.d.ts +6 -6
- package/src/engine/sound/ecs/trigger/AudioEventTriggerSystem.d.ts.map +1 -1
- package/src/engine/sound/ecs/trigger/AudioEventTriggerSystem.js +185 -184
- package/src/engine/sound/material/detector/terrain/TerrainSoundMaterialSurfaceDetector.js +1 -1
- package/src/engine/sound/simulation/core/AcousticRegionIndex.d.ts +2 -1
- package/src/engine/sound/simulation/core/AcousticRegionIndex.d.ts.map +1 -1
- package/src/engine/sound/simulation/core/AcousticRegionIndex.js +4 -3
- package/src/engine/sound/simulation/core/AcousticVolumeRegion.d.ts +3 -2
- package/src/engine/sound/simulation/core/AcousticVolumeRegion.d.ts.map +1 -1
- package/src/engine/sound/simulation/core/AcousticVolumeRegion.js +6 -4
- package/src/engine/sound/simulation/ecs/AcousticSimulationSystem.d.ts +10 -6
- package/src/engine/sound/simulation/ecs/AcousticSimulationSystem.d.ts.map +1 -1
- package/src/engine/sound/simulation/ecs/AcousticSimulationSystem.js +32 -7
- package/src/engine/sound/simulation/ecs/AcousticVolumeSystem.d.ts +7 -7
- package/src/engine/sound/simulation/ecs/AcousticVolumeSystem.d.ts.map +1 -1
- package/src/engine/sound/simulation/ecs/AcousticVolumeSystem.js +6 -6
- package/src/engine/sound/sopra/runtime/EventInstance.d.ts.map +1 -1
- package/src/engine/sound/sopra/runtime/EventInstance.js +8 -2
- package/src/format/scene/gltf/gltf_component_type.d.ts.map +1 -1
- package/src/format/scene/gltf/gltf_component_type.js +3 -1
- package/src/format/texture/ktx2/ktx2_read.d.ts.map +1 -1
- package/src/format/texture/ktx2/ktx2_read.js +2 -1
- package/src/generation/grid/generation/GridTaskDensityMarkerDistribution.d.ts.map +1 -1
- package/src/generation/grid/generation/GridTaskDensityMarkerDistribution.js +8 -1
- package/src/generation/markers/GridCellActionPlaceMarker.d.ts +4 -4
- package/src/generation/markers/GridCellActionPlaceMarker.d.ts.map +1 -1
- package/src/generation/markers/GridCellActionPlaceMarker.js +16 -6
- package/src/generation/markers/MarkerNode.d.ts +3 -3
- package/src/generation/markers/MarkerNode.d.ts.map +1 -1
- package/src/generation/markers/MarkerNode.js +3 -3
- package/src/generation/markers/actions/MarkerNodeActionEntityPlacement.d.ts +4 -4
- package/src/generation/markers/actions/MarkerNodeActionEntityPlacement.d.ts.map +1 -1
- package/src/generation/markers/actions/MarkerNodeActionEntityPlacement.js +7 -7
- package/src/generation/markers/actions/MarkerNodeActionImaginary.d.ts.map +1 -1
- package/src/generation/markers/actions/MarkerNodeActionImaginary.js +20 -2
- package/src/generation/markers/actions/placement/MarkerNodeEntityProcessorClingToTerrain.js +1 -1
- package/src/generation/markers/actions/placement/MarkerNodeEntityProcessorRandomRotation.d.ts.map +1 -1
- package/src/generation/markers/actions/placement/MarkerNodeEntityProcessorRandomRotation.js +13 -3
- package/src/generation/markers/transform/MarkerNodeTransformRotateRandom.d.ts.map +1 -1
- package/src/generation/markers/transform/MarkerNodeTransformRotateRandom.js +11 -1
- package/src/generation/markers/transform/MarkerNodeTransformerAddPositionYFromFilter.d.ts.map +1 -1
- package/src/generation/markers/transform/MarkerNodeTransformerAddPositionYFromFilter.js +8 -4
- package/src/generation/markers/transform/MarkerNodeTransformerOffsetPosition.d.ts.map +1 -1
- package/src/generation/markers/transform/MarkerNodeTransformerOffsetPosition.js +13 -5
- package/src/generation/markers/transform/MarkerNodeTransformerYRotateByFilter.d.ts.map +1 -1
- package/src/generation/markers/transform/MarkerNodeTransformerYRotateByFilter.js +8 -2
- package/src/generation/markers/transform/MarkerNodeTransformerYRotateByFilterGradient.d.ts.map +1 -1
- package/src/generation/markers/transform/MarkerNodeTransformerYRotateByFilterGradient.js +16 -2
- package/src/shade/device/graph/BufferResourceDescriptor.d.ts.map +1 -1
- package/src/shade/device/graph/BufferResourceDescriptor.js +193 -184
- package/src/shade/device/graph/TextureResourceDescriptor.d.ts.map +1 -1
- package/src/shade/device/graph/TextureResourceDescriptor.js +12 -0
- package/src/shade/device/mock/SoftwareGPUDevice.d.ts.map +1 -1
- package/src/shade/device/mock/SoftwareGPUDevice.js +8 -0
- package/src/shade/playground/avboit/main.js +3 -3
- package/src/shade/playground/basis_textures/main.js +1 -1
- package/src/shade/playground/ground_seam/main.js +1 -1
- package/src/shade/playground/particle_editor/README.md +175 -0
- package/src/shade/playground/particle_editor/index.html +76 -0
- package/src/shade/playground/particle_editor/main.d.ts +2 -0
- package/src/shade/playground/particle_editor/main.d.ts.map +1 -0
- package/src/shade/playground/particle_editor/main.js +139 -0
- package/src/shade/playground/particle_system/README.md +92 -62
- package/src/shade/playground/particle_system/index.html +67 -21
- package/src/shade/playground/particle_system/main.js +247 -102
- package/src/shade/{renderer/particles → playground/particle_system}/particle_prototype.d.ts +21 -18
- package/src/shade/playground/particle_system/particle_prototype.d.ts.map +1 -0
- package/src/shade/{renderer/particles → playground/particle_system}/particle_prototype.js +197 -181
- package/src/shade/playground/particle_system/particle_scene.d.ts +136 -20
- package/src/shade/playground/particle_system/particle_scene.d.ts.map +1 -1
- package/src/shade/playground/particle_system/particle_scene.js +487 -670
- package/src/shade/playground/skinned_blas_refit/sweep_views.js +2 -2
- package/src/shade/playground/skinned_blas_refit/verify_instance_bounds.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/verify_instance_bounds.js +2 -1
- package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.js +2 -1
- package/src/shade/playground/sponza_path_trace/main.js +1 -1
- package/src/shade/playground/volumetrics_froxel/main.js +917 -917
- package/src/shade/playground/volumetrics_froxel/measure.js +559 -559
- package/src/shade/renderer/Renderer.d.ts +28 -0
- package/src/shade/renderer/Renderer.d.ts.map +1 -1
- package/src/shade/renderer/Renderer.js +140 -8
- package/src/shade/renderer/atmosphere/GPUSky.d.ts.map +1 -1
- package/src/shade/renderer/atmosphere/GPUSky.js +4 -2
- package/src/shade/renderer/buffer/graph_read_buffer.d.ts.map +1 -1
- package/src/shade/renderer/buffer/graph_read_buffer.js +8 -1
- package/src/shade/renderer/buffer/table/GPUTypedTable.js +1 -1
- package/src/shade/renderer/buffer/table/GPUTypedTableDescriptor.d.ts +30 -0
- package/src/shade/renderer/buffer/table/GPUTypedTableDescriptor.d.ts.map +1 -1
- package/src/shade/renderer/buffer/table/GPUTypedTableDescriptor.js +84 -0
- package/src/shade/renderer/buffer/table/gpu_database_emulator_image.d.ts +27 -0
- package/src/shade/renderer/buffer/table/gpu_database_emulator_image.d.ts.map +1 -0
- package/src/shade/renderer/buffer/table/gpu_database_words.d.ts +24 -0
- package/src/shade/renderer/buffer/table/gpu_database_words.d.ts.map +1 -0
- package/src/shade/renderer/buffer/table/gpu_database_words.js +92 -0
- package/src/shade/renderer/camera/Camera.d.ts +2 -2
- package/src/shade/renderer/camera/Camera.d.ts.map +1 -1
- package/src/shade/renderer/camera/Camera.js +11 -5
- package/src/shade/renderer/camera/GPUCameraContext.d.ts.map +1 -1
- package/src/shade/renderer/camera/GPUCameraContext.js +2 -1
- package/src/shade/renderer/camera/OrbitalCameraController.d.ts +3 -3
- package/src/shade/renderer/camera/OrbitalCameraController.d.ts.map +1 -1
- package/src/shade/renderer/camera/OrbitalCameraController.js +31 -16
- package/src/shade/renderer/camera/orbital/OrbitalCameraController.d.ts +2 -2
- package/src/shade/renderer/camera/orbital/OrbitalCameraController.d.ts.map +1 -1
- package/src/shade/renderer/camera/orbital/OrbitalCameraController.js +4 -3
- package/src/shade/renderer/camera/orbital/OrbitalCameraRig.d.ts +10 -5
- package/src/shade/renderer/camera/orbital/OrbitalCameraRig.d.ts.map +1 -1
- package/src/shade/renderer/camera/orbital/OrbitalCameraRig.js +8 -4
- package/src/shade/renderer/extension/FrameContext.d.ts.map +1 -1
- package/src/shade/renderer/extension/FrameContext.js +5 -0
- package/src/shade/renderer/extension/FrameRecord.d.ts +16 -0
- package/src/shade/renderer/extension/FrameRecord.d.ts.map +1 -1
- package/src/shade/renderer/extension/FrameRecord.js +31 -0
- package/src/shade/renderer/extension/GBufferTextures.d.ts +11 -0
- package/src/shade/renderer/extension/GBufferTextures.d.ts.map +1 -1
- package/src/shade/renderer/extension/GBufferTextures.js +14 -0
- package/src/shade/renderer/geometry/attribute/gpu_vertex_buffer_layout_from_spec.js +1 -1
- package/src/shade/renderer/geometry/util/geometry_stripify.js +6 -6
- package/src/shade/renderer/geometry/virtual/format/prototypeVGEOFormatViewer.js +8 -8
- package/src/shade/renderer/global_illumination/lpv/lpv_visualise_probes.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/lpv/lpv_visualise_probes.js +14 -5
- package/src/shade/renderer/global_illumination/probe/octahedral/GPUProbeAtlas.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe/octahedral/GPUProbeAtlas.js +17 -9
- package/src/shade/renderer/global_illumination/probe/octahedral/border/graph_lpv_paint_border_depth.d.ts +2 -1
- package/src/shade/renderer/global_illumination/probe/octahedral/border/graph_lpv_paint_border_depth.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe/octahedral/border/graph_lpv_paint_border_depth.js +4 -1
- package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_lvp_atlas_to_sh.d.ts +2 -1
- package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_lvp_atlas_to_sh.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_lvp_atlas_to_sh.js +11 -1
- package/src/shade/renderer/global_illumination/probe/octahedral/graph_lpv_shade.d.ts +1 -1
- package/src/shade/renderer/global_illumination/probe/octahedral/graph_lpv_shade.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe/octahedral/graph_lpv_shade.js +4 -2
- package/src/shade/renderer/global_illumination/sharc/SpatialHashRadianceCache.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/sharc/SpatialHashRadianceCache.js +5 -1
- package/src/shade/renderer/light/cluster/cull/graph_cull_lights.d.ts.map +1 -1
- package/src/shade/renderer/light/cluster/cull/graph_cull_lights.js +35 -11
- package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
- package/src/shade/renderer/particles/DESIGN.md +271 -112
- package/src/shade/renderer/particles/GPUParticleSystem.d.ts +251 -86
- package/src/shade/renderer/particles/GPUParticleSystem.d.ts.map +1 -1
- package/src/shade/renderer/particles/GPUParticleSystem.js +822 -146
- package/src/shade/renderer/particles/ParticleConstants.d.ts +96 -3
- package/src/shade/renderer/particles/ParticleConstants.d.ts.map +1 -1
- package/src/shade/renderer/particles/ParticleConstants.js +103 -4
- package/src/shade/renderer/particles/coherence/graph_particle_bucket.d.ts +5 -4
- package/src/shade/renderer/particles/coherence/graph_particle_bucket.d.ts.map +1 -1
- package/src/shade/renderer/particles/coherence/graph_particle_bucket.js +11 -15
- package/src/shade/renderer/particles/coherence/shader_particle_bucket.d.ts +2 -2
- package/src/shade/renderer/particles/coherence/shader_particle_bucket.d.ts.map +1 -1
- package/src/shade/renderer/particles/coherence/shader_particle_bucket.js +20 -15
- package/src/shade/renderer/particles/data/PARTICLE_COUNTERS.d.ts +7 -8
- package/src/shade/renderer/particles/data/PARTICLE_COUNTERS.d.ts.map +1 -1
- package/src/shade/renderer/particles/data/PARTICLE_COUNTERS.js +7 -17
- package/src/shade/renderer/particles/data/PARTICLE_DATABASE_SPEC.d.ts +56 -0
- package/src/shade/renderer/particles/data/PARTICLE_DATABASE_SPEC.d.ts.map +1 -0
- package/src/shade/renderer/particles/data/PARTICLE_DATABASE_SPEC.js +68 -0
- package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STATE.d.ts +39 -0
- package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STATE.d.ts.map +1 -0
- package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STATE.js +52 -0
- package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STRUCT.d.ts +83 -0
- package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STRUCT.js +166 -0
- package/src/shade/renderer/particles/data/chunk_particle_emitter.d.ts +21 -5
- package/src/shade/renderer/particles/data/chunk_particle_emitter.d.ts.map +1 -1
- package/src/shade/renderer/particles/data/chunk_particle_emitter.js +44 -85
- package/src/shade/renderer/particles/data/particle_header.d.ts +62 -0
- package/src/shade/renderer/particles/data/particle_header.d.ts.map +1 -0
- package/src/shade/renderer/particles/data/particle_header.js +103 -0
- package/src/shade/renderer/particles/graph/ParticleGroupBuilder.d.ts +179 -0
- package/src/shade/renderer/particles/graph/ParticleGroupBuilder.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/ParticleGroupBuilder.js +303 -0
- package/src/shade/renderer/particles/graph/ParticleNodeDescription.d.ts +120 -1
- package/src/shade/renderer/particles/graph/ParticleNodeDescription.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/ParticleNodeDescription.js +90 -1
- package/src/shade/renderer/particles/graph/ParticleNodeGroup.d.ts +283 -0
- package/src/shade/renderer/particles/graph/ParticleNodeGroup.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/ParticleNodeGroup.js +419 -0
- package/src/shade/renderer/particles/graph/ParticleNodeRegistry.d.ts +44 -2
- package/src/shade/renderer/particles/graph/ParticleNodeRegistry.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/ParticleNodeRegistry.js +476 -40
- package/src/shade/renderer/particles/graph/ParticleValueType.d.ts +188 -0
- package/src/shade/renderer/particles/graph/ParticleValueType.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/ParticleValueType.js +287 -0
- package/src/shade/renderer/particles/graph/compile_particle_graph.d.ts +16 -9
- package/src/shade/renderer/particles/graph/compile_particle_graph.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/compile_particle_graph.js +464 -205
- package/src/shade/renderer/particles/graph/flatten_particle_graph.d.ts +11 -0
- package/src/shade/renderer/particles/graph/flatten_particle_graph.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/flatten_particle_graph.js +213 -0
- package/src/shade/renderer/particles/graph/groups/particle_builtin_groups.d.ts +27 -0
- package/src/shade/renderer/particles/graph/groups/particle_builtin_groups.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/groups/particle_builtin_groups.js +75 -0
- package/src/shade/renderer/particles/graph/groups/particle_groups_geometry.d.ts +83 -0
- package/src/shade/renderer/particles/graph/groups/particle_groups_geometry.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/groups/particle_groups_geometry.js +319 -0
- package/src/shade/renderer/particles/graph/groups/particle_groups_noise.d.ts +22 -0
- package/src/shade/renderer/particles/graph/groups/particle_groups_noise.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/groups/particle_groups_noise.js +517 -0
- package/src/shade/renderer/particles/graph/groups/particle_groups_utility.d.ts +70 -0
- package/src/shade/renderer/particles/graph/groups/particle_groups_utility.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/groups/particle_groups_utility.js +161 -0
- package/src/shade/renderer/particles/graph/groups/simplex_reference.d.ts +8 -0
- package/src/shade/renderer/particles/graph/groups/simplex_reference.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/groups/simplex_reference.js +159 -0
- package/src/shade/renderer/particles/graph/infer_particle_graph_types.d.ts +88 -0
- package/src/shade/renderer/particles/graph/infer_particle_graph_types.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/infer_particle_graph_types.js +234 -0
- package/src/shade/renderer/particles/graph/make_particle_group.d.ts +98 -0
- package/src/shade/renderer/particles/graph/make_particle_group.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/make_particle_group.js +427 -0
- package/src/shade/renderer/particles/graph/particle_graph_authoring.d.ts +11 -4
- package/src/shade/renderer/particles/graph/particle_graph_authoring.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/particle_graph_authoring.js +121 -108
- package/src/shade/renderer/particles/graph/particle_graph_diagnostic.d.ts +38 -0
- package/src/shade/renderer/particles/graph/particle_graph_diagnostic.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/particle_graph_diagnostic.js +25 -0
- package/src/shade/renderer/particles/graph/particle_graph_distributions.d.ts +29 -0
- package/src/shade/renderer/particles/graph/particle_graph_distributions.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/particle_graph_distributions.js +170 -0
- package/src/shade/renderer/particles/graph/particle_graph_json.d.ts +87 -0
- package/src/shade/renderer/particles/graph/particle_graph_json.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/particle_graph_json.js +196 -0
- package/src/shade/renderer/particles/graph/particle_group_json.d.ts +86 -0
- package/src/shade/renderer/particles/graph/particle_group_json.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/particle_group_json.js +182 -0
- package/src/shade/renderer/particles/graph/particle_group_library.d.ts +33 -0
- package/src/shade/renderer/particles/graph/particle_group_library.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/particle_group_library.js +75 -0
- package/src/shade/renderer/particles/graph/particle_node_library.d.ts +37 -0
- package/src/shade/renderer/particles/graph/particle_node_library.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/particle_node_library.js +64 -0
- package/src/shade/renderer/particles/graph/particle_node_parameters.d.ts +146 -0
- package/src/shade/renderer/particles/graph/particle_node_parameters.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/particle_node_parameters.js +234 -0
- package/src/shade/renderer/particles/graph/particle_node_presentation.d.ts +30 -0
- package/src/shade/renderer/particles/graph/particle_node_presentation.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/particle_node_presentation.js +286 -0
- package/src/shade/renderer/particles/graph/validate_particle_graph.d.ts +66 -0
- package/src/shade/renderer/particles/graph/validate_particle_graph.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/validate_particle_graph.js +439 -0
- package/src/shade/renderer/particles/graph_particles.d.ts +143 -68
- package/src/shade/renderer/particles/graph_particles.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph_particles.js +424 -71
- package/src/shade/renderer/particles/graph_particles_avboit.d.ts +107 -0
- package/src/shade/renderer/particles/graph_particles_avboit.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph_particles_avboit.js +312 -0
- package/src/shade/renderer/particles/isa/InstructionStream.d.ts +41 -8
- package/src/shade/renderer/particles/isa/InstructionStream.d.ts.map +1 -1
- package/src/shade/renderer/particles/isa/InstructionStream.js +111 -33
- package/src/shade/renderer/particles/isa/ParticleAssembler.d.ts +13 -10
- package/src/shade/renderer/particles/isa/ParticleAssembler.d.ts.map +1 -1
- package/src/shade/renderer/particles/isa/ParticleAssembler.js +30 -26
- package/src/shade/renderer/particles/isa/ParticleProgram.d.ts +27 -15
- package/src/shade/renderer/particles/isa/ParticleProgram.d.ts.map +1 -1
- package/src/shade/renderer/particles/isa/ParticleProgram.js +139 -34
- package/src/shade/renderer/particles/isa/ParticleVMISA.d.ts +117 -9
- package/src/shade/renderer/particles/isa/ParticleVMISA.d.ts.map +1 -1
- package/src/shade/renderer/particles/isa/ParticleVMISA.js +296 -37
- package/src/shade/renderer/particles/isa/particle_assembly.d.ts +149 -0
- package/src/shade/renderer/particles/isa/particle_assembly.d.ts.map +1 -0
- package/src/shade/renderer/particles/isa/particle_assembly.js +999 -0
- package/src/shade/renderer/particles/layout/ParticleLayout.d.ts +25 -3
- package/src/shade/renderer/particles/layout/ParticleLayout.d.ts.map +1 -1
- package/src/shade/renderer/particles/layout/ParticleLayout.js +33 -5
- package/src/shade/renderer/particles/optimizer/optimize_particle_program.d.ts +160 -0
- package/src/shade/renderer/particles/optimizer/optimize_particle_program.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/optimize_particle_program.js +478 -0
- package/src/shade/renderer/particles/optimizer/particle_program_analysis.d.ts +291 -0
- package/src/shade/renderer/particles/optimizer/particle_program_analysis.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/particle_program_analysis.js +647 -0
- package/src/shade/renderer/particles/optimizer/particle_program_equivalence.d.ts +95 -0
- package/src/shade/renderer/particles/optimizer/particle_program_equivalence.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/particle_program_equivalence.js +213 -0
- package/src/shade/renderer/particles/optimizer/particle_program_fuzz.d.ts +16 -0
- package/src/shade/renderer/particles/optimizer/particle_program_fuzz.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/particle_program_fuzz.js +223 -0
- package/src/shade/renderer/particles/optimizer/particle_vm_semantics.d.ts +121 -0
- package/src/shade/renderer/particles/optimizer/particle_vm_semantics.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/particle_vm_semantics.js +206 -0
- package/src/shade/renderer/particles/optimizer/pass_dedup_constants.d.ts +11 -0
- package/src/shade/renderer/particles/optimizer/pass_dedup_constants.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/pass_dedup_constants.js +197 -0
- package/src/shade/renderer/particles/optimizer/pass_eliminate_dead_code.d.ts +4 -0
- package/src/shade/renderer/particles/optimizer/pass_eliminate_dead_code.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/pass_eliminate_dead_code.js +51 -0
- package/src/shade/renderer/particles/optimizer/pass_fold_constants.d.ts +4 -0
- package/src/shade/renderer/particles/optimizer/pass_fold_constants.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/pass_fold_constants.js +561 -0
- package/src/shade/renderer/particles/optimizer/pass_narrow_widths.d.ts +4 -0
- package/src/shade/renderer/particles/optimizer/pass_narrow_widths.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/pass_narrow_widths.js +72 -0
- package/src/shade/renderer/particles/optimizer/pass_pack_registers.d.ts +4 -0
- package/src/shade/renderer/particles/optimizer/pass_pack_registers.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/pass_pack_registers.js +86 -0
- package/src/shade/renderer/particles/optimizer/pass_peephole.d.ts +4 -0
- package/src/shade/renderer/particles/optimizer/pass_peephole.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/pass_peephole.js +271 -0
- package/src/shade/renderer/particles/optimizer/pass_propagate_copies.d.ts +4 -0
- package/src/shade/renderer/particles/optimizer/pass_propagate_copies.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/pass_propagate_copies.js +268 -0
- package/src/shade/renderer/particles/optimizer/pass_share_subexpressions.d.ts +4 -0
- package/src/shade/renderer/particles/optimizer/pass_share_subexpressions.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/pass_share_subexpressions.js +151 -0
- package/src/shade/renderer/particles/particle_test_fixtures.d.ts +131 -0
- package/src/shade/renderer/particles/particle_test_fixtures.d.ts.map +1 -0
- package/src/shade/renderer/particles/particle_test_fixtures.js +203 -0
- package/src/shade/renderer/particles/runtime/Emitter.d.ts +219 -0
- package/src/shade/renderer/particles/runtime/Emitter.d.ts.map +1 -0
- package/src/shade/renderer/particles/runtime/EmitterRegistry.d.ts +128 -60
- package/src/shade/renderer/particles/runtime/EmitterRegistry.d.ts.map +1 -1
- package/src/shade/renderer/particles/runtime/EmitterRegistry.js +286 -117
- package/src/shade/renderer/particles/runtime/ParticleEmitter.d.ts +264 -0
- package/src/shade/renderer/particles/runtime/ParticleEmitter.d.ts.map +1 -0
- package/src/shade/renderer/particles/runtime/ParticleEmitter.js +404 -0
- package/src/shade/renderer/particles/runtime/ParticleSpawnScheduler.d.ts +49 -15
- package/src/shade/renderer/particles/runtime/ParticleSpawnScheduler.d.ts.map +1 -1
- package/src/shade/renderer/particles/runtime/ProgramArena.d.ts +51 -18
- package/src/shade/renderer/particles/runtime/ProgramArena.d.ts.map +1 -1
- package/src/shade/renderer/particles/runtime/ProgramArena.js +72 -32
- package/src/shade/renderer/particles/runtime/create_particle_effect.d.ts +4 -4
- package/src/shade/renderer/particles/runtime/create_particle_effect.d.ts.map +1 -1
- package/src/shade/renderer/particles/runtime/create_particle_effect.js +4 -4
- package/src/shade/renderer/particles/runtime/emitter_database_image.d.ts +15 -0
- package/src/shade/renderer/particles/runtime/emitter_database_image.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_avboit_contribution.d.ts +17 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_avboit_contribution.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_avboit_contribution.js +75 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_billboard_vertex.d.ts +20 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_billboard_vertex.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_billboard_vertex.js +94 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_context.d.ts +15 -5
- package/src/shade/renderer/particles/shaders/chunk_particle_context.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/chunk_particle_curve_animation.d.ts +1 -2
- package/src/shade/renderer/particles/shaders/chunk_particle_curve_animation.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/chunk_particle_curve_animation.js +1 -2
- package/src/shade/renderer/particles/shaders/chunk_particle_curve_disabled.d.ts +11 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_curve_disabled.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_curve_disabled.js +13 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_emitter_age.d.ts +17 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_emitter_age.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_emitter_age.js +22 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_emitter_world_sphere.d.ts +14 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_emitter_world_sphere.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_emitter_world_sphere.js +23 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_render_math.js +1 -1
- package/src/shade/renderer/particles/shaders/chunk_particle_scene_view_depth.d.ts +18 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_scene_view_depth.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_scene_view_depth.js +24 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_setup_context.d.ts +26 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_setup_context.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_setup_context.js +59 -0
- package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.d.ts +14 -0
- package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.js +153 -0
- package/src/shade/renderer/particles/shaders/shader_particle_avboit_occupancy.d.ts +3 -0
- package/src/shade/renderer/particles/shaders/shader_particle_avboit_occupancy.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/shader_particle_avboit_occupancy.js +124 -0
- package/src/shade/renderer/particles/shaders/shader_particle_avboit_splat.d.ts +19 -0
- package/src/shade/renderer/particles/shaders/shader_particle_avboit_splat.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/shader_particle_avboit_splat.js +147 -0
- package/src/shade/renderer/particles/shaders/shader_particle_emit.d.ts +18 -8
- package/src/shade/renderer/particles/shaders/shader_particle_emit.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_emit.js +72 -37
- package/src/shade/renderer/particles/shaders/shader_particle_emitter_tick.d.ts +5 -0
- package/src/shade/renderer/particles/shaders/shader_particle_emitter_tick.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/shader_particle_emitter_tick.js +216 -0
- package/src/shade/renderer/particles/shaders/shader_particle_finalize.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_finalize.js +7 -3
- package/src/shade/renderer/particles/shaders/shader_particle_render.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_render.js +132 -197
- package/src/shade/renderer/particles/shaders/shader_particle_simulate.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_simulate.js +78 -24
- package/src/shade/renderer/particles/shaders/shader_particle_spawn_commands.d.ts +26 -0
- package/src/shade/renderer/particles/shaders/shader_particle_spawn_commands.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/shader_particle_spawn_commands.js +66 -0
- package/src/shade/renderer/particles/sort/shader_particle_sort.d.ts +1 -1
- package/src/shade/renderer/particles/sort/shader_particle_sort.d.ts.map +1 -1
- package/src/shade/renderer/particles/sort/shader_particle_sort.js +21 -36
- package/src/shade/renderer/particles/vm/ParticleVMReference.d.ts +2 -2
- package/src/shade/renderer/particles/vm/ParticleVMReference.d.ts.map +1 -1
- package/src/shade/renderer/particles/vm/ParticleVMReference.js +100 -90
- package/src/shade/renderer/particles/vm/chunk_particle_vm.d.ts.map +1 -1
- package/src/shade/renderer/particles/vm/chunk_particle_vm.js +270 -138
- package/src/shade/renderer/postprocess/denoise/debug/graph_pass_debug_reprojection.d.ts +1 -2
- package/src/shade/renderer/postprocess/denoise/debug/graph_pass_debug_reprojection.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/denoise/debug/graph_pass_debug_reprojection.js +0 -3
- package/src/shade/renderer/postprocess/dof/gather/DepthOfFieldU.js +1 -1
- package/src/shade/renderer/postprocess/dof/raymarch/DepthOfField.js +1 -1
- package/src/shade/renderer/postprocess/nss/NSS.d.ts +1 -1
- package/src/shade/renderer/postprocess/nss/NSS.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/nss/NSS.js +3 -2
- package/src/shade/renderer/postprocess/nss/generate_NSS_WEIGHTS_ACTUAL.js +3 -2
- package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts +87 -0
- package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts.map +1 -0
- package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.js +61 -0
- package/src/shade/renderer/rasterize/native/avboit/AVBOIT_LEDGER.md +179 -0
- package/src/shade/renderer/rasterize/native/avboit/AVBOIT_PLAN_2026_09_03.md +27 -2
- package/src/shade/renderer/rasterize/native/avboit/avboit_draw_fragment_body.d.ts +9 -2
- package/src/shade/renderer/rasterize/native/avboit/avboit_draw_fragment_body.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/avboit/avboit_draw_fragment_body.js +12 -3
- package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_splat_slice.d.ts +18 -0
- package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_splat_slice.d.ts.map +1 -0
- package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_splat_slice.js +58 -0
- package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.d.ts +25 -1
- package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.js +69 -10
- package/src/shade/renderer/rasterize/native/avboit/shader_avboit_resolve.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/avboit/shader_avboit_resolve.js +10 -4
- package/src/shade/renderer/rasterize/native/avboit/shader_avboit_splat.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/avboit/shader_avboit_splat.js +4 -39
- package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.d.ts +7 -2
- package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.js +16 -2
- package/src/shade/renderer/scene/optimization/geometry/geometry_deduplicate.d.ts +3 -3
- package/src/shade/renderer/scene/optimization/geometry/geometry_deduplicate.d.ts.map +1 -1
- package/src/shade/renderer/scene/optimization/geometry/geometry_deduplicate.js +29 -23
- package/src/shade/renderer/scene/optimization/geometry/internal/anchor_grow_topological.d.ts +2 -2
- package/src/shade/renderer/scene/optimization/geometry/internal/anchor_grow_topological.d.ts.map +1 -1
- package/src/shade/renderer/scene/optimization/geometry/internal/anchor_grow_topological.js +3 -3
- package/src/shade/renderer/scene/optimization/geometry/internal/cover_greedy.d.ts +4 -4
- package/src/shade/renderer/scene/optimization/geometry/internal/cover_greedy.d.ts.map +1 -1
- package/src/shade/renderer/scene/optimization/geometry/internal/cover_greedy.js +2 -2
- package/src/shade/renderer/scene/optimization/geometry/internal/match_refit_validate.d.ts +2 -2
- package/src/shade/renderer/scene/optimization/geometry/internal/match_refit_validate.d.ts.map +1 -1
- package/src/shade/renderer/scene/optimization/geometry/internal/match_refit_validate.js +2 -2
- package/src/shade/renderer/scene/optimization/geometry/internal/match_solve_transform.d.ts +7 -7
- package/src/shade/renderer/scene/optimization/geometry/internal/match_solve_transform.d.ts.map +1 -1
- package/src/shade/renderer/scene/optimization/geometry/internal/match_solve_transform.js +79 -71
- package/src/shade/renderer/shader/chunk/math/chunk_lower_bound_branchless.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/math/chunk_lower_bound_branchless.js +3 -1
- package/src/shade/renderer/shader/chunk/random/chunk_hash_to_float01.d.ts +13 -3
- package/src/shade/renderer/shader/chunk/random/chunk_hash_to_float01.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/random/chunk_hash_to_float01.js +15 -5
- package/src/shade/renderer/shader/chunk/random/chunk_random_uint.d.ts +8 -0
- package/src/shade/renderer/shader/chunk/random/chunk_random_uint.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/random/chunk_random_uint.js +15 -5
- package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg.d.ts +7 -0
- package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg.js +17 -7
- package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg_advance.d.ts +17 -0
- package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg_advance.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg_advance.js +26 -0
- package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg_output.d.ts +15 -0
- package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg_output.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg_output.js +26 -0
- package/src/shade/renderer/shadow/map/DirectionalLightShadowmap.d.ts.map +1 -1
- package/src/shade/renderer/shadow/map/DirectionalLightShadowmap.js +8 -2
- package/src/shade/renderer/shadow/map/PointLightShadowmap.d.ts.map +1 -1
- package/src/shade/renderer/shadow/map/PointLightShadowmap.js +7 -2
- package/src/shade/renderer/shadow/map/SpotLightShadowmap.d.ts.map +1 -1
- package/src/shade/renderer/shadow/map/SpotLightShadowmap.js +3 -15
- package/src/shade/renderer/shadow/map/TetrahedronPointLightShadowmap.d.ts.map +1 -1
- package/src/shade/renderer/shadow/map/TetrahedronPointLightShadowmap.js +10 -4
- package/src/shade/renderer/shadow/vsm/GPUViewShadowMaps.d.ts.map +1 -1
- package/src/shade/renderer/shadow/vsm/GPUViewShadowMaps.js +7 -2
- package/src/shade/renderer/volumetrics/GPUViewVolumetrics.js +2 -2
- package/src/shade/renderer/volumetrics/ParticipatingMediaVolume.d.ts +3 -3
- package/src/shade/renderer/volumetrics/ParticipatingMediaVolume.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/ParticipatingMediaVolume.js +3 -3
- package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.d.ts.map +1 -1
- package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.js +66 -5
- package/src/shade/wgsl/emulator/WGSLLanguageCore.d.ts.map +1 -1
- package/src/shade/wgsl/emulator/WGSLLanguageCore.js +35 -4
- package/src/view/minimap/Minimap.d.ts.map +1 -1
- package/src/view/minimap/Minimap.js +227 -225
- package/src/view/minimap/MinimapCanvasView.js +3 -3
- package/src/view/minimap/MinimapMarker.d.ts +45 -0
- package/src/view/minimap/MinimapMarker.d.ts.map +1 -0
- package/src/view/minimap/MinimapMarker.js +80 -0
- package/src/view/minimap/MinimapMarkerCollection.d.ts +6 -5
- package/src/view/minimap/MinimapMarkerCollection.d.ts.map +1 -1
- package/src/view/minimap/MinimapMarkerCollection.js +6 -6
- package/src/view/minimap/MinimapMarkerSerializationAdapter.d.ts +19 -0
- package/src/view/minimap/MinimapMarkerSerializationAdapter.d.ts.map +1 -0
- package/src/view/minimap/MinimapMarkerSerializationAdapter.js +42 -0
- package/src/view/minimap/dom/MinimapCameraView.d.ts +1 -1
- package/src/view/minimap/dom/MinimapCameraView.d.ts.map +1 -1
- package/src/view/minimap/dom/MinimapCameraView.js +23 -4
- package/src/view/minimap/dom/MinimapMarkerView.js +3 -3
- package/src/view/minimap/gl/MarkerGL.js +3 -3
- package/src/view/util/DomLayoutFrame.d.ts +53 -0
- package/src/view/util/DomLayoutFrame.d.ts.map +1 -0
- package/src/view/util/DomLayoutFrame.js +122 -0
- package/src/core/model/node-graph/visual/layout/BoxLayoutSpec.js +0 -19
- package/src/core/model/node-graph/visual/layout/ConnectedBoxLayouter.js +0 -241
- package/src/core/model/node-graph/visual/layout/ConnectionEndpointLayoutSpec.js +0 -40
- package/src/core/model/node-graph/visual/layout/ConnectionLayoutSpec.js +0 -28
- package/src/engine/ecs/util/hideEntityGracefully.js +0 -196
- package/src/shade/renderer/particles/cull/chunk_particle_cull.js +0 -38
- package/src/shade/renderer/particles/data/PARTICLE_EMITTER_LAYOUT.js +0 -214
- package/src/shade/renderer/particles/particle_prototype.d.ts.map +0 -1
- package/src/shade/renderer/particles/runtime/ParticleSpawnScheduler.js +0 -86
- package/src/shade/renderer/particles/runtime/spawn_request_encoding.js +0 -52
- package/src/shade/renderer/particles/shaders/chunk_particle_context.js +0 -58
package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.js
CHANGED
|
@@ -488,6 +488,7 @@ export function graph_avboit_draw({
|
|
|
488
488
|
const t_color = resources.get(data.color);
|
|
489
489
|
const t_norm = resources.get(data.norm);
|
|
490
490
|
const t_extinction = resources.get(data.extinction);
|
|
491
|
+
const t_emission = resources.get(data.emission);
|
|
491
492
|
|
|
492
493
|
const warp_buffer = resources.get(data.warp);
|
|
493
494
|
const t_integral = resources.get(data.integral);
|
|
@@ -539,7 +540,7 @@ export function graph_avboit_draw({
|
|
|
539
540
|
: shader_avboit_draw_ibl;
|
|
540
541
|
|
|
541
542
|
const pass_encoder = encoder.beginRenderPass(render_pass_descriptor.toGPU({
|
|
542
|
-
colorTargets: [t_color, t_norm, t_extinction],
|
|
543
|
+
colorTargets: [t_color, t_norm, t_extinction, t_emission],
|
|
543
544
|
depthTarget: t_depth,
|
|
544
545
|
colorLoadOp: data.clear_targets ? "clear" : "load",
|
|
545
546
|
// depth is only tested, never written
|
|
@@ -630,16 +631,15 @@ export function graph_avboit_draw({
|
|
|
630
631
|
pass_data.norm = pass.write(accumulators.norm);
|
|
631
632
|
pass.read(accumulators.extinction);
|
|
632
633
|
pass_data.extinction = pass.write(accumulators.extinction);
|
|
634
|
+
pass.read(accumulators.emission);
|
|
635
|
+
pass_data.emission = pass.write(accumulators.emission);
|
|
633
636
|
} else {
|
|
634
|
-
const
|
|
635
|
-
resolution: view_ctx.resolution,
|
|
636
|
-
format: 'rgba16float',
|
|
637
|
-
usage: GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.TEXTURE_BINDING
|
|
638
|
-
}));
|
|
637
|
+
const created = avboit_create_accumulators(pass, view_ctx.resolution);
|
|
639
638
|
|
|
640
|
-
pass_data.color =
|
|
641
|
-
pass_data.norm =
|
|
642
|
-
pass_data.extinction =
|
|
639
|
+
pass_data.color = created.color;
|
|
640
|
+
pass_data.norm = created.norm;
|
|
641
|
+
pass_data.extinction = created.extinction;
|
|
642
|
+
pass_data.emission = created.emission;
|
|
643
643
|
}
|
|
644
644
|
|
|
645
645
|
pass_data.light_cluster_parameters = pass.read(light_cluster_parameters);
|
|
@@ -655,6 +655,31 @@ export function graph_avboit_draw({
|
|
|
655
655
|
color: pass_data.color,
|
|
656
656
|
norm: pass_data.norm,
|
|
657
657
|
extinction: pass_data.extinction,
|
|
658
|
+
emission: pass_data.emission,
|
|
659
|
+
};
|
|
660
|
+
}
|
|
661
|
+
|
|
662
|
+
/**
|
|
663
|
+
* The four draw accumulators, created by the first pass that writes them — the meshlet draw, or a
|
|
664
|
+
* side channel's when there are no transparent materials. One place for their format and usage,
|
|
665
|
+
* so the meshlet draw and a side channel's draw cannot disagree on what they are drawing into.
|
|
666
|
+
*
|
|
667
|
+
* @param {FramePassBuilder} pass the pass that first writes them
|
|
668
|
+
* @param {ArrayLike<number>} resolution internal resolution
|
|
669
|
+
* @returns {{color: number, norm: number, extinction: number, emission: number}}
|
|
670
|
+
*/
|
|
671
|
+
export function avboit_create_accumulators(pass, resolution) {
|
|
672
|
+
const make = label => pass.create(label, TextureResourceDescriptor.from({
|
|
673
|
+
resolution,
|
|
674
|
+
format: 'rgba16float',
|
|
675
|
+
usage: GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.TEXTURE_BINDING
|
|
676
|
+
}));
|
|
677
|
+
|
|
678
|
+
return {
|
|
679
|
+
color: make("AVBOIT accumulated color"),
|
|
680
|
+
norm: make("AVBOIT accumulated normalization"),
|
|
681
|
+
extinction: make("AVBOIT accumulated extinction"),
|
|
682
|
+
emission: make("AVBOIT accumulated emission"),
|
|
658
683
|
};
|
|
659
684
|
}
|
|
660
685
|
|
|
@@ -665,6 +690,13 @@ export function graph_avboit_draw({
|
|
|
665
690
|
* selects between the two with `transparency_mode` alone. The passes it records are listed in
|
|
666
691
|
* `AVBOIT_PLAN_2026_09_03.md` §3.1.
|
|
667
692
|
*
|
|
693
|
+
* Fragments that are not meshlets — particles — join through `side_channels`: each is asked for its
|
|
694
|
+
* occupancy after the buckets have marked theirs, for its extinction after the buckets have
|
|
695
|
+
* splatted, and for its draw after the buckets have drawn, in that order, with the handles threaded
|
|
696
|
+
* through it. See `AVBOITSideChannel`. With side channels the frame runs even when no transparent
|
|
697
|
+
* material is in the scene; the bucket passes then have nothing to do and the channels' fragments
|
|
698
|
+
* composite against the opaque scene alone.
|
|
699
|
+
*
|
|
668
700
|
* @param {FrameGraph} graph
|
|
669
701
|
* @param {number} buckets
|
|
670
702
|
* @param {GPUViewContext} view_ctx
|
|
@@ -680,6 +712,8 @@ export function graph_avboit_draw({
|
|
|
680
712
|
* @param {number} volumetrics_metadata
|
|
681
713
|
* @param {ShadeIndirectLightingMode} indirect_lighting_mode
|
|
682
714
|
* @param {AVBOITSettings} [avboit] `Renderer.avboit`; the MBOIT orchestrator ignores it
|
|
715
|
+
* @param {import("./AVBOITSideChannel.js").AVBOITSideChannel[]} [side_channels] non-meshlet
|
|
716
|
+
* sources of transparent fragments; the MBOIT orchestrator ignores them
|
|
683
717
|
* @returns {number} resource ID of the composited color texture
|
|
684
718
|
*/
|
|
685
719
|
export function graph_rasterize_meshes_transparent_avboit({
|
|
@@ -701,9 +735,11 @@ export function graph_rasterize_meshes_transparent_avboit({
|
|
|
701
735
|
|
|
702
736
|
indirect_lighting_mode = ShadeIndirectLightingMode.IBL,
|
|
703
737
|
avboit = DEFAULT_SETTINGS,
|
|
738
|
+
side_channels = [],
|
|
704
739
|
}) {
|
|
705
740
|
|
|
706
741
|
assert.isNonNegativeInteger(buckets, 'buckets');
|
|
742
|
+
assert.isArray(side_channels, 'side_channels');
|
|
707
743
|
assert.isNonNegativeInteger(color_texture, 'color_texture');
|
|
708
744
|
assert.isNonNegativeInteger(depth_texture, 'depth_texture');
|
|
709
745
|
|
|
@@ -748,7 +784,7 @@ export function graph_rasterize_meshes_transparent_avboit({
|
|
|
748
784
|
scene_materials.length
|
|
749
785
|
);
|
|
750
786
|
|
|
751
|
-
if ((material_count_front + material_count_double) === 0) {
|
|
787
|
+
if ((material_count_front + material_count_double) === 0 && side_channels.length === 0) {
|
|
752
788
|
// nothing to do
|
|
753
789
|
return color_texture;
|
|
754
790
|
}
|
|
@@ -825,6 +861,10 @@ export function graph_rasterize_meshes_transparent_avboit({
|
|
|
825
861
|
occupancy,
|
|
826
862
|
});
|
|
827
863
|
|
|
864
|
+
for (const channel of side_channels) {
|
|
865
|
+
occupancy = channel.avboit_occupancy({ graph, camera: gr_camera, cluster_parameters, occupancy });
|
|
866
|
+
}
|
|
867
|
+
|
|
828
868
|
const warp = graph_avboit_build_warp({
|
|
829
869
|
graph,
|
|
830
870
|
occupancy,
|
|
@@ -863,6 +903,10 @@ export function graph_rasterize_meshes_transparent_avboit({
|
|
|
863
903
|
volume,
|
|
864
904
|
});
|
|
865
905
|
|
|
906
|
+
for (const channel of side_channels) {
|
|
907
|
+
volume = channel.avboit_splat({ graph, camera: gr_camera, warp, depth_texture, voxel_resolution, volume });
|
|
908
|
+
}
|
|
909
|
+
|
|
866
910
|
// Integrate
|
|
867
911
|
// ======
|
|
868
912
|
|
|
@@ -916,6 +960,20 @@ export function graph_rasterize_meshes_transparent_avboit({
|
|
|
916
960
|
...lighting,
|
|
917
961
|
});
|
|
918
962
|
|
|
963
|
+
for (const channel of side_channels) {
|
|
964
|
+
accumulators = channel.avboit_draw({
|
|
965
|
+
graph,
|
|
966
|
+
view_ctx,
|
|
967
|
+
camera: gr_camera,
|
|
968
|
+
depth_texture,
|
|
969
|
+
warp,
|
|
970
|
+
integral,
|
|
971
|
+
volumetrics_lut,
|
|
972
|
+
volumetrics_metadata,
|
|
973
|
+
accumulators,
|
|
974
|
+
});
|
|
975
|
+
}
|
|
976
|
+
|
|
919
977
|
// Resolve
|
|
920
978
|
// ======
|
|
921
979
|
|
|
@@ -928,6 +986,7 @@ export function graph_rasterize_meshes_transparent_avboit({
|
|
|
928
986
|
tColor: accumulators.color,
|
|
929
987
|
tNorm: accumulators.norm,
|
|
930
988
|
tExtinction: accumulators.extinction,
|
|
989
|
+
tEmission: accumulators.emission,
|
|
931
990
|
}
|
|
932
991
|
});
|
|
933
992
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shader_avboit_resolve.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/rasterize/native/avboit/shader_avboit_resolve.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shader_avboit_resolve.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/rasterize/native/avboit/shader_avboit_resolve.js"],"names":[],"mappings":"AA4EA,gDAUE;4BApF0B,gCAAgC"}
|
|
@@ -10,18 +10,23 @@ resources.createGroup()
|
|
|
10
10
|
.addTexture("tColor")
|
|
11
11
|
.addTexture("tNorm")
|
|
12
12
|
.addTexture("tExtinction")
|
|
13
|
+
.addTexture("tEmission")
|
|
13
14
|
|
|
14
15
|
/**
|
|
15
|
-
* AVBOIT resolve: composites the
|
|
16
|
+
* AVBOIT resolve: composites the four draw accumulators over the scene colour (plan §3.9).
|
|
16
17
|
*
|
|
17
18
|
* Per channel:
|
|
18
19
|
*
|
|
19
20
|
* ```
|
|
20
21
|
* T_total = exp(-Σ extinction)
|
|
21
22
|
* norm = Σ norm > ε ? (1 - T_total) / Σ norm : 0
|
|
22
|
-
* out = scene × T_total + Σ color × norm
|
|
23
|
+
* out = scene × T_total + Σ color × norm + Σ emission
|
|
23
24
|
* ```
|
|
24
25
|
*
|
|
26
|
+
* `emission` is light the draw already attenuated by the transmittance in front of it and that
|
|
27
|
+
* covers nothing, so it joins as it is — outside the normalization, which only redistributes the
|
|
28
|
+
* `1 - T_total` the surfaces took from the scene.
|
|
29
|
+
*
|
|
25
30
|
* The total transmittance is RGB, which fixed-function blending cannot apply to the destination
|
|
26
31
|
* without dual-source blending, so this reads the scene colour and writes a fresh target rather than
|
|
27
32
|
* blending in place. A NaN in any accumulator drops the transparency for that pixel and keeps the
|
|
@@ -42,8 +47,9 @@ fn main(
|
|
|
42
47
|
let accum_color = textureLoad(tColor, coord_u, 0).rgb;
|
|
43
48
|
let accum_norm = textureLoad(tNorm, coord_u, 0).rgb;
|
|
44
49
|
let accum_extinction = textureLoad(tExtinction, coord_u, 0).rgb;
|
|
50
|
+
let accum_emission = textureLoad(tEmission, coord_u, 0).rgb;
|
|
45
51
|
|
|
46
|
-
if (is_nan(accum_color.r) || is_nan(accum_norm.r) || is_nan(accum_extinction.r)) {
|
|
52
|
+
if (is_nan(accum_color.r) || is_nan(accum_norm.r) || is_nan(accum_extinction.r) || is_nan(accum_emission.r)) {
|
|
47
53
|
// one NaN fragment poisons the whole pixel of an additive accumulator; keeping the opaque
|
|
48
54
|
// scene beats smearing NaN into the frame
|
|
49
55
|
return scene;
|
|
@@ -61,7 +67,7 @@ fn main(
|
|
|
61
67
|
|
|
62
68
|
let transparent = accum_color * renormalization;
|
|
63
69
|
|
|
64
|
-
return vec4<f32>(scene.rgb * total_transmittance + transparent, scene.a);
|
|
70
|
+
return vec4<f32>(scene.rgb * total_transmittance + transparent + accum_emission, scene.a);
|
|
65
71
|
}
|
|
66
72
|
`, [
|
|
67
73
|
chunk_is_nan
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shader_avboit_splat.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/rasterize/native/avboit/shader_avboit_splat.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shader_avboit_splat.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/rasterize/native/avboit/shader_avboit_splat.js"],"names":[],"mappings":"AA0BA;;;;GAIG;AACH,6CAFU,MAAM,CAEgC;AAEhD;;;;GAIG;AACH,yDAAmD;AA4JnD,uDAA8D;qCAtLzB,8CAA8C"}
|
|
@@ -19,9 +19,7 @@ import { vertex_shader_chunk } from "../../forward/vertex_shader_chunk.js";
|
|
|
19
19
|
import { OIT_COVERAGE_MAX } from "../oit/OIT_CONSTANTS.js";
|
|
20
20
|
import { rasterization_primitive_state } from "../rasterization_primitive_state.js";
|
|
21
21
|
import { AVBOIT_WARP_STRUCT } from "./AVBOIT_WARP_STRUCT.js";
|
|
22
|
-
import {
|
|
23
|
-
import { chunk_avboit_overflows } from "./chunk_avboit_overflows.js";
|
|
24
|
-
import { chunk_avboit_pack_counts } from "./chunk_avboit_pack_counts.js";
|
|
22
|
+
import { chunk_avboit_splat_slice } from "./chunk_avboit_splat_slice.js";
|
|
25
23
|
import { chunk_avboit_transmission_tint } from "./chunk_avboit_transmission_tint.js";
|
|
26
24
|
import { chunk_avboit_transmittance_to_extinction } from "./chunk_avboit_transmittance_to_extinction.js";
|
|
27
25
|
import { chunk_avboit_view_depth_to_physical } from "./chunk_avboit_view_depth_to_physical.js";
|
|
@@ -74,9 +72,8 @@ const shader_vertex = ShaderDescriptor.from({
|
|
|
74
72
|
*
|
|
75
73
|
* Depth goes view-space → curve → warp → physical, and the extinction is linear-splat between the
|
|
76
74
|
* two physical slices around it (`c = p - 0.5`) so a surface crossing a slice boundary does not
|
|
77
|
-
* alias.
|
|
78
|
-
*
|
|
79
|
-
* the nearest overflow wins.
|
|
75
|
+
* alias. The add itself, and the overflow it may record, is `chunk_avboit_splat_slice` — shared
|
|
76
|
+
* with every side channel's splat, so a particle reaches the volume through the same code.
|
|
80
77
|
*
|
|
81
78
|
* No depth attachment: a splat behind opaque geometry lies deeper than any visible transparent
|
|
82
79
|
* fragment and the integral at a depth only contains what is in front of it. No TAA un-jitter: the
|
|
@@ -86,36 +83,6 @@ const shader_vertex = ShaderDescriptor.from({
|
|
|
86
83
|
const fragment_body = CodeChunk.from(
|
|
87
84
|
//language=WGSL
|
|
88
85
|
`
|
|
89
|
-
fn avboit_splat_slice(column: u32, slice: i32, extinction: vec3<f32>, texel: vec2<u32>) {
|
|
90
|
-
let physical = i32(warp.physical_count);
|
|
91
|
-
let s = clamp(slice, 0, physical - 1);
|
|
92
|
-
|
|
93
|
-
let counts = avboit_extinction_to_counts(extinction);
|
|
94
|
-
|
|
95
|
-
if (all(counts == vec3<u32>(0u))) {
|
|
96
|
-
return;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
let previous = atomicAdd(&extinction_volume[column + u32(s)], avboit_pack_counts(counts));
|
|
100
|
-
|
|
101
|
-
let overflow = avboit_overflows(previous, counts);
|
|
102
|
-
|
|
103
|
-
if (any(overflow)) {
|
|
104
|
-
let base = (texel.y * warp.voxel_width + texel.x) * 3u;
|
|
105
|
-
// inverted so that the zero-cleared buffer means "no overflow" and max keeps the nearest
|
|
106
|
-
let mark = u32(physical - s);
|
|
107
|
-
if (overflow.x) {
|
|
108
|
-
atomicMax(&overflow_slice[base], mark);
|
|
109
|
-
}
|
|
110
|
-
if (overflow.y) {
|
|
111
|
-
atomicMax(&overflow_slice[base + 1u], mark);
|
|
112
|
-
}
|
|
113
|
-
if (overflow.z) {
|
|
114
|
-
atomicMax(&overflow_slice[base + 2u], mark);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
|
|
119
86
|
@fragment
|
|
120
87
|
fn main(
|
|
121
88
|
@builtin(front_facing) front_facing : bool,
|
|
@@ -174,9 +141,7 @@ fn main(
|
|
|
174
141
|
chunk_mat4_extract_position,
|
|
175
142
|
chunk_dielectric_specular_color,
|
|
176
143
|
chunk_F_Hauber,
|
|
177
|
-
|
|
178
|
-
chunk_avboit_overflows,
|
|
179
|
-
chunk_avboit_pack_counts,
|
|
144
|
+
chunk_avboit_splat_slice,
|
|
180
145
|
chunk_avboit_transmission_tint,
|
|
181
146
|
chunk_avboit_transmittance_to_extinction,
|
|
182
147
|
chunk_avboit_view_depth_to_physical,
|
|
@@ -6,7 +6,12 @@
|
|
|
6
6
|
* @param {FrameGraph} graph
|
|
7
7
|
* @param {RasterizationJob} job
|
|
8
8
|
* @param {GPUCollectionLimits} limits
|
|
9
|
-
* @returns {number} render buckets buffer
|
|
9
|
+
* @returns {{buckets: number, depth: number, color_targets: number[]}} the render buckets buffer,
|
|
10
|
+
* and the depth and colour targets as this pipeline left them
|
|
10
11
|
*/
|
|
11
|
-
export function graph_rasterize_scene({ graph, job, limits, }: FrameGraph):
|
|
12
|
+
export function graph_rasterize_scene({ graph, job, limits, }: FrameGraph): {
|
|
13
|
+
buckets: number;
|
|
14
|
+
depth: number;
|
|
15
|
+
color_targets: number[];
|
|
16
|
+
};
|
|
12
17
|
//# sourceMappingURL=graph_rasterize_scene.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph_rasterize_scene.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/rasterize/standard/graph_rasterize_scene.js"],"names":[],"mappings":"AAcA
|
|
1
|
+
{"version":3,"file":"graph_rasterize_scene.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/rasterize/standard/graph_rasterize_scene.js"],"names":[],"mappings":"AAcA;;;;;;;;;;GAUG;AACH,4EAHa;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAA;CAAC,CA0MrE"}
|
|
@@ -20,7 +20,8 @@ import { graph_rasterize_remaining_opaque } from "./graph_rasterize_remaining_op
|
|
|
20
20
|
* @param {FrameGraph} graph
|
|
21
21
|
* @param {RasterizationJob} job
|
|
22
22
|
* @param {GPUCollectionLimits} limits
|
|
23
|
-
* @returns {number} render buckets buffer
|
|
23
|
+
* @returns {{buckets: number, depth: number, color_targets: number[]}} the render buckets buffer,
|
|
24
|
+
* and the depth and colour targets as this pipeline left them
|
|
24
25
|
*/
|
|
25
26
|
export function graph_rasterize_scene({
|
|
26
27
|
graph,
|
|
@@ -207,5 +208,18 @@ export function graph_rasterize_scene({
|
|
|
207
208
|
|
|
208
209
|
graph.pop_scope();
|
|
209
210
|
|
|
210
|
-
|
|
211
|
+
/*
|
|
212
|
+
The advanced handles come back with the buckets, mirroring
|
|
213
|
+
`graph_rasterize_scene_fast_raw`. Returning only the buckets left the caller re-importing the
|
|
214
|
+
same physical textures to read what this wrote — two ResourceEntry chains for one texture, and
|
|
215
|
+
no dependency edge at all from the rasterization passes to their consumers. It draws correctly
|
|
216
|
+
today only because writing an imported resource marks a pass a side-effect, so culling cannot
|
|
217
|
+
touch it and insertion order saves the picture. Make those targets transient — which
|
|
218
|
+
`Renderer.js` carries a TODO to do — and the whole opaque chain culls itself with no diagnostic.
|
|
219
|
+
*/
|
|
220
|
+
return {
|
|
221
|
+
buckets: gr_render_buckets,
|
|
222
|
+
depth: gr_texture_depth,
|
|
223
|
+
color_targets: raster_color_targets,
|
|
224
|
+
};
|
|
211
225
|
}
|
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
* Geometries with no detected sharing fall through as `[(IDENTITY, original)]`.
|
|
8
8
|
*
|
|
9
9
|
* @param {GeometryDeduplicateOptions} options
|
|
10
|
-
* @returns {Map<Geometry, [
|
|
10
|
+
* @returns {Map<Geometry, [Transform64, Geometry][]>}
|
|
11
11
|
*/
|
|
12
|
-
export function geometry_deduplicate({ geometries, min_primitives, position_epsilon, seed_budget, }: GeometryDeduplicateOptions): Map<Geometry, [
|
|
12
|
+
export function geometry_deduplicate({ geometries, min_primitives, position_epsilon, seed_budget, }: GeometryDeduplicateOptions): Map<Geometry, [Transform64, Geometry][]>;
|
|
13
13
|
export type PieceGeometryStats = {
|
|
14
14
|
/**
|
|
15
15
|
* A-frame centroid
|
|
@@ -41,5 +41,5 @@ export type GeometryDeduplicateOptions = {
|
|
|
41
41
|
*/
|
|
42
42
|
seed_budget?: number;
|
|
43
43
|
};
|
|
44
|
-
import {
|
|
44
|
+
import { Transform64 } from "../../../../../engine/ecs/transform/Transform64.js";
|
|
45
45
|
//# sourceMappingURL=geometry_deduplicate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geometry_deduplicate.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/scene/optimization/geometry/geometry_deduplicate.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"geometry_deduplicate.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/scene/optimization/geometry/geometry_deduplicate.js"],"names":[],"mappings":"AA6CA;;;;;;;;;;GAUG;AACH,qGAHW,0BAA0B,GACxB,cAAc,CAAC,WAAW,WAAW,EAAE,CAAC,CAqNpD;;;;;gBA8Ea,MAAM;gBACN,MAAM;gBACN,MAAM;;;;YACN,MAAM;;;gBA1UN,UAAU;;;;qBACV,MAAM;;;;;;;;uBACN,MAAM;;;;kBAKN,MAAM;;4BArBQ,oDAAoD"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { HashMap } from "../../../../../core/collection/map/HashMap.js";
|
|
2
2
|
import { v3_distance } from "../../../../../core/geom/vec3/v3_distance.js";
|
|
3
3
|
import Vector3 from "../../../../../core/geom/Vector3.js";
|
|
4
|
-
import {
|
|
4
|
+
import { v3_quaternion_apply } from "../../../../../core/geom/vec3/v3_quaternion_apply.js";
|
|
5
|
+
import { Transform64 } from "../../../../../engine/ecs/transform/Transform64.js";
|
|
5
6
|
import { StandardAttributes } from "../../../geometry/StandardAttributes.js";
|
|
6
7
|
import { anchor_grow_topological } from "./internal/anchor_grow_topological.js";
|
|
7
8
|
import { cover_greedy } from "./internal/cover_greedy.js";
|
|
@@ -51,7 +52,7 @@ const ABSOLUTE_PAIR_EPSILON_FLOOR = 1e-6;
|
|
|
51
52
|
* Geometries with no detected sharing fall through as `[(IDENTITY, original)]`.
|
|
52
53
|
*
|
|
53
54
|
* @param {GeometryDeduplicateOptions} options
|
|
54
|
-
* @returns {Map<Geometry, [
|
|
55
|
+
* @returns {Map<Geometry, [Transform64, Geometry][]>}
|
|
55
56
|
*/
|
|
56
57
|
export function geometry_deduplicate({
|
|
57
58
|
geometries,
|
|
@@ -60,7 +61,7 @@ export function geometry_deduplicate({
|
|
|
60
61
|
seed_budget = 256,
|
|
61
62
|
}) {
|
|
62
63
|
|
|
63
|
-
/** @type {Map<Geometry, [
|
|
64
|
+
/** @type {Map<Geometry, [Transform64, Geometry][]>} */
|
|
64
65
|
const result = new Map();
|
|
65
66
|
|
|
66
67
|
if (geometries.length === 0) {
|
|
@@ -196,7 +197,7 @@ export function geometry_deduplicate({
|
|
|
196
197
|
const decisions = cover_greedy(matches, min_primitives);
|
|
197
198
|
|
|
198
199
|
// ─────────────── Stage F: assemble output for unique geoms ───────────────
|
|
199
|
-
/** @type {Map<number, [
|
|
200
|
+
/** @type {Map<number, [Transform64, Geometry][]>} */
|
|
200
201
|
const unique_results = new Map();
|
|
201
202
|
/** @type {Map<number, Set<number>>} */
|
|
202
203
|
const removed_faces = new Map();
|
|
@@ -207,7 +208,7 @@ export function geometry_deduplicate({
|
|
|
207
208
|
a_geom, decision.canonical_faces, "_piece" + decision.canonical_piece_id
|
|
208
209
|
);
|
|
209
210
|
|
|
210
|
-
get_or_create_array(unique_results, decision.a_geom).push([new
|
|
211
|
+
get_or_create_array(unique_results, decision.a_geom).push([new Transform64(), piece]);
|
|
211
212
|
const a_removed = get_or_create_set(removed_faces, decision.a_geom);
|
|
212
213
|
for (const f of decision.canonical_faces) a_removed.add(f);
|
|
213
214
|
|
|
@@ -232,7 +233,7 @@ export function geometry_deduplicate({
|
|
|
232
233
|
|
|
233
234
|
if (removed === undefined || removed.size === 0) {
|
|
234
235
|
const entries = get_or_create_array(unique_results, idx);
|
|
235
|
-
if (entries.length === 0) entries.push([new
|
|
236
|
+
if (entries.length === 0) entries.push([new Transform64(), geom]);
|
|
236
237
|
continue;
|
|
237
238
|
}
|
|
238
239
|
|
|
@@ -245,7 +246,7 @@ export function geometry_deduplicate({
|
|
|
245
246
|
}
|
|
246
247
|
|
|
247
248
|
const leftover = geometry_extract_subset(geom, leftover_face_ids, "_leftover");
|
|
248
|
-
get_or_create_array(unique_results, idx).push([new
|
|
249
|
+
get_or_create_array(unique_results, idx).push([new Transform64(), leftover]);
|
|
249
250
|
}
|
|
250
251
|
|
|
251
252
|
/** @type {Map<Geometry, number>} */
|
|
@@ -259,7 +260,7 @@ export function geometry_deduplicate({
|
|
|
259
260
|
for (const input_geom of geometries) {
|
|
260
261
|
const canonical = input_to_canonical.get(input_geom);
|
|
261
262
|
const idx = unique_idx_by_canonical.get(canonical);
|
|
262
|
-
const entries = unique_results.get(idx) ?? [[new
|
|
263
|
+
const entries = unique_results.get(idx) ?? [[new Transform64(), canonical]];
|
|
263
264
|
result.set(input_geom, entries.map(([t, g]) => [t.clone(), g]));
|
|
264
265
|
}
|
|
265
266
|
|
|
@@ -338,7 +339,7 @@ const OVERSCALE_SAFETY_FACTOR = 2.0;
|
|
|
338
339
|
*/
|
|
339
340
|
const OVERSCALE_MAX_FRACTION = 0.01;
|
|
340
341
|
|
|
341
|
-
const scratch_centroid_rotated = new
|
|
342
|
+
const scratch_centroid_rotated = new Float64Array(3);
|
|
342
343
|
|
|
343
344
|
/**
|
|
344
345
|
* @typedef PieceGeometryStats
|
|
@@ -389,7 +390,7 @@ function compute_piece_geometry_stats(piece) {
|
|
|
389
390
|
}
|
|
390
391
|
|
|
391
392
|
/**
|
|
392
|
-
* Build the meep `
|
|
393
|
+
* Build the meep `Transform64` for an instance, cloning the fitted match
|
|
393
394
|
* transform and baking in the per-piece OVERSCALE that absorbs the fit
|
|
394
395
|
* residual into harmless overlap.
|
|
395
396
|
*
|
|
@@ -406,10 +407,10 @@ function compute_piece_geometry_stats(piece) {
|
|
|
406
407
|
* piece's boundary reaches at least the leftover's boundary in any residual
|
|
407
408
|
* direction.
|
|
408
409
|
*
|
|
409
|
-
* @param {
|
|
410
|
+
* @param {Transform64} mt fitted canonical→instance match transform
|
|
410
411
|
* @param {PieceGeometryStats} piece_stats
|
|
411
412
|
* @param {number} max_residual post-fit residual in B-frame units
|
|
412
|
-
* @returns {
|
|
413
|
+
* @returns {Transform64}
|
|
413
414
|
*/
|
|
414
415
|
function match_transform_to_meep_transform(mt, piece_stats, max_residual) {
|
|
415
416
|
const t = mt.clone();
|
|
@@ -418,7 +419,7 @@ function match_transform_to_meep_transform(mt, piece_stats, max_residual) {
|
|
|
418
419
|
// actual extent — using the max axis-scale keeps δ a conservative lower
|
|
419
420
|
// bound on the boost needed.
|
|
420
421
|
const max_axis_scale = Math.max(
|
|
421
|
-
Math.abs(mt.
|
|
422
|
+
Math.abs(mt.scale_x), Math.abs(mt.scale_y), Math.abs(mt.scale_z)
|
|
422
423
|
);
|
|
423
424
|
const piece_radius_in_b = max_axis_scale * piece_stats.radius;
|
|
424
425
|
|
|
@@ -431,20 +432,25 @@ function match_transform_to_meep_transform(mt, piece_stats, max_residual) {
|
|
|
431
432
|
if (delta === 0) return t;
|
|
432
433
|
|
|
433
434
|
const boost = 1 + delta;
|
|
434
|
-
t.
|
|
435
|
+
t.setScale(t.scale_x * boost, t.scale_y * boost, t.scale_z * boost);
|
|
435
436
|
|
|
436
437
|
// Adjusted translation = original − δ · R · diag(s) · A_centroid.
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
mt.
|
|
440
|
-
mt.
|
|
438
|
+
v3_quaternion_apply(
|
|
439
|
+
scratch_centroid_rotated, 0,
|
|
440
|
+
mt.scale_x * piece_stats.centroid_x,
|
|
441
|
+
mt.scale_y * piece_stats.centroid_y,
|
|
442
|
+
mt.scale_z * piece_stats.centroid_z,
|
|
443
|
+
mt.rotation_x, mt.rotation_y, mt.rotation_z, mt.rotation_w
|
|
441
444
|
);
|
|
442
|
-
scratch_centroid_rotated.applyQuaternion(mt.rotation);
|
|
443
445
|
|
|
444
|
-
t.
|
|
445
|
-
mt.
|
|
446
|
-
mt.
|
|
447
|
-
mt.
|
|
446
|
+
t.setTranslation(
|
|
447
|
+
mt.translation_x - delta * scratch_centroid_rotated[0],
|
|
448
|
+
mt.translation_y - delta * scratch_centroid_rotated[1],
|
|
449
|
+
mt.translation_z - delta * scratch_centroid_rotated[2]
|
|
448
450
|
);
|
|
451
|
+
|
|
452
|
+
// the scale and translation both moved, so the matrix owes an update before anyone reads it
|
|
453
|
+
t.updateMatrix();
|
|
454
|
+
|
|
449
455
|
return t;
|
|
450
456
|
}
|
package/src/shade/renderer/scene/optimization/geometry/internal/anchor_grow_topological.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* @property {number[]} faces_b face IDs in B that were matched
|
|
7
7
|
* @property {Map<number, number>} vertex_correspondence vertex_a → vertex_b
|
|
8
8
|
* @property {Map<number, number>} face_correspondence face_a → face_b
|
|
9
|
-
* @property {import("../../../../../../engine/ecs/transform/
|
|
9
|
+
* @property {import("../../../../../../engine/ecs/transform/Transform64.js").Transform64} transform refined transform
|
|
10
10
|
*/
|
|
11
11
|
/**
|
|
12
12
|
* From a single seed (face_a, face_b) with an established initial vertex
|
|
@@ -63,6 +63,6 @@ export type GrownMatch = {
|
|
|
63
63
|
/**
|
|
64
64
|
* refined transform
|
|
65
65
|
*/
|
|
66
|
-
transform: import("../../../../../../engine/ecs/transform/
|
|
66
|
+
transform: import("../../../../../../engine/ecs/transform/Transform64.js").Transform64;
|
|
67
67
|
};
|
|
68
68
|
//# sourceMappingURL=anchor_grow_topological.d.ts.map
|
package/src/shade/renderer/scene/optimization/geometry/internal/anchor_grow_topological.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anchor_grow_topological.d.ts","sourceRoot":"","sources":["../../../../../../../../src/shade/renderer/scene/optimization/geometry/internal/anchor_grow_topological.js"],"names":[],"mappings":"AAYA;;;;;;;;;GASG;AAEH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH;IAX0B,UAAU;IACV,UAAU;IACJ,UAAU;IACV,UAAU;IACL,6BAA6B,EAAvD,IAAI,MAAM,EAAE,MAAM,CAAC;IACN,WAAW,EAAxB,MAAM;IACO,WAAW,EAAxB,MAAM;IACO,gBAAgB,EAA7B,MAAM;IACQ,cAAc,GAA5B,MAAM;IACJ,UAAU,GAAG,IAAI,CA8I7B;;;;;;;;aAxKa,MAAM,EAAE;;;;aACR,MAAM,EAAE;;;;2BACR,IAAI,MAAM,EAAE,MAAM,CAAC;;;;yBACnB,IAAI,MAAM,EAAE,MAAM,CAAC;;;;eACnB,OAAO,
|
|
1
|
+
{"version":3,"file":"anchor_grow_topological.d.ts","sourceRoot":"","sources":["../../../../../../../../src/shade/renderer/scene/optimization/geometry/internal/anchor_grow_topological.js"],"names":[],"mappings":"AAYA;;;;;;;;;GASG;AAEH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH;IAX0B,UAAU;IACV,UAAU;IACJ,UAAU;IACV,UAAU;IACL,6BAA6B,EAAvD,IAAI,MAAM,EAAE,MAAM,CAAC;IACN,WAAW,EAAxB,MAAM;IACO,WAAW,EAAxB,MAAM;IACO,gBAAgB,EAA7B,MAAM;IACQ,cAAc,GAA5B,MAAM;IACJ,UAAU,GAAG,IAAI,CA8I7B;;;;;;;;aAxKa,MAAM,EAAE;;;;aACR,MAAM,EAAE;;;;2BACR,IAAI,MAAM,EAAE,MAAM,CAAC;;;;yBACnB,IAAI,MAAM,EAAE,MAAM,CAAC;;;;eACnB,OAAO,uDAAuD,EAAE,WAAW"}
|
|
@@ -3,7 +3,7 @@ import { bt_edge_get } from "../../../../../../core/geom/3d/topology/struct/bina
|
|
|
3
3
|
import { bt_edge_other_face } from "../../../../../../core/geom/3d/topology/struct/binary/query/bt_edge_other_face.js";
|
|
4
4
|
import { bt_face_third_vertex } from "../../../../../../core/geom/3d/topology/struct/binary/query/bt_face_third_vertex.js";
|
|
5
5
|
import Vector3 from "../../../../../../core/geom/Vector3.js";
|
|
6
|
-
import {
|
|
6
|
+
import { Transform64 } from "../../../../../../engine/ecs/transform/Transform64.js";
|
|
7
7
|
import { StandardAttributes } from "../../../../geometry/StandardAttributes.js";
|
|
8
8
|
import { apply_match_transform, match_solve_transform } from "./match_solve_transform.js";
|
|
9
9
|
import { vertex_attribute_pairs, vertex_attributes_match } from "./vertex_attributes_equal.js";
|
|
@@ -18,7 +18,7 @@ const scratch_predicted = new Vector3();
|
|
|
18
18
|
* @property {number[]} faces_b face IDs in B that were matched
|
|
19
19
|
* @property {Map<number, number>} vertex_correspondence vertex_a → vertex_b
|
|
20
20
|
* @property {Map<number, number>} face_correspondence face_a → face_b
|
|
21
|
-
* @property {import("../../../../../../engine/ecs/transform/
|
|
21
|
+
* @property {import("../../../../../../engine/ecs/transform/Transform64.js").Transform64} transform refined transform
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
24
|
/**
|
|
@@ -66,7 +66,7 @@ export function anchor_grow_topological(args) {
|
|
|
66
66
|
|
|
67
67
|
f_b_for_a.set(seed_face_a, seed_face_b);
|
|
68
68
|
|
|
69
|
-
const transform = new
|
|
69
|
+
const transform = new Transform64();
|
|
70
70
|
let needs_refit = true;
|
|
71
71
|
|
|
72
72
|
// Frontier: edges of matched faces that we haven't tried to grow across yet
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @property {number} b_geom target/instance geometry index
|
|
5
5
|
* @property {number[]} faces_a
|
|
6
6
|
* @property {number[]} faces_b
|
|
7
|
-
* @property {import("../../../../../../engine/ecs/transform/
|
|
7
|
+
* @property {import("../../../../../../engine/ecs/transform/Transform64.js").Transform64} transform
|
|
8
8
|
* @property {number} max_residual Max post-refit residual distance (B-frame units).
|
|
9
9
|
* Used downstream to size a per-piece overscale
|
|
10
10
|
* that absorbs the residual into harmless overlap.
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* @typedef CoverDecisionInstance
|
|
14
14
|
* @property {number} b_geom
|
|
15
15
|
* @property {number[]} faces_b
|
|
16
|
-
* @property {import("../../../../../../engine/ecs/transform/
|
|
16
|
+
* @property {import("../../../../../../engine/ecs/transform/Transform64.js").Transform64} transform
|
|
17
17
|
* @property {number} max_residual
|
|
18
18
|
*/
|
|
19
19
|
/**
|
|
@@ -48,7 +48,7 @@ export type GrownMatchRecord = {
|
|
|
48
48
|
b_geom: number;
|
|
49
49
|
faces_a: number[];
|
|
50
50
|
faces_b: number[];
|
|
51
|
-
transform: import("../../../../../../engine/ecs/transform/
|
|
51
|
+
transform: import("../../../../../../engine/ecs/transform/Transform64.js").Transform64;
|
|
52
52
|
/**
|
|
53
53
|
* Max post-refit residual distance (B-frame units).
|
|
54
54
|
* Used downstream to size a per-piece overscale
|
|
@@ -59,7 +59,7 @@ export type GrownMatchRecord = {
|
|
|
59
59
|
export type CoverDecisionInstance = {
|
|
60
60
|
b_geom: number;
|
|
61
61
|
faces_b: number[];
|
|
62
|
-
transform: import("../../../../../../engine/ecs/transform/
|
|
62
|
+
transform: import("../../../../../../engine/ecs/transform/Transform64.js").Transform64;
|
|
63
63
|
max_residual: number;
|
|
64
64
|
};
|
|
65
65
|
export type CoverDecision = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cover_greedy.d.ts","sourceRoot":"","sources":["../../../../../../../../src/shade/renderer/scene/optimization/geometry/internal/cover_greedy.js"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;;;GAMG;AAEH;;;;;;;GAOG;AAEH;;;;;;;;;;;GAWG;AACH,sCAJW,gBAAgB,EAAE,kBAClB,MAAM,GACJ,aAAa,EAAE,CA2F3B;;;;;YAhIa,MAAM;;;;YACN,MAAM;aACN,MAAM,EAAE;aACR,MAAM,EAAE;eACR,OAAO,
|
|
1
|
+
{"version":3,"file":"cover_greedy.d.ts","sourceRoot":"","sources":["../../../../../../../../src/shade/renderer/scene/optimization/geometry/internal/cover_greedy.js"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;;;GAMG;AAEH;;;;;;;GAOG;AAEH;;;;;;;;;;;GAWG;AACH,sCAJW,gBAAgB,EAAE,kBAClB,MAAM,GACJ,aAAa,EAAE,CA2F3B;;;;;YAhIa,MAAM;;;;YACN,MAAM;aACN,MAAM,EAAE;aACR,MAAM,EAAE;eACR,OAAO,uDAAuD,EAAE,WAAW;;;;;;kBAC3E,MAAM;;;YAON,MAAM;aACN,MAAM,EAAE;eACR,OAAO,uDAAuD,EAAE,WAAW;kBAC3E,MAAM;;;;;;wBAKN,MAAM;;;;YACN,MAAM;;;;qBACN,MAAM,EAAE;;;;eACR,qBAAqB,EAAE"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @property {number} b_geom target/instance geometry index
|
|
5
5
|
* @property {number[]} faces_a
|
|
6
6
|
* @property {number[]} faces_b
|
|
7
|
-
* @property {import("../../../../../../engine/ecs/transform/
|
|
7
|
+
* @property {import("../../../../../../engine/ecs/transform/Transform64.js").Transform64} transform
|
|
8
8
|
* @property {number} max_residual Max post-refit residual distance (B-frame units).
|
|
9
9
|
* Used downstream to size a per-piece overscale
|
|
10
10
|
* that absorbs the residual into harmless overlap.
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* @typedef CoverDecisionInstance
|
|
15
15
|
* @property {number} b_geom
|
|
16
16
|
* @property {number[]} faces_b
|
|
17
|
-
* @property {import("../../../../../../engine/ecs/transform/
|
|
17
|
+
* @property {import("../../../../../../engine/ecs/transform/Transform64.js").Transform64} transform
|
|
18
18
|
* @property {number} max_residual
|
|
19
19
|
*/
|
|
20
20
|
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
* @param {Geometry} args.geometry_a
|
|
20
20
|
* @param {Geometry} args.geometry_b
|
|
21
21
|
* @param {Map<number, number>} args.vertex_correspondence vertex_a → vertex_b
|
|
22
|
-
* @param {import("../../../../../../engine/ecs/transform/
|
|
22
|
+
* @param {import("../../../../../../engine/ecs/transform/Transform64.js").Transform64} args.transform Updated in place.
|
|
23
23
|
* @param {number} args.threshold
|
|
24
24
|
* @returns {ValidationResult}
|
|
25
25
|
*/
|
|
@@ -27,7 +27,7 @@ export function match_refit_and_validate({ geometry_a, geometry_b, vertex_corres
|
|
|
27
27
|
geometry_a: Geometry;
|
|
28
28
|
geometry_b: Geometry;
|
|
29
29
|
vertex_correspondence: Map<number, number>;
|
|
30
|
-
transform: import("../../../../../../engine/ecs/transform/
|
|
30
|
+
transform: import("../../../../../../engine/ecs/transform/Transform64.js").Transform64;
|
|
31
31
|
threshold: number;
|
|
32
32
|
}): ValidationResult;
|
|
33
33
|
/**
|