@woosh/meep-engine 3.23.0 → 3.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/editor/entity_world_bounds.d.ts +9 -3
- package/editor/entity_world_bounds.d.ts.map +1 -1
- package/editor/entity_world_bounds.js +61 -4
- package/package.json +1 -1
- package/src/core/binary/allocator/OffsetAllocator.d.ts +40 -2
- package/src/core/binary/allocator/OffsetAllocator.d.ts.map +1 -1
- package/src/core/binary/allocator/OffsetAllocator.js +124 -29
- package/src/core/collection/map/u32_index.d.ts +83 -0
- package/src/core/collection/map/u32_index.d.ts.map +1 -0
- package/src/core/collection/map/u32_index.js +247 -0
- package/src/engine/asset/loaders/GLTFSceneBundleAssetLoader.d.ts +2 -2
- package/src/engine/asset/loaders/GLTFSceneBundleAssetLoader.js +2 -2
- package/src/engine/asset/loaders/USDSceneBundleAssetLoader.d.ts +1 -2
- package/src/engine/asset/loaders/USDSceneBundleAssetLoader.d.ts.map +1 -1
- package/src/engine/asset/loaders/USDSceneBundleAssetLoader.js +4 -12
- package/src/engine/ecs/gpu/GPUStateAuthority.d.ts +55 -0
- package/src/engine/ecs/gpu/GPUStateAuthority.d.ts.map +1 -0
- package/src/engine/ecs/gpu/GPUStateAuthority.js +72 -0
- package/src/engine/ecs/gpu/GPUStateAuthorityFlags.d.ts +40 -0
- package/src/engine/ecs/gpu/GPUStateAuthorityFlags.d.ts.map +1 -0
- package/src/engine/ecs/gpu/GPUStateAuthorityFlags.js +79 -0
- package/src/engine/ecs/gpu/gpu_authority_assert_cpu.d.ts +18 -0
- package/src/engine/ecs/gpu/gpu_authority_assert_cpu.d.ts.map +1 -0
- package/src/engine/ecs/gpu/gpu_authority_assert_cpu.js +27 -0
- package/src/engine/ecs/gpu/gpu_authority_declare.d.ts +23 -0
- package/src/engine/ecs/gpu/gpu_authority_declare.d.ts.map +1 -0
- package/src/engine/ecs/gpu/gpu_authority_declare.js +39 -0
- package/src/engine/ecs/gpu/gpu_authority_grant.d.ts +15 -0
- package/src/engine/ecs/gpu/gpu_authority_grant.d.ts.map +1 -0
- package/src/engine/ecs/gpu/gpu_authority_grant.js +38 -0
- package/src/engine/ecs/gpu/gpu_authority_has.d.ts +18 -0
- package/src/engine/ecs/gpu/gpu_authority_has.d.ts.map +1 -0
- package/src/engine/ecs/gpu/gpu_authority_has.js +28 -0
- package/src/engine/ecs/gpu/gpu_authority_revoke.d.ts +24 -0
- package/src/engine/ecs/gpu/gpu_authority_revoke.d.ts.map +1 -0
- package/src/engine/ecs/gpu/gpu_authority_revoke.js +49 -0
- package/src/engine/ecs/ik/IKProblem.d.ts +14 -0
- package/src/engine/ecs/ik/IKProblem.d.ts.map +1 -1
- package/src/engine/ecs/ik/IKProblem.js +16 -0
- package/src/engine/ecs/ik/InverseKinematicsSystem.d.ts.map +1 -1
- package/src/engine/ecs/ik/InverseKinematicsSystem.js +19 -0
- package/src/engine/ecs/ik/OneBoneSurfaceAlignmentSolver.js +2 -2
- package/src/engine/ecs/ik/TwoBoneInverseKinematicsSolver.js +2 -2
- package/src/engine/ecs/ik/ik_bone_chain.d.ts +11 -2
- package/src/engine/ecs/ik/ik_bone_chain.d.ts.map +1 -1
- package/src/engine/ecs/ik/ik_bone_chain.js +47 -2
- package/src/engine/ecs/ik/ik_write_local_rotation.d.ts.map +1 -1
- package/src/engine/ecs/ik/ik_write_local_rotation.js +6 -0
- package/src/engine/ecs/speaker/VoiceSystem.d.ts.map +1 -1
- package/src/engine/ecs/speaker/VoiceSystem.js +6 -0
- package/src/engine/ecs/transform/T64WorldCache.d.ts +50 -0
- package/src/engine/ecs/transform/T64WorldCache.d.ts.map +1 -0
- package/src/engine/ecs/transform/T64WorldCache.js +139 -0
- package/src/engine/ecs/transform/t64_evaluate_world.d.ts +31 -0
- package/src/engine/ecs/transform/t64_evaluate_world.d.ts.map +1 -0
- package/src/engine/ecs/transform/t64_evaluate_world.js +126 -0
- package/src/engine/ecs/transform-attachment/TransformAttachmentSystem.d.ts +8 -0
- package/src/engine/ecs/transform-attachment/TransformAttachmentSystem.d.ts.map +1 -1
- package/src/engine/ecs/transform-attachment/TransformAttachmentSystem.js +59 -30
- package/src/engine/graphics/ecs/highlight/system/ShadedGeometryHighlightSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/highlight/system/ShadedGeometryHighlightSystem.js +4 -11
- package/src/engine/graphics/ecs/mesh-v2/SHADED_GEOMETRY_EVENT_CHANGE.d.ts +14 -0
- package/src/engine/graphics/ecs/mesh-v2/SHADED_GEOMETRY_EVENT_CHANGE.d.ts.map +1 -0
- package/src/engine/graphics/ecs/mesh-v2/SHADED_GEOMETRY_EVENT_CHANGE.js +13 -0
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometry.d.ts +2 -14
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometry.d.ts.map +1 -1
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometry.js +11 -21
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometryFlags.d.ts +1 -0
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometryFlags.js +7 -0
- package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshHighlightSystem.d.ts +5 -6
- package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshHighlightSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshHighlightSystem.js +13 -11
- package/src/engine/graphics/ecs/mesh-v2/shaded_geometry_announce_change.d.ts +14 -0
- package/src/engine/graphics/ecs/mesh-v2/shaded_geometry_announce_change.d.ts.map +1 -0
- package/src/engine/graphics/ecs/mesh-v2/shaded_geometry_announce_change.js +21 -0
- package/src/engine/graphics/ecs/particles/ParticleEffect.d.ts +1 -1
- package/src/engine/graphics/ecs/particles/ParticleEffect.js +1 -1
- package/src/engine/graphics/sh3/path_tracer/populate_path_traced_scene_from_ecd.d.ts +1 -1
- package/src/engine/graphics/sh3/path_tracer/populate_path_traced_scene_from_ecd.js +1 -1
- package/src/engine/graphics3/AnimationGraphSystem.js +3 -3
- package/src/engine/graphics3/AnimationSystem.js +2 -2
- package/src/engine/graphics3/DebugDrawSystem.d.ts.map +1 -1
- package/src/engine/graphics3/DebugDrawSystem.js +2 -4
- package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts +34 -27
- package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts.map +1 -1
- package/src/engine/graphics3/GPUParticleEmitterSystem.js +185 -85
- package/src/engine/graphics3/HighlightOutlineSystem.d.ts +4 -3
- package/src/engine/graphics3/HighlightOutlineSystem.d.ts.map +1 -1
- package/src/engine/graphics3/HighlightOutlineSystem.js +7 -9
- package/src/engine/graphics3/LightSystem.d.ts +7 -5
- package/src/engine/graphics3/LightSystem.d.ts.map +1 -1
- package/src/engine/graphics3/LightSystem.js +36 -22
- package/src/engine/graphics3/MeshSystem.d.ts +43 -39
- package/src/engine/graphics3/MeshSystem.d.ts.map +1 -1
- package/src/engine/graphics3/MeshSystem.js +324 -331
- package/src/engine/graphics3/PathDisplaySystem.d.ts.map +1 -1
- package/src/engine/graphics3/PathDisplaySystem.js +2 -4
- package/src/engine/graphics3/PickingQuery.d.ts +15 -21
- package/src/engine/graphics3/PickingQuery.d.ts.map +1 -1
- package/src/engine/graphics3/PickingQuery.js +21 -25
- package/src/engine/graphics3/PickingSystem.d.ts +60 -31
- package/src/engine/graphics3/PickingSystem.d.ts.map +1 -1
- package/src/engine/graphics3/PickingSystem.js +416 -273
- package/src/engine/graphics3/ShadedGeometrySystem.d.ts +22 -12
- package/src/engine/graphics3/ShadedGeometrySystem.d.ts.map +1 -1
- package/src/engine/graphics3/ShadedGeometrySystem.js +309 -174
- package/src/engine/graphics3/TerrainSystem.d.ts +19 -11
- package/src/engine/graphics3/TerrainSystem.d.ts.map +1 -1
- package/src/engine/graphics3/TerrainSystem.js +102 -53
- package/src/engine/graphics3/TooltipComponentSystem.d.ts.map +1 -1
- package/src/engine/graphics3/TooltipComponentSystem.js +2 -14
- package/src/engine/graphics3/Trail3DSystem.d.ts.map +1 -1
- package/src/engine/graphics3/Trail3DSystem.js +2 -4
- package/src/engine/graphics3/animation/ClipListPlayer.d.ts +4 -4
- package/src/engine/graphics3/animation/ClipListPlayer.d.ts.map +1 -1
- package/src/engine/graphics3/animation/ClipListPlayer.js +2 -2
- package/src/engine/graphics3/highlight/pack_highlight_table.d.ts +9 -11
- package/src/engine/graphics3/highlight/pack_highlight_table.d.ts.map +1 -1
- package/src/engine/graphics3/highlight/pack_highlight_table.js +11 -18
- package/src/engine/graphics3/pose/query_entity_node_world_pose.d.ts +4 -3
- package/src/engine/graphics3/pose/query_entity_node_world_pose.d.ts.map +1 -1
- package/src/engine/graphics3/pose/query_entity_node_world_pose.js +75 -74
- package/src/engine/graphics3/prefab/Prefab.d.ts +130 -0
- package/src/engine/graphics3/prefab/Prefab.d.ts.map +1 -0
- package/src/engine/graphics3/prefab/Prefab.js +162 -0
- package/src/engine/graphics3/prefab/PrefabInstance.d.ts +72 -0
- package/src/engine/graphics3/prefab/PrefabInstance.d.ts.map +1 -0
- package/src/engine/graphics3/prefab/PrefabInstance.js +80 -0
- package/src/engine/graphics3/prefab/prefab_compile.d.ts +23 -0
- package/src/engine/graphics3/prefab/prefab_compile.d.ts.map +1 -0
- package/src/engine/graphics3/prefab/prefab_compile.js +334 -0
- package/src/engine/graphics3/prefab/prefab_instantiate.d.ts +46 -0
- package/src/engine/graphics3/prefab/prefab_instantiate.d.ts.map +1 -0
- package/src/engine/graphics3/prefab/prefab_instantiate.js +230 -0
- package/src/engine/graphics3/prefab/prefab_normalize_skin_frames.d.ts +70 -0
- package/src/engine/graphics3/prefab/prefab_normalize_skin_frames.d.ts.map +1 -0
- package/src/engine/graphics3/prefab/prefab_normalize_skin_frames.js +210 -0
- package/src/engine/graphics3/prefab/prefab_place.d.ts +60 -0
- package/src/engine/graphics3/prefab/prefab_place.d.ts.map +1 -0
- package/src/engine/graphics3/prefab/prefab_place.js +130 -0
- package/src/engine/graphics3/prefab/prefab_skin_clip_scale_conflicts.d.ts +60 -0
- package/src/engine/graphics3/prefab/prefab_skin_clip_scale_conflicts.d.ts.map +1 -0
- package/src/engine/graphics3/prefab/prefab_skin_clip_scale_conflicts.js +128 -0
- package/src/engine/graphics3/prefab/prefab_skin_frame.d.ts +40 -0
- package/src/engine/graphics3/prefab/prefab_skin_frame.d.ts.map +1 -0
- package/src/engine/graphics3/prefab/prefab_skin_frame.js +116 -0
- package/src/engine/graphics3/preview/make_model_preview_scene.d.ts +16 -14
- package/src/engine/graphics3/preview/make_model_preview_scene.d.ts.map +1 -1
- package/src/engine/graphics3/preview/make_model_preview_scene.js +126 -154
- package/src/engine/graphics3/preview/make_model_thumbnail.js +1 -1
- package/src/engine/graphics3/register_instance_animation.d.ts +6 -6
- package/src/engine/graphics3/register_instance_animation.d.ts.map +1 -1
- package/src/engine/graphics3/register_instance_animation.js +4 -4
- package/src/engine/graphics3/shade_bundle_bounds.d.ts +2 -6
- package/src/engine/graphics3/shade_bundle_bounds.d.ts.map +1 -1
- package/src/engine/graphics3/shade_bundle_bounds.js +47 -55
- package/src/engine/graphics3/terrain/pack_terrain_row_table.d.ts +11 -18
- package/src/engine/graphics3/terrain/pack_terrain_row_table.d.ts.map +1 -1
- package/src/engine/graphics3/terrain/pack_terrain_row_table.js +48 -53
- package/src/engine/physics/cloth/build/cloth_proxy_from_joints.d.ts +17 -2
- package/src/engine/physics/cloth/build/cloth_proxy_from_joints.d.ts.map +1 -1
- package/src/engine/physics/cloth/build/cloth_proxy_from_joints.js +284 -256
- package/src/engine/physics/cloth/ecs/ClothInstance.d.ts +13 -15
- package/src/engine/physics/cloth/ecs/ClothInstance.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/ClothInstance.js +12 -14
- package/src/engine/physics/cloth/ecs/ClothRig.d.ts +7 -8
- package/src/engine/physics/cloth/ecs/ClothRig.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/ClothRig.js +7 -8
- package/src/engine/physics/cloth/ecs/ClothSystem.d.ts +5 -4
- package/src/engine/physics/cloth/ecs/ClothSystem.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/ClothSystem.js +11 -12
- package/src/engine/physics/cloth/ecs/cloth_seed_rig.d.ts +19 -23
- package/src/engine/physics/cloth/ecs/cloth_seed_rig.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/cloth_seed_rig.js +201 -199
- package/src/engine/physics/cloth/ecs/cloth_seed_subtree.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/cloth_seed_subtree.js +8 -0
- package/src/engine/physics/cloth/ecs/cloth_write_back_rig.d.ts +18 -34
- package/src/engine/physics/cloth/ecs/cloth_write_back_rig.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/cloth_write_back_rig.js +58 -115
- package/src/engine/physics/cloth/playground/README.md +11 -11
- package/src/engine/physics/cloth/playground/garment_build.d.ts +0 -1
- package/src/engine/physics/cloth/playground/garment_build.d.ts.map +1 -1
- package/src/engine/physics/cloth/playground/garment_build.js +64 -58
- package/src/engine/physics/cloth/playground/garment_main.js +59 -33
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
- package/src/shade/RENDERER_CONTRACT.md +85 -53
- package/src/shade/device/ShadeGPUCommandContext.d.ts +23 -0
- package/src/shade/device/ShadeGPUCommandContext.d.ts.map +1 -1
- package/src/shade/device/ShadeGPUCommandContext.js +36 -0
- package/src/shade/playground/add_random_meshes.d.ts +4 -4
- package/src/shade/playground/add_random_meshes.d.ts.map +1 -1
- package/src/shade/playground/add_random_meshes.js +20 -16
- package/src/shade/playground/avboit/main.d.ts +1 -0
- package/src/shade/playground/avboit/main.d.ts.map +1 -1
- package/src/shade/playground/avboit/main.js +916 -875
- package/src/shade/playground/basis_textures/main.d.ts.map +1 -1
- package/src/shade/playground/basis_textures/main.js +22 -8
- package/src/shade/playground/basis_textures/texture_inventory.d.ts +2 -2
- package/src/shade/playground/basis_textures/texture_inventory.d.ts.map +1 -1
- package/src/shade/playground/basis_textures/texture_inventory.js +6 -7
- package/src/shade/playground/ground_seam/main.d.ts.map +1 -1
- package/src/shade/playground/ground_seam/main.js +13 -4
- package/src/shade/playground/ground_seam/make_ground.d.ts +13 -4
- package/src/shade/playground/ground_seam/make_ground.d.ts.map +1 -1
- package/src/shade/playground/ground_seam/make_ground.js +21 -16
- package/src/shade/playground/particle_ecs/bonfire_editor.js +3 -3
- package/src/shade/playground/particle_system/main.js +11 -10
- package/src/shade/playground/particle_system/particle_prototype.d.ts +15 -10
- package/src/shade/playground/particle_system/particle_prototype.d.ts.map +1 -1
- package/src/shade/playground/particle_system/particle_prototype.js +56 -15
- package/src/shade/playground/particle_system/particle_scene.d.ts +68 -28
- package/src/shade/playground/particle_system/particle_scene.d.ts.map +1 -1
- package/src/shade/playground/particle_system/particle_scene.js +149 -53
- package/src/shade/playground/readback_crossover/index.html +41 -0
- package/src/shade/playground/readback_crossover/main.d.ts +2 -0
- package/src/shade/playground/readback_crossover/main.d.ts.map +1 -0
- package/src/shade/playground/readback_crossover/main.js +372 -0
- package/src/shade/playground/skinned_blas_refit/README.md +11 -7
- package/src/shade/playground/skinned_blas_refit/add_floor.d.ts +13 -44
- package/src/shade/playground/skinned_blas_refit/add_floor.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/add_floor.js +19 -59
- package/src/shade/playground/skinned_blas_refit/main.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/main.js +67 -58
- package/src/shade/playground/skinned_blas_refit/place_character.d.ts +40 -54
- package/src/shade/playground/skinned_blas_refit/place_character.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/place_character.js +47 -74
- package/src/shade/playground/skinned_blas_refit/sweep_views.d.ts +3 -3
- package/src/shade/playground/skinned_blas_refit/sweep_views.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/sweep_views.js +4 -3
- package/src/shade/playground/skinned_blas_refit/verify_clone_leaves.d.ts +3 -3
- package/src/shade/playground/skinned_blas_refit/verify_clone_leaves.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/verify_clone_leaves.js +11 -4
- package/src/shade/playground/skinned_blas_refit/verify_instance_bounds.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/verify_instance_bounds.js +38 -9
- package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.d.ts +3 -3
- package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.js +9 -6
- package/src/shade/playground/skinned_blas_refit/verify_traversal_reachability.d.ts +3 -3
- package/src/shade/playground/skinned_blas_refit/verify_traversal_reachability.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/verify_traversal_reachability.js +3 -3
- package/src/shade/playground/skinned_mesh_soup/README.md +6 -6
- package/src/shade/playground/skinned_mesh_soup/main.d.ts.map +1 -1
- package/src/shade/playground/skinned_mesh_soup/main.js +44 -102
- package/src/shade/playground/skinned_mesh_soup/verify_clone_vertices.d.ts +5 -5
- package/src/shade/playground/skinned_mesh_soup/verify_clone_vertices.d.ts.map +1 -1
- package/src/shade/playground/skinned_mesh_soup/verify_clone_vertices.js +42 -33
- package/src/shade/playground/sponza_path_trace/main.d.ts +1 -0
- package/src/shade/playground/sponza_path_trace/main.d.ts.map +1 -1
- package/src/shade/playground/sponza_path_trace/main.js +393 -363
- package/src/shade/playground/ssr_reprojection/main.js +11 -9
- package/src/shade/playground/ssr_reprojection/scene.d.ts +15 -4
- package/src/shade/playground/ssr_reprojection/scene.d.ts.map +1 -1
- package/src/shade/playground/ssr_reprojection/scene.js +32 -11
- package/src/shade/playground/ssr_variance/main.js +1 -1
- package/src/shade/playground/ssr_variance/scene.d.ts +10 -4
- package/src/shade/playground/ssr_variance/scene.d.ts.map +1 -1
- package/src/shade/playground/ssr_variance/scene.js +39 -15
- package/src/shade/playground/vgeo_viewer/main.js +6 -2
- package/src/shade/playground/volumetrics_froxel/main.d.ts.map +1 -1
- package/src/shade/playground/volumetrics_froxel/main.js +936 -922
- package/src/shade/renderer/GraphicsContext.d.ts +7 -0
- package/src/shade/renderer/GraphicsContext.d.ts.map +1 -1
- package/src/shade/renderer/GraphicsContext.js +11 -0
- package/src/shade/renderer/Renderer.d.ts +3 -2
- package/src/shade/renderer/Renderer.d.ts.map +1 -1
- package/src/shade/renderer/Renderer.js +3 -2
- package/src/shade/renderer/animation/GPUAnimationManager.d.ts +39 -47
- package/src/shade/renderer/animation/GPUAnimationManager.d.ts.map +1 -1
- package/src/shade/renderer/animation/GPUAnimationManager.js +319 -256
- package/src/shade/renderer/animation/ShadeAnimationChannel.d.ts +26 -22
- package/src/shade/renderer/animation/ShadeAnimationChannel.d.ts.map +1 -1
- package/src/shade/renderer/animation/ShadeAnimationChannel.js +28 -23
- package/src/shade/renderer/animation/ShadeAnimationClip.d.ts +14 -6
- package/src/shade/renderer/animation/ShadeAnimationClip.d.ts.map +1 -1
- package/src/shade/renderer/animation/ShadeAnimationClip.js +20 -8
- package/src/shade/renderer/animation/Skin.d.ts +19 -19
- package/src/shade/renderer/animation/Skin.d.ts.map +1 -1
- package/src/shade/renderer/animation/Skin.js +15 -13
- package/src/shade/renderer/animation/pose/pose_evaluate_local.d.ts +6 -5
- package/src/shade/renderer/animation/pose/pose_evaluate_local.d.ts.map +1 -1
- package/src/shade/renderer/animation/pose/pose_evaluate_local.js +9 -9
- package/src/shade/renderer/animation/skin_clip_scale_conflicts.d.ts +5 -59
- package/src/shade/renderer/animation/skin_clip_scale_conflicts.d.ts.map +1 -1
- package/src/shade/renderer/animation/skin_clip_scale_conflicts.js +8 -132
- package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.d.ts +65 -62
- package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.d.ts.map +1 -1
- package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.js +148 -194
- package/src/shade/renderer/animation/skinning/SKINNING_BINDING_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/animation/skinning/SKINNING_BINDING_STRUCT.js +4 -7
- package/src/shade/renderer/animation/skinning/chunk_skin_blend_mesh_local.d.ts +2 -2
- package/src/shade/renderer/animation/skinning/chunk_skin_blend_mesh_local.js +2 -2
- package/src/shade/renderer/buffer/GPUBufferReadbackAllocator.d.ts +74 -0
- package/src/shade/renderer/buffer/GPUBufferReadbackAllocator.d.ts.map +1 -0
- package/src/shade/renderer/buffer/GPUBufferReadbackAllocator.js +240 -0
- package/src/shade/renderer/buffer/table/GPUDatabase.d.ts +14 -0
- package/src/shade/renderer/buffer/table/GPUDatabase.d.ts.map +1 -1
- package/src/shade/renderer/buffer/table/GPUDatabase.js +64 -6
- package/src/shade/renderer/buffer/table/GPUDatabaseReadback.d.ts +190 -0
- package/src/shade/renderer/buffer/table/GPUDatabaseReadback.d.ts.map +1 -0
- package/src/shade/renderer/buffer/table/GPUDatabaseReadback.js +1323 -0
- package/src/shade/renderer/buffer/table/GPUPageMetadata.d.ts +10 -0
- package/src/shade/renderer/buffer/table/GPUPageMetadata.d.ts.map +1 -1
- package/src/shade/renderer/buffer/table/GPUPageMetadata.js +12 -0
- package/src/shade/renderer/buffer/table/GPUReadbackStagingRing.d.ts +96 -0
- package/src/shade/renderer/buffer/table/GPUReadbackStagingRing.d.ts.map +1 -0
- package/src/shade/renderer/buffer/table/GPUReadbackStatus.d.ts +15 -0
- package/src/shade/renderer/buffer/table/GPUReadbackStatus.d.ts.map +1 -0
- package/src/shade/renderer/buffer/table/GPUReadbackStatus.js +34 -0
- package/src/shade/renderer/buffer/table/GPUTypedTable.d.ts +75 -7
- package/src/shade/renderer/buffer/table/GPUTypedTable.d.ts.map +1 -1
- package/src/shade/renderer/buffer/table/GPUTypedTable.js +518 -135
- package/src/shade/renderer/buffer/table/GPU_TABLE_GATHER_DESCRIPTOR_WORDS.d.ts +19 -0
- package/src/shade/renderer/buffer/table/GPU_TABLE_GATHER_DESCRIPTOR_WORDS.d.ts.map +1 -0
- package/src/shade/renderer/buffer/table/GPU_TABLE_GATHER_DESCRIPTOR_WORDS.js +18 -0
- package/src/shade/renderer/buffer/table/WordViews.d.ts +39 -0
- package/src/shade/renderer/buffer/table/WordViews.d.ts.map +1 -0
- package/src/shade/renderer/buffer/table/WordViews.js +62 -0
- package/src/shade/renderer/buffer/table/gpu_table_gather_shader.d.ts +27 -0
- package/src/shade/renderer/buffer/table/gpu_table_gather_shader.d.ts.map +1 -0
- package/src/shade/renderer/buffer/table/gpu_table_gather_shader.js +117 -0
- package/src/shade/renderer/buffer/table/serde/generate_record_writer.d.ts +121 -0
- package/src/shade/renderer/buffer/table/serde/generate_record_writer.d.ts.map +1 -0
- package/src/shade/renderer/buffer/table/serde/generate_record_writer.js +395 -0
- package/src/shade/renderer/buffer/table/single/GPUSingleTypeTable.d.ts.map +1 -1
- package/src/shade/renderer/buffer/table/single/GPUSingleTypeTable.js +70 -20
- package/src/shade/renderer/dynamic/GPUDynamicMeshResidency.js +1 -1
- package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.d.ts.map +1 -1
- package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.js +6 -5
- package/src/shade/renderer/geometry/meshlet/GPUMeshletManager.d.ts +3 -3
- package/src/shade/renderer/geometry/meshlet/GPUMeshletManager.d.ts.map +1 -1
- package/src/shade/renderer/geometry/meshlet/GPUMeshletManager.js +15 -11
- package/src/shade/renderer/global_illumination/brick4/cpu/brick4_bake_for_scene.d.ts +1 -1
- package/src/shade/renderer/global_illumination/brick4/cpu/brick4_bake_for_scene.js +4 -4
- package/src/shade/renderer/global_illumination/brick4/cpu/brick4_generate_tree_from_scene.d.ts +1 -3
- package/src/shade/renderer/global_illumination/brick4/cpu/brick4_generate_tree_from_scene.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/brick4/cpu/brick4_generate_tree_from_scene.js +5 -4
- package/src/shade/renderer/global_illumination/brick4/gpu/bake/brick4_bake_basic.js +1 -1
- package/src/shade/renderer/global_illumination/lpv/bake/GPULightProbeVolumeRenderer.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/lpv/bake/GPULightProbeVolumeRenderer.js +1 -4
- package/src/shade/renderer/global_illumination/lpv/lpv_visualise_probes.d.ts +8 -3
- package/src/shade/renderer/global_illumination/lpv/lpv_visualise_probes.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/lpv/lpv_visualise_probes.js +19 -14
- package/src/shade/renderer/global_illumination/lpv/placement/graph_generate_probe_locations.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/lpv/placement/graph_generate_probe_locations.js +9 -1
- package/src/shade/renderer/global_illumination/lpv/placement/software/lpv_generate_probe_locations2.d.ts +3 -3
- package/src/shade/renderer/global_illumination/lpv/placement/software/lpv_generate_probe_locations2.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/lpv/placement/software/lpv_generate_probe_locations2.js +12 -5
- package/src/shade/renderer/global_illumination/probe/octahedral/GPUProbeAtlas.js +1 -1
- package/src/shade/renderer/light/GPULightCollection.d.ts +29 -0
- package/src/shade/renderer/light/GPULightCollection.d.ts.map +1 -1
- package/src/shade/renderer/light/GPULightCollection.js +444 -329
- package/src/shade/renderer/light/LIGHT_DATABASE_SPEC.d.ts.map +1 -1
- package/src/shade/renderer/light/LIGHT_DATABASE_SPEC.js +7 -1
- package/src/shade/renderer/light/LightCollection.d.ts +29 -1
- package/src/shade/renderer/light/LightCollection.d.ts.map +1 -1
- package/src/shade/renderer/light/LightCollection.js +50 -1
- package/src/shade/renderer/light/make_sunlight.js +2 -2
- package/src/shade/renderer/light/model/Light.d.ts +29 -2
- package/src/shade/renderer/light/model/Light.d.ts.map +1 -1
- package/src/shade/renderer/light/model/Light.js +30 -2
- package/src/shade/renderer/light/model/io/light_record_directional.d.ts +3 -1
- package/src/shade/renderer/light/model/io/light_record_directional.d.ts.map +1 -1
- package/src/shade/renderer/light/model/io/light_record_directional.js +8 -5
- package/src/shade/renderer/light/model/io/light_record_point.d.ts +3 -1
- package/src/shade/renderer/light/model/io/light_record_point.d.ts.map +1 -1
- package/src/shade/renderer/light/model/io/light_record_point.js +5 -2
- package/src/shade/renderer/light/model/io/light_record_spot.d.ts +4 -1
- package/src/shade/renderer/light/model/io/light_record_spot.d.ts.map +1 -1
- package/src/shade/renderer/light/model/io/light_record_spot.js +10 -6
- package/src/shade/renderer/light/place_light.d.ts +16 -0
- package/src/shade/renderer/light/place_light.d.ts.map +1 -0
- package/src/shade/renderer/light/place_light.js +36 -0
- package/src/shade/renderer/light/shader_refresh_light_poses.d.ts +44 -0
- package/src/shade/renderer/light/shader_refresh_light_poses.d.ts.map +1 -0
- package/src/shade/renderer/light/shader_refresh_light_poses.js +154 -0
- package/src/shade/renderer/lightmap/GPULightMap.js +1 -1
- package/src/shade/renderer/lightmap/bake/raster/graph_draw_lightmap_viz_buffer.d.ts.map +1 -1
- package/src/shade/renderer/lightmap/bake/raster/graph_draw_lightmap_viz_buffer.js +12 -14
- package/src/shade/renderer/loader/SceneBundle.d.ts +53 -28
- package/src/shade/renderer/loader/SceneBundle.d.ts.map +1 -1
- package/src/shade/renderer/loader/SceneBundle.js +111 -56
- package/src/shade/renderer/loader/SceneNode.d.ts +81 -0
- package/src/shade/renderer/loader/SceneNode.d.ts.map +1 -0
- package/src/shade/renderer/loader/SceneNode.js +114 -0
- package/src/shade/renderer/loader/gltf/load_gltf.d.ts +3 -2
- package/src/shade/renderer/loader/gltf/load_gltf.d.ts.map +1 -1
- package/src/shade/renderer/loader/gltf/load_gltf.js +110 -142
- package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
- package/src/shade/renderer/loader/usd/UsdExtensionRegistry.d.ts +4 -4
- package/src/shade/renderer/loader/usd/UsdExtensionRegistry.d.ts.map +1 -1
- package/src/shade/renderer/loader/usd/UsdExtensionRegistry.js +2 -2
- package/src/shade/renderer/loader/usd/load_usd.d.ts +3 -2
- package/src/shade/renderer/loader/usd/load_usd.d.ts.map +1 -1
- package/src/shade/renderer/loader/usd/load_usd.js +4 -5
- package/src/shade/renderer/loader/usd/usd_build_scene.d.ts +3 -3
- package/src/shade/renderer/loader/usd/usd_build_scene.d.ts.map +1 -1
- package/src/shade/renderer/loader/usd/usd_build_scene.js +47 -55
- package/src/shade/renderer/material/GPUMaterialManager.js +1 -1
- package/src/shade/renderer/material/resident/GPUResidentMaterialContext.d.ts +5 -4
- package/src/shade/renderer/material/resident/GPUResidentMaterialContext.d.ts.map +1 -1
- package/src/shade/renderer/material/resident/GPUResidentMaterialContext.js +8 -15
- package/src/shade/renderer/object_property/shader_refresh_all_mesh_bounds.d.ts +15 -13
- package/src/shade/renderer/object_property/shader_refresh_all_mesh_bounds.d.ts.map +1 -1
- package/src/shade/renderer/object_property/shader_refresh_all_mesh_bounds.js +40 -21
- package/src/shade/renderer/particles/DESIGN.md +53 -50
- package/src/shade/renderer/particles/GPUParticleSystem.d.ts +31 -17
- package/src/shade/renderer/particles/GPUParticleSystem.d.ts.map +1 -1
- package/src/shade/renderer/particles/GPUParticleSystem.js +54 -91
- package/src/shade/renderer/particles/runtime/EmitterRegistry.d.ts +12 -11
- package/src/shade/renderer/particles/runtime/EmitterRegistry.d.ts.map +1 -1
- package/src/shade/renderer/particles/runtime/EmitterRegistry.js +12 -11
- package/src/shade/renderer/particles/runtime/GPUParticleEmitterContext.d.ts +13 -19
- package/src/shade/renderer/particles/runtime/GPUParticleEmitterContext.d.ts.map +1 -1
- package/src/shade/renderer/particles/runtime/GPUParticleEmitterContext.js +19 -25
- package/src/shade/renderer/particles/runtime/ParticleEmitter.d.ts +34 -24
- package/src/shade/renderer/particles/runtime/ParticleEmitter.d.ts.map +1 -1
- package/src/shade/renderer/particles/runtime/ParticleEmitter.js +53 -40
- package/src/shade/renderer/path_tracer/accumulating/AccumulatingPathTracer.js +1 -1
- package/src/shade/renderer/path_tracer/graph_path_trace_scene.js +1 -1
- package/src/shade/renderer/postprocess/nss/NSS.d.ts +1 -1
- package/src/shade/renderer/rasterize/expand/bucket/mesh/graph_meshes_classify_buckets.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/bucket/mesh/graph_meshes_classify_buckets.js +2 -1
- package/src/shade/renderer/rasterize/expand/bucket/mesh/graph_scene_meshes_cull_and_classify_buckets.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/bucket/mesh/graph_scene_meshes_cull_and_classify_buckets.js +5 -2
- package/src/shade/renderer/rasterize/fast/graph_rasterize_scene_fast.js +1 -1
- package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.js +1 -1
- package/src/shade/renderer/rasterize/native/graph_rasterize_meshes_alpha_tested.js +1 -1
- package/src/shade/renderer/rasterize/native/oit/graph_rasterize_meshes_transparent_oit.js +1 -1
- package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.js +1 -1
- package/src/shade/renderer/scene/DynamicMesh.d.ts +13 -4
- package/src/shade/renderer/scene/DynamicMesh.d.ts.map +1 -1
- package/src/shade/renderer/scene/DynamicMesh.js +14 -4
- package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.d.ts +38 -18
- package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.d.ts.map +1 -1
- package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.js +112 -60
- package/src/shade/renderer/scene/GPUSceneContext.d.ts +55 -48
- package/src/shade/renderer/scene/GPUSceneContext.d.ts.map +1 -1
- package/src/shade/renderer/scene/GPUSceneContext.js +594 -928
- package/src/shade/renderer/scene/NODE3D_STRUCT.d.ts +5 -5
- package/src/shade/renderer/scene/NODE3D_STRUCT.js +5 -5
- package/src/shade/renderer/scene/Node3D.d.ts +27 -8
- package/src/shade/renderer/scene/Node3D.d.ts.map +1 -1
- package/src/shade/renderer/scene/Node3DDirtyList.d.ts +59 -0
- package/src/shade/renderer/scene/Node3DDirtyList.d.ts.map +1 -0
- package/src/shade/renderer/scene/Scene.d.ts +18 -60
- package/src/shade/renderer/scene/Scene.d.ts.map +1 -1
- package/src/shade/renderer/scene/Scene.js +53 -146
- package/src/shade/renderer/scene/SkinnedMesh.d.ts +10 -93
- package/src/shade/renderer/scene/SkinnedMesh.d.ts.map +1 -1
- package/src/shade/renderer/scene/bvh/StaticSceneBVH.d.ts +24 -3
- package/src/shade/renderer/scene/bvh/StaticSceneBVH.d.ts.map +1 -1
- package/src/shade/renderer/scene/bvh/StaticSceneBVH.js +53 -13
- package/src/shade/renderer/scene/hierarchy/graph_scene_update_transform_hierarchy.d.ts +5 -6
- package/src/shade/renderer/scene/hierarchy/graph_scene_update_transform_hierarchy.d.ts.map +1 -1
- package/src/shade/renderer/scene/hierarchy/graph_scene_update_transform_hierarchy.js +5 -6
- package/src/shade/renderer/scene/optimization/scene_optimize.d.ts +10 -2
- package/src/shade/renderer/scene/optimization/scene_optimize.d.ts.map +1 -1
- package/src/shade/renderer/scene/optimization/scene_optimize.js +266 -230
- package/src/shade/renderer/scene/rows/GPUEntityBoundsReadback.d.ts +53 -0
- package/src/shade/renderer/scene/rows/GPUEntityBoundsReadback.d.ts.map +1 -0
- package/src/shade/renderer/scene/rows/GPUEntityBoundsReadback.js +144 -0
- package/src/shade/renderer/scene/rows/GPUSceneRows.d.ts +227 -0
- package/src/shade/renderer/scene/rows/GPUSceneRows.d.ts.map +1 -0
- package/src/shade/renderer/scene/rows/GPUSceneRows.js +1136 -0
- package/src/shade/renderer/scene/rows/place_primitive.d.ts +48 -0
- package/src/shade/renderer/scene/rows/place_primitive.d.ts.map +1 -0
- package/src/shade/renderer/scene/rows/place_primitive.js +98 -0
- package/src/shade/renderer/scene/serialization/deserialize_scene.d.ts +10 -8
- package/src/shade/renderer/scene/serialization/deserialize_scene.d.ts.map +1 -1
- package/src/shade/renderer/scene/serialization/deserialize_scene.js +24 -27
- package/src/shade/renderer/scene/serialization/serialize_scene.d.ts +9 -2
- package/src/shade/renderer/scene/serialization/serialize_scene.d.ts.map +1 -1
- package/src/shade/renderer/scene/serialization/serialize_scene.js +25 -4
- package/src/shade/renderer/scene/verify_gpu_tlas_build.js +2 -2
- package/src/shade/renderer/shader/chunk/light/DIRECTIONAL_LIGHT_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/light/DIRECTIONAL_LIGHT_STRUCT.js +5 -0
- package/src/shade/renderer/shader/chunk/light/POINT_LIGHT_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/light/POINT_LIGHT_STRUCT.js +5 -0
- package/src/shade/renderer/shader/chunk/light/SPOT_LIGHT_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/light/SPOT_LIGHT_STRUCT.js +5 -0
- package/src/shade/renderer/shadow/map/DirectionalLightShadowmap.d.ts +39 -0
- package/src/shade/renderer/shadow/map/DirectionalLightShadowmap.d.ts.map +1 -1
- package/src/shade/renderer/shadow/map/DirectionalLightShadowmap.js +112 -64
- package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.d.ts +7 -0
- package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.d.ts.map +1 -1
- package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.js +1541 -1352
- package/src/shade/renderer/shadow/map/PointLightShadowmap.js +1 -1
- package/src/shade/renderer/shadow/map/SpotLightShadowmap.js +1 -1
- package/src/shade/renderer/shadow/map/TetrahedronPointLightShadowmap.js +1 -1
- package/src/shade/renderer/shadow/map/csm/CSM_CASTER_RANGE_STRUCT.d.ts +29 -0
- package/src/shade/renderer/shadow/map/csm/CSM_CASTER_RANGE_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/shadow/map/csm/CSM_CASTER_RANGE_STRUCT.js +43 -0
- package/src/shade/renderer/shadow/map/csm/SHADOWMAP_CSM_CASTER_RANGE_MARGIN_FRACTION.d.ts +13 -0
- package/src/shade/renderer/shadow/map/csm/SHADOWMAP_CSM_CASTER_RANGE_MARGIN_FRACTION.d.ts.map +1 -0
- package/src/shade/renderer/shadow/map/csm/SHADOWMAP_CSM_CASTER_RANGE_MARGIN_FRACTION.js +12 -0
- package/src/shade/renderer/shadow/map/csm/shader/shader_csm_caster_range.d.ts +49 -0
- package/src/shade/renderer/shadow/map/csm/shader/shader_csm_caster_range.d.ts.map +1 -0
- package/src/shade/renderer/shadow/map/csm/shader/shader_csm_caster_range.js +194 -0
- package/src/shade/renderer/shadow/map/csm_debug_draw_preview.js +1 -1
- package/src/shade/renderer/shadow/map/shadowmap_update_score.js +1 -1
- package/src/shade/renderer/shadow/ray/RTXShadows.js +1 -1
- package/src/shade/renderer/shadow/ray/staged/trace/graph_trace_rays.js +1 -1
- package/src/shade/renderer/shadow/sdf/cascade/CascadedSceneSDF.d.ts.map +1 -1
- package/src/shade/renderer/shadow/sdf/cascade/CascadedSceneSDF.js +3 -1
- package/src/shade/renderer/texture/bindless/GPUBindlessTextureManager.js +8 -8
- package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/GPUViewVolumetrics.js +4 -3
- package/src/engine/graphics3/instantiate_scene_bundle.js +0 -164
- package/src/engine/graphics3/shade_node_to_entity_composition.js +0 -88
- package/src/shade/renderer/animation/compute_skin_world_bounds.js +0 -146
- package/src/shade/renderer/animation/compute_skinned_mesh_clip_bounding_sphere.js +0 -531
- package/src/shade/renderer/animation/pose/pose_evaluate_world.js +0 -76
- package/src/shade/renderer/animation/skin_bind_transform.js +0 -33
- package/src/shade/renderer/animation/skin_frame_defect.js +0 -132
- package/src/shade/renderer/animation/skin_joint_matrix.js +0 -46
- package/src/shade/renderer/animation/skin_normalize_mesh_frame.js +0 -216
- package/src/shade/renderer/scene/InstanceBatch.js +0 -235
- package/src/shade/renderer/scene/Mesh.js +0 -168
- package/src/shade/renderer/scene/Node3D.js +0 -263
- package/src/shade/renderer/scene/SceneNodeBinding.js +0 -56
- package/src/shade/renderer/scene/SkinnedMesh.js +0 -170
- package/src/shade/renderer/scene/TransformAuthority.js +0 -33
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { assert } from "../../../core/assert.js";
|
|
2
|
+
import { m4_invert } from "../../../core/geom/3d/mat4/m4_invert.js";
|
|
3
|
+
import { m4_multiply } from "../../../core/geom/3d/mat4/m4_multiply.js";
|
|
4
|
+
import { m4_rigidity_defect } from "../../../core/geom/3d/mat4/m4_rigidity_defect.js";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @typedef {import("./Prefab.js").Prefab} Prefab
|
|
8
|
+
* @typedef {import("../../../shade/renderer/animation/Skin.js").Skin} Skin
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
const _inverse_frame = new Float64Array(16);
|
|
12
|
+
const _joint_matrix = new Float64Array(16);
|
|
13
|
+
const _folded = new Float64Array(16);
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* A joint's skinning matrix at the prefab's rest pose: the joint's world under the root, times
|
|
17
|
+
* its inverse-bind matrix. What the skin matrix prep pass computes on the GPU from the row's
|
|
18
|
+
* `global`, computed here from the prefab's own composition.
|
|
19
|
+
*
|
|
20
|
+
* @param {Float64Array} out
|
|
21
|
+
* @param {Prefab} prefab
|
|
22
|
+
* @param {Skin} skin joints as node indices
|
|
23
|
+
* @param {number} joint_index
|
|
24
|
+
* @returns {Float64Array} `out`
|
|
25
|
+
*/
|
|
26
|
+
export function prefab_skin_joint_matrix(out, prefab, skin, joint_index) {
|
|
27
|
+
assert.isArrayLike(out, 'out');
|
|
28
|
+
assert.defined(prefab, 'prefab');
|
|
29
|
+
assert.defined(skin, 'skin');
|
|
30
|
+
assert.isNonNegativeInteger(joint_index, 'joint_index');
|
|
31
|
+
assert.lessThan(joint_index, skin.joints.length, 'joint_index');
|
|
32
|
+
|
|
33
|
+
const offset = joint_index * 16;
|
|
34
|
+
|
|
35
|
+
assert.greaterThanOrEqual(
|
|
36
|
+
skin.inverse_bind_matrices.length, offset + 16,
|
|
37
|
+
'skin.inverse_bind_matrices.length'
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
return m4_multiply(
|
|
41
|
+
out,
|
|
42
|
+
prefab.world[skin.joints[joint_index]],
|
|
43
|
+
skin.inverse_bind_matrices.subarray(offset, offset + 16)
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* The frame a skin's meshes are deformed in: its first joint's skinning matrix at rest. For a
|
|
49
|
+
* skin whose rest pose is rigid every joint gives the same answer, and the first is as good as any.
|
|
50
|
+
*
|
|
51
|
+
* @param {Float64Array} out
|
|
52
|
+
* @param {Prefab} prefab
|
|
53
|
+
* @param {Skin} skin
|
|
54
|
+
* @returns {Float64Array} `out`
|
|
55
|
+
*/
|
|
56
|
+
export function prefab_skin_bind_transform(out, prefab, skin) {
|
|
57
|
+
assert.greaterThanOrEqual(skin.joints.length, 1, 'skin.joints.length');
|
|
58
|
+
|
|
59
|
+
return prefab_skin_joint_matrix(out, prefab, skin, 0);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* How far a skin is from being deformable in `frame`: the worst rigidity defect of
|
|
64
|
+
* `inverse(frame) × joint.world × inverse_bind` over its joints, at rest. Zero for a skin that
|
|
65
|
+
* folds rigidly, `Infinity` for a frame with no inverse or a joint that reflects.
|
|
66
|
+
*
|
|
67
|
+
* A reflection scores perfectly on orthonormality, which is why it is caught by its determinant
|
|
68
|
+
* rather than by the defect: a dual quaternion would answer it with a rotation, silently, which is
|
|
69
|
+
* precisely the class of failure this exists to end.
|
|
70
|
+
*
|
|
71
|
+
* @param {Prefab} prefab
|
|
72
|
+
* @param {Skin} skin
|
|
73
|
+
* @param {ArrayLike<number>} frame
|
|
74
|
+
* @returns {number}
|
|
75
|
+
*/
|
|
76
|
+
export function prefab_skin_frame_defect(prefab, skin, frame) {
|
|
77
|
+
assert.isArrayLike(frame, 'frame');
|
|
78
|
+
|
|
79
|
+
if (!m4_invert(_inverse_frame, frame)) {
|
|
80
|
+
return Infinity;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
const joint_count = skin.joints.length;
|
|
84
|
+
|
|
85
|
+
let worst = 0;
|
|
86
|
+
|
|
87
|
+
for (let j = 0; j < joint_count; j++) {
|
|
88
|
+
prefab_skin_joint_matrix(_joint_matrix, prefab, skin, j);
|
|
89
|
+
|
|
90
|
+
m4_multiply(_folded, _inverse_frame, _joint_matrix);
|
|
91
|
+
|
|
92
|
+
if (m4_linear_determinant(_folded) < 0) {
|
|
93
|
+
return Infinity;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
const defect = m4_rigidity_defect(_folded);
|
|
97
|
+
|
|
98
|
+
if (defect > worst) {
|
|
99
|
+
worst = defect;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
return worst;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* @param {ArrayLike<number>} mat4
|
|
108
|
+
* @returns {number}
|
|
109
|
+
*/
|
|
110
|
+
function m4_linear_determinant(mat4) {
|
|
111
|
+
const a = mat4[0], b = mat4[4], c = mat4[8];
|
|
112
|
+
const d = mat4[1], e = mat4[5], f = mat4[9];
|
|
113
|
+
const g = mat4[2], h = mat4[6], i = mat4[10];
|
|
114
|
+
|
|
115
|
+
return a * (e * i - f * h) - b * (d * i - f * g) + c * (d * h - e * g);
|
|
116
|
+
}
|
|
@@ -2,34 +2,36 @@
|
|
|
2
2
|
* A scene holding one model and the light to see it by, and a camera framed on it.
|
|
3
3
|
*
|
|
4
4
|
* **The bundle is read, never moved.** A loaded model is shared — the asset manager hands the same
|
|
5
|
-
* `SceneBundle` to everything that places it — so a preview that scaled the bundle's own
|
|
5
|
+
* `SceneBundle` to everything that places it — so a preview that scaled the bundle's own nodes to
|
|
6
6
|
* fit an icon would scale every copy of that model in the world. What goes into the preview scene
|
|
7
|
-
* is a
|
|
8
|
-
*
|
|
7
|
+
* is a placement of the model compiled as a prefab: entities over the *same* geometry and the
|
|
8
|
+
* *same* material, under a root carrying the framing, each holding a row of the scene's context.
|
|
9
9
|
*
|
|
10
|
-
* **A skinned mesh does not come across
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* frame, which is what `false` says.
|
|
10
|
+
* **A skinned mesh does not come across**: its vertices are deformed against a skeleton the
|
|
11
|
+
* renderer poses, and a preview scene has registered no skin. A model that is nothing but skinned
|
|
12
|
+
* meshes therefore previews as an empty frame, which is what `drawn === 0` says.
|
|
14
13
|
*
|
|
14
|
+
* @param {GraphicsEngine} graphics what draws it — the scene's rows live on its context
|
|
15
15
|
* @param {SceneBundle} bundle
|
|
16
16
|
* @param {ModelPreviewFraming} framing as `model_preview_framing` answered for this bundle
|
|
17
17
|
* @param {number} aspect_ratio width over height of the picture
|
|
18
|
-
* @returns {{scene: Scene, camera: PerspectiveCamera, drawn: number}} `drawn` is how many
|
|
19
|
-
* the preview holds; zero means there is nothing to look at
|
|
18
|
+
* @returns {{scene: Scene, camera: PerspectiveCamera, drawn: number}} `drawn` is how many
|
|
19
|
+
* primitives the preview holds; zero means there is nothing to look at
|
|
20
20
|
*/
|
|
21
|
-
export function make_model_preview_scene(bundle: SceneBundle, framing: ModelPreviewFraming, aspect_ratio: number): {
|
|
21
|
+
export function make_model_preview_scene(graphics: GraphicsEngine, bundle: SceneBundle, framing: ModelPreviewFraming, aspect_ratio: number): {
|
|
22
22
|
scene: Scene;
|
|
23
23
|
camera: PerspectiveCamera;
|
|
24
24
|
drawn: number;
|
|
25
25
|
};
|
|
26
26
|
/**
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* @type {number}
|
|
27
|
+
* @typedef {import("../../../shade/renderer/loader/SceneBundle.js").SceneBundle} SceneBundle
|
|
28
|
+
* @typedef {import("./ModelPreviewFraming.js").ModelPreviewFraming} ModelPreviewFraming
|
|
29
|
+
* @typedef {import("../GraphicsEngine.js").GraphicsEngine} GraphicsEngine
|
|
31
30
|
*/
|
|
32
31
|
export const MODEL_PREVIEW_FOV: number;
|
|
32
|
+
export type SceneBundle = import("../../../shade/renderer/loader/SceneBundle.js").SceneBundle;
|
|
33
|
+
export type ModelPreviewFraming = import("./ModelPreviewFraming.js").ModelPreviewFraming;
|
|
34
|
+
export type GraphicsEngine = import("../GraphicsEngine.js").GraphicsEngine;
|
|
33
35
|
import { Scene } from "../../../shade/renderer/scene/Scene.js";
|
|
34
36
|
import { PerspectiveCamera } from "../../../shade/renderer/camera/PerspectiveCamera.js";
|
|
35
37
|
//# sourceMappingURL=make_model_preview_scene.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"make_model_preview_scene.d.ts","sourceRoot":"","sources":["../../../../../src/engine/graphics3/preview/make_model_preview_scene.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"make_model_preview_scene.d.ts","sourceRoot":"","sources":["../../../../../src/engine/graphics3/preview/make_model_preview_scene.js"],"names":[],"mappings":"AAyDA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,mDAPW,cAAc,UACd,WAAW,WACX,mBAAmB,gBACnB,MAAM,GACJ;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,CAmDpE;AAjHD;;;;GAIG;AAEH,uCAAoD;0BALvC,OAAO,+CAA+C,EAAE,WAAW;kCACnE,OAAO,0BAA0B,EAAE,mBAAmB;6BACtD,OAAO,sBAAsB,EAAE,cAAc;sBAPpC,wCAAwC;kCAL5B,qDAAqD"}
|
|
@@ -1,154 +1,126 @@
|
|
|
1
|
-
import { assert } from "../../../core/assert.js";
|
|
2
|
-
import Quaternion from "../../../core/geom/Quaternion.js";
|
|
3
|
-
import Vector3 from "../../../core/geom/Vector3.js";
|
|
4
|
-
import { PerspectiveCamera } from "../../../shade/renderer/camera/PerspectiveCamera.js";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
* @
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
* the
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
root.updateMatrices();
|
|
128
|
-
|
|
129
|
-
scene.add(root);
|
|
130
|
-
|
|
131
|
-
for (let i = 0; i < LIGHTS.length; i++) {
|
|
132
|
-
scene.add(makeLight(LIGHTS[i].direction, LIGHTS[i].intensity));
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
const camera = new PerspectiveCamera();
|
|
136
|
-
|
|
137
|
-
camera.fov = MODEL_PREVIEW_FOV;
|
|
138
|
-
camera.aspect = aspect_ratio;
|
|
139
|
-
camera.near = 0.01;
|
|
140
|
-
camera.far = framing.camera_distance * 4 + 4;
|
|
141
|
-
|
|
142
|
-
/*
|
|
143
|
-
Which side the camera stands on is the renderer's convention, and this is where it is applied:
|
|
144
|
-
Shade's own samples put a camera at negative Z looking back at the origin, so that is where a
|
|
145
|
-
preview's camera stands.
|
|
146
|
-
*/
|
|
147
|
-
camera.transform.setTranslation(0, 0, -framing.camera_distance);
|
|
148
|
-
|
|
149
|
-
camera.transform.lookAt(scratch_target);
|
|
150
|
-
|
|
151
|
-
camera.update_matrices();
|
|
152
|
-
|
|
153
|
-
return { scene, camera, drawn };
|
|
154
|
-
}
|
|
1
|
+
import { assert } from "../../../core/assert.js";
|
|
2
|
+
import Quaternion from "../../../core/geom/Quaternion.js";
|
|
3
|
+
import Vector3 from "../../../core/geom/Vector3.js";
|
|
4
|
+
import { PerspectiveCamera } from "../../../shade/renderer/camera/PerspectiveCamera.js";
|
|
5
|
+
import { EntityComponentDataset } from "../../ecs/EntityComponentDataset.js";
|
|
6
|
+
import { Transform64 } from "../../ecs/transform/Transform64.js";
|
|
7
|
+
import { DirectionalLight } from "../../../shade/renderer/light/model/DirectionalLight.js";
|
|
8
|
+
import { place_light } from "../../../shade/renderer/light/place_light.js";
|
|
9
|
+
import { Scene } from "../../../shade/renderer/scene/Scene.js";
|
|
10
|
+
import { prefab_compile } from "../prefab/prefab_compile.js";
|
|
11
|
+
import { prefab_place } from "../prefab/prefab_place.js";
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @typedef {import("../../../shade/renderer/loader/SceneBundle.js").SceneBundle} SceneBundle
|
|
15
|
+
* @typedef {import("./ModelPreviewFraming.js").ModelPreviewFraming} ModelPreviewFraming
|
|
16
|
+
* @typedef {import("../GraphicsEngine.js").GraphicsEngine} GraphicsEngine
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
export const MODEL_PREVIEW_FOV = 45 * Math.PI / 180;
|
|
20
|
+
|
|
21
|
+
const LIGHTS = [
|
|
22
|
+
{ direction: [1, -1, 1], intensity: 3 },
|
|
23
|
+
{ direction: [0, 0, 1], intensity: 1.5 },
|
|
24
|
+
{ direction: [-0.5, 1, -0.5], intensity: 0.6 }
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
const scratch_rotation = new Quaternion();
|
|
28
|
+
const scratch_direction = new Vector3();
|
|
29
|
+
const scratch_target = new Vector3(0, 0, 0);
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* @param {number[]} direction
|
|
33
|
+
* @param {number} intensity
|
|
34
|
+
* @returns {DirectionalLight}
|
|
35
|
+
*/
|
|
36
|
+
function makeLight(direction, intensity) {
|
|
37
|
+
const light = new DirectionalLight();
|
|
38
|
+
|
|
39
|
+
// a preview is one object over nothing; a shadow has nothing to fall on and costs an atlas
|
|
40
|
+
light.casts_shadow = false;
|
|
41
|
+
light.intensity = intensity;
|
|
42
|
+
|
|
43
|
+
scratch_direction.set(direction[0], direction[1], direction[2]).normalize();
|
|
44
|
+
scratch_rotation.fromUnitVectors(Vector3.forward, scratch_direction);
|
|
45
|
+
scratch_rotation.normalize();
|
|
46
|
+
|
|
47
|
+
light.transform.setRotation(
|
|
48
|
+
scratch_rotation.x,
|
|
49
|
+
scratch_rotation.y,
|
|
50
|
+
scratch_rotation.z,
|
|
51
|
+
scratch_rotation.w
|
|
52
|
+
);
|
|
53
|
+
light.transform.updateMatrix();
|
|
54
|
+
|
|
55
|
+
return light;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* A scene holding one model and the light to see it by, and a camera framed on it.
|
|
60
|
+
*
|
|
61
|
+
* **The bundle is read, never moved.** A loaded model is shared — the asset manager hands the same
|
|
62
|
+
* `SceneBundle` to everything that places it — so a preview that scaled the bundle's own nodes to
|
|
63
|
+
* fit an icon would scale every copy of that model in the world. What goes into the preview scene
|
|
64
|
+
* is a placement of the model compiled as a prefab: entities over the *same* geometry and the
|
|
65
|
+
* *same* material, under a root carrying the framing, each holding a row of the scene's context.
|
|
66
|
+
*
|
|
67
|
+
* **A skinned mesh does not come across**: its vertices are deformed against a skeleton the
|
|
68
|
+
* renderer poses, and a preview scene has registered no skin. A model that is nothing but skinned
|
|
69
|
+
* meshes therefore previews as an empty frame, which is what `drawn === 0` says.
|
|
70
|
+
*
|
|
71
|
+
* @param {GraphicsEngine} graphics what draws it — the scene's rows live on its context
|
|
72
|
+
* @param {SceneBundle} bundle
|
|
73
|
+
* @param {ModelPreviewFraming} framing as `model_preview_framing` answered for this bundle
|
|
74
|
+
* @param {number} aspect_ratio width over height of the picture
|
|
75
|
+
* @returns {{scene: Scene, camera: PerspectiveCamera, drawn: number}} `drawn` is how many
|
|
76
|
+
* primitives the preview holds; zero means there is nothing to look at
|
|
77
|
+
*/
|
|
78
|
+
export function make_model_preview_scene(graphics, bundle, framing, aspect_ratio) {
|
|
79
|
+
assert.defined(graphics, 'graphics');
|
|
80
|
+
assert.defined(bundle, 'bundle');
|
|
81
|
+
assert.equal(bundle.isSceneBundle, true, 'bundle.isSceneBundle !== true');
|
|
82
|
+
assert.defined(framing, 'framing');
|
|
83
|
+
assert.greaterThan(aspect_ratio, 0, 'aspect_ratio');
|
|
84
|
+
|
|
85
|
+
const scene = new Scene();
|
|
86
|
+
|
|
87
|
+
// the model and the lights are entities; a dataset with no systems is a map of components,
|
|
88
|
+
// which is all a preview wants
|
|
89
|
+
scene.dataset = new EntityComponentDataset();
|
|
90
|
+
|
|
91
|
+
const scale = framing.scale;
|
|
92
|
+
const offset = framing.offset;
|
|
93
|
+
|
|
94
|
+
const placement = new Transform64();
|
|
95
|
+
|
|
96
|
+
placement.setScale(scale, scale, scale);
|
|
97
|
+
placement.setTranslation(offset.x, offset.y, offset.z);
|
|
98
|
+
placement.updateMatrix();
|
|
99
|
+
|
|
100
|
+
const { drawn } = prefab_place(graphics.scene_context(scene), scene.dataset, prefab_compile(bundle), placement, {
|
|
101
|
+
register_animation: false,
|
|
102
|
+
skinned: false,
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
for (let i = 0; i < LIGHTS.length; i++) {
|
|
106
|
+
place_light(scene, makeLight(LIGHTS[i].direction, LIGHTS[i].intensity));
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
const camera = new PerspectiveCamera();
|
|
110
|
+
|
|
111
|
+
camera.fov = MODEL_PREVIEW_FOV;
|
|
112
|
+
camera.aspect = aspect_ratio;
|
|
113
|
+
camera.near = 0.01;
|
|
114
|
+
camera.far = framing.camera_distance * 4 + 4;
|
|
115
|
+
|
|
116
|
+
/*
|
|
117
|
+
Which side the camera stands on is the renderer's convention, and this is where it is applied:
|
|
118
|
+
Shade's own samples put a camera at negative Z looking back at the origin, so that is where a
|
|
119
|
+
preview's camera stands.
|
|
120
|
+
*/
|
|
121
|
+
camera.transform.setTranslation(0, 0, -framing.camera_distance);
|
|
122
|
+
camera.transform.lookAt(scratch_target);
|
|
123
|
+
camera.update_matrices();
|
|
124
|
+
|
|
125
|
+
return { scene, camera, drawn };
|
|
126
|
+
}
|
|
@@ -38,7 +38,7 @@ export async function make_model_thumbnail(graphics, bundle, width, height, marg
|
|
|
38
38
|
|
|
39
39
|
const framing = model_preview_framing(new ModelPreviewFraming(), bounds, MODEL_PREVIEW_FOV, margin);
|
|
40
40
|
|
|
41
|
-
const { scene, camera, drawn } = make_model_preview_scene(bundle, framing, width / height);
|
|
41
|
+
const { scene, camera, drawn } = make_model_preview_scene(graphics, bundle, framing, width / height);
|
|
42
42
|
|
|
43
43
|
if (drawn === 0) {
|
|
44
44
|
return null;
|
|
@@ -7,14 +7,14 @@
|
|
|
7
7
|
* every joint has a row in the scene. Until then the skin is inert rather than wrong: no
|
|
8
8
|
* deformation runs.
|
|
9
9
|
*
|
|
10
|
-
* The instance's
|
|
10
|
+
* The instance's entities therefore do **not** have to hold their rows yet.
|
|
11
11
|
*
|
|
12
12
|
* @param {GPUSceneContext} context the scene's GPU state, which owns the manager and is what the
|
|
13
13
|
* registration is stamped with so it can be given back to the right one
|
|
14
|
-
* @param {
|
|
14
|
+
* @param {PrefabInstance} instance its skins name joint and mesh entities
|
|
15
15
|
* @returns {InstanceAnimationRegistration}
|
|
16
16
|
*/
|
|
17
|
-
export function register_instance_animation(context: GPUSceneContext, instance:
|
|
17
|
+
export function register_instance_animation(context: GPUSceneContext, instance: PrefabInstance): InstanceAnimationRegistration;
|
|
18
18
|
/**
|
|
19
19
|
* Give back everything {@link register_instance_animation} took out, for a manager that is still
|
|
20
20
|
* the one that issued it.
|
|
@@ -42,11 +42,11 @@ export function unregister_instance_animation(registration: InstanceAnimationReg
|
|
|
42
42
|
* add together.
|
|
43
43
|
*
|
|
44
44
|
* @param {GPUSceneContext} context
|
|
45
|
-
* @param {
|
|
45
|
+
* @param {PrefabInstance} instance its clips target entities
|
|
46
46
|
* @param {ArrayLike<number>} slots indices into `instance.clips`; duplicates are ignored
|
|
47
47
|
* @returns {InstanceClipRegistration}
|
|
48
48
|
*/
|
|
49
|
-
export function register_instance_clips(context: GPUSceneContext, instance:
|
|
49
|
+
export function register_instance_clips(context: GPUSceneContext, instance: PrefabInstance, slots: ArrayLike<number>): InstanceClipRegistration;
|
|
50
50
|
/**
|
|
51
51
|
* Give back everything {@link register_instance_clips} took out, for a manager that is still the one
|
|
52
52
|
* that issued it — see {@link unregister_instance_animation} for why that qualification matters.
|
|
@@ -55,7 +55,7 @@ export function register_instance_clips(context: GPUSceneContext, instance: Scen
|
|
|
55
55
|
*/
|
|
56
56
|
export function unregister_instance_clips(registration: InstanceClipRegistration): void;
|
|
57
57
|
/**
|
|
58
|
-
* What the animation manager handed back for one {@link
|
|
58
|
+
* What the animation manager handed back for one {@link PrefabInstance}'s **skins**.
|
|
59
59
|
*
|
|
60
60
|
* Positional: `skins[i]` is the id of the instance's `skins[i]`.
|
|
61
61
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register_instance_animation.d.ts","sourceRoot":"","sources":["../../../../src/engine/graphics3/register_instance_animation.js"],"names":[],"mappings":"AAmCA;;;;;;;;;;;;;;;GAeG;AACH,
|
|
1
|
+
{"version":3,"file":"register_instance_animation.d.ts","sourceRoot":"","sources":["../../../../src/engine/graphics3/register_instance_animation.js"],"names":[],"mappings":"AAmCA;;;;;;;;;;;;;;;GAeG;AACH,iGAFa,6BAA6B,CAmBzC;AAED;;;;;;;;;;;GAWG;AACH,4DAFW,6BAA6B,QAevC;AA+BD;;;;;;;;;;;;;;;;;GAiBG;AACH,mGAHW,UAAU,MAAM,CAAC,GACf,wBAAwB,CA+BpC;AAED;;;;;GAKG;AACH,wDAFW,wBAAwB,QAqBlC;AAtMD;;;;;;;;;;;;GAYG;AACH;IACI;;;;;;;;;;OAUG;IACH,yBAAe;IAEf;;OAEG;IACH,OAFU,MAAM,EAAE,CAEP;CACd;AAgED;;;GAGG;AACH,kCAFU,MAAM,CAEsB;AAEtC;;;;;;;GAOG;AACH;IACI;;;;;OAKG;IACH,SAFU,kBAAgB,IAAI,CAEf;IAEf;;OAEG;IACH,KAFU,UAAU,CAEI;CAC3B"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { assert } from "../../core/assert.js";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* What the animation manager handed back for one {@link
|
|
4
|
+
* What the animation manager handed back for one {@link PrefabInstance}'s **skins**.
|
|
5
5
|
*
|
|
6
6
|
* Positional: `skins[i]` is the id of the instance's `skins[i]`.
|
|
7
7
|
*
|
|
@@ -42,11 +42,11 @@ export class InstanceAnimationRegistration {
|
|
|
42
42
|
* every joint has a row in the scene. Until then the skin is inert rather than wrong: no
|
|
43
43
|
* deformation runs.
|
|
44
44
|
*
|
|
45
|
-
* The instance's
|
|
45
|
+
* The instance's entities therefore do **not** have to hold their rows yet.
|
|
46
46
|
*
|
|
47
47
|
* @param {GPUSceneContext} context the scene's GPU state, which owns the manager and is what the
|
|
48
48
|
* registration is stamped with so it can be given back to the right one
|
|
49
|
-
* @param {
|
|
49
|
+
* @param {PrefabInstance} instance its skins name joint and mesh entities
|
|
50
50
|
* @returns {InstanceAnimationRegistration}
|
|
51
51
|
*/
|
|
52
52
|
export function register_instance_animation(context, instance) {
|
|
@@ -138,7 +138,7 @@ export class InstanceClipRegistration {
|
|
|
138
138
|
* add together.
|
|
139
139
|
*
|
|
140
140
|
* @param {GPUSceneContext} context
|
|
141
|
-
* @param {
|
|
141
|
+
* @param {PrefabInstance} instance its clips target entities
|
|
142
142
|
* @param {ArrayLike<number>} slots indices into `instance.clips`; duplicates are ignored
|
|
143
143
|
* @returns {InstanceClipRegistration}
|
|
144
144
|
*/
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The box a loaded model occupies, in the model's own space
|
|
3
|
-
*
|
|
4
|
-
* **Matrices are refreshed here.** A `Mesh`'s `bounding_box` is its geometry's box projected
|
|
5
|
-
* through its global transform, and a bundle handed straight off a loader has never had
|
|
6
|
-
* {@link Node3D.updateMatrices} run on it — so asking for the bounds without refreshing them reads
|
|
7
|
-
* whatever the loader left, which for a node under a transformed parent is the wrong box.
|
|
2
|
+
* The box a loaded model occupies, in the model's own space: every primitive's geometry box
|
|
3
|
+
* under its node's world transform, composed here from the bundle's locals.
|
|
8
4
|
*
|
|
9
5
|
* A bundle with no geometry in it — a file that is all empties, or a scene that is only lights —
|
|
10
6
|
* has no bounds, and that is what `false` says. `result` is untouched then.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shade_bundle_bounds.d.ts","sourceRoot":"","sources":["../../../../src/engine/graphics3/shade_bundle_bounds.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shade_bundle_bounds.d.ts","sourceRoot":"","sources":["../../../../src/engine/graphics3/shade_bundle_bounds.js"],"names":[],"mappings":"AAMA;;;;;;;;;;GAUG;AACH,yEAFa,OAAO,CA+BnB"}
|