@woosh/meep-engine 3.2.0 → 3.4.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/process/SymbolicDisplayProcess.js +106 -106
- package/editor/process/symbolic/{SoundEmitterSymbolicDisplay.js → AudioEmitterSymbolicDisplay.js} +67 -57
- package/package.json +94 -94
- package/src/DUPLICATION_AUDIT_2026_08_07/F_sound.md +110 -102
- package/src/avif/encoder_worker.js +5 -18
- package/src/core/bvh2/bvh3/ebvh_build_hierarchy_radix.d.ts +54 -0
- package/src/core/bvh2/bvh3/ebvh_build_hierarchy_radix.d.ts.map +1 -1
- package/src/core/bvh2/bvh3/ebvh_build_hierarchy_radix.js +10 -3
- package/src/core/color/PQ/PQ_constants.d.ts +43 -0
- package/src/core/color/PQ/PQ_constants.d.ts.map +1 -0
- package/src/core/color/PQ/PQ_constants.js +50 -0
- package/src/core/color/PQ/PQ_to_linear.d.ts +24 -0
- package/src/core/color/PQ/PQ_to_linear.d.ts.map +1 -0
- package/src/core/color/PQ/PQ_to_linear.js +35 -0
- package/src/core/color/PQ/linear_to_PQ.d.ts +27 -0
- package/src/core/color/PQ/linear_to_PQ.d.ts.map +1 -0
- package/src/core/color/PQ/linear_to_PQ.js +32 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_edge_other_face.d.ts +32 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_edge_other_face.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_edge_other_face.js +59 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_third_vertex.d.ts +26 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_third_vertex.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_third_vertex.js +55 -0
- package/src/engine/EntityCreator.d.ts +19 -11
- package/src/engine/EntityCreator.d.ts.map +1 -1
- package/src/engine/EntityCreator.js +116 -94
- package/src/engine/achievements/AchievementManager.d.ts.map +1 -1
- package/src/engine/achievements/AchievementManager.js +437 -433
- package/src/engine/animation/AnimatedActions.d.ts +6 -1
- package/src/engine/animation/AnimatedActions.d.ts.map +1 -1
- package/src/engine/animation/AnimatedActions.js +111 -81
- package/src/engine/animation/AnimationUtils.d.ts.map +1 -1
- package/src/engine/animation/AnimationUtils.js +234 -252
- package/src/engine/ecs/storage/binary/SERIALIZATION_COVERAGE.md +275 -269
- package/src/engine/ecs/storage/populateEngineSerializationRegistry.d.ts.map +1 -1
- package/src/engine/ecs/storage/populateEngineSerializationRegistry.js +290 -265
- package/src/engine/ecs/util/hideEntityGracefully.d.ts.map +1 -1
- package/src/engine/ecs/util/hideEntityGracefully.js +196 -208
- package/src/engine/graphics3/VolumetricLightMap.d.ts +90 -0
- package/src/engine/graphics3/VolumetricLightMap.d.ts.map +1 -0
- package/src/engine/graphics3/VolumetricLightMap.js +160 -0
- package/src/engine/graphics3/VolumetricLightMapSerializationAdapter.d.ts +32 -0
- package/src/engine/graphics3/VolumetricLightMapSerializationAdapter.d.ts.map +1 -0
- package/src/engine/graphics3/VolumetricLightMapSerializationAdapter.js +67 -0
- package/src/engine/graphics3/VolumetricLightMapSystem3.d.ts +98 -0
- package/src/engine/graphics3/VolumetricLightMapSystem3.d.ts.map +1 -0
- package/src/engine/graphics3/VolumetricLightMapSystem3.js +261 -0
- package/src/engine/intelligence/behavior/primitive/ActionBehavior.d.ts +3 -1
- package/src/engine/intelligence/behavior/primitive/ActionBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/primitive/ActionBehavior.js +4 -2
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
- package/src/engine/sound/SOUND_EMITTER_RETIREMENT_PLAN.md +536 -0
- package/src/engine/sound/SoundEngine.d.ts +2 -2
- package/src/engine/sound/SoundEngine.js +124 -124
- package/src/engine/sound/ecs/audio/AudioEmitter.d.ts +20 -0
- package/src/engine/sound/ecs/audio/AudioEmitter.d.ts.map +1 -1
- package/src/engine/sound/ecs/audio/AudioEmitter.js +25 -2
- package/src/engine/sound/ecs/audio/AudioEmitterSystem.d.ts +6 -6
- package/src/engine/sound/ecs/audio/AudioEmitterSystem.d.ts.map +1 -1
- package/src/engine/sound/ecs/audio/AudioEmitterSystem.js +338 -314
- package/src/engine/sound/ecs/trigger/AudioEventTrigger.d.ts +143 -0
- package/src/engine/sound/ecs/trigger/AudioEventTrigger.d.ts.map +1 -0
- package/src/engine/sound/ecs/trigger/AudioEventTrigger.js +191 -0
- package/src/engine/sound/ecs/trigger/AudioEventTriggerSerializationAdapter.d.ts +33 -0
- package/src/engine/sound/ecs/trigger/AudioEventTriggerSerializationAdapter.d.ts.map +1 -0
- package/src/engine/sound/ecs/trigger/AudioEventTriggerSerializationAdapter.js +81 -0
- package/src/engine/sound/ecs/trigger/AudioEventTriggerSystem.d.ts +65 -0
- package/src/engine/sound/ecs/trigger/AudioEventTriggerSystem.d.ts.map +1 -0
- package/src/engine/sound/ecs/trigger/AudioEventTriggerSystem.js +184 -0
- package/src/engine/sound/sopra/IMPLEMENTATION_PLAN.md +999 -993
- package/src/engine/sound/sopra/README.md +644 -643
- package/src/engine/sound/sopra/SopraEngine.d.ts +2 -2
- package/src/engine/sound/sopra/SopraEngine.js +432 -432
- package/src/engine/sound/sopra/legacy/SoundAttenuationFunction.d.ts.map +1 -0
- package/src/engine/sound/{ecs → sopra/legacy}/SoundController.d.ts +3 -3
- package/src/engine/sound/sopra/legacy/SoundController.d.ts.map +1 -0
- package/src/engine/sound/{ecs → sopra/legacy}/SoundController.js +176 -176
- package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitter.d.ts +11 -27
- package/src/engine/sound/sopra/legacy/SoundEmitter.d.ts.map +1 -0
- package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitter.js +352 -382
- package/src/engine/sound/sopra/legacy/SoundEmitterFlags.d.ts.map +1 -0
- package/src/engine/sound/sopra/legacy/SoundEmitterSerializationAdapter.d.ts.map +1 -0
- package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitterSerializationUpgrader_0_1.d.ts.map +1 -1
- package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitterSerializationUpgrader_1_2.d.ts.map +1 -1
- package/src/engine/sound/sopra/legacy/SoundPanningModelType.d.ts.map +1 -0
- package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundTrack.d.ts +11 -55
- package/src/engine/sound/sopra/legacy/SoundTrack.d.ts.map +1 -0
- package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundTrack.js +278 -357
- package/src/engine/sound/sopra/legacy/SoundTrackFlags.d.ts.map +1 -0
- package/src/engine/sound/sopra/legacy/convertLegacySoundComponents.d.ts +34 -0
- package/src/engine/sound/sopra/legacy/convertLegacySoundComponents.d.ts.map +1 -0
- package/src/engine/sound/sopra/legacy/convertLegacySoundComponents.js +279 -0
- package/src/engine/sound/sopra/legacy/soundEmitterToEventDescription.d.ts +3 -3
- package/src/engine/sound/sopra/legacy/soundEmitterToEventDescription.d.ts.map +1 -1
- package/src/engine/sound/sopra/legacy/soundEmitterToEventDescription.js +122 -122
- package/src/shade/device/mock/SoftwareGPUDevice.d.ts.map +1 -1
- package/src/shade/device/mock/SoftwareGPUDevice.js +7 -1
- package/src/shade/device/timing/GPUTimerArray.d.ts.map +1 -1
- package/src/shade/device/timing/GPUTimerArray.js +10 -0
- package/src/shade/playground/add_random_meshes.d.ts +19 -3
- package/src/shade/playground/add_random_meshes.d.ts.map +1 -1
- package/src/shade/playground/add_random_meshes.js +132 -84
- package/src/shade/playground/bvh_repro/README.md +57 -0
- package/src/shade/playground/bvh_repro/bvh_repro_device.d.ts +33 -0
- package/src/shade/playground/bvh_repro/bvh_repro_device.d.ts.map +1 -0
- package/src/shade/playground/bvh_repro/bvh_repro_device.js +90 -0
- package/src/shade/playground/bvh_repro/index.html +124 -0
- package/src/shade/playground/bvh_repro/main.d.ts.map +1 -0
- package/src/shade/playground/bvh_repro/main.js +254 -0
- package/src/shade/playground/load_default_environment.d.ts +10 -1
- package/src/shade/playground/load_default_environment.d.ts.map +1 -1
- package/src/shade/playground/load_default_environment.js +44 -20
- package/src/shade/playground/make_playground_asset_manager.d.ts +16 -0
- package/src/shade/playground/make_playground_asset_manager.d.ts.map +1 -0
- package/src/shade/playground/make_playground_asset_manager.js +33 -0
- package/src/shade/playground/skinned_blas_refit/README.md +103 -0
- package/src/shade/playground/skinned_blas_refit/add_floor.d.ts +47 -0
- package/src/shade/playground/skinned_blas_refit/add_floor.d.ts.map +1 -0
- package/src/shade/playground/skinned_blas_refit/add_floor.js +71 -0
- package/src/shade/playground/skinned_blas_refit/diff_traced_against_rasterized.d.ts +28 -0
- package/src/shade/playground/skinned_blas_refit/diff_traced_against_rasterized.d.ts.map +1 -0
- package/src/shade/playground/skinned_blas_refit/diff_traced_against_rasterized.js +745 -0
- package/src/shade/playground/skinned_blas_refit/flat_environment.d.ts +30 -0
- package/src/shade/playground/skinned_blas_refit/flat_environment.d.ts.map +1 -0
- package/src/shade/playground/skinned_blas_refit/flat_environment.js +67 -0
- package/src/shade/playground/skinned_blas_refit/index.html +168 -0
- package/src/shade/playground/skinned_blas_refit/main.d.ts +8 -0
- package/src/shade/playground/skinned_blas_refit/main.d.ts.map +1 -0
- package/src/shade/playground/skinned_blas_refit/main.js +502 -0
- package/src/shade/playground/skinned_blas_refit/place_character.d.ts +81 -0
- package/src/shade/playground/skinned_blas_refit/place_character.d.ts.map +1 -0
- package/src/shade/playground/skinned_blas_refit/place_character.js +116 -0
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_leaf_triangles.d.ts +21 -0
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_leaf_triangles.d.ts.map +1 -0
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_leaf_triangles.js +104 -0
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_points.d.ts +23 -0
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_points.d.ts.map +1 -0
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_points.js +94 -0
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_visibility.d.ts +26 -0
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_visibility.d.ts.map +1 -0
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_visibility.js +134 -0
- package/src/shade/playground/skinned_blas_refit/sweep_views.d.ts +40 -0
- package/src/shade/playground/skinned_blas_refit/sweep_views.d.ts.map +1 -0
- package/src/shade/playground/skinned_blas_refit/sweep_views.js +135 -0
- package/src/shade/playground/skinned_blas_refit/verify_instance_bounds.d.ts +31 -0
- package/src/shade/playground/skinned_blas_refit/verify_instance_bounds.d.ts.map +1 -0
- package/src/shade/playground/skinned_blas_refit/verify_instance_bounds.js +240 -0
- package/src/shade/playground/skinned_blas_refit/verify_leaf_triangles.d.ts +20 -0
- package/src/shade/playground/skinned_blas_refit/verify_leaf_triangles.d.ts.map +1 -0
- package/src/shade/playground/skinned_blas_refit/verify_leaf_triangles.js +202 -0
- package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.d.ts +50 -0
- package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.d.ts.map +1 -0
- package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.js +366 -0
- package/src/shade/playground/skinned_blas_refit/verify_traversal_reachability.d.ts +17 -0
- package/src/shade/playground/skinned_blas_refit/verify_traversal_reachability.d.ts.map +1 -0
- package/src/shade/playground/skinned_blas_refit/verify_traversal_reachability.js +249 -0
- package/src/shade/playground/sponza_path_trace/README.md +57 -0
- package/src/shade/playground/sponza_path_trace/index.html +164 -0
- package/src/shade/playground/sponza_path_trace/main.d.ts +8 -0
- package/src/shade/playground/sponza_path_trace/main.d.ts.map +1 -0
- package/src/shade/playground/sponza_path_trace/main.js +363 -0
- package/src/shade/renderer/Renderer.d.ts +16 -0
- package/src/shade/renderer/Renderer.d.ts.map +1 -1
- package/src/shade/renderer/Renderer.js +23 -4
- package/src/shade/renderer/animation/GPUAnimationManager.d.ts +5 -1
- package/src/shade/renderer/animation/GPUAnimationManager.d.ts.map +1 -1
- package/src/shade/renderer/animation/GPUAnimationManager.js +28 -3
- package/src/shade/renderer/animation/Skin.d.ts +9 -7
- package/src/shade/renderer/animation/Skin.d.ts.map +1 -1
- package/src/shade/renderer/animation/Skin.js +9 -7
- package/src/shade/renderer/animation/compute_skin_world_bounds.d.ts +35 -0
- package/src/shade/renderer/animation/compute_skin_world_bounds.d.ts.map +1 -0
- package/src/shade/renderer/animation/compute_skin_world_bounds.js +146 -0
- package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.d.ts.map +1 -1
- package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.js +41 -0
- package/src/shade/renderer/geometry/GPUGeometryManager.d.ts.map +1 -1
- package/src/shade/renderer/geometry/GPUGeometryManager.js +65 -15
- package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.d.ts +78 -7
- package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.d.ts.map +1 -1
- package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.js +302 -77
- package/src/shade/renderer/geometry/bvh/GPUGeometryMeshletsBVH.d.ts +18 -6
- package/src/shade/renderer/geometry/bvh/GPUGeometryMeshletsBVH.d.ts.map +1 -1
- package/src/shade/renderer/geometry/bvh/GPUGeometryMeshletsBVH.js +19 -6
- package/src/shade/renderer/geometry/bvh/bvh2_check_bounds.d.ts +51 -0
- package/src/shade/renderer/geometry/bvh/bvh2_check_bounds.d.ts.map +1 -0
- package/src/shade/renderer/geometry/bvh/bvh2_check_bounds.js +260 -0
- package/src/shade/renderer/geometry/bvh/bvh2_derive_topology.d.ts +23 -0
- package/src/shade/renderer/geometry/bvh/bvh2_derive_topology.d.ts.map +1 -0
- package/src/shade/renderer/geometry/bvh/bvh2_derive_topology.js +82 -0
- package/src/shade/renderer/geometry/bvh/record_blas_refit.d.ts +25 -0
- package/src/shade/renderer/geometry/bvh/record_blas_refit.d.ts.map +1 -0
- package/src/shade/renderer/geometry/bvh/record_blas_refit.js +102 -0
- package/src/shade/renderer/geometry/bvh/shader_blas_refit_leaf_bounds.d.ts +30 -0
- package/src/shade/renderer/geometry/bvh/shader_blas_refit_leaf_bounds.d.ts.map +1 -0
- package/src/shade/renderer/geometry/bvh/shader_blas_refit_leaf_bounds.js +122 -0
- package/src/shade/renderer/global_illumination/brick4/cpu/brick4_empty_gpu_structure.d.ts +23 -0
- package/src/shade/renderer/global_illumination/brick4/cpu/brick4_empty_gpu_structure.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/brick4/cpu/brick4_empty_gpu_structure.js +34 -0
- package/src/shade/renderer/gpu_primitive/bvh/BVH_BUFFER_LAYOUT.d.ts +55 -0
- package/src/shade/renderer/gpu_primitive/bvh/BVH_BUFFER_LAYOUT.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh/BVH_BUFFER_LAYOUT.js +70 -0
- package/src/shade/renderer/gpu_primitive/bvh/BVH_BUILD_SETTINGS_STRUCT.d.ts +37 -0
- package/src/shade/renderer/gpu_primitive/bvh/BVH_BUILD_SETTINGS_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh/BVH_BUILD_SETTINGS_STRUCT.js +45 -0
- package/src/shade/renderer/gpu_primitive/bvh/GPU_BVH_BUILD_PLAN.md +1115 -0
- package/src/shade/renderer/gpu_primitive/bvh/PHASE1_HANDOVER.md +201 -0
- package/src/shade/renderer/gpu_primitive/bvh/check_bvh_structure.d.ts +88 -0
- package/src/shade/renderer/gpu_primitive/bvh/check_bvh_structure.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh/check_bvh_structure.js +233 -0
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_delta.d.ts +18 -0
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_delta.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_delta.js +38 -0
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_determine_range.d.ts +16 -0
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_determine_range.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_determine_range.js +79 -0
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_find_split.d.ts +16 -0
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_find_split.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_find_split.js +49 -0
- package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_build_lbvh.d.ts +43 -0
- package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_build_lbvh.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_build_lbvh.js +217 -0
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_emit_hierarchy.d.ts +24 -0
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_emit_hierarchy.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_emit_hierarchy.js +143 -0
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_morton.d.ts +17 -0
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_morton.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_morton.js +83 -0
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit.d.ts +24 -0
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit.js +141 -0
- package/src/shade/renderer/gpu_primitive/bvh/verify_gpu_bvh_build.d.ts +31 -0
- package/src/shade/renderer/gpu_primitive/bvh/verify_gpu_bvh_build.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh/verify_gpu_bvh_build.js +422 -0
- package/src/shade/renderer/gpu_primitive/prefix_sum/v1/test_prefix_sum.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/prefix_sum/v1/test_prefix_sum.js +1 -2
- package/src/shade/renderer/gpu_primitive/sort/SORT_PASS_SETTINGS_STRUCT.d.ts +9 -0
- package/src/shade/renderer/gpu_primitive/sort/SORT_PASS_SETTINGS_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/sort/SORT_PASS_SETTINGS_STRUCT.js +23 -0
- package/src/shade/renderer/gpu_primitive/sort/chunk_sort_digit.d.ts +18 -0
- package/src/shade/renderer/gpu_primitive/sort/chunk_sort_digit.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/sort/chunk_sort_digit.js +32 -0
- package/src/shade/renderer/gpu_primitive/sort/chunk_sort_rank.d.ts +27 -0
- package/src/shade/renderer/gpu_primitive/sort/chunk_sort_rank.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/sort/chunk_sort_rank.js +41 -0
- package/src/shade/renderer/gpu_primitive/sort/chunk_sort_workgroup_scan.d.ts +25 -0
- package/src/shade/renderer/gpu_primitive/sort/chunk_sort_workgroup_scan.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/sort/chunk_sort_workgroup_scan.js +74 -0
- package/src/shade/renderer/gpu_primitive/sort/defs.d.ts +71 -0
- package/src/shade/renderer/gpu_primitive/sort/defs.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/sort/defs.js +79 -0
- package/src/shade/renderer/gpu_primitive/sort/graph_radix_sort.d.ts +37 -0
- package/src/shade/renderer/gpu_primitive/sort/graph_radix_sort.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/sort/graph_radix_sort.js +197 -0
- package/src/shade/renderer/gpu_primitive/sort/shader_radix_sort_histogram.d.ts +16 -0
- package/src/shade/renderer/gpu_primitive/sort/shader_radix_sort_histogram.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/sort/shader_radix_sort_histogram.js +85 -0
- package/src/shade/renderer/gpu_primitive/sort/shader_radix_sort_scatter.d.ts +15 -0
- package/src/shade/renderer/gpu_primitive/sort/shader_radix_sort_scatter.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/sort/shader_radix_sort_scatter.js +192 -0
- package/src/shade/renderer/gpu_primitive/sort/verify_radix_sort.d.ts +12 -0
- package/src/shade/renderer/gpu_primitive/sort/verify_radix_sort.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/sort/verify_radix_sort.js +188 -0
- package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.d.ts +16 -4
- package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.d.ts.map +1 -1
- package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.js +235 -24
- package/src/shade/renderer/scene/GPUSceneContext.d.ts.map +1 -1
- package/src/shade/renderer/scene/GPUSceneContext.js +15 -3
- package/src/shade/renderer/scene/SkinnedMesh.d.ts +57 -11
- package/src/shade/renderer/scene/SkinnedMesh.d.ts.map +1 -1
- package/src/shade/renderer/scene/SkinnedMesh.js +111 -11
- package/src/shade/renderer/scene/optimization/geometry/internal/anchor_grow_topological.d.ts.map +1 -1
- package/src/shade/renderer/scene/optimization/geometry/internal/anchor_grow_topological.js +12 -3
- package/src/shade/renderer/scene/optimization/geometry/internal/match_validate_topology.js +3 -3
- package/src/shade/renderer/scene/optimization/geometry/internal/seed_correspondence_from_window.js +3 -3
- package/src/shade/renderer/scene/serialization/deserialize_scene.d.ts.map +1 -1
- package/src/shade/renderer/scene/serialization/deserialize_scene.js +0 -2
- package/src/shade/renderer/scene/shader_bvh_extract_instance_leaves.d.ts +22 -0
- package/src/shade/renderer/scene/shader_bvh_extract_instance_leaves.d.ts.map +1 -0
- package/src/shade/renderer/scene/shader_bvh_extract_instance_leaves.js +145 -0
- package/src/shade/renderer/scene/verify_gpu_tlas_build.d.ts +18 -0
- package/src/shade/renderer/scene/verify_gpu_tlas_build.d.ts.map +1 -0
- package/src/shade/renderer/scene/verify_gpu_tlas_build.js +364 -0
- package/src/shade/renderer/shader/chunk/binary/chunk_split_by_3.d.ts +9 -1
- package/src/shade/renderer/shader/chunk/binary/chunk_split_by_3.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/binary/chunk_split_by_3.js +29 -21
- package/src/shade/renderer/shader/chunk/bvh/morton/chunk_v3_morton_encode.d.ts +22 -0
- package/src/shade/renderer/shader/chunk/bvh/morton/chunk_v3_morton_encode.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/bvh/morton/chunk_v3_morton_encode.js +31 -0
- package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_intersects_ray.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_intersects_ray.js +87 -39
- package/src/shade/renderer/shader/chunk/geometry/format/chunk_geometry_read_triangle_bounds.d.ts +17 -0
- package/src/shade/renderer/shader/chunk/geometry/format/chunk_geometry_read_triangle_bounds.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/geometry/format/chunk_geometry_read_triangle_bounds.js +40 -0
- package/src/shade/renderer/shader/chunk/geometry/meshlet/chunk_read_meshlet_triangle_bounds.d.ts +15 -0
- package/src/shade/renderer/shader/chunk/geometry/meshlet/chunk_read_meshlet_triangle_bounds.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/geometry/meshlet/chunk_read_meshlet_triangle_bounds.js +52 -0
- package/src/shade/renderer/shader/chunk/geometry/ray/RAY_STRUCT.d.ts +9 -0
- package/src/shade/renderer/shader/chunk/geometry/ray/RAY_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/geometry/ray/RAY_STRUCT.js +9 -0
- package/src/shade/renderer/shader/chunk/geometry/ray/chunk_ray_transform_m4.d.ts +20 -0
- package/src/shade/renderer/shader/chunk/geometry/ray/chunk_ray_transform_m4.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/geometry/ray/chunk_ray_transform_m4.js +52 -34
- package/src/shade/renderer/texture/virtual/README.md +255 -276
- package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.d.ts.map +1 -1
- package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.js +66 -2
- package/src/shade/wgsl/emulator/WGSLLanguageCore.d.ts.map +1 -1
- package/src/shade/wgsl/emulator/WGSLLanguageCore.js +83 -0
- package/src/view/interaction/InterfaceCommand.d.ts +8 -8
- package/src/view/interaction/InterfaceCommand.d.ts.map +1 -1
- package/src/view/interaction/InterfaceCommand.js +146 -146
- package/src/view/interaction/createInterfaceCommandButton.d.ts.map +1 -1
- package/src/view/interaction/createInterfaceCommandButton.js +115 -124
- package/src/engine/ecs/components/Timer.d.ts +0 -50
- package/src/engine/ecs/components/Timer.d.ts.map +0 -1
- package/src/engine/ecs/components/Timer.js +0 -80
- package/src/engine/ecs/evaluation/PointFitnessBinary.d.ts +0 -22
- package/src/engine/ecs/evaluation/PointFitnessBinary.d.ts.map +0 -1
- package/src/engine/ecs/evaluation/PointFitnessBinary.js +0 -33
- package/src/engine/ecs/evaluation/PointFitnessConstant.d.ts +0 -12
- package/src/engine/ecs/evaluation/PointFitnessConstant.d.ts.map +0 -1
- package/src/engine/ecs/evaluation/PointFitnessConstant.js +0 -27
- package/src/engine/ecs/evaluation/PointFitnessFunction.d.ts +0 -17
- package/src/engine/ecs/evaluation/PointFitnessFunction.d.ts.map +0 -1
- package/src/engine/ecs/evaluation/PointFitnessFunction.js +0 -20
- package/src/engine/ecs/evaluation/arithmetic/PointFitnessAdd.d.ts +0 -12
- package/src/engine/ecs/evaluation/arithmetic/PointFitnessAdd.d.ts.map +0 -1
- package/src/engine/ecs/evaluation/arithmetic/PointFitnessAdd.js +0 -27
- package/src/engine/ecs/evaluation/arithmetic/PointFitnessMultiply.d.ts +0 -12
- package/src/engine/ecs/evaluation/arithmetic/PointFitnessMultiply.d.ts.map +0 -1
- package/src/engine/ecs/evaluation/arithmetic/PointFitnessMultiply.js +0 -28
- package/src/engine/ecs/evaluation/complex/PointFitnessGaussianBlur.d.ts +0 -50
- package/src/engine/ecs/evaluation/complex/PointFitnessGaussianBlur.d.ts.map +0 -1
- package/src/engine/ecs/evaluation/complex/PointFitnessGaussianBlur.js +0 -176
- package/src/engine/ecs/evaluation/json/deserializeFromJSON_PointFitnessFunction.d.ts +0 -7
- package/src/engine/ecs/evaluation/json/deserializeFromJSON_PointFitnessFunction.d.ts.map +0 -1
- package/src/engine/ecs/evaluation/json/deserializeFromJSON_PointFitnessFunction.js +0 -68
- package/src/engine/ecs/evaluation/json/serializeToJSON_PointFitnessFunction.d.ts +0 -7
- package/src/engine/ecs/evaluation/json/serializeToJSON_PointFitnessFunction.d.ts.map +0 -1
- package/src/engine/ecs/evaluation/json/serializeToJSON_PointFitnessFunction.js +0 -89
- package/src/engine/ecs/evaluation/world/ReadTerrainLayerWeightPointFitness.d.ts +0 -17
- package/src/engine/ecs/evaluation/world/ReadTerrainLayerWeightPointFitness.d.ts.map +0 -1
- package/src/engine/ecs/evaluation/world/ReadTerrainLayerWeightPointFitness.js +0 -60
- package/src/engine/ecs/systems/TimerSystem.d.ts +0 -10
- package/src/engine/ecs/systems/TimerSystem.d.ts.map +0 -1
- package/src/engine/ecs/systems/TimerSystem.js +0 -86
- package/src/engine/graphics/FULL_SCREEN_QUAD_VERTEX_SHADER.d.ts +0 -13
- package/src/engine/graphics/FULL_SCREEN_QUAD_VERTEX_SHADER.d.ts.map +0 -1
- package/src/engine/graphics/FULL_SCREEN_QUAD_VERTEX_SHADER.js +0 -14
- package/src/engine/graphics/StandardFrameBuffers.d.ts +0 -7
- package/src/engine/graphics/StandardFrameBuffers.d.ts.map +0 -1
- package/src/engine/graphics/StandardFrameBuffers.js +0 -9
- package/src/engine/graphics/copy_transform_to_threejs_object.d.ts +0 -7
- package/src/engine/graphics/copy_transform_to_threejs_object.d.ts.map +0 -1
- package/src/engine/graphics/copy_transform_to_threejs_object.js +0 -12
- package/src/engine/graphics/ecs/light/binding/LightBinding.d.ts +0 -42
- package/src/engine/graphics/ecs/light/binding/LightBinding.d.ts.map +0 -1
- package/src/engine/graphics/ecs/light/binding/LightBinding.js +0 -133
- package/src/engine/graphics/ecs/light/binding/fp/FPLightBinding.d.ts +0 -25
- package/src/engine/graphics/ecs/light/binding/fp/FPLightBinding.d.ts.map +0 -1
- package/src/engine/graphics/ecs/light/binding/fp/FPLightBinding.js +0 -90
- package/src/engine/graphics/ecs/light/binding/three/applyRotation.d.ts +0 -7
- package/src/engine/graphics/ecs/light/binding/three/applyRotation.d.ts.map +0 -1
- package/src/engine/graphics/ecs/light/binding/three/applyRotation.js +0 -24
- package/src/engine/graphics/ecs/light/binding/three/threeEnsureLightObject.d.ts +0 -7
- package/src/engine/graphics/ecs/light/binding/three/threeEnsureLightObject.d.ts.map +0 -1
- package/src/engine/graphics/ecs/light/binding/three/threeEnsureLightObject.js +0 -12
- package/src/engine/graphics/ecs/light/binding/three/threeMakeLight.d.ts +0 -8
- package/src/engine/graphics/ecs/light/binding/three/threeMakeLight.d.ts.map +0 -1
- package/src/engine/graphics/ecs/light/binding/three/threeMakeLight.js +0 -41
- package/src/engine/graphics/ecs/light/shadow/LightShadow.d.ts +0 -4
- package/src/engine/graphics/ecs/light/shadow/LightShadow.d.ts.map +0 -1
- package/src/engine/graphics/ecs/light/shadow/LightShadow.js +0 -4
- package/src/engine/graphics/ecs/light/shadow/ShadowManager.d.ts +0 -27
- package/src/engine/graphics/ecs/light/shadow/ShadowManager.d.ts.map +0 -1
- package/src/engine/graphics/ecs/light/shadow/ShadowManager.js +0 -53
- package/src/engine/graphics/ecs/light/shadow/ShadowMap.d.ts +0 -8
- package/src/engine/graphics/ecs/light/shadow/ShadowMap.d.ts.map +0 -1
- package/src/engine/graphics/ecs/light/shadow/ShadowMap.js +0 -7
- package/src/engine/graphics/ecs/light/shadow/compute_view_frustum_aabb_in_space.d.ts +0 -14
- package/src/engine/graphics/ecs/light/shadow/compute_view_frustum_aabb_in_space.d.ts.map +0 -1
- package/src/engine/graphics/ecs/light/shadow/compute_view_frustum_aabb_in_space.js +0 -62
- package/src/engine/graphics/ecs/light/shadow/extend_shadow_camera_near_for_casters.d.ts +0 -30
- package/src/engine/graphics/ecs/light/shadow/extend_shadow_camera_near_for_casters.d.ts.map +0 -1
- package/src/engine/graphics/ecs/light/shadow/extend_shadow_camera_near_for_casters.js +0 -77
- package/src/engine/graphics/ecs/light/shadow/setShadowCameraDimensionsDiscrete.d.ts +0 -13
- package/src/engine/graphics/ecs/light/shadow/setShadowCameraDimensionsDiscrete.d.ts.map +0 -1
- package/src/engine/graphics/ecs/light/shadow/setShadowCameraDimensionsDiscrete.js +0 -43
- package/src/engine/graphics/ecs/light/three/light2type.d.ts +0 -8
- package/src/engine/graphics/ecs/light/three/light2type.d.ts.map +0 -1
- package/src/engine/graphics/ecs/light/three/light2type.js +0 -20
- package/src/engine/graphics/ecs/mesh/applyTransformToThreeObject.d.ts +0 -7
- package/src/engine/graphics/ecs/mesh/applyTransformToThreeObject.d.ts.map +0 -1
- package/src/engine/graphics/ecs/mesh/applyTransformToThreeObject.js +0 -13
- package/src/engine/graphics/particles/node-based/codegen/CodeContext.d.ts +0 -20
- package/src/engine/graphics/particles/node-based/codegen/CodeContext.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/CodeContext.js +0 -47
- package/src/engine/graphics/particles/node-based/codegen/CodeGenerator.d.ts +0 -12
- package/src/engine/graphics/particles/node-based/codegen/CodeGenerator.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/CodeGenerator.js +0 -19
- package/src/engine/graphics/particles/node-based/codegen/glsl/GLSLCodeGenerator.d.ts +0 -18
- package/src/engine/graphics/particles/node-based/codegen/glsl/GLSLCodeGenerator.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/glsl/GLSLCodeGenerator.js +0 -249
- package/src/engine/graphics/particles/node-based/codegen/glsl/genAttributeInputName.d.ts +0 -7
- package/src/engine/graphics/particles/node-based/codegen/glsl/genAttributeInputName.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/glsl/genAttributeInputName.js +0 -8
- package/src/engine/graphics/particles/node-based/codegen/glsl/genAttributeOutputName.d.ts +0 -7
- package/src/engine/graphics/particles/node-based/codegen/glsl/genAttributeOutputName.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/glsl/genAttributeOutputName.js +0 -8
- package/src/engine/graphics/particles/node-based/codegen/glsl/getTypeByteSize.d.ts +0 -14
- package/src/engine/graphics/particles/node-based/codegen/glsl/getTypeByteSize.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/glsl/getTypeByteSize.js +0 -20
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/curl/glslm_curlNoise.d.ts +0 -3
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/curl/glslm_curlNoise.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/curl/glslm_curlNoise.js +0 -58
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/curl/glslm_snoiseVector3.d.ts +0 -3
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/curl/glslm_snoiseVector3.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/curl/glslm_snoiseVector3.js +0 -44
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_mod289_v3.d.ts +0 -3
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_mod289_v3.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_mod289_v3.js +0 -28
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_mod289_v4.d.ts +0 -3
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_mod289_v4.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_mod289_v4.js +0 -28
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_permute.d.ts +0 -3
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_permute.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_permute.js +0 -39
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_snoise.d.ts +0 -3
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_snoise.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_snoise.js +0 -124
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_tylorInvSqrt.d.ts +0 -3
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_tylorInvSqrt.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_tylorInvSqrt.js +0 -30
- package/src/engine/graphics/particles/node-based/codegen/modules/FunctionModule.d.ts +0 -64
- package/src/engine/graphics/particles/node-based/codegen/modules/FunctionModule.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/modules/FunctionModule.js +0 -131
- package/src/engine/graphics/particles/node-based/codegen/modules/FunctionModuleReference.d.ts +0 -32
- package/src/engine/graphics/particles/node-based/codegen/modules/FunctionModuleReference.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/modules/FunctionModuleReference.js +0 -62
- package/src/engine/graphics/particles/node-based/codegen/modules/FunctionModuleRegistry.d.ts +0 -46
- package/src/engine/graphics/particles/node-based/codegen/modules/FunctionModuleRegistry.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/modules/FunctionModuleRegistry.js +0 -272
- package/src/engine/graphics/particles/node-based/codegen/modules/FunctionParameterSpecification.d.ts +0 -28
- package/src/engine/graphics/particles/node-based/codegen/modules/FunctionParameterSpecification.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/modules/FunctionParameterSpecification.js +0 -57
- package/src/engine/graphics/particles/node-based/codegen/modules/FunctionSignature.d.ts +0 -32
- package/src/engine/graphics/particles/node-based/codegen/modules/FunctionSignature.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/modules/FunctionSignature.js +0 -55
- package/src/engine/graphics/particles/node-based/editor/ParticleSpecificationEditorView.d.ts +0 -34
- package/src/engine/graphics/particles/node-based/editor/ParticleSpecificationEditorView.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/editor/ParticleSpecificationEditorView.js +0 -178
- package/src/engine/graphics/particles/node-based/nodes/FloatConstant.d.ts +0 -7
- package/src/engine/graphics/particles/node-based/nodes/FloatConstant.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/FloatConstant.js +0 -31
- package/src/engine/graphics/particles/node-based/nodes/ParticleDataTypes.d.ts +0 -13
- package/src/engine/graphics/particles/node-based/nodes/ParticleDataTypes.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/ParticleDataTypes.js +0 -13
- package/src/engine/graphics/particles/node-based/nodes/ReadFloatUniform.d.ts +0 -7
- package/src/engine/graphics/particles/node-based/nodes/ReadFloatUniform.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/ReadFloatUniform.js +0 -26
- package/src/engine/graphics/particles/node-based/nodes/ReadPosition.d.ts +0 -4
- package/src/engine/graphics/particles/node-based/nodes/ReadPosition.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/ReadPosition.js +0 -5
- package/src/engine/graphics/particles/node-based/nodes/ReadVelocity.d.ts +0 -6
- package/src/engine/graphics/particles/node-based/nodes/ReadVelocity.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/ReadVelocity.js +0 -14
- package/src/engine/graphics/particles/node-based/nodes/ShaderNode.d.ts +0 -37
- package/src/engine/graphics/particles/node-based/nodes/ShaderNode.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/ShaderNode.js +0 -73
- package/src/engine/graphics/particles/node-based/nodes/Vector3Constant.d.ts +0 -7
- package/src/engine/graphics/particles/node-based/nodes/Vector3Constant.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/Vector3Constant.js +0 -30
- package/src/engine/graphics/particles/node-based/nodes/Vector3Merge.d.ts +0 -7
- package/src/engine/graphics/particles/node-based/nodes/Vector3Merge.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/Vector3Merge.js +0 -30
- package/src/engine/graphics/particles/node-based/nodes/Vector3Split.d.ts +0 -7
- package/src/engine/graphics/particles/node-based/nodes/Vector3Split.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/Vector3Split.js +0 -32
- package/src/engine/graphics/particles/node-based/nodes/WriteVelocity.d.ts +0 -6
- package/src/engine/graphics/particles/node-based/nodes/WriteVelocity.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/WriteVelocity.js +0 -15
- package/src/engine/graphics/particles/node-based/nodes/attribute/ReadVector3Attribute.d.ts +0 -7
- package/src/engine/graphics/particles/node-based/nodes/attribute/ReadVector3Attribute.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/attribute/ReadVector3Attribute.js +0 -27
- package/src/engine/graphics/particles/node-based/nodes/attribute/WriteVector3Attribute.d.ts +0 -7
- package/src/engine/graphics/particles/node-based/nodes/attribute/WriteVector3Attribute.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/attribute/WriteVector3Attribute.js +0 -25
- package/src/engine/graphics/particles/node-based/nodes/math/AddFloatNode.d.ts +0 -7
- package/src/engine/graphics/particles/node-based/nodes/math/AddFloatNode.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/math/AddFloatNode.js +0 -26
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Add.d.ts +0 -7
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Add.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Add.js +0 -25
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Divide.d.ts +0 -7
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Divide.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Divide.js +0 -25
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Multiply.d.ts +0 -7
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Multiply.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Multiply.js +0 -25
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Subtract.d.ts +0 -7
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Subtract.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Subtract.js +0 -25
- package/src/engine/graphics/particles/node-based/nodes/noise/CurlNoiseNode.d.ts +0 -7
- package/src/engine/graphics/particles/node-based/nodes/noise/CurlNoiseNode.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/noise/CurlNoiseNode.js +0 -39
- package/src/engine/graphics/particles/node-based/nodes/particle_data_type_component_count.d.ts +0 -39
- package/src/engine/graphics/particles/node-based/nodes/particle_data_type_component_count.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/particle_data_type_component_count.js +0 -45
- package/src/engine/graphics/particles/node-based/particle/GeometryAttributes.d.ts +0 -9
- package/src/engine/graphics/particles/node-based/particle/GeometryAttributes.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/particle/GeometryAttributes.js +0 -10
- package/src/engine/graphics/particles/node-based/particle/ParticleAttributeBinding.d.ts +0 -13
- package/src/engine/graphics/particles/node-based/particle/ParticleAttributeBinding.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/particle/ParticleAttributeBinding.js +0 -14
- package/src/engine/graphics/particles/node-based/particle/ParticleAttributeSpecification.d.ts +0 -50
- package/src/engine/graphics/particles/node-based/particle/ParticleAttributeSpecification.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/particle/ParticleAttributeSpecification.js +0 -47
- package/src/engine/graphics/particles/node-based/particle/ParticleSpecification.d.ts +0 -51
- package/src/engine/graphics/particles/node-based/particle/ParticleSpecification.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/particle/ParticleSpecification.js +0 -93
- package/src/engine/graphics/particles/node-based/populateFunctionModuleRegistry.d.ts +0 -6
- package/src/engine/graphics/particles/node-based/populateFunctionModuleRegistry.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/populateFunctionModuleRegistry.js +0 -23
- package/src/engine/graphics/particles/node-based/populateNodeRegistry.d.ts +0 -7
- package/src/engine/graphics/particles/node-based/populateNodeRegistry.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/populateNodeRegistry.js +0 -48
- package/src/engine/graphics/particles/node-based/rendering/AbstractParticleRenderer.d.ts +0 -21
- package/src/engine/graphics/particles/node-based/rendering/AbstractParticleRenderer.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/rendering/AbstractParticleRenderer.js +0 -35
- package/src/engine/graphics/particles/node-based/rendering/ParticleRenderCommand.d.ts +0 -20
- package/src/engine/graphics/particles/node-based/rendering/ParticleRenderCommand.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/rendering/ParticleRenderCommand.js +0 -35
- package/src/engine/graphics/particles/node-based/rendering/ParticleRenderSpecification.d.ts +0 -14
- package/src/engine/graphics/particles/node-based/rendering/ParticleRenderSpecification.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/rendering/ParticleRenderSpecification.js +0 -17
- package/src/engine/graphics/particles/node-based/rendering/billboard/ParticleBillboardShader.d.ts +0 -5
- package/src/engine/graphics/particles/node-based/rendering/billboard/ParticleBillboardShader.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/rendering/billboard/ParticleBillboardShader.js +0 -150
- package/src/engine/graphics/particles/node-based/simulation/EmitterAttributeData.d.ts +0 -55
- package/src/engine/graphics/particles/node-based/simulation/EmitterAttributeData.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/simulation/EmitterAttributeData.js +0 -105
- package/src/engine/graphics/particles/node-based/simulation/GLDataBuffer.d.ts +0 -49
- package/src/engine/graphics/particles/node-based/simulation/GLDataBuffer.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/simulation/GLDataBuffer.js +0 -103
- package/src/engine/graphics/particles/node-based/simulation/GLSLParticleSimulator.d.ts +0 -4
- package/src/engine/graphics/particles/node-based/simulation/GLSLParticleSimulator.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/simulation/GLSLParticleSimulator.js +0 -6
- package/src/engine/graphics/particles/node-based/simulation/GLSLSimulationShader.d.ts +0 -83
- package/src/engine/graphics/particles/node-based/simulation/GLSLSimulationShader.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/simulation/GLSLSimulationShader.js +0 -188
- package/src/engine/graphics/particles/node-based/simulation/TransformFeedback.d.ts +0 -123
- package/src/engine/graphics/particles/node-based/simulation/TransformFeedback.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/simulation/TransformFeedback.js +0 -415
- package/src/engine/graphics/render/buffer/FrameBufferManager.d.ts +0 -71
- package/src/engine/graphics/render/buffer/FrameBufferManager.d.ts.map +0 -1
- package/src/engine/graphics/render/buffer/FrameBufferManager.js +0 -229
- package/src/engine/graphics/render/buffer/simple-fx/taa/TemporalSupersamplingRenderPlugin.d.ts +0 -22
- package/src/engine/graphics/render/buffer/simple-fx/taa/TemporalSupersamplingRenderPlugin.d.ts.map +0 -1
- package/src/engine/graphics/render/buffer/simple-fx/taa/TemporalSupersamplingRenderPlugin.js +0 -84
- package/src/engine/graphics/render/forward_plus/LightRenderMetadata.d.ts +0 -33
- package/src/engine/graphics/render/forward_plus/LightRenderMetadata.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/LightRenderMetadata.js +0 -61
- package/src/engine/graphics/render/forward_plus/SPECIFICATION.md +0 -155
- package/src/engine/graphics/render/forward_plus/assign_cluster.d.ts +0 -29
- package/src/engine/graphics/render/forward_plus/assign_cluster.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/assign_cluster.js +0 -124
- package/src/engine/graphics/render/forward_plus/cluster/compute_light_data_hash.d.ts +0 -7
- package/src/engine/graphics/render/forward_plus/cluster/compute_light_data_hash.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/cluster/compute_light_data_hash.js +0 -17
- package/src/engine/graphics/render/forward_plus/cluster/compute_light_data_hash_0.d.ts +0 -7
- package/src/engine/graphics/render/forward_plus/cluster/compute_light_data_hash_0.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/cluster/compute_light_data_hash_0.js +0 -17
- package/src/engine/graphics/render/forward_plus/cluster/read_plane_pair.d.ts +0 -9
- package/src/engine/graphics/render/forward_plus/cluster/read_plane_pair.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/cluster/read_plane_pair.js +0 -29
- package/src/engine/graphics/render/forward_plus/cluster/write_cluster_planes.d.ts +0 -12
- package/src/engine/graphics/render/forward_plus/cluster/write_cluster_planes.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/cluster/write_cluster_planes.js +0 -43
- package/src/engine/graphics/render/forward_plus/computeFrustumCorners.d.ts +0 -8
- package/src/engine/graphics/render/forward_plus/computeFrustumCorners.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/computeFrustumCorners.js +0 -68
- package/src/engine/graphics/render/forward_plus/debug/createLayerSwitcher.d.ts +0 -4
- package/src/engine/graphics/render/forward_plus/debug/createLayerSwitcher.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/debug/createLayerSwitcher.js +0 -46
- package/src/engine/graphics/render/forward_plus/debug/createScreenGrid.d.ts +0 -14
- package/src/engine/graphics/render/forward_plus/debug/createScreenGrid.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/debug/createScreenGrid.js +0 -327
- package/src/engine/graphics/render/forward_plus/materials/FP_INJECTION_POINT_ACCUMULATION.d.ts +0 -2
- package/src/engine/graphics/render/forward_plus/materials/FP_INJECTION_POINT_ACCUMULATION.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/materials/FP_INJECTION_POINT_ACCUMULATION.js +0 -1
- package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_ACCUMULATION.d.ts +0 -2
- package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_ACCUMULATION.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_ACCUMULATION.js +0 -40
- package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_APPLY_DECALS.d.ts +0 -2
- package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_APPLY_DECALS.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_APPLY_DECALS.js +0 -74
- package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_DECODE_PARS.d.ts +0 -2
- package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_DECODE_PARS.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_DECODE_PARS.js +0 -55
- package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_LOAD_METADATA.d.ts +0 -2
- package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_LOAD_METADATA.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_LOAD_METADATA.js +0 -11
- package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_PREAMBLE.d.ts +0 -2
- package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_PREAMBLE.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_PREAMBLE.js +0 -34
- package/src/engine/graphics/render/forward_plus/materials/fp_build_fragment_shader.d.ts +0 -7
- package/src/engine/graphics/render/forward_plus/materials/fp_build_fragment_shader.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/materials/fp_build_fragment_shader.js +0 -60
- package/src/engine/graphics/render/forward_plus/materials/fp_build_vertex_lighting_shared.d.ts +0 -7
- package/src/engine/graphics/render/forward_plus/materials/fp_build_vertex_lighting_shared.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/materials/fp_build_vertex_lighting_shared.js +0 -38
- package/src/engine/graphics/render/forward_plus/materials/fp_build_vertex_shader.d.ts +0 -7
- package/src/engine/graphics/render/forward_plus/materials/fp_build_vertex_shader.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/materials/fp_build_vertex_shader.js +0 -30
- package/src/engine/graphics/render/forward_plus/model/Decal.d.ts +0 -51
- package/src/engine/graphics/render/forward_plus/model/Decal.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/model/Decal.js +0 -133
- package/src/engine/graphics/render/forward_plus/plugin/forwardPlusMaterialMarker.d.ts +0 -16
- package/src/engine/graphics/render/forward_plus/plugin/forwardPlusMaterialMarker.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/plugin/forwardPlusMaterialMarker.js +0 -18
- package/src/engine/graphics/render/forward_plus/plugin/isLitMaterial.d.ts +0 -7
- package/src/engine/graphics/render/forward_plus/plugin/isLitMaterial.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/plugin/isLitMaterial.js +0 -8
- package/src/engine/graphics/render/forward_plus/query/analytical_biplanar_corner_mapping.d.ts +0 -10
- package/src/engine/graphics/render/forward_plus/query/analytical_biplanar_corner_mapping.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/query/analytical_biplanar_corner_mapping.js +0 -65
- package/src/engine/graphics/render/forward_plus/query/analytical_triplanar_corner_mapping.d.ts +0 -7
- package/src/engine/graphics/render/forward_plus/query/analytical_triplanar_corner_mapping.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/query/analytical_triplanar_corner_mapping.js +0 -8
- package/src/engine/graphics/render/forward_plus/query/cube_mapping.d.ts +0 -11
- package/src/engine/graphics/render/forward_plus/query/cube_mapping.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/query/cube_mapping.js +0 -38
- package/src/engine/graphics/render/forward_plus/query/detailed_sphere_frustum_intersection_test.d.ts +0 -21
- package/src/engine/graphics/render/forward_plus/query/detailed_sphere_frustum_intersection_test.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/query/detailed_sphere_frustum_intersection_test.js +0 -96
- package/src/engine/graphics/render/forward_plus/query/point_light_inside_volume.d.ts +0 -22
- package/src/engine/graphics/render/forward_plus/query/point_light_inside_volume.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/query/point_light_inside_volume.js +0 -44
- package/src/engine/graphics/render/forward_plus/query/query_bvh_frustum_from_texture.d.ts +0 -11
- package/src/engine/graphics/render/forward_plus/query/query_bvh_frustum_from_texture.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/query/query_bvh_frustum_from_texture.js +0 -169
- package/src/engine/graphics/render/forward_plus/query/spot_light_inside_volume.d.ts +0 -9
- package/src/engine/graphics/render/forward_plus/query/spot_light_inside_volume.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/query/spot_light_inside_volume.js +0 -33
- package/src/engine/graphics/render/forward_plus/read_frustum_corner.d.ts +0 -2
- package/src/engine/graphics/render/forward_plus/read_frustum_corner.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/read_frustum_corner.js +0 -2
- package/src/engine/graphics/render/forward_plus/sort_decal_data.d.ts +0 -9
- package/src/engine/graphics/render/forward_plus/sort_decal_data.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/sort_decal_data.js +0 -102
- package/src/engine/graphics/render/forward_plus/testClusterEquality.d.ts +0 -10
- package/src/engine/graphics/render/forward_plus/testClusterEquality.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/testClusterEquality.js +0 -22
- package/src/engine/graphics/render/frame_graph/webgl/WebGLRenderContext.d.ts +0 -19
- package/src/engine/graphics/render/frame_graph/webgl/WebGLRenderContext.d.ts.map +0 -1
- package/src/engine/graphics/render/frame_graph/webgl/WebGLRenderContext.js +0 -62
- package/src/engine/graphics/shaders/AlphaBlendShader.d.ts +0 -18
- package/src/engine/graphics/shaders/AlphaBlendShader.d.ts.map +0 -1
- package/src/engine/graphics/shaders/AlphaBlendShader.js +0 -42
- package/src/engine/graphics/shaders/ClearShader.d.ts +0 -8
- package/src/engine/graphics/shaders/ClearShader.d.ts.map +0 -1
- package/src/engine/graphics/shaders/ClearShader.js +0 -28
- package/src/engine/graphics/shaders/ScreenSpaceQuadShader.d.ts +0 -13
- package/src/engine/graphics/shaders/ScreenSpaceQuadShader.d.ts.map +0 -1
- package/src/engine/graphics/shaders/ScreenSpaceQuadShader.js +0 -38
- package/src/engine/graphics/shaders/ScreenSpaceShader.d.ts +0 -7
- package/src/engine/graphics/shaders/ScreenSpaceShader.d.ts.map +0 -1
- package/src/engine/graphics/shaders/ScreenSpaceShader.js +0 -102
- package/src/engine/graphics/shaders/chunks/glsl_octahedral_impostor.d.ts +0 -102
- package/src/engine/graphics/shaders/chunks/glsl_octahedral_impostor.d.ts.map +0 -1
- package/src/engine/graphics/shaders/chunks/glsl_octahedral_impostor.js +0 -277
- package/src/engine/graphics/shaders/chunks/glsl_voxel_impostor_splat.d.ts +0 -40
- package/src/engine/graphics/shaders/chunks/glsl_voxel_impostor_splat.d.ts.map +0 -1
- package/src/engine/graphics/shaders/chunks/glsl_voxel_impostor_splat.js +0 -57
- package/src/engine/graphics/shaders/glsl_gen_swizzled_read.d.ts +0 -8
- package/src/engine/graphics/shaders/glsl_gen_swizzled_read.d.ts.map +0 -1
- package/src/engine/graphics/shaders/glsl_gen_swizzled_read.js +0 -39
- package/src/engine/graphics/shadows/README.md +0 -6
- package/src/engine/graphics/shadows/vsm.glsl.d.ts +0 -3
- package/src/engine/graphics/shadows/vsm.glsl.d.ts.map +0 -1
- package/src/engine/graphics/shadows/vsm.glsl.js +0 -43
- package/src/engine/graphics/util/composeMatrix4.d.ts +0 -9
- package/src/engine/graphics/util/composeMatrix4.d.ts.map +0 -1
- package/src/engine/graphics/util/composeMatrix4.js +0 -13
- package/src/engine/graphics/util/threeUpdateMatrix.d.ts +0 -6
- package/src/engine/graphics/util/threeUpdateMatrix.d.ts.map +0 -1
- package/src/engine/graphics/util/threeUpdateMatrix.js +0 -14
- package/src/engine/graphics/util/threeUpdateTransform.d.ts +0 -6
- package/src/engine/graphics/util/threeUpdateTransform.d.ts.map +0 -1
- package/src/engine/graphics/util/threeUpdateTransform.js +0 -16
- package/src/engine/sound/ecs/SoundController.d.ts.map +0 -1
- package/src/engine/sound/ecs/SoundControllerSystem.d.ts +0 -23
- package/src/engine/sound/ecs/SoundControllerSystem.d.ts.map +0 -1
- package/src/engine/sound/ecs/SoundControllerSystem.js +0 -103
- package/src/engine/sound/ecs/emitter/SoundAttenuationFunction.d.ts.map +0 -1
- package/src/engine/sound/ecs/emitter/SoundEmitter.d.ts.map +0 -1
- package/src/engine/sound/ecs/emitter/SoundEmitterComponentContext.d.ts +0 -55
- package/src/engine/sound/ecs/emitter/SoundEmitterComponentContext.d.ts.map +0 -1
- package/src/engine/sound/ecs/emitter/SoundEmitterComponentContext.js +0 -265
- package/src/engine/sound/ecs/emitter/SoundEmitterFlags.d.ts.map +0 -1
- package/src/engine/sound/ecs/emitter/SoundEmitterSerializationAdapter.d.ts.map +0 -1
- package/src/engine/sound/ecs/emitter/SoundEmitterSystem.d.ts +0 -88
- package/src/engine/sound/ecs/emitter/SoundEmitterSystem.d.ts.map +0 -1
- package/src/engine/sound/ecs/emitter/SoundEmitterSystem.js +0 -159
- package/src/engine/sound/ecs/emitter/SoundPanningModelType.d.ts.map +0 -1
- package/src/engine/sound/ecs/emitter/SoundTrack.d.ts.map +0 -1
- package/src/engine/sound/ecs/emitter/SoundTrackFlags.d.ts.map +0 -1
- package/src/engine/sound/ecs/emitter/loadSoundTrackAsset.d.ts +0 -8
- package/src/engine/sound/ecs/emitter/loadSoundTrackAsset.d.ts.map +0 -1
- package/src/engine/sound/ecs/emitter/loadSoundTrackAsset.js +0 -41
- package/src/shade/playground/FramePerformanceMonitor.d.ts +0 -114
- package/src/shade/playground/FramePerformanceMonitor.d.ts.map +0 -1
- package/src/shade/playground/FramePerformanceMonitor.js +0 -468
- package/src/shade/playground/add_random_lights.d.ts +0 -8
- package/src/shade/playground/add_random_lights.d.ts.map +0 -1
- package/src/shade/playground/add_random_lights.js +0 -50
- package/src/shade/playground/animation_prototype.d.ts +0 -24
- package/src/shade/playground/animation_prototype.d.ts.map +0 -1
- package/src/shade/playground/animation_prototype.js +0 -508
- package/src/shade/playground/animation_prototype_skinning.d.ts +0 -31
- package/src/shade/playground/animation_prototype_skinning.d.ts.map +0 -1
- package/src/shade/playground/animation_prototype_skinning.js +0 -647
- package/src/shade/playground/animation_prototype_stress.d.ts +0 -35
- package/src/shade/playground/animation_prototype_stress.d.ts.map +0 -1
- package/src/shade/playground/animation_prototype_stress.js +0 -765
- package/src/shade/playground/enable_picker.d.ts +0 -8
- package/src/shade/playground/enable_picker.d.ts.map +0 -1
- package/src/shade/playground/enable_picker.js +0 -60
- package/src/shade/playground/gltf_skinned_prototype.d.ts +0 -27
- package/src/shade/playground/gltf_skinned_prototype.d.ts.map +0 -1
- package/src/shade/playground/gltf_skinned_prototype.js +0 -560
- package/src/shade/playground/gltf_skinned_stress_prototype.d.ts +0 -24
- package/src/shade/playground/gltf_skinned_stress_prototype.d.ts.map +0 -1
- package/src/shade/playground/gltf_skinned_stress_prototype.js +0 -387
- package/src/shade/playground/gltf_viewer.d.ts +0 -2
- package/src/shade/playground/gltf_viewer.d.ts.map +0 -1
- package/src/shade/playground/gltf_viewer.js +0 -283
- package/src/shade/playground/main.d.ts.map +0 -1
- package/src/shade/playground/main.js +0 -2727
- package/src/shade/playground/make_animated_instances.d.ts +0 -9
- package/src/shade/playground/make_animated_instances.d.ts.map +0 -1
- package/src/shade/playground/make_animated_instances.js +0 -118
- package/src/shade/playground/prototype_virtual_texture.d.ts +0 -2
- package/src/shade/playground/prototype_virtual_texture.d.ts.map +0 -1
- package/src/shade/playground/prototype_virtual_texture.js +0 -274
- package/src/shade/playground/prototype_volumetrics_01.d.ts +0 -2
- package/src/shade/playground/prototype_volumetrics_01.d.ts.map +0 -1
- package/src/shade/playground/prototype_volumetrics_01.js +0 -206
- package/src/shade/playground/sample.d.ts +0 -2
- package/src/shade/playground/sample.d.ts.map +0 -1
- package/src/shade/playground/sample.js +0 -234
- package/src/shade/playground/sample_load_gltf.d.ts +0 -9
- package/src/shade/playground/sample_load_gltf.d.ts.map +0 -1
- package/src/shade/playground/sample_load_gltf.js +0 -103
- package/src/shade/playground/spread_node3d_grid.d.ts +0 -7
- package/src/shade/playground/spread_node3d_grid.d.ts.map +0 -1
- package/src/shade/playground/spread_node3d_grid.js +0 -20
- package/src/shade/renderer/geometry/bvh/GPUGeometryBVH.d.ts +0 -24
- package/src/shade/renderer/geometry/bvh/GPUGeometryBVH.d.ts.map +0 -1
- package/src/shade/renderer/geometry/bvh/GPUGeometryBVH.js +0 -88
- package/src/shade/renderer/gpu_primitive/prefix_sum/v0/shader_exclusive_prefix_scan_add.d.ts +0 -3
- package/src/shade/renderer/gpu_primitive/prefix_sum/v0/shader_exclusive_prefix_scan_add.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/prefix_sum/v0/shader_exclusive_prefix_scan_add.js +0 -49
- package/src/shade/renderer/gpu_primitive/prefix_sum/v0/shader_exclusive_prefix_sum_scan.d.ts +0 -3
- package/src/shade/renderer/gpu_primitive/prefix_sum/v0/shader_exclusive_prefix_sum_scan.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/prefix_sum/v0/shader_exclusive_prefix_sum_scan.js +0 -93
- package/src/shade/renderer/gpu_primitive/prefix_sum/v1/graph_prefix_scan_csdl.d.ts +0 -24
- package/src/shade/renderer/gpu_primitive/prefix_sum/v1/graph_prefix_scan_csdl.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/prefix_sum/v1/graph_prefix_scan_csdl.js +0 -119
- package/src/shade/renderer/gpu_primitive/prefix_sum/v1/shader_one_sweep_prefix_scan.d.ts +0 -7
- package/src/shade/renderer/gpu_primitive/prefix_sum/v1/shader_one_sweep_prefix_scan.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/prefix_sum/v1/shader_one_sweep_prefix_scan.js +0 -235
- package/src/shade/renderer/gpu_primitive/sort/NOTES.md +0 -5
- package/src/shade/renderer/gpu_primitive/sort/chunk_sort_common.d.ts +0 -7
- package/src/shade/renderer/gpu_primitive/sort/chunk_sort_common.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/chunk_sort_common.js +0 -136
- package/src/shade/renderer/gpu_primitive/sort/ffx/chunk_safe_load_uint4_umax.d.ts +0 -18
- package/src/shade/renderer/gpu_primitive/sort/ffx/chunk_safe_load_uint4_umax.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/ffx/chunk_safe_load_uint4_umax.js +0 -108
- package/src/shade/renderer/gpu_primitive/sort/ffx/defs.d.ts +0 -35
- package/src/shade/renderer/gpu_primitive/sort/ffx/defs.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/ffx/defs.js +0 -42
- package/src/shade/renderer/gpu_primitive/sort/ffx/graph_radix_sort.d.ts +0 -13
- package/src/shade/renderer/gpu_primitive/sort/ffx/graph_radix_sort.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/ffx/graph_radix_sort.js +0 -116
- package/src/shade/renderer/gpu_primitive/sort/ffx/shader_bit_histogram.d.ts +0 -3
- package/src/shade/renderer/gpu_primitive/sort/ffx/shader_bit_histogram.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/ffx/shader_bit_histogram.js +0 -120
- package/src/shade/renderer/gpu_primitive/sort/ffx/shader_distribute_part_sum_int4.d.ts +0 -3
- package/src/shade/renderer/gpu_primitive/sort/ffx/shader_distribute_part_sum_int4.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/ffx/shader_distribute_part_sum_int4.js +0 -76
- package/src/shade/renderer/gpu_primitive/sort/ffx/shader_scan_exclusive_partial.d.ts +0 -3
- package/src/shade/renderer/gpu_primitive/sort/ffx/shader_scan_exclusive_partial.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/ffx/shader_scan_exclusive_partial.js +0 -125
- package/src/shade/renderer/gpu_primitive/sort/ffx/shader_scan_exclusive_uint4.d.ts +0 -3
- package/src/shade/renderer/gpu_primitive/sort/ffx/shader_scan_exclusive_uint4.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/ffx/shader_scan_exclusive_uint4.js +0 -140
- package/src/shade/renderer/gpu_primitive/sort/ffx/shader_scatter_keys_and_values.d.ts +0 -3
- package/src/shade/renderer/gpu_primitive/sort/ffx/shader_scatter_keys_and_values.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/ffx/shader_scatter_keys_and_values.js +0 -338
- package/src/shade/renderer/gpu_primitive/sort/gaussian_splatting/x.d.ts +0 -7
- package/src/shade/renderer/gpu_primitive/sort/gaussian_splatting/x.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/gaussian_splatting/x.js +0 -261
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/chunk_extract_digit.d.ts +0 -3
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/chunk_extract_digit.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/chunk_extract_digit.js +0 -14
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/defs.d.ts +0 -25
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/defs.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/defs.js +0 -25
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/graph_radix_sort.d.ts +0 -15
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/graph_radix_sort.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/graph_radix_sort.js +0 -192
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_digit_binning_pass_pairs.d.ts +0 -5
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_digit_binning_pass_pairs.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_digit_binning_pass_pairs.js +0 -990
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_global_histogram.d.ts +0 -5
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_global_histogram.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_global_histogram.js +0 -82
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_init_sweep.d.ts +0 -3
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_init_sweep.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_init_sweep.js +0 -44
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_scan.d.ts +0 -5
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_scan.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_scan.js +0 -156
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/test_radix_sort.d.ts +0 -6
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/test_radix_sort.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/test_radix_sort.js +0 -55
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/verify_radix_sort_one_sweep.d.ts +0 -14
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/verify_radix_sort_one_sweep.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/verify_radix_sort_one_sweep.js +0 -110
- package/src/shade/renderer/gpu_primitive/sort/v4/graph_radix_sort.d.ts +0 -12
- package/src/shade/renderer/gpu_primitive/sort/v4/graph_radix_sort.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/v4/graph_radix_sort.js +0 -74
- package/src/shade/renderer/gpu_primitive/sort/v4/shader_radix_sort.d.ts +0 -3
- package/src/shade/renderer/gpu_primitive/sort/v4/shader_radix_sort.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/v4/shader_radix_sort.js +0 -125
- package/src/shade/renderer/scene/optimization/geometry/internal/bt_face_loop_helpers.d.ts +0 -32
- package/src/shade/renderer/scene/optimization/geometry/internal/bt_face_loop_helpers.d.ts.map +0 -1
- package/src/shade/renderer/scene/optimization/geometry/internal/bt_face_loop_helpers.js +0 -77
- package/src/shade/renderer/scene/optimization/geometry/internal/bt_find_edge_between.d.ts +0 -12
- package/src/shade/renderer/scene/optimization/geometry/internal/bt_find_edge_between.d.ts.map +0 -1
- package/src/shade/renderer/scene/optimization/geometry/internal/bt_find_edge_between.js +0 -35
- package/src/shade/renderer/scene/serialization/linear_to_pq.d.ts +0 -2
- package/src/shade/renderer/scene/serialization/linear_to_pq.d.ts.map +0 -1
- package/src/shade/renderer/scene/serialization/linear_to_pq.js +0 -14
- package/src/shade/renderer/scene/serialization/pq_to_linear.d.ts +0 -9
- package/src/shade/renderer/scene/serialization/pq_to_linear.d.ts.map +0 -1
- package/src/shade/renderer/scene/serialization/pq_to_linear.js +0 -30
- package/src/shade/renderer/shader/chunk/bvh/morton/chunk_calculate_morton_code.d.ts +0 -7
- package/src/shade/renderer/shader/chunk/bvh/morton/chunk_calculate_morton_code.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/bvh/morton/chunk_calculate_morton_code.js +0 -36
- package/src/shade/renderer/shader/chunk/bvh/morton/chunk_get_morton_codes_from_unit_coord.d.ts +0 -7
- package/src/shade/renderer/shader/chunk/bvh/morton/chunk_get_morton_codes_from_unit_coord.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/bvh/morton/chunk_get_morton_codes_from_unit_coord.js +0 -54
- package/src/shade/renderer/shader/chunk/bvh/packed/NOTES.md +0 -19
- package/src/shade/renderer/shader/chunk/bvh/packed/PACKED_BVH_NODE_STRUCT.d.ts +0 -3
- package/src/shade/renderer/shader/chunk/bvh/packed/PACKED_BVH_NODE_STRUCT.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/bvh/packed/PACKED_BVH_NODE_STRUCT.js +0 -9
- package/src/shade/renderer/shader/chunk/bvh/packed/PACKED_BVH_NODE_WORD_COUNT.d.ts +0 -6
- package/src/shade/renderer/shader/chunk/bvh/packed/PACKED_BVH_NODE_WORD_COUNT.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/bvh/packed/PACKED_BVH_NODE_WORD_COUNT.js +0 -5
- package/src/shade/renderer/shader/chunk/bvh/packed/chunk_make_f32_interval_f16_safe.d.ts +0 -8
- package/src/shade/renderer/shader/chunk/bvh/packed/chunk_make_f32_interval_f16_safe.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/bvh/packed/chunk_make_f32_interval_f16_safe.js +0 -17
- package/src/shade/renderer/shader/chunk/bvh/packed/chunk_pack_f32_interval_to_u32.d.ts +0 -3
- package/src/shade/renderer/shader/chunk/bvh/packed/chunk_pack_f32_interval_to_u32.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/bvh/packed/chunk_pack_f32_interval_to_u32.js +0 -14
- package/src/shade/renderer/shader/chunk/bvh/packed/chunk_packed_bvh_from_unpacked_node.d.ts +0 -3
- package/src/shade/renderer/shader/chunk/bvh/packed/chunk_packed_bvh_from_unpacked_node.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/bvh/packed/chunk_packed_bvh_from_unpacked_node.js +0 -27
- package/src/shade/renderer/shader/chunk/bvh/packed/chunk_packed_bvh_read_node.d.ts +0 -3
- package/src/shade/renderer/shader/chunk/bvh/packed/chunk_packed_bvh_read_node.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/bvh/packed/chunk_packed_bvh_read_node.js +0 -31
- package/src/shade/renderer/shader/chunk/bvh/packed/chunk_packed_bvh_write_node.d.ts +0 -3
- package/src/shade/renderer/shader/chunk/bvh/packed/chunk_packed_bvh_write_node.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/bvh/packed/chunk_packed_bvh_write_node.js +0 -25
- package/src/shade/renderer/shader/chunk/bvh/packed/shader_pack_blas.d.ts +0 -3
- package/src/shade/renderer/shader/chunk/bvh/packed/shader_pack_blas.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/bvh/packed/shader_pack_blas.js +0 -42
- /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundAttenuationFunction.d.ts +0 -0
- /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundAttenuationFunction.js +0 -0
- /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitterFlags.d.ts +0 -0
- /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitterFlags.js +0 -0
- /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitterSerializationAdapter.d.ts +0 -0
- /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitterSerializationAdapter.js +0 -0
- /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitterSerializationUpgrader_0_1.d.ts +0 -0
- /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitterSerializationUpgrader_0_1.js +0 -0
- /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitterSerializationUpgrader_1_2.d.ts +0 -0
- /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitterSerializationUpgrader_1_2.js +0 -0
- /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundPanningModelType.d.ts +0 -0
- /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundPanningModelType.js +0 -0
- /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundTrackFlags.d.ts +0 -0
- /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundTrackFlags.js +0 -0
- /package/src/shade/playground/{main.d.ts → bvh_repro/main.d.ts} +0 -0
|
@@ -1,647 +0,0 @@
|
|
|
1
|
-
import Vector3 from "../../core/geom/Vector3.js";
|
|
2
|
-
import { AnimationCurve } from "../../engine/animation/curve/AnimationCurve.js";
|
|
3
|
-
import { Keyframe } from "../../engine/animation/curve/Keyframe.js";
|
|
4
|
-
import { Transform } from "../../engine/ecs/transform/Transform.js";
|
|
5
|
-
import { FrameGraph } from "../../engine/graphics/render/frame_graph/FrameGraph.js";
|
|
6
|
-
import { ShadeGPUCommandContext } from "../device/ShadeGPUCommandContext.js";
|
|
7
|
-
import { shader_animation_apply, WORKGROUP_SIZE as ANIMATION_APPLY_WORKGROUP_SIZE } from "../renderer/animation/shader_animation_apply.js";
|
|
8
|
-
import {
|
|
9
|
-
shader_animation_pose_resolve,
|
|
10
|
-
WORKGROUP_SIZE as ANIMATION_POSE_RESOLVE_WORKGROUP_SIZE,
|
|
11
|
-
} from "../renderer/animation/shader_animation_pose_resolve.js";
|
|
12
|
-
import {
|
|
13
|
-
shader_skin_matrix_prep,
|
|
14
|
-
WORKGROUP_SIZE as SKIN_MATRIX_PREP_WORKGROUP_SIZE
|
|
15
|
-
} from "../renderer/animation/skinning/shader_skin_matrix_prep.js";
|
|
16
|
-
import { mat4x4f } from "../renderer/shader/type/WEBGPU_WGSL_PRIMITIVE_TYPES.js";
|
|
17
|
-
import { inspect_gpu_buffer_typed } from "../renderer/buffer/inspect_gpu_buffer_typed.js";
|
|
18
|
-
import { Attribute } from "../renderer/geometry/Attribute.js";
|
|
19
|
-
import { PlaneGeometry } from "../renderer/geometry/BoxGeometry.js";
|
|
20
|
-
import { meshlet_geometry_build_from_geometry } from "../renderer/geometry/meshlet_geometry_build_from_geometry.js";
|
|
21
|
-
import { make_box_geometry } from "../renderer/geometry/primitives/make_box_geometry.js";
|
|
22
|
-
import { StandardAttributes } from "../renderer/geometry/StandardAttributes.js";
|
|
23
|
-
import { make_sunlight } from "../renderer/light/make_sunlight.js";
|
|
24
|
-
import { load_default_environment } from "./load_default_environment.js";
|
|
25
|
-
import { StandardShadeMaterial } from "../renderer/material/StandardShadeMaterial.js";
|
|
26
|
-
import { Mesh } from "../renderer/scene/Mesh.js";
|
|
27
|
-
import { Node3D } from "../renderer/scene/Node3D.js";
|
|
28
|
-
import { SkinnedMesh } from "../renderer/scene/SkinnedMesh.js";
|
|
29
|
-
import { Node3DProperty } from "../renderer/object_property/Node3DProperty.js";
|
|
30
|
-
import { graph_scene_update_transform_hierarchy } from "../renderer/scene/hierarchy/graph_scene_update_transform_hierarchy.js";
|
|
31
|
-
import { graph_import_buffer } from "../renderer/shader/graph/graph_import_buffer.js";
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Length of one bend cycle, in seconds. Half spent bending, half
|
|
35
|
-
* unbending, smooth at both ends.
|
|
36
|
-
*/
|
|
37
|
-
const BEND_PERIOD_SECONDS = 2.5;
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Maximum bend angle (radians). 90° puts the forearm perpendicular to
|
|
41
|
-
* the upper arm at the apex.
|
|
42
|
-
*/
|
|
43
|
-
const MAX_BEND_RADIANS = Math.PI * 0.5;
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Vertical extent of the arm box, in metres. Centred at scene origin —
|
|
47
|
-
* vertices span Y in `[-ARM_HALF_HEIGHT, +ARM_HALF_HEIGHT]`. The
|
|
48
|
-
* elbow joint sits at Y = 0 (mid-box); the shoulder is at Y =
|
|
49
|
-
* `+ARM_HALF_HEIGHT`. With this layout the upper-arm region
|
|
50
|
-
* (Y in `[0, +ARM_HALF_HEIGHT]`) weights to the shoulder, the
|
|
51
|
-
* forearm (Y in `[-ARM_HALF_HEIGHT, 0]`) weights to the elbow.
|
|
52
|
-
*/
|
|
53
|
-
const ARM_HALF_HEIGHT = 1.0;
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Arm cross-section side length (square box: width = depth).
|
|
57
|
-
*/
|
|
58
|
-
const ARM_CROSS_SECTION = 0.4;
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Half-width of the smooth-blend band around the elbow, in metres.
|
|
62
|
-
* Vertices with |y| < this distance get a linear blend between the
|
|
63
|
-
* two joints' weights; everything outside is fully bound to one.
|
|
64
|
-
* A small band keeps the bend visually crisp without causing the
|
|
65
|
-
* candy-wrapper artifact that single-joint binding around a hinge
|
|
66
|
-
* can produce on the inside of the elbow.
|
|
67
|
-
*/
|
|
68
|
-
const BLEND_BAND_HALF_WIDTH = 0.15;
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Build a column-major 4×4 translation matrix as a `Float32Array(16)`.
|
|
73
|
-
* Column-major to match the WGSL `mat4x4<f32>` convention the
|
|
74
|
-
* marshalling code reads.
|
|
75
|
-
*/
|
|
76
|
-
function translate_mat4(tx, ty, tz) {
|
|
77
|
-
const m = new Float32Array(16);
|
|
78
|
-
m[0] = 1; m[5] = 1; m[10] = 1; m[15] = 1;
|
|
79
|
-
m[12] = tx; m[13] = ty; m[14] = tz;
|
|
80
|
-
return m;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
* Identity 4×4.
|
|
85
|
-
*/
|
|
86
|
-
function identity_mat4() {
|
|
87
|
-
const m = new Float32Array(16);
|
|
88
|
-
m[0] = 1; m[5] = 1; m[10] = 1; m[15] = 1;
|
|
89
|
-
return m;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* Build the arm geometry: a tall thin box centred on Y=0 with enough
|
|
94
|
-
* vertical subdivision that the elbow bend is smooth, plus per-vertex
|
|
95
|
-
* skinning attributes that bind the upper half to joint 0 (shoulder)
|
|
96
|
-
* and the lower half to joint 1 (elbow), with a linear blend across a
|
|
97
|
-
* narrow band at the elbow itself.
|
|
98
|
-
*/
|
|
99
|
-
function build_arm_geometry() {
|
|
100
|
-
// Eight Y-segments give nine vertex rows along the arm — a few in
|
|
101
|
-
// each region and a couple inside the blend band. Coarse enough to
|
|
102
|
-
// see the meshlet structure if you want to debug it, fine enough
|
|
103
|
-
// that the elbow looks like a smooth bend rather than a hinge.
|
|
104
|
-
const HEIGHT_SEGMENTS = 8;
|
|
105
|
-
|
|
106
|
-
const geo = make_box_geometry(
|
|
107
|
-
ARM_CROSS_SECTION, ARM_HALF_HEIGHT * 2, ARM_CROSS_SECTION,
|
|
108
|
-
1, HEIGHT_SEGMENTS, 1,
|
|
109
|
-
);
|
|
110
|
-
geo.name = "Arm";
|
|
111
|
-
|
|
112
|
-
const positions = geo.getAttribute(StandardAttributes.Position).data;
|
|
113
|
-
const vertex_count = positions.length / 3;
|
|
114
|
-
|
|
115
|
-
// Joints palette has two entries (0 = shoulder, 1 = elbow). We use
|
|
116
|
-
// the first two slots of each per-vertex (joint, weight) pair; the
|
|
117
|
-
// unused tail slots stay zero, with the GPU's blend math cleanly
|
|
118
|
-
// ignoring them since the weights are zero too.
|
|
119
|
-
const joints = new Uint16Array(vertex_count * 4);
|
|
120
|
-
const weights = new Float32Array(vertex_count * 4);
|
|
121
|
-
|
|
122
|
-
const blend_lo = -BLEND_BAND_HALF_WIDTH;
|
|
123
|
-
const blend_hi = +BLEND_BAND_HALF_WIDTH;
|
|
124
|
-
const blend_width = blend_hi - blend_lo;
|
|
125
|
-
|
|
126
|
-
for (let i = 0; i < vertex_count; i++) {
|
|
127
|
-
const y = positions[i * 3 + 1];
|
|
128
|
-
|
|
129
|
-
// Joint indices are constant per vertex — only the weights vary
|
|
130
|
-
// by Y. Slot 0 always names the shoulder, slot 1 always names
|
|
131
|
-
// the elbow.
|
|
132
|
-
joints[i * 4 + 0] = 0; // shoulder
|
|
133
|
-
joints[i * 4 + 1] = 1; // elbow
|
|
134
|
-
joints[i * 4 + 2] = 0;
|
|
135
|
-
joints[i * 4 + 3] = 0;
|
|
136
|
-
|
|
137
|
-
let w_shoulder;
|
|
138
|
-
if (y >= blend_hi) {
|
|
139
|
-
w_shoulder = 1;
|
|
140
|
-
} else if (y <= blend_lo) {
|
|
141
|
-
w_shoulder = 0;
|
|
142
|
-
} else {
|
|
143
|
-
// Linear blend across the band — full shoulder at the
|
|
144
|
-
// band's upper edge, full elbow at the lower edge.
|
|
145
|
-
w_shoulder = (y - blend_lo) / blend_width;
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
weights[i * 4 + 0] = w_shoulder;
|
|
149
|
-
weights[i * 4 + 1] = 1 - w_shoulder;
|
|
150
|
-
weights[i * 4 + 2] = 0;
|
|
151
|
-
weights[i * 4 + 3] = 0;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
geo.addAttribute(Attribute.from(joints, 4, StandardAttributes.SkinningJoints));
|
|
155
|
-
geo.addAttribute(Attribute.from(weights, 4, StandardAttributes.SkinningWeights));
|
|
156
|
-
|
|
157
|
-
return meshlet_geometry_build_from_geometry(geo);
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
/**
|
|
161
|
-
* Build a 4-channel rotation track that bends the elbow around the
|
|
162
|
-
* scene's X axis: angle 0 → MAX_BEND_RADIANS → 0 across one cycle, with
|
|
163
|
-
* smoothed Hermite tangents.
|
|
164
|
-
*
|
|
165
|
-
* Quaternion period equals the visual period (unlike a full revolution,
|
|
166
|
-
* a hinge sweep stays well under 360°), so we can sample the same
|
|
167
|
-
* keyframes for every channel and the curve loops cleanly without
|
|
168
|
-
* needing the half-angle trick the existing rotation prototype uses.
|
|
169
|
-
*/
|
|
170
|
-
function build_bend_curves(period_seconds, max_angle) {
|
|
171
|
-
const SAMPLES = 8;
|
|
172
|
-
|
|
173
|
-
const x_keys = [];
|
|
174
|
-
const y_keys = [];
|
|
175
|
-
const z_keys = [];
|
|
176
|
-
const w_keys = [];
|
|
177
|
-
|
|
178
|
-
for (let i = 0; i <= SAMPLES; i++) {
|
|
179
|
-
const t = (i / SAMPLES) * period_seconds;
|
|
180
|
-
|
|
181
|
-
// Triangle wave through the bend angle: 0 at t=0, peak at the
|
|
182
|
-
// half-cycle, back to 0 at the cycle end. A cosine would also
|
|
183
|
-
// work; the triangle keeps the timing predictable and lets us
|
|
184
|
-
// see the shape of the Hermite tangent fit.
|
|
185
|
-
const phase = i / SAMPLES;
|
|
186
|
-
const angle = phase < 0.5
|
|
187
|
-
? max_angle * (phase * 2)
|
|
188
|
-
: max_angle * ((1 - phase) * 2);
|
|
189
|
-
|
|
190
|
-
const half = angle * 0.5;
|
|
191
|
-
const s = Math.sin(half);
|
|
192
|
-
const c = Math.cos(half);
|
|
193
|
-
|
|
194
|
-
// Rotation around X — quaternion (sin(θ/2), 0, 0, cos(θ/2)).
|
|
195
|
-
x_keys.push(Keyframe.from(t, s));
|
|
196
|
-
y_keys.push(Keyframe.from(t, 0));
|
|
197
|
-
z_keys.push(Keyframe.from(t, 0));
|
|
198
|
-
w_keys.push(Keyframe.from(t, c));
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
const x = AnimationCurve.from(x_keys);
|
|
202
|
-
const y = AnimationCurve.from(y_keys);
|
|
203
|
-
const z = AnimationCurve.from(z_keys);
|
|
204
|
-
const w = AnimationCurve.from(w_keys);
|
|
205
|
-
|
|
206
|
-
x.alignAllTangents();
|
|
207
|
-
y.alignAllTangents();
|
|
208
|
-
z.alignAllTangents();
|
|
209
|
-
w.alignAllTangents();
|
|
210
|
-
|
|
211
|
-
return { x, y, z, w };
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
/**
|
|
215
|
-
* Build a two-bone elbow rig: a tall box bound to a shoulder joint and
|
|
216
|
-
* an elbow joint, with the elbow animated to bend a forearm-shaped
|
|
217
|
-
* lower half around the elbow's X axis.
|
|
218
|
-
*
|
|
219
|
-
* The geometry is built once from `make_box_geometry`, with skinning
|
|
220
|
-
* attributes appended manually. The shoulder Node3D sits at Y=+1 (the
|
|
221
|
-
* top of the box) and the elbow Node3D is its child at local Y=-1
|
|
222
|
-
* (mid-box). At bind pose both joints' world transforms compose to
|
|
223
|
-
* place the elbow at the box midpoint with identity rotation, so the
|
|
224
|
-
* inverse-bind matrices are simple translations.
|
|
225
|
-
*
|
|
226
|
-
* Per-frame the prototype dispatches:
|
|
227
|
-
* 1. animation/apply — writes elbow's local rotation
|
|
228
|
-
* 2. transform hierarchy — composes node.global from local TRS
|
|
229
|
-
* 3. skin-matrix prep — joint.global × inverse_bind → skin matrices
|
|
230
|
-
* 4. skinning/apply (clones) — DQ-blend skinning into the cloned vertex region
|
|
231
|
-
*
|
|
232
|
-
* Rasterization in the next frame picks up the deformed clone.
|
|
233
|
-
*
|
|
234
|
-
* @param {object} args
|
|
235
|
-
* @param {Renderer} args.renderer
|
|
236
|
-
* @param {Scene} args.scene
|
|
237
|
-
* @param {OrbitalCameraController} args.controller
|
|
238
|
-
*/
|
|
239
|
-
export function animation_prototype_skinning({ renderer, scene, controller }) {
|
|
240
|
-
|
|
241
|
-
// ── Lighting & environment ──────────────────────────────────
|
|
242
|
-
scene.lights.add(make_sunlight({
|
|
243
|
-
intensity: 3,
|
|
244
|
-
direction: new Vector3(-0.4, -1, -0.3),
|
|
245
|
-
}));
|
|
246
|
-
|
|
247
|
-
load_default_environment(scene);
|
|
248
|
-
|
|
249
|
-
// ── Ground plane ────────────────────────────────────────────
|
|
250
|
-
const plane_material = new StandardShadeMaterial();
|
|
251
|
-
plane_material.diffuse_color.parse("#b5b5b5");
|
|
252
|
-
plane_material.roughness_factor = 1;
|
|
253
|
-
plane_material.metallic_factor = 0;
|
|
254
|
-
|
|
255
|
-
const plane_transform = Transform.fromJSON({ position: { x: 0, y: -2, z: 0 } });
|
|
256
|
-
plane_transform.lookAt(Vector3.up);
|
|
257
|
-
|
|
258
|
-
const plane = Mesh.from(
|
|
259
|
-
new PlaneGeometry(20, 20, 1, 1),
|
|
260
|
-
plane_material,
|
|
261
|
-
plane_transform.matrix,
|
|
262
|
-
);
|
|
263
|
-
plane.name = "Ground";
|
|
264
|
-
|
|
265
|
-
// ── Arm geometry + material ─────────────────────────────────
|
|
266
|
-
const arm_material = new StandardShadeMaterial();
|
|
267
|
-
arm_material.diffuse_color.parse("#F2994A");
|
|
268
|
-
arm_material.roughness_factor = 0.5;
|
|
269
|
-
arm_material.metallic_factor = 0;
|
|
270
|
-
|
|
271
|
-
const arm_geometry = build_arm_geometry();
|
|
272
|
-
|
|
273
|
-
// SkinnedMesh sits at scene origin with identity transform — joints
|
|
274
|
-
// are at scene root level (not parented to the mesh) so their
|
|
275
|
-
// globals live directly in world space, matching the convention
|
|
276
|
-
// the inverse-bind matrices below assume.
|
|
277
|
-
const arm = new SkinnedMesh();
|
|
278
|
-
arm.geometry = arm_geometry;
|
|
279
|
-
arm.material = arm_material;
|
|
280
|
-
arm.name = "SkinnedArm";
|
|
281
|
-
arm.updateMatrices();
|
|
282
|
-
|
|
283
|
-
// ── Joint hierarchy ─────────────────────────────────────────
|
|
284
|
-
// shoulder_joint at Y=+1 (top of the box, where the upper arm
|
|
285
|
-
// anchors). elbow_joint as its child, with local position (0, -1, 0)
|
|
286
|
-
// so its world position lands at Y=0 (mid-box, where the bend
|
|
287
|
-
// happens). Both have identity rotation at bind — animation drives
|
|
288
|
-
// elbow's rotation to bend.
|
|
289
|
-
const shoulder_joint = new Node3D();
|
|
290
|
-
shoulder_joint.name = "ShoulderJoint";
|
|
291
|
-
shoulder_joint.transform_local.setTranslation(0, ARM_HALF_HEIGHT, 0);
|
|
292
|
-
|
|
293
|
-
const elbow_joint = new Node3D();
|
|
294
|
-
elbow_joint.name = "ElbowJoint";
|
|
295
|
-
elbow_joint.transform_local.setTranslation(0, -ARM_HALF_HEIGHT, 0);
|
|
296
|
-
|
|
297
|
-
shoulder_joint.addChild(elbow_joint);
|
|
298
|
-
shoulder_joint.updateMatrices();
|
|
299
|
-
|
|
300
|
-
// ── Add to scene (order is load-bearing for joint ids) ──────
|
|
301
|
-
// GPUSceneContext.build assigns transforms-table rows in this
|
|
302
|
-
// order: scene root (0), meshes (1, 2, …), then non-mesh nodes
|
|
303
|
-
// (joints) recursively from the InstanceBatch. The constants at
|
|
304
|
-
// the top of this file capture the resulting row ids.
|
|
305
|
-
scene.add(plane); // mesh row 1
|
|
306
|
-
scene.add(arm); // mesh row 2
|
|
307
|
-
scene.add(shoulder_joint); // non-mesh row 3 (children added via Scene.add recursion)
|
|
308
|
-
// → elbow_joint becomes non-mesh row 4
|
|
309
|
-
|
|
310
|
-
// ── Camera ──────────────────────────────────────────────────
|
|
311
|
-
{
|
|
312
|
-
const camera_position = new Vector3(3.5, 1.0, 4.0);
|
|
313
|
-
const arm_center = new Vector3(0, 0, 0);
|
|
314
|
-
controller.look(camera_position, arm_center);
|
|
315
|
-
controller.camera.near = 0.05;
|
|
316
|
-
controller.camera.far = 50;
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
// ── Animation manager (owned by scene context) ──────────────
|
|
320
|
-
const gpu_scene = renderer.scenes.obtain(scene);
|
|
321
|
-
const animation_manager = gpu_scene.animation_manager;
|
|
322
|
-
|
|
323
|
-
// ── Bend animation tracks (data only; clip wiring is deferred) ──
|
|
324
|
-
// Curves and tracks can be registered up front because they don't
|
|
325
|
-
// depend on the scene's transforms-table layout. The clip's
|
|
326
|
-
// bindings (which name target Node3D rows) need real row ids,
|
|
327
|
-
// which only exist after the first scene.build populates
|
|
328
|
-
// gpu_scene.id_mapping.
|
|
329
|
-
const bend = build_bend_curves(BEND_PERIOD_SECONDS, MAX_BEND_RADIANS);
|
|
330
|
-
const bend_x = animation_manager.add_curve(bend.x);
|
|
331
|
-
const bend_y = animation_manager.add_curve(bend.y);
|
|
332
|
-
const bend_z = animation_manager.add_curve(bend.z);
|
|
333
|
-
const bend_w = animation_manager.add_curve(bend.w);
|
|
334
|
-
const bend_track = animation_manager.add_track({
|
|
335
|
-
x: bend_x, y: bend_y, z: bend_z, w: bend_w,
|
|
336
|
-
});
|
|
337
|
-
|
|
338
|
-
// Expose for debugging from the console.
|
|
339
|
-
window.animation_manager = animation_manager;
|
|
340
|
-
window.gpu_scene = gpu_scene;
|
|
341
|
-
window.skinned_arm = arm;
|
|
342
|
-
|
|
343
|
-
/**
|
|
344
|
-
* Once-per-scene state populated on the first frame the scene
|
|
345
|
-
* has been built. Holds the clip id we drive each frame plus a
|
|
346
|
-
* sentinel so the per-frame callback knows we're ready.
|
|
347
|
-
*/
|
|
348
|
-
let bend_clip = -1;
|
|
349
|
-
let initialised = false;
|
|
350
|
-
|
|
351
|
-
/**
|
|
352
|
-
* One-shot deferred setup. Resolves real Node3D row ids from
|
|
353
|
-
* `id_mapping` (populated by the first scene.build), registers
|
|
354
|
-
* the skin against those rows, and creates the clip whose
|
|
355
|
-
* binding targets the elbow's row. Re-running scene.build later
|
|
356
|
-
* doesn't change row ids for nodes that stay in place — id_mapping
|
|
357
|
-
* is keyed by Node3D.id which persists across rebuilds — so this
|
|
358
|
-
* setup is genuinely once-and-for-all under the current
|
|
359
|
-
* lifetime model.
|
|
360
|
-
*/
|
|
361
|
-
function initialise_skinning() {
|
|
362
|
-
if (!gpu_scene.id_mapping.has(shoulder_joint.id)) {
|
|
363
|
-
// Scene hasn't been built yet — try again next frame.
|
|
364
|
-
return false;
|
|
365
|
-
}
|
|
366
|
-
|
|
367
|
-
const shoulder_row = gpu_scene.id_mapping.get(shoulder_joint.id);
|
|
368
|
-
const elbow_row = gpu_scene.id_mapping.get(elbow_joint.id);
|
|
369
|
-
|
|
370
|
-
console.log(`[skinning prototype] joint rows: shoulder=${shoulder_row}, elbow=${elbow_row}, instance_count=${gpu_scene.scene.instance_count}`);
|
|
371
|
-
|
|
372
|
-
// Two joints. inverse-bind matrices are the inverse of each
|
|
373
|
-
// joint's bind-pose world transform:
|
|
374
|
-
// shoulder.bind_global = translate(0, +1, 0) → inverse = translate(0, -1, 0)
|
|
375
|
-
// elbow.bind_global = identity → inverse = identity
|
|
376
|
-
// Elbow's bind_global is identity because the chain composes
|
|
377
|
-
// translate(0, +1, 0) × translate(0, -1, 0) = identity at bind.
|
|
378
|
-
// No mesh-world factor is needed on the skin — the rasterizer
|
|
379
|
-
// re-applies the arm's transform_global to the skinned vertex
|
|
380
|
-
// via the standard mesh transform path.
|
|
381
|
-
const skin_id = animation_manager.add_skin({
|
|
382
|
-
joints: [
|
|
383
|
-
{
|
|
384
|
-
node: shoulder_row,
|
|
385
|
-
inverse_bind: translate_mat4(0, -ARM_HALF_HEIGHT, 0),
|
|
386
|
-
},
|
|
387
|
-
{
|
|
388
|
-
node: elbow_row,
|
|
389
|
-
inverse_bind: identity_mat4(),
|
|
390
|
-
},
|
|
391
|
-
],
|
|
392
|
-
});
|
|
393
|
-
// scene.build already ran, but the binding hadn't been
|
|
394
|
-
// registered (no skin was assigned at that point). Bind the
|
|
395
|
-
// mesh to the freshly-added skin now — bind() is idempotent
|
|
396
|
-
// and reuses the cached clone the build allocated.
|
|
397
|
-
gpu_scene.skinning.bind(arm, skin_id);
|
|
398
|
-
|
|
399
|
-
// One clip with one bound track — the rotation channel of the
|
|
400
|
-
// elbow joint, addressed by its real (looked-up) transforms-
|
|
401
|
-
// table row.
|
|
402
|
-
bend_clip = animation_manager.add_clip({
|
|
403
|
-
time: 0,
|
|
404
|
-
bindings: [
|
|
405
|
-
{
|
|
406
|
-
track: bend_track,
|
|
407
|
-
instance: elbow_row,
|
|
408
|
-
property: Node3DProperty.Rotation,
|
|
409
|
-
},
|
|
410
|
-
],
|
|
411
|
-
});
|
|
412
|
-
|
|
413
|
-
initialised = true;
|
|
414
|
-
return true;
|
|
415
|
-
}
|
|
416
|
-
|
|
417
|
-
// ── Per-frame: animation + skinning dispatch ────────────────
|
|
418
|
-
//
|
|
419
|
-
// Same one-frame-lag pattern as the other prototypes: we hook
|
|
420
|
-
// `onFrameFinished`, write into the scene/animation databases, and
|
|
421
|
-
// let the next frame's rasterization read the deformed cache.
|
|
422
|
-
const start_time_ms = performance.now();
|
|
423
|
-
|
|
424
|
-
renderer.onFrameFinished.add(() => {
|
|
425
|
-
const scene_database_buffer = gpu_scene.scene_database_buffer;
|
|
426
|
-
if (scene_database_buffer === undefined) {
|
|
427
|
-
// Scene hasn't been built yet.
|
|
428
|
-
return;
|
|
429
|
-
}
|
|
430
|
-
|
|
431
|
-
if (!initialised) {
|
|
432
|
-
// First time we see a built scene — resolve real Node3D row
|
|
433
|
-
// ids for the joints, register the skin + clip against
|
|
434
|
-
// them, then fall through to the regular per-frame path.
|
|
435
|
-
if (!initialise_skinning()) return;
|
|
436
|
-
}
|
|
437
|
-
|
|
438
|
-
const elapsed_s = (performance.now() - start_time_ms) * 1e-3;
|
|
439
|
-
const clip_time = elapsed_s % BEND_PERIOD_SECONDS;
|
|
440
|
-
|
|
441
|
-
animation_manager.set_time(bend_clip, clip_time);
|
|
442
|
-
|
|
443
|
-
// Throttled diagnostic — logs once per second across the whole
|
|
444
|
-
// pipeline to bisect the static-bend bug. The log line follows
|
|
445
|
-
// the data flow:
|
|
446
|
-
// clip_time → cpu_shadow.time → gpu.time → elbow.local_rotation
|
|
447
|
-
// → elbow.global → skin_matrices[1]
|
|
448
|
-
// (the skin matrix prep writes [shoulder, elbow] at offsets 0/1).
|
|
449
|
-
// The first stage that stops varying frame-to-frame is the one
|
|
450
|
-
// dropping the update.
|
|
451
|
-
//
|
|
452
|
-
// All readbacks are async — they snapshot the buffer state at
|
|
453
|
-
// the time the readback is queued. Note the previously-observed
|
|
454
|
-
// 1-frame lag on gpu.time vs cpu_shadow.time: readbacks are
|
|
455
|
-
// queued before this frame's animation_manager.update runs, so
|
|
456
|
-
// they see the previous frame's flushed values. Same lag applies
|
|
457
|
-
// to the elbow_local / elbow_global / skin_matrix readbacks.
|
|
458
|
-
if (Math.floor(elapsed_s) !== Math.floor(elapsed_s - 0.016)) {
|
|
459
|
-
const cpu_clip = animation_manager.database.get('animation_clips').get(bend_clip);
|
|
460
|
-
const elapsed_snapshot = elapsed_s;
|
|
461
|
-
const clip_time_snapshot = clip_time;
|
|
462
|
-
const elbow_row_snapshot = gpu_scene.id_mapping.get(elbow_joint.id);
|
|
463
|
-
|
|
464
|
-
// Bundle all readbacks in parallel so the throttled log lands
|
|
465
|
-
// as one line.
|
|
466
|
-
const p_clip = animation_manager.database.debug_table_read_element('animation_clips', bend_clip);
|
|
467
|
-
const p_elbow = gpu_scene.scene_database.debug_table_read_element('transforms', elbow_row_snapshot);
|
|
468
|
-
|
|
469
|
-
// skin_matrices is a flat scratch buffer (not a GPUDatabase
|
|
470
|
-
// table), so use inspect_gpu_buffer_typed directly. Read both
|
|
471
|
-
// matrices: skin[0] (shoulder × inv_bind, expected identity)
|
|
472
|
-
// serves as a known-good cross-reference for skin[1] (elbow ×
|
|
473
|
-
// inv_bind, the one that should track the bend).
|
|
474
|
-
const skin_matrices_buffer = animation_manager.skin_matrices_buffer;
|
|
475
|
-
const p_skin = skin_matrices_buffer === null
|
|
476
|
-
? Promise.resolve(null)
|
|
477
|
-
: inspect_gpu_buffer_typed({
|
|
478
|
-
buffer: skin_matrices_buffer,
|
|
479
|
-
device: renderer.device,
|
|
480
|
-
type: mat4x4f,
|
|
481
|
-
offset: 0,
|
|
482
|
-
count: 2,
|
|
483
|
-
});
|
|
484
|
-
|
|
485
|
-
// Float32Array.map returns Float32Array (coerces toFixed
|
|
486
|
-
// strings → NaN), so spread to plain Array before formatting.
|
|
487
|
-
const fmt_arr = (a, decimals) => `(${[...a].map(v => v.toFixed(decimals)).join(',')})`;
|
|
488
|
-
|
|
489
|
-
// Capture the values from this frame's pre-flush state for
|
|
490
|
-
// logging — skin_prep_dispatch_groups gates the skin_matrix_prep
|
|
491
|
-
// dispatch later in this frame, so it tells us if the prep ran
|
|
492
|
-
// at all.
|
|
493
|
-
const skin_prep_groups_snapshot = animation_manager.database
|
|
494
|
-
.get('animation_skin_joint_blocks')
|
|
495
|
-
.dispatch_group_count(SKIN_MATRIX_PREP_WORKGROUP_SIZE);
|
|
496
|
-
|
|
497
|
-
Promise.all([p_clip, p_elbow, p_skin]).then(([gpu_clip, gpu_elbow, gpu_skin]) => {
|
|
498
|
-
const gpu_time = gpu_clip?.time?.toFixed(3) ?? 'undef';
|
|
499
|
-
const elbow_rot = gpu_elbow?.local_rotation
|
|
500
|
-
? fmt_arr(gpu_elbow.local_rotation, 3)
|
|
501
|
-
: 'undef';
|
|
502
|
-
// Show ALL columns of the rotation 3x3 — col0 is invariant
|
|
503
|
-
// for an X-axis rotation (X stays X), so col1/col2 carry
|
|
504
|
-
// the actual rotation signal. Translation in col3.xyz.
|
|
505
|
-
const elbow_global = gpu_elbow?.global
|
|
506
|
-
? `c0=${fmt_arr(gpu_elbow.global.slice(0, 3), 2)} c1=${fmt_arr(gpu_elbow.global.slice(4, 7), 2)} c2=${fmt_arr(gpu_elbow.global.slice(8, 11), 2)} t=${fmt_arr(gpu_elbow.global.slice(12, 15), 2)}`
|
|
507
|
-
: 'undef';
|
|
508
|
-
const fmt_mat = (m) => `c0=${fmt_arr(m.slice(0, 3), 2)} c1=${fmt_arr(m.slice(4, 7), 2)} c2=${fmt_arr(m.slice(8, 11), 2)} t=${fmt_arr(m.slice(12, 15), 2)}`;
|
|
509
|
-
const skin0 = gpu_skin && gpu_skin[0] ? fmt_mat(gpu_skin[0]) : 'undef';
|
|
510
|
-
const skin1 = gpu_skin && gpu_skin[1] ? fmt_mat(gpu_skin[1]) : 'undef';
|
|
511
|
-
console.log(
|
|
512
|
-
`[skin] elapsed=${elapsed_snapshot.toFixed(2)}s ` +
|
|
513
|
-
`clip_time=${clip_time_snapshot.toFixed(3)} ` +
|
|
514
|
-
`cpu=${cpu_clip.time.toFixed(3)} ` +
|
|
515
|
-
`gpu=${gpu_time} ` +
|
|
516
|
-
`prep_groups=${skin_prep_groups_snapshot} ` +
|
|
517
|
-
`elbow.rot=${elbow_rot}\n` +
|
|
518
|
-
` elbow.global ${elbow_global}\n` +
|
|
519
|
-
` skin[0] ${skin0}\n` +
|
|
520
|
-
` skin[1] ${skin1}`
|
|
521
|
-
);
|
|
522
|
-
});
|
|
523
|
-
}
|
|
524
|
-
|
|
525
|
-
const apply_dispatch_groups = animation_manager.database
|
|
526
|
-
.get('animation_bound_track_groups')
|
|
527
|
-
.dispatch_group_count(ANIMATION_APPLY_WORKGROUP_SIZE);
|
|
528
|
-
if (apply_dispatch_groups === 0) {
|
|
529
|
-
return;
|
|
530
|
-
}
|
|
531
|
-
|
|
532
|
-
const skin_prep_dispatch_groups = animation_manager.database
|
|
533
|
-
.get('animation_skin_joint_blocks')
|
|
534
|
-
.dispatch_group_count(SKIN_MATRIX_PREP_WORKGROUP_SIZE);
|
|
535
|
-
|
|
536
|
-
// Size the pose accumulator to cover every allocated row of
|
|
537
|
-
// the transforms table — apply writes by absolute row index,
|
|
538
|
-
// resolve iterates the table via page iterator.
|
|
539
|
-
const transforms_table = gpu_scene.scene_database.get('transforms');
|
|
540
|
-
const resolve_dispatch_groups = transforms_table.dispatch_group_count(
|
|
541
|
-
ANIMATION_POSE_RESOLVE_WORKGROUP_SIZE
|
|
542
|
-
);
|
|
543
|
-
const pose_accumulator_rows = transforms_table.dispatch_page_count
|
|
544
|
-
* transforms_table.descriptor.elements_per_page;
|
|
545
|
-
animation_manager.ensure_pose_accumulator_capacity(pose_accumulator_rows);
|
|
546
|
-
|
|
547
|
-
const cmd = ShadeGPUCommandContext.create(
|
|
548
|
-
renderer.graphics,
|
|
549
|
-
"AnimationPrototypeSkinning/Tick"
|
|
550
|
-
);
|
|
551
|
-
|
|
552
|
-
// Animation database flush picks up the per-frame `set_time`
|
|
553
|
-
// write. (The scene-context update path also flushes earlier in
|
|
554
|
-
// the frame; this second flush is the one that catches the
|
|
555
|
-
// post-render clip-time advance.)
|
|
556
|
-
animation_manager.update(cmd);
|
|
557
|
-
|
|
558
|
-
const graph = new FrameGraph("AnimationPrototypeSkinning/Tick");
|
|
559
|
-
|
|
560
|
-
// ── Imported existing resources ────────────────────────
|
|
561
|
-
const gr_animation_database = graph_import_buffer(
|
|
562
|
-
graph, animation_manager.database.buffer, "animation_database"
|
|
563
|
-
);
|
|
564
|
-
const gr_scene_database = graph_import_buffer(
|
|
565
|
-
graph, scene_database_buffer, "scene_database"
|
|
566
|
-
);
|
|
567
|
-
const gr_materials = graph_import_buffer(
|
|
568
|
-
graph, gpu_scene.materials.metadata_table.buffer, "materials"
|
|
569
|
-
);
|
|
570
|
-
const gr_pose_accumulator = graph_import_buffer(
|
|
571
|
-
graph, animation_manager.pose_accumulator_buffer, "pose_accumulator"
|
|
572
|
-
);
|
|
573
|
-
|
|
574
|
-
// ── Pass 1: animation apply ───────────────────────────
|
|
575
|
-
// Atomic-adds elbow's bend contribution into the pose
|
|
576
|
-
// accumulator (one bound track → one rotation entry on the
|
|
577
|
-
// elbow row).
|
|
578
|
-
const apply_data = {};
|
|
579
|
-
const apply_pass = graph.add("animation/apply", apply_data, (data, resources, ctx) => {
|
|
580
|
-
shader_animation_apply.dispatch({
|
|
581
|
-
encoder: ctx.encoder,
|
|
582
|
-
group_count_x: apply_dispatch_groups,
|
|
583
|
-
bindings: {
|
|
584
|
-
animation_database: resources.get(data.animation_database),
|
|
585
|
-
pose_accumulator: resources.get(data.pose_accumulator),
|
|
586
|
-
materials: resources.get(data.materials),
|
|
587
|
-
},
|
|
588
|
-
});
|
|
589
|
-
});
|
|
590
|
-
|
|
591
|
-
apply_data.animation_database = apply_pass.read(gr_animation_database);
|
|
592
|
-
apply_data.materials = apply_pass.write(apply_pass.read(gr_materials));
|
|
593
|
-
apply_data.pose_accumulator = apply_pass.write(apply_pass.read(gr_pose_accumulator));
|
|
594
|
-
|
|
595
|
-
// ── Pass 2: pose resolve ──────────────────────────────
|
|
596
|
-
// Drains the accumulator into transforms_table.local_*,
|
|
597
|
-
// normalizes rotation, zeros the slot for next frame.
|
|
598
|
-
const resolve_data = {};
|
|
599
|
-
const resolve_pass = graph.add("animation/pose_resolve", resolve_data, (data, resources, ctx) => {
|
|
600
|
-
if (resolve_dispatch_groups === 0) {
|
|
601
|
-
return;
|
|
602
|
-
}
|
|
603
|
-
shader_animation_pose_resolve.dispatch({
|
|
604
|
-
encoder: ctx.encoder,
|
|
605
|
-
group_count_x: resolve_dispatch_groups,
|
|
606
|
-
bindings: {
|
|
607
|
-
scene_database: resources.get(data.scene_database),
|
|
608
|
-
pose_accumulator: resources.get(data.pose_accumulator),
|
|
609
|
-
},
|
|
610
|
-
});
|
|
611
|
-
});
|
|
612
|
-
|
|
613
|
-
resolve_data.scene_database = resolve_pass.write(resolve_pass.read(gr_scene_database));
|
|
614
|
-
resolve_data.pose_accumulator = resolve_pass.write(resolve_pass.read(apply_data.pose_accumulator));
|
|
615
|
-
|
|
616
|
-
// ── Pass 3: propagate node.local → node.global ─────────
|
|
617
|
-
// Composes elbow_joint.global from its parent's global × its
|
|
618
|
-
// newly-resolved local matrix. The skin-matrix-prep pass below
|
|
619
|
-
// reads these globals.
|
|
620
|
-
graph_scene_update_transform_hierarchy({
|
|
621
|
-
graph,
|
|
622
|
-
scene: gpu_scene,
|
|
623
|
-
scene_database: resolve_data.scene_database,
|
|
624
|
-
});
|
|
625
|
-
|
|
626
|
-
cmd.encodeGraph(graph);
|
|
627
|
-
|
|
628
|
-
// ── Pass 4: skin-matrix prep ──────────────────────────
|
|
629
|
-
// Reads each registered joint's `node.global` from the scene
|
|
630
|
-
// database (now post-hierarchy-update) and writes
|
|
631
|
-
// `node.global × inverse_bind` into the skin-matrices scratch
|
|
632
|
-
// buffer the skinning pass will read. The manager handles
|
|
633
|
-
// the ping-pong with last-frame's matrices (used by the
|
|
634
|
-
// velocity post-pass).
|
|
635
|
-
animation_manager.dispatch_skin_matrix_prep(cmd);
|
|
636
|
-
|
|
637
|
-
// ── Pass 5: skinning apply (deform clone vertex regions) ─
|
|
638
|
-
// Pulls the binding table + dispatch lookup the skinning
|
|
639
|
-
// context owns, dispatches one workgroup per (binding, meshlet)
|
|
640
|
-
// pair, deforms positions/normals/tangents into the clones via
|
|
641
|
-
// dual-quaternion blending. Idempotent / no-op if no
|
|
642
|
-
// SkinnedMesh has been registered.
|
|
643
|
-
gpu_scene.skinning.update(cmd);
|
|
644
|
-
|
|
645
|
-
cmd.finish();
|
|
646
|
-
});
|
|
647
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Stress test for the GPU animation system and the transform-hierarchy
|
|
3
|
-
* resolve pass.
|
|
4
|
-
*
|
|
5
|
-
* Generates a `TREE_GRID_RESOLUTION × TREE_GRID_RESOLUTION` grid of
|
|
6
|
-
* jointed branches in the XZ plane. The animation database is structured as:
|
|
7
|
-
* - a shared pool of `TRACK_POOL_SIZE` rotation tracks, each with a
|
|
8
|
-
* distinct small random target rotation slerped `ROTATION_SLERP_FACTOR`
|
|
9
|
-
* of the way toward a uniformly-random orientation;
|
|
10
|
-
* - one clip per tree, with one binding per joint pointing at a
|
|
11
|
-
* randomly-picked track from the pool;
|
|
12
|
-
* - per-tree random phase offsets so neighbouring trees animate out
|
|
13
|
-
* of sync without needing per-track time-scaling.
|
|
14
|
-
*
|
|
15
|
-
* Per-frame the engine advances one clip per tree and dispatches
|
|
16
|
-
* the apply shader over every (clip, binding) pair (~total joint
|
|
17
|
-
* count). The transform-hierarchy pass sees long parent chains (up to
|
|
18
|
-
* depth `MAX_DEPTH`) with deep-tree fan-out near the roots, exercising
|
|
19
|
-
* both the lookback fast-path and the local-walk fallback in
|
|
20
|
-
* `shader_nodes_update_transform_hierarchy`.
|
|
21
|
-
*
|
|
22
|
-
* Topology, track targets, and per-joint track picks are all seeded by
|
|
23
|
-
* `RANDOM_SEED` so reruns produce identical scenes.
|
|
24
|
-
*
|
|
25
|
-
* @param {object} args
|
|
26
|
-
* @param {Renderer} args.renderer
|
|
27
|
-
* @param {Scene} args.scene
|
|
28
|
-
* @param {OrbitalCameraController} args.controller
|
|
29
|
-
*/
|
|
30
|
-
export function animation_prototype_stress({ renderer, scene, controller }: {
|
|
31
|
-
renderer: Renderer;
|
|
32
|
-
scene: Scene;
|
|
33
|
-
controller: OrbitalCameraController;
|
|
34
|
-
}): void;
|
|
35
|
-
//# sourceMappingURL=animation_prototype_stress.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"animation_prototype_stress.d.ts","sourceRoot":"","sources":["../../../../src/shade/playground/animation_prototype_stress.js"],"names":[],"mappings":"AA0OA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH;IAJ0B,QAAQ;IACX,KAAK;IACa,UAAU;SAuflD"}
|