@woosh/meep-engine 3.23.0 → 3.25.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/entity_world_bounds.d.ts +9 -3
- package/editor/entity_world_bounds.d.ts.map +1 -1
- package/editor/entity_world_bounds.js +61 -4
- package/package.json +1 -1
- package/src/core/binary/allocator/OffsetAllocator.d.ts +40 -2
- package/src/core/binary/allocator/OffsetAllocator.d.ts.map +1 -1
- package/src/core/binary/allocator/OffsetAllocator.js +124 -29
- package/src/core/collection/map/u32_index.d.ts +83 -0
- package/src/core/collection/map/u32_index.d.ts.map +1 -0
- package/src/core/collection/map/u32_index.js +247 -0
- package/src/engine/asset/loaders/GLTFSceneBundleAssetLoader.d.ts +2 -2
- package/src/engine/asset/loaders/GLTFSceneBundleAssetLoader.js +2 -2
- package/src/engine/asset/loaders/USDSceneBundleAssetLoader.d.ts +1 -2
- package/src/engine/asset/loaders/USDSceneBundleAssetLoader.d.ts.map +1 -1
- package/src/engine/asset/loaders/USDSceneBundleAssetLoader.js +4 -12
- package/src/engine/ecs/gpu/GPUStateAuthority.d.ts +55 -0
- package/src/engine/ecs/gpu/GPUStateAuthority.d.ts.map +1 -0
- package/src/engine/ecs/gpu/GPUStateAuthority.js +72 -0
- package/src/engine/ecs/gpu/GPUStateAuthorityFlags.d.ts +40 -0
- package/src/engine/ecs/gpu/GPUStateAuthorityFlags.d.ts.map +1 -0
- package/src/engine/ecs/gpu/GPUStateAuthorityFlags.js +79 -0
- package/src/engine/ecs/gpu/gpu_authority_assert_cpu.d.ts +18 -0
- package/src/engine/ecs/gpu/gpu_authority_assert_cpu.d.ts.map +1 -0
- package/src/engine/ecs/gpu/gpu_authority_assert_cpu.js +27 -0
- package/src/engine/ecs/gpu/gpu_authority_declare.d.ts +23 -0
- package/src/engine/ecs/gpu/gpu_authority_declare.d.ts.map +1 -0
- package/src/engine/ecs/gpu/gpu_authority_declare.js +39 -0
- package/src/engine/ecs/gpu/gpu_authority_grant.d.ts +15 -0
- package/src/engine/ecs/gpu/gpu_authority_grant.d.ts.map +1 -0
- package/src/engine/ecs/gpu/gpu_authority_grant.js +38 -0
- package/src/engine/ecs/gpu/gpu_authority_has.d.ts +18 -0
- package/src/engine/ecs/gpu/gpu_authority_has.d.ts.map +1 -0
- package/src/engine/ecs/gpu/gpu_authority_has.js +28 -0
- package/src/engine/ecs/gpu/gpu_authority_revoke.d.ts +24 -0
- package/src/engine/ecs/gpu/gpu_authority_revoke.d.ts.map +1 -0
- package/src/engine/ecs/gpu/gpu_authority_revoke.js +49 -0
- package/src/engine/ecs/ik/IKProblem.d.ts +14 -0
- package/src/engine/ecs/ik/IKProblem.d.ts.map +1 -1
- package/src/engine/ecs/ik/IKProblem.js +16 -0
- package/src/engine/ecs/ik/InverseKinematicsSystem.d.ts.map +1 -1
- package/src/engine/ecs/ik/InverseKinematicsSystem.js +19 -0
- package/src/engine/ecs/ik/OneBoneSurfaceAlignmentSolver.js +2 -2
- package/src/engine/ecs/ik/TwoBoneInverseKinematicsSolver.js +2 -2
- package/src/engine/ecs/ik/ik_bone_chain.d.ts +11 -2
- package/src/engine/ecs/ik/ik_bone_chain.d.ts.map +1 -1
- package/src/engine/ecs/ik/ik_bone_chain.js +47 -2
- package/src/engine/ecs/ik/ik_write_local_rotation.d.ts.map +1 -1
- package/src/engine/ecs/ik/ik_write_local_rotation.js +6 -0
- package/src/engine/ecs/speaker/VoiceSystem.d.ts.map +1 -1
- package/src/engine/ecs/speaker/VoiceSystem.js +6 -0
- package/src/engine/ecs/transform/T64WorldCache.d.ts +50 -0
- package/src/engine/ecs/transform/T64WorldCache.d.ts.map +1 -0
- package/src/engine/ecs/transform/T64WorldCache.js +139 -0
- package/src/engine/ecs/transform/t64_evaluate_world.d.ts +31 -0
- package/src/engine/ecs/transform/t64_evaluate_world.d.ts.map +1 -0
- package/src/engine/ecs/transform/t64_evaluate_world.js +126 -0
- package/src/engine/ecs/transform-attachment/TransformAttachmentSystem.d.ts +8 -0
- package/src/engine/ecs/transform-attachment/TransformAttachmentSystem.d.ts.map +1 -1
- package/src/engine/ecs/transform-attachment/TransformAttachmentSystem.js +59 -30
- package/src/engine/graphics/ecs/highlight/system/ShadedGeometryHighlightSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/highlight/system/ShadedGeometryHighlightSystem.js +4 -11
- package/src/engine/graphics/ecs/mesh-v2/SHADED_GEOMETRY_EVENT_CHANGE.d.ts +14 -0
- package/src/engine/graphics/ecs/mesh-v2/SHADED_GEOMETRY_EVENT_CHANGE.d.ts.map +1 -0
- package/src/engine/graphics/ecs/mesh-v2/SHADED_GEOMETRY_EVENT_CHANGE.js +13 -0
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometry.d.ts +2 -14
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometry.d.ts.map +1 -1
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometry.js +11 -21
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometryFlags.d.ts +1 -0
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometryFlags.js +7 -0
- package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshHighlightSystem.d.ts +5 -6
- package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshHighlightSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshHighlightSystem.js +13 -11
- package/src/engine/graphics/ecs/mesh-v2/shaded_geometry_announce_change.d.ts +14 -0
- package/src/engine/graphics/ecs/mesh-v2/shaded_geometry_announce_change.d.ts.map +1 -0
- package/src/engine/graphics/ecs/mesh-v2/shaded_geometry_announce_change.js +21 -0
- package/src/engine/graphics/ecs/particles/ParticleEffect.d.ts +1 -1
- package/src/engine/graphics/ecs/particles/ParticleEffect.js +1 -1
- package/src/engine/graphics/sh3/path_tracer/populate_path_traced_scene_from_ecd.d.ts +1 -1
- package/src/engine/graphics/sh3/path_tracer/populate_path_traced_scene_from_ecd.js +1 -1
- package/src/engine/graphics3/AnimationGraphSystem.js +3 -3
- package/src/engine/graphics3/AnimationSystem.js +2 -2
- package/src/engine/graphics3/DebugDrawSystem.d.ts.map +1 -1
- package/src/engine/graphics3/DebugDrawSystem.js +2 -4
- package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts +34 -27
- package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts.map +1 -1
- package/src/engine/graphics3/GPUParticleEmitterSystem.js +185 -85
- package/src/engine/graphics3/HighlightOutlineSystem.d.ts +4 -3
- package/src/engine/graphics3/HighlightOutlineSystem.d.ts.map +1 -1
- package/src/engine/graphics3/HighlightOutlineSystem.js +7 -9
- package/src/engine/graphics3/LightSystem.d.ts +7 -5
- package/src/engine/graphics3/LightSystem.d.ts.map +1 -1
- package/src/engine/graphics3/LightSystem.js +36 -22
- package/src/engine/graphics3/MeshSystem.d.ts +43 -39
- package/src/engine/graphics3/MeshSystem.d.ts.map +1 -1
- package/src/engine/graphics3/MeshSystem.js +324 -331
- package/src/engine/graphics3/PathDisplaySystem.d.ts.map +1 -1
- package/src/engine/graphics3/PathDisplaySystem.js +2 -4
- package/src/engine/graphics3/PickingQuery.d.ts +15 -21
- package/src/engine/graphics3/PickingQuery.d.ts.map +1 -1
- package/src/engine/graphics3/PickingQuery.js +21 -25
- package/src/engine/graphics3/PickingSystem.d.ts +60 -31
- package/src/engine/graphics3/PickingSystem.d.ts.map +1 -1
- package/src/engine/graphics3/PickingSystem.js +413 -273
- package/src/engine/graphics3/ShadedGeometrySystem.d.ts +22 -12
- package/src/engine/graphics3/ShadedGeometrySystem.d.ts.map +1 -1
- package/src/engine/graphics3/ShadedGeometrySystem.js +309 -174
- package/src/engine/graphics3/TerrainSystem.d.ts +19 -11
- package/src/engine/graphics3/TerrainSystem.d.ts.map +1 -1
- package/src/engine/graphics3/TerrainSystem.js +102 -53
- package/src/engine/graphics3/TooltipComponentSystem.d.ts.map +1 -1
- package/src/engine/graphics3/TooltipComponentSystem.js +2 -14
- package/src/engine/graphics3/Trail3DSystem.d.ts.map +1 -1
- package/src/engine/graphics3/Trail3DSystem.js +2 -4
- package/src/engine/graphics3/animation/ClipListPlayer.d.ts +4 -4
- package/src/engine/graphics3/animation/ClipListPlayer.d.ts.map +1 -1
- package/src/engine/graphics3/animation/ClipListPlayer.js +2 -2
- package/src/engine/graphics3/highlight/pack_highlight_table.d.ts +9 -11
- package/src/engine/graphics3/highlight/pack_highlight_table.d.ts.map +1 -1
- package/src/engine/graphics3/highlight/pack_highlight_table.js +11 -18
- package/src/engine/graphics3/pose/query_entity_node_world_pose.d.ts +4 -3
- package/src/engine/graphics3/pose/query_entity_node_world_pose.d.ts.map +1 -1
- package/src/engine/graphics3/pose/query_entity_node_world_pose.js +75 -74
- package/src/engine/graphics3/prefab/Prefab.d.ts +130 -0
- package/src/engine/graphics3/prefab/Prefab.d.ts.map +1 -0
- package/src/engine/graphics3/prefab/Prefab.js +162 -0
- package/src/engine/graphics3/prefab/PrefabInstance.d.ts +72 -0
- package/src/engine/graphics3/prefab/PrefabInstance.d.ts.map +1 -0
- package/src/engine/graphics3/prefab/PrefabInstance.js +80 -0
- package/src/engine/graphics3/prefab/prefab_compile.d.ts +23 -0
- package/src/engine/graphics3/prefab/prefab_compile.d.ts.map +1 -0
- package/src/engine/graphics3/prefab/prefab_compile.js +334 -0
- package/src/engine/graphics3/prefab/prefab_instantiate.d.ts +46 -0
- package/src/engine/graphics3/prefab/prefab_instantiate.d.ts.map +1 -0
- package/src/engine/graphics3/prefab/prefab_instantiate.js +230 -0
- package/src/engine/graphics3/prefab/prefab_normalize_skin_frames.d.ts +70 -0
- package/src/engine/graphics3/prefab/prefab_normalize_skin_frames.d.ts.map +1 -0
- package/src/engine/graphics3/prefab/prefab_normalize_skin_frames.js +210 -0
- package/src/engine/graphics3/prefab/prefab_place.d.ts +60 -0
- package/src/engine/graphics3/prefab/prefab_place.d.ts.map +1 -0
- package/src/engine/graphics3/prefab/prefab_place.js +130 -0
- package/src/engine/graphics3/prefab/prefab_skin_clip_scale_conflicts.d.ts +60 -0
- package/src/engine/graphics3/prefab/prefab_skin_clip_scale_conflicts.d.ts.map +1 -0
- package/src/engine/graphics3/prefab/prefab_skin_clip_scale_conflicts.js +128 -0
- package/src/engine/graphics3/prefab/prefab_skin_frame.d.ts +40 -0
- package/src/engine/graphics3/prefab/prefab_skin_frame.d.ts.map +1 -0
- package/src/engine/graphics3/prefab/prefab_skin_frame.js +116 -0
- package/src/engine/graphics3/preview/make_model_preview_scene.d.ts +16 -14
- package/src/engine/graphics3/preview/make_model_preview_scene.d.ts.map +1 -1
- package/src/engine/graphics3/preview/make_model_preview_scene.js +126 -154
- package/src/engine/graphics3/preview/make_model_thumbnail.js +1 -1
- package/src/engine/graphics3/register_instance_animation.d.ts +6 -6
- package/src/engine/graphics3/register_instance_animation.d.ts.map +1 -1
- package/src/engine/graphics3/register_instance_animation.js +4 -4
- package/src/engine/graphics3/shade_bundle_bounds.d.ts +2 -6
- package/src/engine/graphics3/shade_bundle_bounds.d.ts.map +1 -1
- package/src/engine/graphics3/shade_bundle_bounds.js +47 -55
- package/src/engine/graphics3/shader_picking_gather.d.ts +40 -0
- package/src/engine/graphics3/shader_picking_gather.d.ts.map +1 -0
- package/src/engine/graphics3/shader_picking_gather.js +120 -0
- package/src/engine/graphics3/terrain/pack_terrain_row_table.d.ts +11 -18
- package/src/engine/graphics3/terrain/pack_terrain_row_table.d.ts.map +1 -1
- package/src/engine/graphics3/terrain/pack_terrain_row_table.js +48 -53
- package/src/engine/physics/cloth/MEASUREMENTS.md +1050 -0
- package/src/engine/physics/cloth/PLAN.md +411 -49
- package/src/engine/physics/cloth/build/cloth_proxy_from_joints.d.ts +17 -2
- package/src/engine/physics/cloth/build/cloth_proxy_from_joints.d.ts.map +1 -1
- package/src/engine/physics/cloth/build/cloth_proxy_from_joints.js +284 -256
- package/src/engine/physics/cloth/ecs/ClothColliderSerializationAdapter.d.ts +52 -0
- package/src/engine/physics/cloth/ecs/ClothColliderSerializationAdapter.d.ts.map +1 -0
- package/src/engine/physics/cloth/ecs/ClothColliderSerializationAdapter.js +70 -0
- package/src/engine/physics/cloth/ecs/ClothDynamics.d.ts +12 -3
- package/src/engine/physics/cloth/ecs/ClothDynamics.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/ClothDynamics.js +340 -331
- package/src/engine/physics/cloth/ecs/ClothInstance.d.ts +49 -37
- package/src/engine/physics/cloth/ecs/ClothInstance.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/ClothInstance.js +50 -37
- package/src/engine/physics/cloth/ecs/ClothRig.d.ts +7 -8
- package/src/engine/physics/cloth/ecs/ClothRig.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/ClothRig.js +7 -8
- package/src/engine/physics/cloth/ecs/ClothSerializationAdapter.d.ts +84 -0
- package/src/engine/physics/cloth/ecs/ClothSerializationAdapter.d.ts.map +1 -0
- package/src/engine/physics/cloth/ecs/ClothSerializationAdapter.js +141 -0
- package/src/engine/physics/cloth/ecs/ClothSystem.d.ts +51 -81
- package/src/engine/physics/cloth/ecs/ClothSystem.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/ClothSystem.js +81 -870
- package/src/engine/physics/cloth/ecs/ClothWorkerCore.d.ts +48 -0
- package/src/engine/physics/cloth/ecs/ClothWorkerCore.d.ts.map +1 -0
- package/src/engine/physics/cloth/ecs/ClothWorkerCore.js +107 -0
- package/src/engine/physics/cloth/ecs/ClothWorld.d.ts +286 -0
- package/src/engine/physics/cloth/ecs/ClothWorld.d.ts.map +1 -0
- package/src/engine/physics/cloth/ecs/ClothWorld.js +1104 -0
- package/src/engine/physics/cloth/ecs/WorkerClothSystem.d.ts +182 -0
- package/src/engine/physics/cloth/ecs/WorkerClothSystem.d.ts.map +1 -0
- package/src/engine/physics/cloth/ecs/WorkerClothSystem.js +562 -0
- package/src/engine/physics/cloth/ecs/cloth.worker.d.ts +2 -0
- package/src/engine/physics/cloth/ecs/cloth.worker.d.ts.map +1 -0
- package/src/engine/physics/cloth/ecs/cloth.worker.js +12 -0
- package/src/engine/physics/cloth/ecs/cloth_build_rows.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/cloth_build_rows.js +2 -1
- package/src/engine/physics/cloth/ecs/cloth_dynamics_map.d.ts +58 -0
- package/src/engine/physics/cloth/ecs/cloth_dynamics_map.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/cloth_dynamics_map.js +341 -271
- package/src/engine/physics/cloth/ecs/cloth_gather_colliders.d.ts +20 -2
- package/src/engine/physics/cloth/ecs/cloth_gather_colliders.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/cloth_gather_colliders.js +39 -15
- package/src/engine/physics/cloth/ecs/cloth_seed_rig.d.ts +19 -23
- package/src/engine/physics/cloth/ecs/cloth_seed_rig.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/cloth_seed_rig.js +201 -199
- package/src/engine/physics/cloth/ecs/cloth_seed_subtree.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/cloth_seed_subtree.js +8 -0
- package/src/engine/physics/cloth/ecs/cloth_worker_protocol.d.ts +29 -0
- package/src/engine/physics/cloth/ecs/cloth_worker_protocol.d.ts.map +1 -0
- package/src/engine/physics/cloth/ecs/cloth_worker_protocol.js +78 -0
- package/src/engine/physics/cloth/ecs/cloth_write_back_rig.d.ts +18 -34
- package/src/engine/physics/cloth/ecs/cloth_write_back_rig.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/cloth_write_back_rig.js +58 -115
- package/src/engine/physics/cloth/ecs/makeClothWorker.d.ts +17 -0
- package/src/engine/physics/cloth/ecs/makeClothWorker.d.ts.map +1 -0
- package/src/engine/physics/cloth/ecs/makeClothWorker.js +18 -0
- package/src/engine/physics/cloth/playground/README.md +84 -13
- package/src/engine/physics/cloth/playground/garment_build.d.ts +0 -1
- package/src/engine/physics/cloth/playground/garment_build.d.ts.map +1 -1
- package/src/engine/physics/cloth/playground/garment_build.js +64 -58
- package/src/engine/physics/cloth/playground/garment_main.js +59 -33
- package/src/engine/physics/cloth/playground/wind.html +166 -0
- package/src/engine/physics/cloth/playground/wind_build.d.ts +81 -0
- package/src/engine/physics/cloth/playground/wind_build.d.ts.map +1 -0
- package/src/engine/physics/cloth/playground/wind_build.js +141 -0
- package/src/engine/physics/cloth/playground/wind_main.d.ts +2 -0
- package/src/engine/physics/cloth/playground/wind_main.d.ts.map +1 -0
- package/src/engine/physics/cloth/playground/wind_main.js +681 -0
- package/src/engine/physics/cloth/solver/ClothState.d.ts +134 -79
- package/src/engine/physics/cloth/solver/ClothState.d.ts.map +1 -1
- package/src/engine/physics/cloth/solver/ClothState.js +273 -12
- package/src/engine/physics/cloth/solver/cloth_solver_constants.d.ts +33 -0
- package/src/engine/physics/cloth/solver/cloth_solver_constants.d.ts.map +1 -1
- package/src/engine/physics/cloth/solver/cloth_solver_constants.js +34 -0
- package/src/engine/physics/cloth/solver/cloth_step.d.ts +21 -2
- package/src/engine/physics/cloth/solver/cloth_step.d.ts.map +1 -1
- package/src/engine/physics/cloth/solver/cloth_step.js +173 -4
- package/src/engine/physics/cloth/solver/cloth_step_instance.d.ts +40 -0
- package/src/engine/physics/cloth/solver/cloth_step_instance.d.ts.map +1 -0
- package/src/engine/physics/cloth/solver/cloth_step_instance.js +284 -0
- package/src/engine/physics/cloth/solver/cloth_wind_accelerate.d.ts +107 -0
- package/src/engine/physics/cloth/solver/cloth_wind_accelerate.d.ts.map +1 -0
- package/src/engine/physics/cloth/solver/cloth_wind_accelerate.js +263 -0
- package/src/engine/physics/cloth/wind/AbstractClothWind.d.ts +88 -0
- package/src/engine/physics/cloth/wind/AbstractClothWind.d.ts.map +1 -0
- package/src/engine/physics/cloth/wind/AbstractClothWind.js +100 -0
- package/src/engine/physics/cloth/wind/ClothAmbientWind.d.ts +85 -0
- package/src/engine/physics/cloth/wind/ClothAmbientWind.d.ts.map +1 -0
- package/src/engine/physics/cloth/wind/ClothAmbientWind.js +182 -0
- package/src/engine/physics/cloth/wind/ClothFluidWind.d.ts +79 -0
- package/src/engine/physics/cloth/wind/ClothFluidWind.d.ts.map +1 -0
- package/src/engine/physics/cloth/wind/ClothFluidWind.js +210 -0
- package/src/engine/physics/cloth/wind/cloth_sample_air.d.ts +101 -0
- package/src/engine/physics/cloth/wind/cloth_sample_air.d.ts.map +1 -0
- package/src/engine/physics/cloth/wind/cloth_sample_air.js +290 -0
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
- package/src/shade/RENDERER_CONTRACT.md +85 -53
- package/src/shade/device/ShadeGPUCommandContext.d.ts +23 -0
- package/src/shade/device/ShadeGPUCommandContext.d.ts.map +1 -1
- package/src/shade/device/ShadeGPUCommandContext.js +36 -0
- package/src/shade/device/mock/texture_copy.d.ts.map +1 -1
- package/src/shade/device/mock/texture_copy.js +28 -0
- package/src/shade/playground/add_random_meshes.d.ts +4 -4
- package/src/shade/playground/add_random_meshes.d.ts.map +1 -1
- package/src/shade/playground/add_random_meshes.js +20 -16
- package/src/shade/playground/avboit/main.d.ts +1 -0
- package/src/shade/playground/avboit/main.d.ts.map +1 -1
- package/src/shade/playground/avboit/main.js +916 -875
- package/src/shade/playground/basis_textures/main.d.ts.map +1 -1
- package/src/shade/playground/basis_textures/main.js +22 -8
- package/src/shade/playground/basis_textures/texture_inventory.d.ts +2 -2
- package/src/shade/playground/basis_textures/texture_inventory.d.ts.map +1 -1
- package/src/shade/playground/basis_textures/texture_inventory.js +6 -7
- package/src/shade/playground/ground_seam/main.d.ts.map +1 -1
- package/src/shade/playground/ground_seam/main.js +13 -4
- package/src/shade/playground/ground_seam/make_ground.d.ts +13 -4
- package/src/shade/playground/ground_seam/make_ground.d.ts.map +1 -1
- package/src/shade/playground/ground_seam/make_ground.js +21 -16
- package/src/shade/playground/particle_ecs/bonfire_editor.js +3 -3
- package/src/shade/playground/particle_system/main.js +11 -10
- package/src/shade/playground/particle_system/particle_prototype.d.ts +15 -10
- package/src/shade/playground/particle_system/particle_prototype.d.ts.map +1 -1
- package/src/shade/playground/particle_system/particle_prototype.js +56 -15
- package/src/shade/playground/particle_system/particle_scene.d.ts +68 -28
- package/src/shade/playground/particle_system/particle_scene.d.ts.map +1 -1
- package/src/shade/playground/particle_system/particle_scene.js +149 -53
- package/src/shade/playground/readback_crossover/index.html +41 -0
- package/src/shade/playground/readback_crossover/main.d.ts +2 -0
- package/src/shade/playground/readback_crossover/main.d.ts.map +1 -0
- package/src/shade/playground/readback_crossover/main.js +372 -0
- package/src/shade/playground/skinned_blas_refit/README.md +11 -7
- package/src/shade/playground/skinned_blas_refit/add_floor.d.ts +13 -44
- package/src/shade/playground/skinned_blas_refit/add_floor.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/add_floor.js +19 -59
- package/src/shade/playground/skinned_blas_refit/main.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/main.js +67 -58
- package/src/shade/playground/skinned_blas_refit/place_character.d.ts +40 -54
- package/src/shade/playground/skinned_blas_refit/place_character.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/place_character.js +47 -74
- package/src/shade/playground/skinned_blas_refit/sweep_views.d.ts +3 -3
- package/src/shade/playground/skinned_blas_refit/sweep_views.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/sweep_views.js +4 -3
- package/src/shade/playground/skinned_blas_refit/verify_clone_leaves.d.ts +3 -3
- package/src/shade/playground/skinned_blas_refit/verify_clone_leaves.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/verify_clone_leaves.js +11 -4
- 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 +38 -9
- package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.d.ts +3 -3
- 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 +9 -6
- package/src/shade/playground/skinned_blas_refit/verify_traversal_reachability.d.ts +3 -3
- package/src/shade/playground/skinned_blas_refit/verify_traversal_reachability.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/verify_traversal_reachability.js +3 -3
- package/src/shade/playground/skinned_mesh_soup/README.md +6 -6
- package/src/shade/playground/skinned_mesh_soup/main.d.ts.map +1 -1
- package/src/shade/playground/skinned_mesh_soup/main.js +44 -102
- package/src/shade/playground/skinned_mesh_soup/verify_clone_vertices.d.ts +5 -5
- package/src/shade/playground/skinned_mesh_soup/verify_clone_vertices.d.ts.map +1 -1
- package/src/shade/playground/skinned_mesh_soup/verify_clone_vertices.js +42 -33
- package/src/shade/playground/sponza_path_trace/main.d.ts +1 -0
- package/src/shade/playground/sponza_path_trace/main.d.ts.map +1 -1
- package/src/shade/playground/sponza_path_trace/main.js +393 -363
- package/src/shade/playground/ssr_reprojection/main.js +11 -9
- package/src/shade/playground/ssr_reprojection/scene.d.ts +15 -4
- package/src/shade/playground/ssr_reprojection/scene.d.ts.map +1 -1
- package/src/shade/playground/ssr_reprojection/scene.js +32 -11
- package/src/shade/playground/ssr_variance/main.js +1 -1
- package/src/shade/playground/ssr_variance/scene.d.ts +10 -4
- package/src/shade/playground/ssr_variance/scene.d.ts.map +1 -1
- package/src/shade/playground/ssr_variance/scene.js +39 -15
- package/src/shade/playground/vgeo_runtime/README.md +94 -0
- package/src/shade/playground/vgeo_runtime/index.html +62 -0
- package/src/shade/playground/vgeo_runtime/main.d.ts +2 -0
- package/src/shade/playground/vgeo_runtime/main.d.ts.map +1 -0
- package/src/shade/playground/vgeo_runtime/main.js +399 -0
- package/src/shade/playground/vgeo_viewer/main.js +6 -2
- package/src/shade/playground/vgeo_viewer/sample_asset.js +1 -1
- package/src/shade/playground/volumetrics_froxel/main.d.ts.map +1 -1
- package/src/shade/playground/volumetrics_froxel/main.js +936 -922
- package/src/shade/renderer/GraphicsContext.d.ts +7 -0
- package/src/shade/renderer/GraphicsContext.d.ts.map +1 -1
- package/src/shade/renderer/GraphicsContext.js +11 -0
- package/src/shade/renderer/Renderer.d.ts +3 -2
- package/src/shade/renderer/Renderer.d.ts.map +1 -1
- package/src/shade/renderer/Renderer.js +3 -2
- package/src/shade/renderer/animation/GPUAnimationManager.d.ts +39 -47
- package/src/shade/renderer/animation/GPUAnimationManager.d.ts.map +1 -1
- package/src/shade/renderer/animation/GPUAnimationManager.js +319 -256
- package/src/shade/renderer/animation/ShadeAnimationChannel.d.ts +26 -22
- package/src/shade/renderer/animation/ShadeAnimationChannel.d.ts.map +1 -1
- package/src/shade/renderer/animation/ShadeAnimationChannel.js +28 -23
- package/src/shade/renderer/animation/ShadeAnimationClip.d.ts +14 -6
- package/src/shade/renderer/animation/ShadeAnimationClip.d.ts.map +1 -1
- package/src/shade/renderer/animation/ShadeAnimationClip.js +20 -8
- package/src/shade/renderer/animation/Skin.d.ts +19 -19
- package/src/shade/renderer/animation/Skin.d.ts.map +1 -1
- package/src/shade/renderer/animation/Skin.js +15 -13
- package/src/shade/renderer/animation/pose/pose_evaluate_local.d.ts +6 -5
- package/src/shade/renderer/animation/pose/pose_evaluate_local.d.ts.map +1 -1
- package/src/shade/renderer/animation/pose/pose_evaluate_local.js +9 -9
- package/src/shade/renderer/animation/skin_clip_scale_conflicts.d.ts +5 -59
- package/src/shade/renderer/animation/skin_clip_scale_conflicts.d.ts.map +1 -1
- package/src/shade/renderer/animation/skin_clip_scale_conflicts.js +8 -132
- package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.d.ts +65 -62
- package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.d.ts.map +1 -1
- package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.js +148 -194
- package/src/shade/renderer/animation/skinning/SKINNING_BINDING_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/animation/skinning/SKINNING_BINDING_STRUCT.js +4 -7
- package/src/shade/renderer/animation/skinning/chunk_skin_blend_mesh_local.d.ts +2 -2
- package/src/shade/renderer/animation/skinning/chunk_skin_blend_mesh_local.js +2 -2
- package/src/shade/renderer/buffer/GPUBufferReadbackAllocator.d.ts +74 -0
- package/src/shade/renderer/buffer/GPUBufferReadbackAllocator.d.ts.map +1 -0
- package/src/shade/renderer/buffer/GPUBufferReadbackAllocator.js +240 -0
- package/src/shade/renderer/buffer/table/GPUDatabase.d.ts +14 -0
- package/src/shade/renderer/buffer/table/GPUDatabase.d.ts.map +1 -1
- package/src/shade/renderer/buffer/table/GPUDatabase.js +64 -6
- package/src/shade/renderer/buffer/table/GPUDatabaseReadback.d.ts +190 -0
- package/src/shade/renderer/buffer/table/GPUDatabaseReadback.d.ts.map +1 -0
- package/src/shade/renderer/buffer/table/GPUDatabaseReadback.js +1323 -0
- package/src/shade/renderer/buffer/table/GPUPageMetadata.d.ts +10 -0
- package/src/shade/renderer/buffer/table/GPUPageMetadata.d.ts.map +1 -1
- package/src/shade/renderer/buffer/table/GPUPageMetadata.js +12 -0
- package/src/shade/renderer/buffer/table/GPUReadbackStatus.d.ts +15 -0
- package/src/shade/renderer/buffer/table/GPUReadbackStatus.d.ts.map +1 -0
- package/src/shade/renderer/buffer/table/GPUReadbackStatus.js +34 -0
- package/src/shade/renderer/buffer/table/GPUTypedTable.d.ts +75 -7
- package/src/shade/renderer/buffer/table/GPUTypedTable.d.ts.map +1 -1
- package/src/shade/renderer/buffer/table/GPUTypedTable.js +518 -135
- package/src/shade/renderer/buffer/table/GPU_TABLE_GATHER_DESCRIPTOR_WORDS.d.ts +19 -0
- package/src/shade/renderer/buffer/table/GPU_TABLE_GATHER_DESCRIPTOR_WORDS.d.ts.map +1 -0
- package/src/shade/renderer/buffer/table/GPU_TABLE_GATHER_DESCRIPTOR_WORDS.js +18 -0
- package/src/shade/renderer/buffer/table/WordViews.d.ts +39 -0
- package/src/shade/renderer/buffer/table/WordViews.d.ts.map +1 -0
- package/src/shade/renderer/buffer/table/WordViews.js +62 -0
- package/src/shade/renderer/buffer/table/gpu_table_gather_shader.d.ts +27 -0
- package/src/shade/renderer/buffer/table/gpu_table_gather_shader.d.ts.map +1 -0
- package/src/shade/renderer/buffer/table/gpu_table_gather_shader.js +117 -0
- package/src/shade/renderer/buffer/table/serde/generate_record_writer.d.ts +121 -0
- package/src/shade/renderer/buffer/table/serde/generate_record_writer.d.ts.map +1 -0
- package/src/shade/renderer/buffer/table/serde/generate_record_writer.js +395 -0
- package/src/shade/renderer/buffer/table/single/GPUSingleTypeTable.d.ts.map +1 -1
- package/src/shade/renderer/buffer/table/single/GPUSingleTypeTable.js +70 -20
- package/src/shade/renderer/camera/Camera.d.ts +14 -0
- package/src/shade/renderer/camera/Camera.d.ts.map +1 -1
- package/src/shade/renderer/camera/Camera.js +7 -1
- package/src/shade/renderer/dynamic/GPUDynamicMeshResidency.js +1 -1
- package/src/shade/renderer/geometry/GEOMETRY_METADATA_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/geometry/GEOMETRY_METADATA_STRUCT.js +16 -1
- package/src/shade/renderer/geometry/GPUGeometryManager.d.ts.map +1 -1
- package/src/shade/renderer/geometry/GPUGeometryManager.js +29 -9
- package/src/shade/renderer/geometry/GPUGeometryMetadata.d.ts +10 -0
- package/src/shade/renderer/geometry/GPUGeometryMetadata.d.ts.map +1 -1
- package/src/shade/renderer/geometry/GPUGeometryMetadata.js +13 -0
- package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.d.ts.map +1 -1
- package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.js +6 -5
- package/src/shade/renderer/geometry/meshlet/GPUMeshletManager.d.ts +3 -3
- package/src/shade/renderer/geometry/meshlet/GPUMeshletManager.d.ts.map +1 -1
- package/src/shade/renderer/geometry/meshlet/GPUMeshletManager.js +15 -11
- package/src/shade/renderer/geometry/virtual/VGEO_FORMAT.md +46 -18
- package/src/shade/renderer/geometry/virtual/VIRTUAL_GEOMETRY_DESIGN.md +70 -22
- package/src/shade/renderer/geometry/virtual/VIRTUAL_GEOMETRY_PLAN.md +97 -19
- package/src/shade/renderer/geometry/virtual/build/VGeoBuildOptions.d.ts +12 -2
- package/src/shade/renderer/geometry/virtual/build/VGeoBuildOptions.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/build/VGeoBuildOptions.js +14 -3
- package/src/shade/renderer/geometry/virtual/build/vgeo_assemble_pages.d.ts +2 -2
- package/src/shade/renderer/geometry/virtual/build/vgeo_assemble_pages.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/build/vgeo_assemble_pages.js +124 -6
- package/src/shade/renderer/geometry/virtual/build/vgeo_page_node_count.d.ts +22 -0
- package/src/shade/renderer/geometry/virtual/build/vgeo_page_node_count.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/build/vgeo_page_node_count.js +53 -0
- package/src/shade/renderer/geometry/virtual/format/VGeoWriteOptions.d.ts +8 -1
- package/src/shade/renderer/geometry/virtual/format/VGeoWriteOptions.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/format/VGeoWriteOptions.js +8 -1
- package/src/shade/renderer/geometry/virtual/format/header/VGEO_FEATURE_IGNORABLE_BOUNDED_PAGES.d.ts +16 -0
- package/src/shade/renderer/geometry/virtual/format/header/VGEO_FEATURE_IGNORABLE_BOUNDED_PAGES.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/format/header/VGEO_FEATURE_IGNORABLE_BOUNDED_PAGES.js +15 -0
- package/src/shade/renderer/geometry/virtual/format/page/VGEO_DEFAULT_PAGE_SIZE.d.ts +54 -0
- package/src/shade/renderer/geometry/virtual/format/page/VGEO_DEFAULT_PAGE_SIZE.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/format/page/VGEO_DEFAULT_PAGE_SIZE.js +53 -0
- package/src/shade/renderer/geometry/virtual/format/read/VGeoContainerHeader.d.ts +13 -2
- package/src/shade/renderer/geometry/virtual/format/read/VGeoContainerHeader.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/format/read/VGeoContainerHeader.js +14 -2
- package/src/shade/renderer/geometry/virtual/format/read/VGeoPage.d.ts +100 -0
- package/src/shade/renderer/geometry/virtual/format/read/VGeoPage.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/format/read/VGeoPage.js +113 -0
- package/src/shade/renderer/geometry/virtual/format/read/vgeo_read_header.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/format/read/vgeo_read_header.js +5 -0
- package/src/shade/renderer/geometry/virtual/format/read/vgeo_read_page.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/format/read/vgeo_read_page.js +108 -0
- package/src/shade/renderer/geometry/virtual/format/vgeo_validate_container.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/format/vgeo_validate_container.js +23 -0
- package/src/shade/renderer/geometry/virtual/format/vgeo_write_container.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/format/vgeo_write_container.js +40 -0
- package/src/shade/renderer/geometry/virtual/runtime/GPUVirtualGeometryPool.d.ts +228 -0
- package/src/shade/renderer/geometry/virtual/runtime/GPUVirtualGeometryPool.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/GPUVirtualGeometryPool.js +932 -0
- package/src/shade/renderer/geometry/virtual/runtime/GPUVirtualGeometryRuntime.d.ts +176 -0
- package/src/shade/renderer/geometry/virtual/runtime/GPUVirtualGeometryRuntime.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/GPUVirtualGeometryRuntime.js +425 -0
- package/src/shade/renderer/geometry/virtual/runtime/REVIEW_LEDGER.md +241 -0
- package/src/shade/renderer/geometry/virtual/runtime/RUNTIME_PLAN.md +574 -0
- package/src/shade/renderer/geometry/virtual/runtime/VGeoFeedbackLoop.d.ts +120 -0
- package/src/shade/renderer/geometry/virtual/runtime/VGeoFeedbackLoop.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/VGeoFeedbackLoop.js +674 -0
- package/src/shade/renderer/geometry/virtual/runtime/VGeoRuntimeTables.d.ts +287 -0
- package/src/shade/renderer/geometry/virtual/runtime/VGeoRuntimeTables.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/VGeoRuntimeTables.js +976 -0
- package/src/shade/renderer/geometry/virtual/runtime/VirtualGeometry.d.ts +42 -0
- package/src/shade/renderer/geometry/virtual/runtime/VirtualGeometry.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/VirtualGeometry.js +96 -0
- package/src/shade/renderer/geometry/virtual/runtime/cut/VGEO_CUT_FLAG_CULL.d.ts +16 -0
- package/src/shade/renderer/geometry/virtual/runtime/cut/VGEO_CUT_FLAG_CULL.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/cut/VGEO_CUT_FLAG_CULL.js +15 -0
- package/src/shade/renderer/geometry/virtual/runtime/cut/VGEO_CUT_PARAMS_STRUCT.d.ts +19 -0
- package/src/shade/renderer/geometry/virtual/runtime/cut/VGEO_CUT_PARAMS_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/cut/VGEO_CUT_PARAMS_STRUCT.js +83 -0
- package/src/shade/renderer/geometry/virtual/runtime/cut/VGEO_CUT_WORKGROUP_SIZE.d.ts +9 -0
- package/src/shade/renderer/geometry/virtual/runtime/cut/VGEO_CUT_WORKGROUP_SIZE.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/cut/VGEO_CUT_WORKGROUP_SIZE.js +8 -0
- package/src/shade/renderer/geometry/virtual/runtime/cut/chunk_vgeo_cut_access.d.ts +19 -0
- package/src/shade/renderer/geometry/virtual/runtime/cut/chunk_vgeo_cut_access.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/cut/chunk_vgeo_cut_access.js +160 -0
- package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_collect.d.ts +3 -0
- package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_collect.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_collect.js +255 -0
- package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_queue_prepare.d.ts +3 -0
- package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_queue_prepare.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_queue_prepare.js +80 -0
- package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_seed.d.ts +3 -0
- package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_seed.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_seed.js +144 -0
- package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_traverse.d.ts +3 -0
- package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_traverse.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_traverse.js +530 -0
- package/src/shade/renderer/geometry/virtual/runtime/cut/vgeo_cut_feedback_layout.d.ts +39 -0
- package/src/shade/renderer/geometry/virtual/runtime/cut/vgeo_cut_feedback_layout.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/cut/vgeo_cut_feedback_layout.js +54 -0
- package/src/shade/renderer/geometry/virtual/runtime/graph_vgeo_expand_if_enabled.d.ts +41 -0
- package/src/shade/renderer/geometry/virtual/runtime/graph_vgeo_expand_if_enabled.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/graph_vgeo_expand_if_enabled.js +56 -0
- package/src/shade/renderer/geometry/virtual/runtime/graph_vgeo_expand_instances_to_meshlets.d.ts +49 -0
- package/src/shade/renderer/geometry/virtual/runtime/graph_vgeo_expand_instances_to_meshlets.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/graph_vgeo_expand_instances_to_meshlets.js +328 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_CLUSTER_ROW_OFFSET.d.ts +10 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_CLUSTER_ROW_OFFSET.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_CLUSTER_ROW_OFFSET.js +51 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_CLUSTER_ROW_WORDS.d.ts +13 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_CLUSTER_ROW_WORDS.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_CLUSTER_ROW_WORDS.js +12 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_CUT_STAT.d.ts +17 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_CUT_STAT.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_CUT_STAT.js +99 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_CUT_STAT_COUNT.d.ts +9 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_CUT_STAT_COUNT.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_CUT_STAT_COUNT.js +8 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_FEEDBACK_OFFSET.d.ts +7 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_FEEDBACK_OFFSET.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_FEEDBACK_OFFSET.js +27 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_GEOMETRY_ROW_NONE.d.ts +14 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_GEOMETRY_ROW_NONE.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_GEOMETRY_ROW_NONE.js +13 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_GEOMETRY_ROW_OFFSET.d.ts +7 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_GEOMETRY_ROW_OFFSET.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_GEOMETRY_ROW_OFFSET.js +35 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_GEOMETRY_ROW_WORDS.d.ts +9 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_GEOMETRY_ROW_WORDS.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_GEOMETRY_ROW_WORDS.js +8 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_GROUP_FLAG_SELECTABLE.d.ts +15 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_GROUP_FLAG_SELECTABLE.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_GROUP_FLAG_SELECTABLE.js +14 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_GROUP_ROW_OFFSET.d.ts +7 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_GROUP_ROW_OFFSET.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_GROUP_ROW_OFFSET.js +36 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_GROUP_ROW_WORDS.d.ts +10 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_GROUP_ROW_WORDS.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_GROUP_ROW_WORDS.js +9 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_INSTANCE_OFFSET.d.ts +11 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_INSTANCE_OFFSET.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_INSTANCE_OFFSET.js +54 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_INSTANCE_WORDS.d.ts +9 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_INSTANCE_WORDS.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_INSTANCE_WORDS.js +8 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_NODE_ROW_LEAF_BIT.d.ts +11 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_NODE_ROW_LEAF_BIT.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_NODE_ROW_LEAF_BIT.js +10 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_NODE_ROW_OFFSET.d.ts +7 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_NODE_ROW_OFFSET.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_NODE_ROW_OFFSET.js +30 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_NODE_ROW_WORDS.d.ts +9 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_NODE_ROW_WORDS.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_NODE_ROW_WORDS.js +8 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_NO_CHILD_PAGE.d.ts +13 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_NO_CHILD_PAGE.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_NO_CHILD_PAGE.js +12 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_PAGE_ROW_NONE.d.ts +14 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_PAGE_ROW_NONE.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_PAGE_ROW_NONE.js +13 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_PAGE_ROW_OFFSET.d.ts +11 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_PAGE_ROW_OFFSET.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_PAGE_ROW_OFFSET.js +61 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_PAGE_ROW_WORDS.d.ts +9 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_PAGE_ROW_WORDS.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_PAGE_ROW_WORDS.js +8 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_QUEUE_ITEM_WORDS.d.ts +13 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_QUEUE_ITEM_WORDS.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_QUEUE_ITEM_WORDS.js +12 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_QUEUE_TARGET_GROUP_BIT.d.ts +9 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_QUEUE_TARGET_GROUP_BIT.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_QUEUE_TARGET_GROUP_BIT.js +8 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_WANT_WORDS.d.ts +20 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_WANT_WORDS.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_WANT_WORDS.js +19 -0
- package/src/shade/renderer/geometry/virtual/runtime/vgeo_runtime_meshlet_batch.d.ts +23 -0
- package/src/shade/renderer/geometry/virtual/runtime/vgeo_runtime_meshlet_batch.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/vgeo_runtime_meshlet_batch.js +70 -0
- package/src/shade/renderer/geometry/virtual/runtime/vgeo_runtime_page_block_words.d.ts +18 -0
- package/src/shade/renderer/geometry/virtual/runtime/vgeo_runtime_page_block_words.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/vgeo_runtime_page_block_words.js +25 -0
- package/src/shade/renderer/geometry/virtual/runtime/vgeo_runtime_page_slot_words.d.ts +35 -0
- package/src/shade/renderer/geometry/virtual/runtime/vgeo_runtime_page_slot_words.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/vgeo_runtime_page_slot_words.js +41 -0
- package/src/shade/renderer/geometry/virtual/runtime/vgeo_runtime_write_page_block.d.ts +32 -0
- package/src/shade/renderer/geometry/virtual/runtime/vgeo_runtime_write_page_block.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/vgeo_runtime_write_page_block.js +138 -0
- package/src/shade/renderer/global_illumination/brick4/cpu/brick4_bake_for_scene.d.ts +1 -1
- package/src/shade/renderer/global_illumination/brick4/cpu/brick4_bake_for_scene.js +4 -4
- package/src/shade/renderer/global_illumination/brick4/cpu/brick4_generate_tree_from_scene.d.ts +1 -3
- package/src/shade/renderer/global_illumination/brick4/cpu/brick4_generate_tree_from_scene.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/brick4/cpu/brick4_generate_tree_from_scene.js +5 -4
- package/src/shade/renderer/global_illumination/brick4/gpu/bake/brick4_bake_basic.js +1 -1
- package/src/shade/renderer/global_illumination/lpv/bake/GPULightProbeVolumeRenderer.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/lpv/bake/GPULightProbeVolumeRenderer.js +1 -4
- package/src/shade/renderer/global_illumination/lpv/lpv_visualise_probes.d.ts +8 -3
- 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 +19 -14
- package/src/shade/renderer/global_illumination/lpv/placement/graph_generate_probe_locations.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/lpv/placement/graph_generate_probe_locations.js +9 -1
- package/src/shade/renderer/global_illumination/lpv/placement/software/lpv_generate_probe_locations2.d.ts +3 -3
- package/src/shade/renderer/global_illumination/lpv/placement/software/lpv_generate_probe_locations2.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/lpv/placement/software/lpv_generate_probe_locations2.js +12 -5
- package/src/shade/renderer/global_illumination/probe/octahedral/GPUProbeAtlas.js +1 -1
- package/src/shade/renderer/light/GPULightCollection.d.ts +29 -0
- package/src/shade/renderer/light/GPULightCollection.d.ts.map +1 -1
- package/src/shade/renderer/light/GPULightCollection.js +444 -329
- package/src/shade/renderer/light/LIGHT_DATABASE_SPEC.d.ts.map +1 -1
- package/src/shade/renderer/light/LIGHT_DATABASE_SPEC.js +7 -1
- package/src/shade/renderer/light/LightCollection.d.ts +29 -1
- package/src/shade/renderer/light/LightCollection.d.ts.map +1 -1
- package/src/shade/renderer/light/LightCollection.js +50 -1
- package/src/shade/renderer/light/make_sunlight.js +2 -2
- package/src/shade/renderer/light/model/Light.d.ts +29 -2
- package/src/shade/renderer/light/model/Light.d.ts.map +1 -1
- package/src/shade/renderer/light/model/Light.js +30 -2
- package/src/shade/renderer/light/model/io/light_record_directional.d.ts +3 -1
- package/src/shade/renderer/light/model/io/light_record_directional.d.ts.map +1 -1
- package/src/shade/renderer/light/model/io/light_record_directional.js +8 -5
- package/src/shade/renderer/light/model/io/light_record_point.d.ts +3 -1
- package/src/shade/renderer/light/model/io/light_record_point.d.ts.map +1 -1
- package/src/shade/renderer/light/model/io/light_record_point.js +5 -2
- package/src/shade/renderer/light/model/io/light_record_spot.d.ts +4 -1
- package/src/shade/renderer/light/model/io/light_record_spot.d.ts.map +1 -1
- package/src/shade/renderer/light/model/io/light_record_spot.js +10 -6
- package/src/shade/renderer/light/place_light.d.ts +16 -0
- package/src/shade/renderer/light/place_light.d.ts.map +1 -0
- package/src/shade/renderer/light/place_light.js +36 -0
- package/src/shade/renderer/light/shader_refresh_light_poses.d.ts +44 -0
- package/src/shade/renderer/light/shader_refresh_light_poses.d.ts.map +1 -0
- package/src/shade/renderer/light/shader_refresh_light_poses.js +154 -0
- package/src/shade/renderer/lightmap/GPULightMap.js +1 -1
- package/src/shade/renderer/lightmap/bake/raster/graph_draw_lightmap_viz_buffer.d.ts.map +1 -1
- package/src/shade/renderer/lightmap/bake/raster/graph_draw_lightmap_viz_buffer.js +12 -14
- package/src/shade/renderer/loader/SceneBundle.d.ts +53 -28
- package/src/shade/renderer/loader/SceneBundle.d.ts.map +1 -1
- package/src/shade/renderer/loader/SceneBundle.js +111 -56
- package/src/shade/renderer/loader/SceneNode.d.ts +81 -0
- package/src/shade/renderer/loader/SceneNode.d.ts.map +1 -0
- package/src/shade/renderer/loader/SceneNode.js +114 -0
- package/src/shade/renderer/loader/gltf/load_gltf.d.ts +3 -2
- package/src/shade/renderer/loader/gltf/load_gltf.d.ts.map +1 -1
- package/src/shade/renderer/loader/gltf/load_gltf.js +110 -142
- package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
- package/src/shade/renderer/loader/usd/UsdExtensionRegistry.d.ts +4 -4
- package/src/shade/renderer/loader/usd/UsdExtensionRegistry.d.ts.map +1 -1
- package/src/shade/renderer/loader/usd/UsdExtensionRegistry.js +2 -2
- package/src/shade/renderer/loader/usd/load_usd.d.ts +3 -2
- package/src/shade/renderer/loader/usd/load_usd.d.ts.map +1 -1
- package/src/shade/renderer/loader/usd/load_usd.js +4 -5
- package/src/shade/renderer/loader/usd/usd_build_scene.d.ts +3 -3
- package/src/shade/renderer/loader/usd/usd_build_scene.d.ts.map +1 -1
- package/src/shade/renderer/loader/usd/usd_build_scene.js +47 -55
- package/src/shade/renderer/material/GPUMaterialManager.js +1 -1
- package/src/shade/renderer/material/resident/GPUResidentMaterialContext.d.ts +5 -4
- package/src/shade/renderer/material/resident/GPUResidentMaterialContext.d.ts.map +1 -1
- package/src/shade/renderer/material/resident/GPUResidentMaterialContext.js +8 -15
- package/src/shade/renderer/object_property/shader_refresh_all_mesh_bounds.d.ts +15 -13
- package/src/shade/renderer/object_property/shader_refresh_all_mesh_bounds.d.ts.map +1 -1
- package/src/shade/renderer/object_property/shader_refresh_all_mesh_bounds.js +40 -21
- package/src/shade/renderer/particles/DESIGN.md +53 -50
- package/src/shade/renderer/particles/GPUParticleSystem.d.ts +31 -17
- package/src/shade/renderer/particles/GPUParticleSystem.d.ts.map +1 -1
- package/src/shade/renderer/particles/GPUParticleSystem.js +54 -91
- package/src/shade/renderer/particles/runtime/EmitterRegistry.d.ts +12 -11
- package/src/shade/renderer/particles/runtime/EmitterRegistry.d.ts.map +1 -1
- package/src/shade/renderer/particles/runtime/EmitterRegistry.js +12 -11
- package/src/shade/renderer/particles/runtime/GPUParticleEmitterContext.d.ts +13 -19
- package/src/shade/renderer/particles/runtime/GPUParticleEmitterContext.d.ts.map +1 -1
- package/src/shade/renderer/particles/runtime/GPUParticleEmitterContext.js +19 -25
- package/src/shade/renderer/particles/runtime/ParticleEmitter.d.ts +34 -24
- package/src/shade/renderer/particles/runtime/ParticleEmitter.d.ts.map +1 -1
- package/src/shade/renderer/particles/runtime/ParticleEmitter.js +53 -40
- package/src/shade/renderer/path_tracer/accumulating/AccumulatingPathTracer.js +1 -1
- package/src/shade/renderer/path_tracer/graph_path_trace_scene.js +1 -1
- package/src/shade/renderer/postprocess/nss/NSS.d.ts +1 -1
- package/src/shade/renderer/rasterize/bucket/prepare_meshlet_draw_commands_by_material.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/bucket/prepare_meshlet_draw_commands_by_material.js +9 -0
- package/src/shade/renderer/rasterize/expand/bucket/mesh/graph_meshes_classify_buckets.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/bucket/mesh/graph_meshes_classify_buckets.js +2 -1
- package/src/shade/renderer/rasterize/expand/bucket/mesh/graph_scene_meshes_cull_and_classify_buckets.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/bucket/mesh/graph_scene_meshes_cull_and_classify_buckets.js +5 -2
- package/src/shade/renderer/rasterize/fast/graph_rasterize_scene_fast.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/fast/graph_rasterize_scene_fast.js +13 -2
- package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.js +1 -1
- package/src/shade/renderer/rasterize/native/graph_rasterize_meshes_alpha_tested.js +1 -1
- package/src/shade/renderer/rasterize/native/oit/graph_rasterize_meshes_transparent_oit.js +1 -1
- package/src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.js +12 -1
- package/src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.js +10 -0
- package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.js +1 -1
- package/src/shade/renderer/scene/DynamicMesh.d.ts +13 -4
- package/src/shade/renderer/scene/DynamicMesh.d.ts.map +1 -1
- package/src/shade/renderer/scene/DynamicMesh.js +14 -4
- package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.d.ts +38 -18
- package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.d.ts.map +1 -1
- package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.js +112 -60
- package/src/shade/renderer/scene/GPUSceneContext.d.ts +69 -44
- package/src/shade/renderer/scene/GPUSceneContext.d.ts.map +1 -1
- package/src/shade/renderer/scene/GPUSceneContext.js +244 -525
- package/src/shade/renderer/scene/NODE3D_STRUCT.d.ts +5 -5
- package/src/shade/renderer/scene/NODE3D_STRUCT.js +5 -5
- package/src/shade/renderer/scene/Scene.d.ts +18 -60
- package/src/shade/renderer/scene/Scene.d.ts.map +1 -1
- package/src/shade/renderer/scene/Scene.js +53 -146
- package/src/shade/renderer/scene/bvh/StaticSceneBVH.d.ts +24 -3
- package/src/shade/renderer/scene/bvh/StaticSceneBVH.d.ts.map +1 -1
- package/src/shade/renderer/scene/bvh/StaticSceneBVH.js +53 -13
- package/src/shade/renderer/scene/hierarchy/graph_scene_update_transform_hierarchy.d.ts +5 -6
- package/src/shade/renderer/scene/hierarchy/graph_scene_update_transform_hierarchy.d.ts.map +1 -1
- package/src/shade/renderer/scene/hierarchy/graph_scene_update_transform_hierarchy.js +5 -6
- package/src/shade/renderer/scene/optimization/scene_optimize.d.ts +10 -2
- package/src/shade/renderer/scene/optimization/scene_optimize.d.ts.map +1 -1
- package/src/shade/renderer/scene/optimization/scene_optimize.js +266 -230
- package/src/shade/renderer/scene/rows/GPUEntityBoundsReadback.d.ts +53 -0
- package/src/shade/renderer/scene/rows/GPUEntityBoundsReadback.d.ts.map +1 -0
- package/src/shade/renderer/scene/rows/GPUEntityBoundsReadback.js +144 -0
- package/src/shade/renderer/scene/rows/GPUSceneRows.d.ts +227 -0
- package/src/shade/renderer/scene/rows/GPUSceneRows.d.ts.map +1 -0
- package/src/shade/renderer/scene/rows/GPUSceneRows.js +1158 -0
- package/src/shade/renderer/scene/rows/place_primitive.d.ts +48 -0
- package/src/shade/renderer/scene/rows/place_primitive.d.ts.map +1 -0
- package/src/shade/renderer/scene/rows/place_primitive.js +98 -0
- package/src/shade/renderer/scene/serialization/deserialize_scene.d.ts +10 -8
- package/src/shade/renderer/scene/serialization/deserialize_scene.d.ts.map +1 -1
- package/src/shade/renderer/scene/serialization/deserialize_scene.js +24 -27
- package/src/shade/renderer/scene/serialization/serialize_scene.d.ts +9 -2
- package/src/shade/renderer/scene/serialization/serialize_scene.d.ts.map +1 -1
- package/src/shade/renderer/scene/serialization/serialize_scene.js +25 -4
- package/src/shade/renderer/scene/verify_gpu_tlas_build.js +2 -2
- package/src/shade/renderer/shader/chunk/geometry/mat3/chunk_mat3_singular_values.d.ts +35 -0
- package/src/shade/renderer/shader/chunk/geometry/mat3/chunk_mat3_singular_values.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/geometry/mat3/chunk_mat3_singular_values.js +91 -0
- package/src/shade/renderer/shader/chunk/light/DIRECTIONAL_LIGHT_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/light/DIRECTIONAL_LIGHT_STRUCT.js +5 -0
- package/src/shade/renderer/shader/chunk/light/POINT_LIGHT_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/light/POINT_LIGHT_STRUCT.js +5 -0
- package/src/shade/renderer/shader/chunk/light/SPOT_LIGHT_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/light/SPOT_LIGHT_STRUCT.js +5 -0
- package/src/shade/renderer/shadow/map/DirectionalLightShadowmap.d.ts +39 -0
- package/src/shade/renderer/shadow/map/DirectionalLightShadowmap.d.ts.map +1 -1
- package/src/shade/renderer/shadow/map/DirectionalLightShadowmap.js +112 -64
- package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.d.ts +7 -0
- package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.d.ts.map +1 -1
- package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.js +1541 -1352
- package/src/shade/renderer/shadow/map/PointLightShadowmap.js +1 -1
- package/src/shade/renderer/shadow/map/SpotLightShadowmap.js +1 -1
- package/src/shade/renderer/shadow/map/TetrahedronPointLightShadowmap.js +1 -1
- package/src/shade/renderer/shadow/map/csm/CSM_CASTER_RANGE_STRUCT.d.ts +29 -0
- package/src/shade/renderer/shadow/map/csm/CSM_CASTER_RANGE_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/shadow/map/csm/CSM_CASTER_RANGE_STRUCT.js +43 -0
- package/src/shade/renderer/shadow/map/csm/SHADOWMAP_CSM_CASTER_RANGE_MARGIN_FRACTION.d.ts +13 -0
- package/src/shade/renderer/shadow/map/csm/SHADOWMAP_CSM_CASTER_RANGE_MARGIN_FRACTION.d.ts.map +1 -0
- package/src/shade/renderer/shadow/map/csm/SHADOWMAP_CSM_CASTER_RANGE_MARGIN_FRACTION.js +12 -0
- package/src/shade/renderer/shadow/map/csm/shader/shader_csm_caster_range.d.ts +49 -0
- package/src/shade/renderer/shadow/map/csm/shader/shader_csm_caster_range.d.ts.map +1 -0
- package/src/shade/renderer/shadow/map/csm/shader/shader_csm_caster_range.js +194 -0
- package/src/shade/renderer/shadow/map/csm_debug_draw_preview.js +1 -1
- package/src/shade/renderer/shadow/map/shadowmap_update_score.js +1 -1
- package/src/shade/renderer/shadow/ray/RTXShadows.js +1 -1
- package/src/shade/renderer/shadow/ray/staged/trace/graph_trace_rays.js +1 -1
- package/src/shade/renderer/shadow/sdf/cascade/CascadedSceneSDF.d.ts.map +1 -1
- package/src/shade/renderer/shadow/sdf/cascade/CascadedSceneSDF.js +3 -1
- package/src/shade/renderer/texture/bindless/GPUBindlessTextureManager.js +8 -8
- package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/GPUViewVolumetrics.js +4 -3
- package/src/engine/graphics3/instantiate_scene_bundle.d.ts +0 -54
- package/src/engine/graphics3/instantiate_scene_bundle.d.ts.map +0 -1
- package/src/engine/graphics3/instantiate_scene_bundle.js +0 -164
- package/src/engine/graphics3/shade_node_to_entity_composition.d.ts +0 -39
- package/src/engine/graphics3/shade_node_to_entity_composition.d.ts.map +0 -1
- package/src/engine/graphics3/shade_node_to_entity_composition.js +0 -88
- package/src/shade/renderer/animation/compute_skin_world_bounds.d.ts +0 -35
- package/src/shade/renderer/animation/compute_skin_world_bounds.d.ts.map +0 -1
- package/src/shade/renderer/animation/compute_skin_world_bounds.js +0 -146
- package/src/shade/renderer/animation/compute_skinned_mesh_clip_bounding_sphere.d.ts +0 -96
- package/src/shade/renderer/animation/compute_skinned_mesh_clip_bounding_sphere.d.ts.map +0 -1
- package/src/shade/renderer/animation/compute_skinned_mesh_clip_bounding_sphere.js +0 -531
- package/src/shade/renderer/animation/pose/pose_evaluate_world.d.ts +0 -20
- package/src/shade/renderer/animation/pose/pose_evaluate_world.d.ts.map +0 -1
- package/src/shade/renderer/animation/pose/pose_evaluate_world.js +0 -76
- package/src/shade/renderer/animation/skin_bind_transform.d.ts +0 -25
- package/src/shade/renderer/animation/skin_bind_transform.d.ts.map +0 -1
- package/src/shade/renderer/animation/skin_bind_transform.js +0 -33
- package/src/shade/renderer/animation/skin_frame_defect.d.ts +0 -34
- package/src/shade/renderer/animation/skin_frame_defect.d.ts.map +0 -1
- package/src/shade/renderer/animation/skin_frame_defect.js +0 -132
- package/src/shade/renderer/animation/skin_joint_matrix.d.ts +0 -24
- package/src/shade/renderer/animation/skin_joint_matrix.d.ts.map +0 -1
- package/src/shade/renderer/animation/skin_joint_matrix.js +0 -46
- package/src/shade/renderer/animation/skin_normalize_mesh_frame.d.ts +0 -70
- package/src/shade/renderer/animation/skin_normalize_mesh_frame.d.ts.map +0 -1
- package/src/shade/renderer/animation/skin_normalize_mesh_frame.js +0 -216
- package/src/shade/renderer/scene/InstanceBatch.d.ts +0 -92
- package/src/shade/renderer/scene/InstanceBatch.d.ts.map +0 -1
- package/src/shade/renderer/scene/InstanceBatch.js +0 -235
- package/src/shade/renderer/scene/Mesh.d.ts +0 -55
- package/src/shade/renderer/scene/Mesh.d.ts.map +0 -1
- package/src/shade/renderer/scene/Mesh.js +0 -168
- package/src/shade/renderer/scene/Node3D.d.ts +0 -140
- package/src/shade/renderer/scene/Node3D.d.ts.map +0 -1
- package/src/shade/renderer/scene/Node3D.js +0 -263
- package/src/shade/renderer/scene/SceneNodeBinding.d.ts +0 -52
- package/src/shade/renderer/scene/SceneNodeBinding.d.ts.map +0 -1
- package/src/shade/renderer/scene/SceneNodeBinding.js +0 -56
- package/src/shade/renderer/scene/SkinnedMesh.d.ts +0 -110
- package/src/shade/renderer/scene/SkinnedMesh.d.ts.map +0 -1
- package/src/shade/renderer/scene/SkinnedMesh.js +0 -170
- package/src/shade/renderer/scene/TransformAuthority.d.ts +0 -19
- package/src/shade/renderer/scene/TransformAuthority.d.ts.map +0 -1
- package/src/shade/renderer/scene/TransformAuthority.js +0 -33
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
*/
|
|
13
13
|
/**
|
|
14
14
|
* One binding inside a {@link ShadeAnimationClip}: a single target
|
|
15
|
-
*
|
|
15
|
+
* node, the property of that node being animated, and the
|
|
16
16
|
* per-component curves driving each scalar slot.
|
|
17
17
|
*
|
|
18
18
|
* Curve slots are property-specific and align with the GPU track's
|
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
* still a valid unit quaternion after normalise.
|
|
31
31
|
*
|
|
32
32
|
* Pure CPU data. Knows nothing about the GPU; consumed by
|
|
33
|
-
* {@link GPUAnimationManager#register_clip}, which
|
|
34
|
-
*
|
|
33
|
+
* {@link GPUAnimationManager#register_clip}, which binds the target
|
|
34
|
+
* entity's row and uploads the curves.
|
|
35
35
|
*
|
|
36
36
|
* @author Alex Goldring
|
|
37
37
|
* @copyright Company Named Limited (c) 2026
|
|
@@ -39,25 +39,26 @@
|
|
|
39
39
|
export class ShadeAnimationChannel {
|
|
40
40
|
/**
|
|
41
41
|
* @param {{
|
|
42
|
-
* target:
|
|
42
|
+
* target: number,
|
|
43
43
|
* property: number,
|
|
44
44
|
* curves: ChannelCurves,
|
|
45
45
|
* }} args
|
|
46
46
|
* @returns {ShadeAnimationChannel}
|
|
47
47
|
*/
|
|
48
48
|
static from({ target, property, curves }: {
|
|
49
|
-
target:
|
|
49
|
+
target: number;
|
|
50
50
|
property: number;
|
|
51
51
|
curves: ChannelCurves;
|
|
52
52
|
}): ShadeAnimationChannel;
|
|
53
53
|
/**
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
54
|
+
* What this channel animates: an index into the bundle's nodes in a loader's bundle, a node
|
|
55
|
+
* index in a compiled prefab, an entity in a prefab instance — which is the form
|
|
56
|
+
* {@link GPUAnimationManager#register_clip} takes, the entity's row being `entity + 1`.
|
|
57
|
+
* `null` until {@link from} names it.
|
|
57
58
|
*
|
|
58
|
-
* @type {
|
|
59
|
+
* @type {number|null}
|
|
59
60
|
*/
|
|
60
|
-
target:
|
|
61
|
+
target: number | null;
|
|
61
62
|
/**
|
|
62
63
|
* Which property of {@link target} is animated. One of
|
|
63
64
|
* {@link Node3DProperty}. The GPU clip binding stores this as
|
|
@@ -90,14 +91,15 @@ export class ShadeAnimationChannel {
|
|
|
90
91
|
/**
|
|
91
92
|
* Structural clone. Target is shared with the original; callers
|
|
92
93
|
* who clone a clip for a new character instance should overwrite
|
|
93
|
-
* `clone.target` with the new
|
|
94
|
+
* `clone.target` with the new target.
|
|
94
95
|
*
|
|
95
96
|
* @returns {ShadeAnimationChannel}
|
|
96
97
|
*/
|
|
97
98
|
clone(): ShadeAnimationChannel;
|
|
98
99
|
/**
|
|
99
100
|
* Evaluate this channel's curves at time `t` and write the
|
|
100
|
-
* result into
|
|
101
|
+
* result into `transform` — the local transform of whatever
|
|
102
|
+
* {@link target} names, which the caller resolves.
|
|
101
103
|
*
|
|
102
104
|
* - Translation / Scale: per-axis: an absent slot leaves the
|
|
103
105
|
* axis untouched, so partial-axis channels are non-destructive
|
|
@@ -108,14 +110,15 @@ export class ShadeAnimationChannel {
|
|
|
108
110
|
* scalar curves drifts off the unit 4-sphere; the GPU apply
|
|
109
111
|
* shader does the same normalise.
|
|
110
112
|
*
|
|
111
|
-
* Mutates `
|
|
113
|
+
* Mutates `transform`. Callers that need to preserve the bind
|
|
112
114
|
* pose are responsible for snapshotting before calling and
|
|
113
|
-
* restoring after — or pass a
|
|
114
|
-
*
|
|
115
|
+
* restoring after — or pass a copy, so the original is
|
|
116
|
+
* untouched.
|
|
115
117
|
*
|
|
116
118
|
* @param {number} t
|
|
119
|
+
* @param {Transform64} transform
|
|
117
120
|
*/
|
|
118
|
-
apply(t: number): void;
|
|
121
|
+
apply(t: number, transform: Transform64): void;
|
|
119
122
|
/**
|
|
120
123
|
* Number of currently-live curves on this channel — slots
|
|
121
124
|
* defined as a non-undefined value. After {@link optimize} this
|
|
@@ -134,10 +137,10 @@ export class ShadeAnimationChannel {
|
|
|
134
137
|
* authored rest value for that component already sits at the
|
|
135
138
|
* identity: an absent slot leaves the rest value in place,
|
|
136
139
|
* while a present constant-identity curve overwrites it. So
|
|
137
|
-
* every drop below is gated on the target's
|
|
138
|
-
* rest
|
|
139
|
-
* {@link IDENTITY_EPSILON}). When
|
|
140
|
-
*
|
|
140
|
+
* every drop below is gated on the target's rest transform —
|
|
141
|
+
* `rest`, the node's own local — having that component at the
|
|
142
|
+
* identity value (within {@link IDENTITY_EPSILON}). When no rest
|
|
143
|
+
* transform is given the channel is kept — conservative.
|
|
141
144
|
*
|
|
142
145
|
* Per-property semantics:
|
|
143
146
|
* - **Translation** (identity = `(0, 0, 0)`): each axis whose
|
|
@@ -170,12 +173,13 @@ export class ShadeAnimationChannel {
|
|
|
170
173
|
* identity AND both tangents within tolerance of zero (cubic
|
|
171
174
|
* Hermite between such keyframes provably stays at the value).
|
|
172
175
|
*
|
|
176
|
+
* @param {Transform64} [rest] the target's rest transform; without one nothing is dropped
|
|
173
177
|
* @returns {number} count of per-axis curve slots null'd out
|
|
174
178
|
* (Translation/Scale: 0..3; Rotation: 0 or 4 — all-or-
|
|
175
179
|
* nothing). Use {@link curve_count} after the call to
|
|
176
180
|
* decide whether the channel is now empty.
|
|
177
181
|
*/
|
|
178
|
-
optimize(): number;
|
|
182
|
+
optimize(rest?: Transform64): number;
|
|
179
183
|
/**
|
|
180
184
|
* @readonly
|
|
181
185
|
* @type {boolean}
|
|
@@ -184,7 +188,7 @@ export class ShadeAnimationChannel {
|
|
|
184
188
|
#private;
|
|
185
189
|
}
|
|
186
190
|
export type AnimationCurve = import("../../../engine/animation/curve/AnimationCurve.js").AnimationCurve;
|
|
187
|
-
export type
|
|
191
|
+
export type Transform64 = import("../../../engine/ecs/transform/Transform64.js").Transform64;
|
|
188
192
|
/**
|
|
189
193
|
* Per-component curves keyed by the GPU track's `(x, y, z, w)`
|
|
190
194
|
* channels. Slots omitted (or set to `undefined`) leave that
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShadeAnimationChannel.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/animation/ShadeAnimationChannel.js"],"names":[],"mappings":"AAmEA;;;;;;;;;;;GAWG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH;
|
|
1
|
+
{"version":3,"file":"ShadeAnimationChannel.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/animation/ShadeAnimationChannel.js"],"names":[],"mappings":"AAmEA;;;;;;;;;;;GAWG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH;IA8BI;;;;;;;OAOG;IACH,0CAPW;QACV,MAAY,EAAE,MAAM,CAAC;QACrB,QAAc,EAAE,MAAM,CAAC;QACvB,MAAY,EAAE,aAAa,CAAC;KACzB,GACS,qBAAqB,CAsBjC;IAxDD;;;;;;;OAOG;IACH,QAFU,MAAM,GAAC,IAAI,CAEP;IAEd;;;;;;;OAOG;IACH,UAFU,MAAM,CAEH;IAEb;;;;;OAKG;IACH,QAFU,aAAa,CAEX;IAgCZ;;;;;;;;;;;OAWG;IACH,YAFW,qBAAqB,QAa/B;IAED;;;;;;OAMG;IACH,SAFa,qBAAqB,CAMjC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,SAHW,MAAM,aACN,WAAW,QA8CrB;IAED;;;;;;;;;OASG;IACH,0BAQC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgDG;IACH,gBANW,WAAW,GACT,MAAM,CAkElB;IAiBL;;;OAGG;IACH,kCAFU,OAAO,CAEsC;;CANtD;6BApZY,OAAO,mDAAmD,EAAE,cAAc;0BAC1E,OAAO,8CAA8C,EAAE,WAAW;;;;;;;;QA4DjE,cAAc;QACd,cAAc;QACd,cAAc;QACd,cAAc"}
|
|
@@ -12,7 +12,7 @@ import { Node3DProperty } from "../object_property/Node3DProperty.js";
|
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* @typedef {import("../../../engine/animation/curve/AnimationCurve.js").AnimationCurve} AnimationCurve
|
|
15
|
-
* @typedef {import("
|
|
15
|
+
* @typedef {import("../../../engine/ecs/transform/Transform64.js").Transform64} Transform64
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
18
|
/**
|
|
@@ -80,7 +80,7 @@ function is_curve_constant(curve, expected_value) {
|
|
|
80
80
|
|
|
81
81
|
/**
|
|
82
82
|
* One binding inside a {@link ShadeAnimationClip}: a single target
|
|
83
|
-
*
|
|
83
|
+
* node, the property of that node being animated, and the
|
|
84
84
|
* per-component curves driving each scalar slot.
|
|
85
85
|
*
|
|
86
86
|
* Curve slots are property-specific and align with the GPU track's
|
|
@@ -98,8 +98,8 @@ function is_curve_constant(curve, expected_value) {
|
|
|
98
98
|
* still a valid unit quaternion after normalise.
|
|
99
99
|
*
|
|
100
100
|
* Pure CPU data. Knows nothing about the GPU; consumed by
|
|
101
|
-
* {@link GPUAnimationManager#register_clip}, which
|
|
102
|
-
*
|
|
101
|
+
* {@link GPUAnimationManager#register_clip}, which binds the target
|
|
102
|
+
* entity's row and uploads the curves.
|
|
103
103
|
*
|
|
104
104
|
* @author Alex Goldring
|
|
105
105
|
* @copyright Company Named Limited (c) 2026
|
|
@@ -107,11 +107,12 @@ function is_curve_constant(curve, expected_value) {
|
|
|
107
107
|
export class ShadeAnimationChannel {
|
|
108
108
|
|
|
109
109
|
/**
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
*
|
|
110
|
+
* What this channel animates: an index into the bundle's nodes in a loader's bundle, a node
|
|
111
|
+
* index in a compiled prefab, an entity in a prefab instance — which is the form
|
|
112
|
+
* {@link GPUAnimationManager#register_clip} takes, the entity's row being `entity + 1`.
|
|
113
|
+
* `null` until {@link from} names it.
|
|
113
114
|
*
|
|
114
|
-
* @type {
|
|
115
|
+
* @type {number|null}
|
|
115
116
|
*/
|
|
116
117
|
target = null;
|
|
117
118
|
|
|
@@ -135,14 +136,14 @@ export class ShadeAnimationChannel {
|
|
|
135
136
|
|
|
136
137
|
/**
|
|
137
138
|
* @param {{
|
|
138
|
-
* target:
|
|
139
|
+
* target: number,
|
|
139
140
|
* property: number,
|
|
140
141
|
* curves: ChannelCurves,
|
|
141
142
|
* }} args
|
|
142
143
|
* @returns {ShadeAnimationChannel}
|
|
143
144
|
*/
|
|
144
145
|
static from({ target, property, curves }) {
|
|
145
|
-
assert.
|
|
146
|
+
assert.isNonNegativeInteger(target, 'target');
|
|
146
147
|
assert.isNumber(property, 'property');
|
|
147
148
|
assert.defined(curves, 'curves');
|
|
148
149
|
|
|
@@ -191,7 +192,7 @@ export class ShadeAnimationChannel {
|
|
|
191
192
|
/**
|
|
192
193
|
* Structural clone. Target is shared with the original; callers
|
|
193
194
|
* who clone a clip for a new character instance should overwrite
|
|
194
|
-
* `clone.target` with the new
|
|
195
|
+
* `clone.target` with the new target.
|
|
195
196
|
*
|
|
196
197
|
* @returns {ShadeAnimationChannel}
|
|
197
198
|
*/
|
|
@@ -203,7 +204,8 @@ export class ShadeAnimationChannel {
|
|
|
203
204
|
|
|
204
205
|
/**
|
|
205
206
|
* Evaluate this channel's curves at time `t` and write the
|
|
206
|
-
* result into
|
|
207
|
+
* result into `transform` — the local transform of whatever
|
|
208
|
+
* {@link target} names, which the caller resolves.
|
|
207
209
|
*
|
|
208
210
|
* - Translation / Scale: per-axis: an absent slot leaves the
|
|
209
211
|
* axis untouched, so partial-axis channels are non-destructive
|
|
@@ -214,16 +216,19 @@ export class ShadeAnimationChannel {
|
|
|
214
216
|
* scalar curves drifts off the unit 4-sphere; the GPU apply
|
|
215
217
|
* shader does the same normalise.
|
|
216
218
|
*
|
|
217
|
-
* Mutates `
|
|
219
|
+
* Mutates `transform`. Callers that need to preserve the bind
|
|
218
220
|
* pose are responsible for snapshotting before calling and
|
|
219
|
-
* restoring after — or pass a
|
|
220
|
-
*
|
|
221
|
+
* restoring after — or pass a copy, so the original is
|
|
222
|
+
* untouched.
|
|
221
223
|
*
|
|
222
224
|
* @param {number} t
|
|
225
|
+
* @param {Transform64} transform
|
|
223
226
|
*/
|
|
224
|
-
apply(t) {
|
|
227
|
+
apply(t, transform) {
|
|
228
|
+
assert.defined(transform, 'transform');
|
|
229
|
+
|
|
225
230
|
const curves = this.curves;
|
|
226
|
-
const tl =
|
|
231
|
+
const tl = transform;
|
|
227
232
|
|
|
228
233
|
switch (this.property) {
|
|
229
234
|
case Node3DProperty.Translation: {
|
|
@@ -292,10 +297,10 @@ export class ShadeAnimationChannel {
|
|
|
292
297
|
* authored rest value for that component already sits at the
|
|
293
298
|
* identity: an absent slot leaves the rest value in place,
|
|
294
299
|
* while a present constant-identity curve overwrites it. So
|
|
295
|
-
* every drop below is gated on the target's
|
|
296
|
-
* rest
|
|
297
|
-
* {@link IDENTITY_EPSILON}). When
|
|
298
|
-
*
|
|
300
|
+
* every drop below is gated on the target's rest transform —
|
|
301
|
+
* `rest`, the node's own local — having that component at the
|
|
302
|
+
* identity value (within {@link IDENTITY_EPSILON}). When no rest
|
|
303
|
+
* transform is given the channel is kept — conservative.
|
|
299
304
|
*
|
|
300
305
|
* Per-property semantics:
|
|
301
306
|
* - **Translation** (identity = `(0, 0, 0)`): each axis whose
|
|
@@ -328,14 +333,14 @@ export class ShadeAnimationChannel {
|
|
|
328
333
|
* identity AND both tangents within tolerance of zero (cubic
|
|
329
334
|
* Hermite between such keyframes provably stays at the value).
|
|
330
335
|
*
|
|
336
|
+
* @param {Transform64} [rest] the target's rest transform; without one nothing is dropped
|
|
331
337
|
* @returns {number} count of per-axis curve slots null'd out
|
|
332
338
|
* (Translation/Scale: 0..3; Rotation: 0 or 4 — all-or-
|
|
333
339
|
* nothing). Use {@link curve_count} after the call to
|
|
334
340
|
* decide whether the channel is now empty.
|
|
335
341
|
*/
|
|
336
|
-
optimize() {
|
|
342
|
+
optimize(rest) {
|
|
337
343
|
const curves = this.curves;
|
|
338
|
-
const rest = this.target !== null ? this.target.transform_local : undefined;
|
|
339
344
|
let removed = 0;
|
|
340
345
|
|
|
341
346
|
switch (this.property) {
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {import("../../../engine/ecs/transform/Transform64.js").Transform64} Transform64
|
|
3
|
+
*/
|
|
1
4
|
/**
|
|
2
5
|
* @typedef {import("./ShadeAnimationChannel.js").ShadeAnimationChannel} ShadeAnimationChannel
|
|
3
6
|
*/
|
|
4
7
|
/**
|
|
5
8
|
* A bundle of {@link ShadeAnimationChannel}s sharing one playback
|
|
6
9
|
* clock — the GPU-driven equivalent of an animation "clip". Each
|
|
7
|
-
* channel targets a
|
|
10
|
+
* channel targets a node + property; together they describe a
|
|
8
11
|
* coordinated motion (e.g. "wave" might rotate the shoulder, elbow,
|
|
9
12
|
* and wrist joints in lockstep).
|
|
10
13
|
*
|
|
@@ -70,7 +73,7 @@ export class ShadeAnimationClip {
|
|
|
70
73
|
*
|
|
71
74
|
* Retargeting after cloning is the caller's job: walk
|
|
72
75
|
* `clone.channels` and replace each channel's `target` with the
|
|
73
|
-
* matching new
|
|
76
|
+
* matching new target. See the dancer prototype for the typical
|
|
74
77
|
* pattern (`Map<old_joint, new_joint>` plus a per-channel
|
|
75
78
|
* lookup).
|
|
76
79
|
*
|
|
@@ -85,8 +88,8 @@ export class ShadeAnimationClip {
|
|
|
85
88
|
*/
|
|
86
89
|
clone(): ShadeAnimationClip;
|
|
87
90
|
/**
|
|
88
|
-
* Apply every channel's evaluated value at time `t` to
|
|
89
|
-
*
|
|
91
|
+
* Apply every channel's evaluated value at time `t` to the
|
|
92
|
+
* transform `transform_of` answers for its target. Thin orchestrator over
|
|
90
93
|
* {@link ShadeAnimationChannel#apply} — same mutation
|
|
91
94
|
* semantics: callers preserving the bind pose must snapshot
|
|
92
95
|
* before calling and restore after.
|
|
@@ -98,8 +101,9 @@ export class ShadeAnimationClip {
|
|
|
98
101
|
* computation).
|
|
99
102
|
*
|
|
100
103
|
* @param {number} t
|
|
104
|
+
* @param {function(number): Transform64} transform_of the local transform of a target
|
|
101
105
|
*/
|
|
102
|
-
apply(t: number): void;
|
|
106
|
+
apply(t: number, transform_of: (arg0: number) => Transform64): void;
|
|
103
107
|
/**
|
|
104
108
|
* Strip identity channels and identity per-axis curves from
|
|
105
109
|
* the clip — applying it post-optimize is observationally
|
|
@@ -119,13 +123,17 @@ export class ShadeAnimationClip {
|
|
|
119
123
|
* `clip.channels.length` and the sum of `channel.curve_count`
|
|
120
124
|
* across channels themselves; the method intentionally
|
|
121
125
|
* doesn't return them — single source of truth.
|
|
126
|
+
*
|
|
127
|
+
* @param {function(number): (Transform64|undefined)} [rest_of] the rest transform of a
|
|
128
|
+
* target — a bundle's node local; without it nothing is dropped
|
|
122
129
|
*/
|
|
123
|
-
optimize(): void;
|
|
130
|
+
optimize(rest_of?: (arg0: number) => (Transform64 | undefined)): void;
|
|
124
131
|
/**
|
|
125
132
|
* @readonly
|
|
126
133
|
* @type {boolean}
|
|
127
134
|
*/
|
|
128
135
|
readonly isShadeAnimationClip: boolean;
|
|
129
136
|
}
|
|
137
|
+
export type Transform64 = import("../../../engine/ecs/transform/Transform64.js").Transform64;
|
|
130
138
|
export type ShadeAnimationChannel = import("./ShadeAnimationChannel.js").ShadeAnimationChannel;
|
|
131
139
|
//# sourceMappingURL=ShadeAnimationClip.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShadeAnimationClip.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/animation/ShadeAnimationClip.js"],"names":[],"mappings":"AAEA;;GAEG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH;IA+DI;;;OAGG;IACH,gCAHW;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,qBAAqB,EAAE,CAAA;KAAE,GAClD,kBAAkB,CAU9B;IAzED;;;;OAIG;IACH,MAFU,MAAM,CAEN;IAEV;;;;;;OAMG;IACH,UAFU,qBAAqB,EAAE,CAEnB;IAEd;;;;;OAKG;IACH,yBAWC;IAED;;;;;OAKG;IACH,uBAWC;IAED;;OAEG;IACH,uBAEC;IAgBD;;;;;;;;;;;;;;OAcG;IACH,YAFW,kBAAkB,QAY5B;IAED;;;;;OAKG;IACH,SAFa,kBAAkB,CAM9B;IAED
|
|
1
|
+
{"version":3,"file":"ShadeAnimationClip.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/animation/ShadeAnimationClip.js"],"names":[],"mappings":"AAEA;;GAEG;AAEH;;GAEG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH;IA+DI;;;OAGG;IACH,gCAHW;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,qBAAqB,EAAE,CAAA;KAAE,GAClD,kBAAkB,CAU9B;IAzED;;;;OAIG;IACH,MAFU,MAAM,CAEN;IAEV;;;;;;OAMG;IACH,UAFU,qBAAqB,EAAE,CAEnB;IAEd;;;;;OAKG;IACH,yBAWC;IAED;;;;;OAKG;IACH,uBAWC;IAED;;OAEG;IACH,uBAEC;IAgBD;;;;;;;;;;;;;;OAcG;IACH,YAFW,kBAAkB,QAY5B;IAED;;;;;OAKG;IACH,SAFa,kBAAkB,CAM9B;IAED;;;;;;;;;;;;;;;OAeG;IACH,SAHW,MAAM,uBACG,MAAM,KAAG,WAAW,QAYvC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,0BAHoB,MAAM,KAAG,CAAC,WAAW,GAAC,SAAS,CAAC,QAcnD;IAGL;;;OAGG;IACH,+BAFU,OAAO,CAEgC;CANhD;0BA7MY,OAAO,8CAA8C,EAAE,WAAW;oCAIlE,OAAO,4BAA4B,EAAE,qBAAqB"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { assert } from "../../../core/assert.js";
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* @typedef {import("../../../engine/ecs/transform/Transform64.js").Transform64} Transform64
|
|
5
|
+
*/
|
|
6
|
+
|
|
3
7
|
/**
|
|
4
8
|
* @typedef {import("./ShadeAnimationChannel.js").ShadeAnimationChannel} ShadeAnimationChannel
|
|
5
9
|
*/
|
|
@@ -7,7 +11,7 @@ import { assert } from "../../../core/assert.js";
|
|
|
7
11
|
/**
|
|
8
12
|
* A bundle of {@link ShadeAnimationChannel}s sharing one playback
|
|
9
13
|
* clock — the GPU-driven equivalent of an animation "clip". Each
|
|
10
|
-
* channel targets a
|
|
14
|
+
* channel targets a node + property; together they describe a
|
|
11
15
|
* coordinated motion (e.g. "wave" might rotate the shoulder, elbow,
|
|
12
16
|
* and wrist joints in lockstep).
|
|
13
17
|
*
|
|
@@ -109,7 +113,7 @@ export class ShadeAnimationClip {
|
|
|
109
113
|
*
|
|
110
114
|
* Retargeting after cloning is the caller's job: walk
|
|
111
115
|
* `clone.channels` and replace each channel's `target` with the
|
|
112
|
-
* matching new
|
|
116
|
+
* matching new target. See the dancer prototype for the typical
|
|
113
117
|
* pattern (`Map<old_joint, new_joint>` plus a per-channel
|
|
114
118
|
* lookup).
|
|
115
119
|
*
|
|
@@ -140,8 +144,8 @@ export class ShadeAnimationClip {
|
|
|
140
144
|
}
|
|
141
145
|
|
|
142
146
|
/**
|
|
143
|
-
* Apply every channel's evaluated value at time `t` to
|
|
144
|
-
*
|
|
147
|
+
* Apply every channel's evaluated value at time `t` to the
|
|
148
|
+
* transform `transform_of` answers for its target. Thin orchestrator over
|
|
145
149
|
* {@link ShadeAnimationChannel#apply} — same mutation
|
|
146
150
|
* semantics: callers preserving the bind pose must snapshot
|
|
147
151
|
* before calling and restore after.
|
|
@@ -153,12 +157,17 @@ export class ShadeAnimationClip {
|
|
|
153
157
|
* computation).
|
|
154
158
|
*
|
|
155
159
|
* @param {number} t
|
|
160
|
+
* @param {function(number): Transform64} transform_of the local transform of a target
|
|
156
161
|
*/
|
|
157
|
-
apply(t) {
|
|
162
|
+
apply(t, transform_of) {
|
|
163
|
+
assert.isFunction(transform_of, 'transform_of');
|
|
164
|
+
|
|
158
165
|
const channels = this.channels;
|
|
159
166
|
const count = channels.length;
|
|
160
167
|
for (let i = 0; i < count; i++) {
|
|
161
|
-
channels[i]
|
|
168
|
+
const channel = channels[i];
|
|
169
|
+
|
|
170
|
+
channel.apply(t, transform_of(channel.target));
|
|
162
171
|
}
|
|
163
172
|
}
|
|
164
173
|
|
|
@@ -181,13 +190,16 @@ export class ShadeAnimationClip {
|
|
|
181
190
|
* `clip.channels.length` and the sum of `channel.curve_count`
|
|
182
191
|
* across channels themselves; the method intentionally
|
|
183
192
|
* doesn't return them — single source of truth.
|
|
193
|
+
*
|
|
194
|
+
* @param {function(number): (Transform64|undefined)} [rest_of] the rest transform of a
|
|
195
|
+
* target — a bundle's node local; without it nothing is dropped
|
|
184
196
|
*/
|
|
185
|
-
optimize() {
|
|
197
|
+
optimize(rest_of) {
|
|
186
198
|
const original = this.channels;
|
|
187
199
|
const kept = [];
|
|
188
200
|
for (let i = 0; i < original.length; i++) {
|
|
189
201
|
const ch = original[i];
|
|
190
|
-
ch.optimize();
|
|
202
|
+
ch.optimize(rest_of === undefined ? undefined : rest_of(ch.target));
|
|
191
203
|
if (ch.curve_count > 0) {
|
|
192
204
|
kept.push(ch);
|
|
193
205
|
}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @typedef {import("../scene/Node3D.js").Node3D} Node3D
|
|
3
|
-
* @typedef {import("../scene/SkinnedMesh.js").SkinnedMesh} SkinnedMesh
|
|
4
2
|
*/
|
|
5
3
|
/**
|
|
6
4
|
* CPU-side description of a skin: the joint nodes that drive
|
|
@@ -32,17 +30,17 @@ export class Skin {
|
|
|
32
30
|
*
|
|
33
31
|
* @param {{
|
|
34
32
|
* name?: string,
|
|
35
|
-
* joints:
|
|
33
|
+
* joints: number[],
|
|
36
34
|
* inverse_bind_matrices: Float32Array,
|
|
37
|
-
* meshes?:
|
|
35
|
+
* meshes?: number[],
|
|
38
36
|
* }} args
|
|
39
37
|
* @returns {Skin}
|
|
40
38
|
*/
|
|
41
39
|
static from({ name, joints, inverse_bind_matrices, meshes }: {
|
|
42
40
|
name?: string;
|
|
43
|
-
joints:
|
|
41
|
+
joints: number[];
|
|
44
42
|
inverse_bind_matrices: Float32Array;
|
|
45
|
-
meshes?:
|
|
43
|
+
meshes?: number[];
|
|
46
44
|
}): Skin;
|
|
47
45
|
/**
|
|
48
46
|
* Human-readable name. Optional; empty by default.
|
|
@@ -51,20 +49,24 @@ export class Skin {
|
|
|
51
49
|
*/
|
|
52
50
|
name: string;
|
|
53
51
|
/**
|
|
54
|
-
* Ordered
|
|
52
|
+
* Ordered joints. Position in this array matches the joint
|
|
55
53
|
* index used in per-vertex `joints` attributes (the `vec4<u16>`
|
|
56
54
|
* mapped to {@link StandardAttributes.SkinningJoints}). Joint
|
|
57
55
|
* indices in vertex data are interpreted against this list.
|
|
58
56
|
*
|
|
59
|
-
*
|
|
57
|
+
* What a joint *is* depends on where the skin lives: an index into the bundle's nodes in a
|
|
58
|
+
* loader's bundle, a node index in a compiled prefab, an entity in a prefab instance — which
|
|
59
|
+
* is the form {@link GPUAnimationManager#register_skin} takes.
|
|
60
|
+
*
|
|
61
|
+
* @type {number[]}
|
|
60
62
|
*/
|
|
61
|
-
joints:
|
|
63
|
+
joints: number[];
|
|
62
64
|
/**
|
|
63
65
|
* Joint-count × 16 column-major matrices, flat. Joint `j`'s
|
|
64
66
|
* inverse-bind matrix occupies elements `[j*16, j*16+16)`. The
|
|
65
67
|
* matrix transforms a vertex from mesh space into the joint's
|
|
66
68
|
* bind-pose local space; combined with the joint's current
|
|
67
|
-
*
|
|
69
|
+
* world matrix at runtime, it produces the per-frame skinning
|
|
68
70
|
* matrix the shader applies.
|
|
69
71
|
*
|
|
70
72
|
* Column-major to match the WGSL `mat4x4<f32>` convention the
|
|
@@ -75,15 +77,15 @@ export class Skin {
|
|
|
75
77
|
*/
|
|
76
78
|
inverse_bind_matrices: Float32Array;
|
|
77
79
|
/**
|
|
78
|
-
* Meshes that deform against this skin
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
* each mesh's skinning binding
|
|
82
|
-
* register_skin does not walk
|
|
80
|
+
* Meshes that deform against this skin, in the same form as {@link joints}: node indices in
|
|
81
|
+
* a bundle or a prefab, entities in an instance. Populated by the loader (or by
|
|
82
|
+
* hand if you're constructing a skin programmatically). Used by
|
|
83
|
+
* {@link GPUAnimationManager#register_skin} to register each mesh entity's skinning binding —
|
|
84
|
+
* register_skin does not walk anything looking for users.
|
|
83
85
|
*
|
|
84
|
-
* @type {
|
|
86
|
+
* @type {number[]}
|
|
85
87
|
*/
|
|
86
|
-
meshes:
|
|
88
|
+
meshes: number[];
|
|
87
89
|
/**
|
|
88
90
|
* Copy `other`'s shape into `this`. Joint and mesh arrays are
|
|
89
91
|
* shallow-copied; `inverse_bind_matrices` is shared (it's
|
|
@@ -111,6 +113,4 @@ export class Skin {
|
|
|
111
113
|
*/
|
|
112
114
|
readonly isSkin: boolean;
|
|
113
115
|
}
|
|
114
|
-
export type Node3D = import("../scene/Node3D.js").Node3D;
|
|
115
|
-
export type SkinnedMesh = import("../scene/SkinnedMesh.js").SkinnedMesh;
|
|
116
116
|
//# sourceMappingURL=Skin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Skin.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/animation/Skin.js"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"Skin.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/animation/Skin.js"],"names":[],"mappings":"AAEA;GACG;AAEH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH;IAkDI;;;;;;;;;;;OAWG;IACH,6DARW;QACV,IAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAY,EAAE,MAAM,EAAE,CAAC;QACvB,qBAA2B,EAAE,YAAY,CAAC;QAC1C,MAAY,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,GACS,IAAI,CAiBhB;IA3ED;;;;OAIG;IACH,MAFU,MAAM,CAEN;IAEV;;;;;;;;;;;OAWG;IACH,QAFU,MAAM,EAAE,CAEN;IAEZ;;;;;;;;;;;;;OAaG;IACH,uBAFU,YAAY,CAEsB;IAE5C;;;;;;;;OAQG;IACH,QAFU,MAAM,EAAE,CAEN;IA+BZ;;;;;;;;;;OAUG;IACH,YAFW,IAAI,QASd;IAED;;;;;;;OAOG;IACH,SAFa,IAAI,CAMhB;IAGL;;;OAGG;IACH,iBAFU,OAAO,CAEI;CANpB"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { assert } from "../../../core/assert.js";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @typedef {import("../scene/Node3D.js").Node3D} Node3D
|
|
5
|
-
* @typedef {import("../scene/SkinnedMesh.js").SkinnedMesh} SkinnedMesh
|
|
6
4
|
*/
|
|
7
5
|
|
|
8
6
|
/**
|
|
@@ -38,12 +36,16 @@ export class Skin {
|
|
|
38
36
|
name = "";
|
|
39
37
|
|
|
40
38
|
/**
|
|
41
|
-
* Ordered
|
|
39
|
+
* Ordered joints. Position in this array matches the joint
|
|
42
40
|
* index used in per-vertex `joints` attributes (the `vec4<u16>`
|
|
43
41
|
* mapped to {@link StandardAttributes.SkinningJoints}). Joint
|
|
44
42
|
* indices in vertex data are interpreted against this list.
|
|
45
43
|
*
|
|
46
|
-
*
|
|
44
|
+
* What a joint *is* depends on where the skin lives: an index into the bundle's nodes in a
|
|
45
|
+
* loader's bundle, a node index in a compiled prefab, an entity in a prefab instance — which
|
|
46
|
+
* is the form {@link GPUAnimationManager#register_skin} takes.
|
|
47
|
+
*
|
|
48
|
+
* @type {number[]}
|
|
47
49
|
*/
|
|
48
50
|
joints = [];
|
|
49
51
|
|
|
@@ -52,7 +54,7 @@ export class Skin {
|
|
|
52
54
|
* inverse-bind matrix occupies elements `[j*16, j*16+16)`. The
|
|
53
55
|
* matrix transforms a vertex from mesh space into the joint's
|
|
54
56
|
* bind-pose local space; combined with the joint's current
|
|
55
|
-
*
|
|
57
|
+
* world matrix at runtime, it produces the per-frame skinning
|
|
56
58
|
* matrix the shader applies.
|
|
57
59
|
*
|
|
58
60
|
* Column-major to match the WGSL `mat4x4<f32>` convention the
|
|
@@ -64,13 +66,13 @@ export class Skin {
|
|
|
64
66
|
inverse_bind_matrices = new Float32Array(0);
|
|
65
67
|
|
|
66
68
|
/**
|
|
67
|
-
* Meshes that deform against this skin
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
* each mesh's skinning binding
|
|
71
|
-
* register_skin does not walk
|
|
69
|
+
* Meshes that deform against this skin, in the same form as {@link joints}: node indices in
|
|
70
|
+
* a bundle or a prefab, entities in an instance. Populated by the loader (or by
|
|
71
|
+
* hand if you're constructing a skin programmatically). Used by
|
|
72
|
+
* {@link GPUAnimationManager#register_skin} to register each mesh entity's skinning binding —
|
|
73
|
+
* register_skin does not walk anything looking for users.
|
|
72
74
|
*
|
|
73
|
-
* @type {
|
|
75
|
+
* @type {number[]}
|
|
74
76
|
*/
|
|
75
77
|
meshes = [];
|
|
76
78
|
|
|
@@ -80,9 +82,9 @@ export class Skin {
|
|
|
80
82
|
*
|
|
81
83
|
* @param {{
|
|
82
84
|
* name?: string,
|
|
83
|
-
* joints:
|
|
85
|
+
* joints: number[],
|
|
84
86
|
* inverse_bind_matrices: Float32Array,
|
|
85
|
-
* meshes?:
|
|
87
|
+
* meshes?: number[],
|
|
86
88
|
* }} args
|
|
87
89
|
* @returns {Skin}
|
|
88
90
|
*/
|
|
@@ -17,14 +17,15 @@
|
|
|
17
17
|
* the thing to fix. `pose_evaluator_lockstep.spec.js` fails when the WGSL moves, so that the pair
|
|
18
18
|
* cannot drift silently.
|
|
19
19
|
*
|
|
20
|
-
*
|
|
21
|
-
* writes a GPU-authoritative row
|
|
22
|
-
*
|
|
20
|
+
* `rest` supplies the rest pose: the node's or the entity's authored local offset. That is sound
|
|
21
|
+
* because the CPU never writes a GPU-authoritative row, so what the authored offset holds is what
|
|
22
|
+
* the row started from, and undirty axes on the GPU hold the same value for the same reason.
|
|
23
23
|
*
|
|
24
24
|
* @param {Transform64} result written with the evaluated local TRS; its matrix is left stale
|
|
25
|
-
* @param {Node3D} node
|
|
25
|
+
* @param {Node3D|number} target what the channels name — a node, or an entity
|
|
26
|
+
* @param {Transform64} rest the target's authored local pose
|
|
26
27
|
* @param {PosePlayback[]} playbacks
|
|
27
28
|
* @returns {Transform64} `result`
|
|
28
29
|
*/
|
|
29
|
-
export function pose_evaluate_local(result: Transform64,
|
|
30
|
+
export function pose_evaluate_local(result: Transform64, target: Node3D | number, rest: Transform64, playbacks: PosePlayback[]): Transform64;
|
|
30
31
|
//# sourceMappingURL=pose_evaluate_local.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pose_evaluate_local.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/animation/pose/pose_evaluate_local.js"],"names":[],"mappings":"AAmBA
|
|
1
|
+
{"version":3,"file":"pose_evaluate_local.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/animation/pose/pose_evaluate_local.js"],"names":[],"mappings":"AAmBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,iEALW,SAAO,MAAM,gCAEb,cAAc,eAqIxB"}
|