@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.
Files changed (522) hide show
  1. package/editor/entity_world_bounds.d.ts +9 -3
  2. package/editor/entity_world_bounds.d.ts.map +1 -1
  3. package/editor/entity_world_bounds.js +61 -4
  4. package/package.json +1 -1
  5. package/src/core/binary/allocator/OffsetAllocator.d.ts +40 -2
  6. package/src/core/binary/allocator/OffsetAllocator.d.ts.map +1 -1
  7. package/src/core/binary/allocator/OffsetAllocator.js +124 -29
  8. package/src/core/collection/map/u32_index.d.ts +83 -0
  9. package/src/core/collection/map/u32_index.d.ts.map +1 -0
  10. package/src/core/collection/map/u32_index.js +247 -0
  11. package/src/engine/asset/loaders/GLTFSceneBundleAssetLoader.d.ts +2 -2
  12. package/src/engine/asset/loaders/GLTFSceneBundleAssetLoader.js +2 -2
  13. package/src/engine/asset/loaders/USDSceneBundleAssetLoader.d.ts +1 -2
  14. package/src/engine/asset/loaders/USDSceneBundleAssetLoader.d.ts.map +1 -1
  15. package/src/engine/asset/loaders/USDSceneBundleAssetLoader.js +4 -12
  16. package/src/engine/ecs/gpu/GPUStateAuthority.d.ts +55 -0
  17. package/src/engine/ecs/gpu/GPUStateAuthority.d.ts.map +1 -0
  18. package/src/engine/ecs/gpu/GPUStateAuthority.js +72 -0
  19. package/src/engine/ecs/gpu/GPUStateAuthorityFlags.d.ts +40 -0
  20. package/src/engine/ecs/gpu/GPUStateAuthorityFlags.d.ts.map +1 -0
  21. package/src/engine/ecs/gpu/GPUStateAuthorityFlags.js +79 -0
  22. package/src/engine/ecs/gpu/gpu_authority_assert_cpu.d.ts +18 -0
  23. package/src/engine/ecs/gpu/gpu_authority_assert_cpu.d.ts.map +1 -0
  24. package/src/engine/ecs/gpu/gpu_authority_assert_cpu.js +27 -0
  25. package/src/engine/ecs/gpu/gpu_authority_declare.d.ts +23 -0
  26. package/src/engine/ecs/gpu/gpu_authority_declare.d.ts.map +1 -0
  27. package/src/engine/ecs/gpu/gpu_authority_declare.js +39 -0
  28. package/src/engine/ecs/gpu/gpu_authority_grant.d.ts +15 -0
  29. package/src/engine/ecs/gpu/gpu_authority_grant.d.ts.map +1 -0
  30. package/src/engine/ecs/gpu/gpu_authority_grant.js +38 -0
  31. package/src/engine/ecs/gpu/gpu_authority_has.d.ts +18 -0
  32. package/src/engine/ecs/gpu/gpu_authority_has.d.ts.map +1 -0
  33. package/src/engine/ecs/gpu/gpu_authority_has.js +28 -0
  34. package/src/engine/ecs/gpu/gpu_authority_revoke.d.ts +24 -0
  35. package/src/engine/ecs/gpu/gpu_authority_revoke.d.ts.map +1 -0
  36. package/src/engine/ecs/gpu/gpu_authority_revoke.js +49 -0
  37. package/src/engine/ecs/ik/IKProblem.d.ts +14 -0
  38. package/src/engine/ecs/ik/IKProblem.d.ts.map +1 -1
  39. package/src/engine/ecs/ik/IKProblem.js +16 -0
  40. package/src/engine/ecs/ik/InverseKinematicsSystem.d.ts.map +1 -1
  41. package/src/engine/ecs/ik/InverseKinematicsSystem.js +19 -0
  42. package/src/engine/ecs/ik/OneBoneSurfaceAlignmentSolver.js +2 -2
  43. package/src/engine/ecs/ik/TwoBoneInverseKinematicsSolver.js +2 -2
  44. package/src/engine/ecs/ik/ik_bone_chain.d.ts +11 -2
  45. package/src/engine/ecs/ik/ik_bone_chain.d.ts.map +1 -1
  46. package/src/engine/ecs/ik/ik_bone_chain.js +47 -2
  47. package/src/engine/ecs/ik/ik_write_local_rotation.d.ts.map +1 -1
  48. package/src/engine/ecs/ik/ik_write_local_rotation.js +6 -0
  49. package/src/engine/ecs/speaker/VoiceSystem.d.ts.map +1 -1
  50. package/src/engine/ecs/speaker/VoiceSystem.js +6 -0
  51. package/src/engine/ecs/transform/T64WorldCache.d.ts +50 -0
  52. package/src/engine/ecs/transform/T64WorldCache.d.ts.map +1 -0
  53. package/src/engine/ecs/transform/T64WorldCache.js +139 -0
  54. package/src/engine/ecs/transform/t64_evaluate_world.d.ts +31 -0
  55. package/src/engine/ecs/transform/t64_evaluate_world.d.ts.map +1 -0
  56. package/src/engine/ecs/transform/t64_evaluate_world.js +126 -0
  57. package/src/engine/ecs/transform-attachment/TransformAttachmentSystem.d.ts +8 -0
  58. package/src/engine/ecs/transform-attachment/TransformAttachmentSystem.d.ts.map +1 -1
  59. package/src/engine/ecs/transform-attachment/TransformAttachmentSystem.js +59 -30
  60. package/src/engine/graphics/ecs/highlight/system/ShadedGeometryHighlightSystem.d.ts.map +1 -1
  61. package/src/engine/graphics/ecs/highlight/system/ShadedGeometryHighlightSystem.js +4 -11
  62. package/src/engine/graphics/ecs/mesh-v2/SHADED_GEOMETRY_EVENT_CHANGE.d.ts +14 -0
  63. package/src/engine/graphics/ecs/mesh-v2/SHADED_GEOMETRY_EVENT_CHANGE.d.ts.map +1 -0
  64. package/src/engine/graphics/ecs/mesh-v2/SHADED_GEOMETRY_EVENT_CHANGE.js +13 -0
  65. package/src/engine/graphics/ecs/mesh-v2/ShadedGeometry.d.ts +2 -14
  66. package/src/engine/graphics/ecs/mesh-v2/ShadedGeometry.d.ts.map +1 -1
  67. package/src/engine/graphics/ecs/mesh-v2/ShadedGeometry.js +11 -21
  68. package/src/engine/graphics/ecs/mesh-v2/ShadedGeometryFlags.d.ts +1 -0
  69. package/src/engine/graphics/ecs/mesh-v2/ShadedGeometryFlags.js +7 -0
  70. package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshHighlightSystem.d.ts +5 -6
  71. package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshHighlightSystem.d.ts.map +1 -1
  72. package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshHighlightSystem.js +13 -11
  73. package/src/engine/graphics/ecs/mesh-v2/shaded_geometry_announce_change.d.ts +14 -0
  74. package/src/engine/graphics/ecs/mesh-v2/shaded_geometry_announce_change.d.ts.map +1 -0
  75. package/src/engine/graphics/ecs/mesh-v2/shaded_geometry_announce_change.js +21 -0
  76. package/src/engine/graphics/ecs/particles/ParticleEffect.d.ts +1 -1
  77. package/src/engine/graphics/ecs/particles/ParticleEffect.js +1 -1
  78. package/src/engine/graphics/sh3/path_tracer/populate_path_traced_scene_from_ecd.d.ts +1 -1
  79. package/src/engine/graphics/sh3/path_tracer/populate_path_traced_scene_from_ecd.js +1 -1
  80. package/src/engine/graphics3/AnimationGraphSystem.js +3 -3
  81. package/src/engine/graphics3/AnimationSystem.js +2 -2
  82. package/src/engine/graphics3/DebugDrawSystem.d.ts.map +1 -1
  83. package/src/engine/graphics3/DebugDrawSystem.js +2 -4
  84. package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts +34 -27
  85. package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts.map +1 -1
  86. package/src/engine/graphics3/GPUParticleEmitterSystem.js +185 -85
  87. package/src/engine/graphics3/HighlightOutlineSystem.d.ts +4 -3
  88. package/src/engine/graphics3/HighlightOutlineSystem.d.ts.map +1 -1
  89. package/src/engine/graphics3/HighlightOutlineSystem.js +7 -9
  90. package/src/engine/graphics3/LightSystem.d.ts +7 -5
  91. package/src/engine/graphics3/LightSystem.d.ts.map +1 -1
  92. package/src/engine/graphics3/LightSystem.js +36 -22
  93. package/src/engine/graphics3/MeshSystem.d.ts +43 -39
  94. package/src/engine/graphics3/MeshSystem.d.ts.map +1 -1
  95. package/src/engine/graphics3/MeshSystem.js +324 -331
  96. package/src/engine/graphics3/PathDisplaySystem.d.ts.map +1 -1
  97. package/src/engine/graphics3/PathDisplaySystem.js +2 -4
  98. package/src/engine/graphics3/PickingQuery.d.ts +15 -21
  99. package/src/engine/graphics3/PickingQuery.d.ts.map +1 -1
  100. package/src/engine/graphics3/PickingQuery.js +21 -25
  101. package/src/engine/graphics3/PickingSystem.d.ts +60 -31
  102. package/src/engine/graphics3/PickingSystem.d.ts.map +1 -1
  103. package/src/engine/graphics3/PickingSystem.js +416 -273
  104. package/src/engine/graphics3/ShadedGeometrySystem.d.ts +22 -12
  105. package/src/engine/graphics3/ShadedGeometrySystem.d.ts.map +1 -1
  106. package/src/engine/graphics3/ShadedGeometrySystem.js +309 -174
  107. package/src/engine/graphics3/TerrainSystem.d.ts +19 -11
  108. package/src/engine/graphics3/TerrainSystem.d.ts.map +1 -1
  109. package/src/engine/graphics3/TerrainSystem.js +102 -53
  110. package/src/engine/graphics3/TooltipComponentSystem.d.ts.map +1 -1
  111. package/src/engine/graphics3/TooltipComponentSystem.js +2 -14
  112. package/src/engine/graphics3/Trail3DSystem.d.ts.map +1 -1
  113. package/src/engine/graphics3/Trail3DSystem.js +2 -4
  114. package/src/engine/graphics3/animation/ClipListPlayer.d.ts +4 -4
  115. package/src/engine/graphics3/animation/ClipListPlayer.d.ts.map +1 -1
  116. package/src/engine/graphics3/animation/ClipListPlayer.js +2 -2
  117. package/src/engine/graphics3/highlight/pack_highlight_table.d.ts +9 -11
  118. package/src/engine/graphics3/highlight/pack_highlight_table.d.ts.map +1 -1
  119. package/src/engine/graphics3/highlight/pack_highlight_table.js +11 -18
  120. package/src/engine/graphics3/pose/query_entity_node_world_pose.d.ts +4 -3
  121. package/src/engine/graphics3/pose/query_entity_node_world_pose.d.ts.map +1 -1
  122. package/src/engine/graphics3/pose/query_entity_node_world_pose.js +75 -74
  123. package/src/engine/graphics3/prefab/Prefab.d.ts +130 -0
  124. package/src/engine/graphics3/prefab/Prefab.d.ts.map +1 -0
  125. package/src/engine/graphics3/prefab/Prefab.js +162 -0
  126. package/src/engine/graphics3/prefab/PrefabInstance.d.ts +72 -0
  127. package/src/engine/graphics3/prefab/PrefabInstance.d.ts.map +1 -0
  128. package/src/engine/graphics3/prefab/PrefabInstance.js +80 -0
  129. package/src/engine/graphics3/prefab/prefab_compile.d.ts +23 -0
  130. package/src/engine/graphics3/prefab/prefab_compile.d.ts.map +1 -0
  131. package/src/engine/graphics3/prefab/prefab_compile.js +334 -0
  132. package/src/engine/graphics3/prefab/prefab_instantiate.d.ts +46 -0
  133. package/src/engine/graphics3/prefab/prefab_instantiate.d.ts.map +1 -0
  134. package/src/engine/graphics3/prefab/prefab_instantiate.js +230 -0
  135. package/src/engine/graphics3/prefab/prefab_normalize_skin_frames.d.ts +70 -0
  136. package/src/engine/graphics3/prefab/prefab_normalize_skin_frames.d.ts.map +1 -0
  137. package/src/engine/graphics3/prefab/prefab_normalize_skin_frames.js +210 -0
  138. package/src/engine/graphics3/prefab/prefab_place.d.ts +60 -0
  139. package/src/engine/graphics3/prefab/prefab_place.d.ts.map +1 -0
  140. package/src/engine/graphics3/prefab/prefab_place.js +130 -0
  141. package/src/engine/graphics3/prefab/prefab_skin_clip_scale_conflicts.d.ts +60 -0
  142. package/src/engine/graphics3/prefab/prefab_skin_clip_scale_conflicts.d.ts.map +1 -0
  143. package/src/engine/graphics3/prefab/prefab_skin_clip_scale_conflicts.js +128 -0
  144. package/src/engine/graphics3/prefab/prefab_skin_frame.d.ts +40 -0
  145. package/src/engine/graphics3/prefab/prefab_skin_frame.d.ts.map +1 -0
  146. package/src/engine/graphics3/prefab/prefab_skin_frame.js +116 -0
  147. package/src/engine/graphics3/preview/make_model_preview_scene.d.ts +16 -14
  148. package/src/engine/graphics3/preview/make_model_preview_scene.d.ts.map +1 -1
  149. package/src/engine/graphics3/preview/make_model_preview_scene.js +126 -154
  150. package/src/engine/graphics3/preview/make_model_thumbnail.js +1 -1
  151. package/src/engine/graphics3/register_instance_animation.d.ts +6 -6
  152. package/src/engine/graphics3/register_instance_animation.d.ts.map +1 -1
  153. package/src/engine/graphics3/register_instance_animation.js +4 -4
  154. package/src/engine/graphics3/shade_bundle_bounds.d.ts +2 -6
  155. package/src/engine/graphics3/shade_bundle_bounds.d.ts.map +1 -1
  156. package/src/engine/graphics3/shade_bundle_bounds.js +47 -55
  157. package/src/engine/graphics3/terrain/pack_terrain_row_table.d.ts +11 -18
  158. package/src/engine/graphics3/terrain/pack_terrain_row_table.d.ts.map +1 -1
  159. package/src/engine/graphics3/terrain/pack_terrain_row_table.js +48 -53
  160. package/src/engine/physics/cloth/build/cloth_proxy_from_joints.d.ts +17 -2
  161. package/src/engine/physics/cloth/build/cloth_proxy_from_joints.d.ts.map +1 -1
  162. package/src/engine/physics/cloth/build/cloth_proxy_from_joints.js +284 -256
  163. package/src/engine/physics/cloth/ecs/ClothInstance.d.ts +13 -15
  164. package/src/engine/physics/cloth/ecs/ClothInstance.d.ts.map +1 -1
  165. package/src/engine/physics/cloth/ecs/ClothInstance.js +12 -14
  166. package/src/engine/physics/cloth/ecs/ClothRig.d.ts +7 -8
  167. package/src/engine/physics/cloth/ecs/ClothRig.d.ts.map +1 -1
  168. package/src/engine/physics/cloth/ecs/ClothRig.js +7 -8
  169. package/src/engine/physics/cloth/ecs/ClothSystem.d.ts +5 -4
  170. package/src/engine/physics/cloth/ecs/ClothSystem.d.ts.map +1 -1
  171. package/src/engine/physics/cloth/ecs/ClothSystem.js +11 -12
  172. package/src/engine/physics/cloth/ecs/cloth_seed_rig.d.ts +19 -23
  173. package/src/engine/physics/cloth/ecs/cloth_seed_rig.d.ts.map +1 -1
  174. package/src/engine/physics/cloth/ecs/cloth_seed_rig.js +201 -199
  175. package/src/engine/physics/cloth/ecs/cloth_seed_subtree.d.ts.map +1 -1
  176. package/src/engine/physics/cloth/ecs/cloth_seed_subtree.js +8 -0
  177. package/src/engine/physics/cloth/ecs/cloth_write_back_rig.d.ts +18 -34
  178. package/src/engine/physics/cloth/ecs/cloth_write_back_rig.d.ts.map +1 -1
  179. package/src/engine/physics/cloth/ecs/cloth_write_back_rig.js +58 -115
  180. package/src/engine/physics/cloth/playground/README.md +11 -11
  181. package/src/engine/physics/cloth/playground/garment_build.d.ts +0 -1
  182. package/src/engine/physics/cloth/playground/garment_build.d.ts.map +1 -1
  183. package/src/engine/physics/cloth/playground/garment_build.js +64 -58
  184. package/src/engine/physics/cloth/playground/garment_main.js +59 -33
  185. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
  186. package/src/shade/RENDERER_CONTRACT.md +85 -53
  187. package/src/shade/device/ShadeGPUCommandContext.d.ts +23 -0
  188. package/src/shade/device/ShadeGPUCommandContext.d.ts.map +1 -1
  189. package/src/shade/device/ShadeGPUCommandContext.js +36 -0
  190. package/src/shade/playground/add_random_meshes.d.ts +4 -4
  191. package/src/shade/playground/add_random_meshes.d.ts.map +1 -1
  192. package/src/shade/playground/add_random_meshes.js +20 -16
  193. package/src/shade/playground/avboit/main.d.ts +1 -0
  194. package/src/shade/playground/avboit/main.d.ts.map +1 -1
  195. package/src/shade/playground/avboit/main.js +916 -875
  196. package/src/shade/playground/basis_textures/main.d.ts.map +1 -1
  197. package/src/shade/playground/basis_textures/main.js +22 -8
  198. package/src/shade/playground/basis_textures/texture_inventory.d.ts +2 -2
  199. package/src/shade/playground/basis_textures/texture_inventory.d.ts.map +1 -1
  200. package/src/shade/playground/basis_textures/texture_inventory.js +6 -7
  201. package/src/shade/playground/ground_seam/main.d.ts.map +1 -1
  202. package/src/shade/playground/ground_seam/main.js +13 -4
  203. package/src/shade/playground/ground_seam/make_ground.d.ts +13 -4
  204. package/src/shade/playground/ground_seam/make_ground.d.ts.map +1 -1
  205. package/src/shade/playground/ground_seam/make_ground.js +21 -16
  206. package/src/shade/playground/particle_ecs/bonfire_editor.js +3 -3
  207. package/src/shade/playground/particle_system/main.js +11 -10
  208. package/src/shade/playground/particle_system/particle_prototype.d.ts +15 -10
  209. package/src/shade/playground/particle_system/particle_prototype.d.ts.map +1 -1
  210. package/src/shade/playground/particle_system/particle_prototype.js +56 -15
  211. package/src/shade/playground/particle_system/particle_scene.d.ts +68 -28
  212. package/src/shade/playground/particle_system/particle_scene.d.ts.map +1 -1
  213. package/src/shade/playground/particle_system/particle_scene.js +149 -53
  214. package/src/shade/playground/readback_crossover/index.html +41 -0
  215. package/src/shade/playground/readback_crossover/main.d.ts +2 -0
  216. package/src/shade/playground/readback_crossover/main.d.ts.map +1 -0
  217. package/src/shade/playground/readback_crossover/main.js +372 -0
  218. package/src/shade/playground/skinned_blas_refit/README.md +11 -7
  219. package/src/shade/playground/skinned_blas_refit/add_floor.d.ts +13 -44
  220. package/src/shade/playground/skinned_blas_refit/add_floor.d.ts.map +1 -1
  221. package/src/shade/playground/skinned_blas_refit/add_floor.js +19 -59
  222. package/src/shade/playground/skinned_blas_refit/main.d.ts.map +1 -1
  223. package/src/shade/playground/skinned_blas_refit/main.js +67 -58
  224. package/src/shade/playground/skinned_blas_refit/place_character.d.ts +40 -54
  225. package/src/shade/playground/skinned_blas_refit/place_character.d.ts.map +1 -1
  226. package/src/shade/playground/skinned_blas_refit/place_character.js +47 -74
  227. package/src/shade/playground/skinned_blas_refit/sweep_views.d.ts +3 -3
  228. package/src/shade/playground/skinned_blas_refit/sweep_views.d.ts.map +1 -1
  229. package/src/shade/playground/skinned_blas_refit/sweep_views.js +4 -3
  230. package/src/shade/playground/skinned_blas_refit/verify_clone_leaves.d.ts +3 -3
  231. package/src/shade/playground/skinned_blas_refit/verify_clone_leaves.d.ts.map +1 -1
  232. package/src/shade/playground/skinned_blas_refit/verify_clone_leaves.js +11 -4
  233. package/src/shade/playground/skinned_blas_refit/verify_instance_bounds.d.ts.map +1 -1
  234. package/src/shade/playground/skinned_blas_refit/verify_instance_bounds.js +38 -9
  235. package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.d.ts +3 -3
  236. package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.d.ts.map +1 -1
  237. package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.js +9 -6
  238. package/src/shade/playground/skinned_blas_refit/verify_traversal_reachability.d.ts +3 -3
  239. package/src/shade/playground/skinned_blas_refit/verify_traversal_reachability.d.ts.map +1 -1
  240. package/src/shade/playground/skinned_blas_refit/verify_traversal_reachability.js +3 -3
  241. package/src/shade/playground/skinned_mesh_soup/README.md +6 -6
  242. package/src/shade/playground/skinned_mesh_soup/main.d.ts.map +1 -1
  243. package/src/shade/playground/skinned_mesh_soup/main.js +44 -102
  244. package/src/shade/playground/skinned_mesh_soup/verify_clone_vertices.d.ts +5 -5
  245. package/src/shade/playground/skinned_mesh_soup/verify_clone_vertices.d.ts.map +1 -1
  246. package/src/shade/playground/skinned_mesh_soup/verify_clone_vertices.js +42 -33
  247. package/src/shade/playground/sponza_path_trace/main.d.ts +1 -0
  248. package/src/shade/playground/sponza_path_trace/main.d.ts.map +1 -1
  249. package/src/shade/playground/sponza_path_trace/main.js +393 -363
  250. package/src/shade/playground/ssr_reprojection/main.js +11 -9
  251. package/src/shade/playground/ssr_reprojection/scene.d.ts +15 -4
  252. package/src/shade/playground/ssr_reprojection/scene.d.ts.map +1 -1
  253. package/src/shade/playground/ssr_reprojection/scene.js +32 -11
  254. package/src/shade/playground/ssr_variance/main.js +1 -1
  255. package/src/shade/playground/ssr_variance/scene.d.ts +10 -4
  256. package/src/shade/playground/ssr_variance/scene.d.ts.map +1 -1
  257. package/src/shade/playground/ssr_variance/scene.js +39 -15
  258. package/src/shade/playground/vgeo_viewer/main.js +6 -2
  259. package/src/shade/playground/volumetrics_froxel/main.d.ts.map +1 -1
  260. package/src/shade/playground/volumetrics_froxel/main.js +936 -922
  261. package/src/shade/renderer/GraphicsContext.d.ts +7 -0
  262. package/src/shade/renderer/GraphicsContext.d.ts.map +1 -1
  263. package/src/shade/renderer/GraphicsContext.js +11 -0
  264. package/src/shade/renderer/Renderer.d.ts +3 -2
  265. package/src/shade/renderer/Renderer.d.ts.map +1 -1
  266. package/src/shade/renderer/Renderer.js +3 -2
  267. package/src/shade/renderer/animation/GPUAnimationManager.d.ts +39 -47
  268. package/src/shade/renderer/animation/GPUAnimationManager.d.ts.map +1 -1
  269. package/src/shade/renderer/animation/GPUAnimationManager.js +319 -256
  270. package/src/shade/renderer/animation/ShadeAnimationChannel.d.ts +26 -22
  271. package/src/shade/renderer/animation/ShadeAnimationChannel.d.ts.map +1 -1
  272. package/src/shade/renderer/animation/ShadeAnimationChannel.js +28 -23
  273. package/src/shade/renderer/animation/ShadeAnimationClip.d.ts +14 -6
  274. package/src/shade/renderer/animation/ShadeAnimationClip.d.ts.map +1 -1
  275. package/src/shade/renderer/animation/ShadeAnimationClip.js +20 -8
  276. package/src/shade/renderer/animation/Skin.d.ts +19 -19
  277. package/src/shade/renderer/animation/Skin.d.ts.map +1 -1
  278. package/src/shade/renderer/animation/Skin.js +15 -13
  279. package/src/shade/renderer/animation/pose/pose_evaluate_local.d.ts +6 -5
  280. package/src/shade/renderer/animation/pose/pose_evaluate_local.d.ts.map +1 -1
  281. package/src/shade/renderer/animation/pose/pose_evaluate_local.js +9 -9
  282. package/src/shade/renderer/animation/skin_clip_scale_conflicts.d.ts +5 -59
  283. package/src/shade/renderer/animation/skin_clip_scale_conflicts.d.ts.map +1 -1
  284. package/src/shade/renderer/animation/skin_clip_scale_conflicts.js +8 -132
  285. package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.d.ts +65 -62
  286. package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.d.ts.map +1 -1
  287. package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.js +148 -194
  288. package/src/shade/renderer/animation/skinning/SKINNING_BINDING_STRUCT.d.ts.map +1 -1
  289. package/src/shade/renderer/animation/skinning/SKINNING_BINDING_STRUCT.js +4 -7
  290. package/src/shade/renderer/animation/skinning/chunk_skin_blend_mesh_local.d.ts +2 -2
  291. package/src/shade/renderer/animation/skinning/chunk_skin_blend_mesh_local.js +2 -2
  292. package/src/shade/renderer/buffer/GPUBufferReadbackAllocator.d.ts +74 -0
  293. package/src/shade/renderer/buffer/GPUBufferReadbackAllocator.d.ts.map +1 -0
  294. package/src/shade/renderer/buffer/GPUBufferReadbackAllocator.js +240 -0
  295. package/src/shade/renderer/buffer/table/GPUDatabase.d.ts +14 -0
  296. package/src/shade/renderer/buffer/table/GPUDatabase.d.ts.map +1 -1
  297. package/src/shade/renderer/buffer/table/GPUDatabase.js +64 -6
  298. package/src/shade/renderer/buffer/table/GPUDatabaseReadback.d.ts +190 -0
  299. package/src/shade/renderer/buffer/table/GPUDatabaseReadback.d.ts.map +1 -0
  300. package/src/shade/renderer/buffer/table/GPUDatabaseReadback.js +1323 -0
  301. package/src/shade/renderer/buffer/table/GPUPageMetadata.d.ts +10 -0
  302. package/src/shade/renderer/buffer/table/GPUPageMetadata.d.ts.map +1 -1
  303. package/src/shade/renderer/buffer/table/GPUPageMetadata.js +12 -0
  304. package/src/shade/renderer/buffer/table/GPUReadbackStagingRing.d.ts +96 -0
  305. package/src/shade/renderer/buffer/table/GPUReadbackStagingRing.d.ts.map +1 -0
  306. package/src/shade/renderer/buffer/table/GPUReadbackStatus.d.ts +15 -0
  307. package/src/shade/renderer/buffer/table/GPUReadbackStatus.d.ts.map +1 -0
  308. package/src/shade/renderer/buffer/table/GPUReadbackStatus.js +34 -0
  309. package/src/shade/renderer/buffer/table/GPUTypedTable.d.ts +75 -7
  310. package/src/shade/renderer/buffer/table/GPUTypedTable.d.ts.map +1 -1
  311. package/src/shade/renderer/buffer/table/GPUTypedTable.js +518 -135
  312. package/src/shade/renderer/buffer/table/GPU_TABLE_GATHER_DESCRIPTOR_WORDS.d.ts +19 -0
  313. package/src/shade/renderer/buffer/table/GPU_TABLE_GATHER_DESCRIPTOR_WORDS.d.ts.map +1 -0
  314. package/src/shade/renderer/buffer/table/GPU_TABLE_GATHER_DESCRIPTOR_WORDS.js +18 -0
  315. package/src/shade/renderer/buffer/table/WordViews.d.ts +39 -0
  316. package/src/shade/renderer/buffer/table/WordViews.d.ts.map +1 -0
  317. package/src/shade/renderer/buffer/table/WordViews.js +62 -0
  318. package/src/shade/renderer/buffer/table/gpu_table_gather_shader.d.ts +27 -0
  319. package/src/shade/renderer/buffer/table/gpu_table_gather_shader.d.ts.map +1 -0
  320. package/src/shade/renderer/buffer/table/gpu_table_gather_shader.js +117 -0
  321. package/src/shade/renderer/buffer/table/serde/generate_record_writer.d.ts +121 -0
  322. package/src/shade/renderer/buffer/table/serde/generate_record_writer.d.ts.map +1 -0
  323. package/src/shade/renderer/buffer/table/serde/generate_record_writer.js +395 -0
  324. package/src/shade/renderer/buffer/table/single/GPUSingleTypeTable.d.ts.map +1 -1
  325. package/src/shade/renderer/buffer/table/single/GPUSingleTypeTable.js +70 -20
  326. package/src/shade/renderer/dynamic/GPUDynamicMeshResidency.js +1 -1
  327. package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.d.ts.map +1 -1
  328. package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.js +6 -5
  329. package/src/shade/renderer/geometry/meshlet/GPUMeshletManager.d.ts +3 -3
  330. package/src/shade/renderer/geometry/meshlet/GPUMeshletManager.d.ts.map +1 -1
  331. package/src/shade/renderer/geometry/meshlet/GPUMeshletManager.js +15 -11
  332. package/src/shade/renderer/global_illumination/brick4/cpu/brick4_bake_for_scene.d.ts +1 -1
  333. package/src/shade/renderer/global_illumination/brick4/cpu/brick4_bake_for_scene.js +4 -4
  334. package/src/shade/renderer/global_illumination/brick4/cpu/brick4_generate_tree_from_scene.d.ts +1 -3
  335. package/src/shade/renderer/global_illumination/brick4/cpu/brick4_generate_tree_from_scene.d.ts.map +1 -1
  336. package/src/shade/renderer/global_illumination/brick4/cpu/brick4_generate_tree_from_scene.js +5 -4
  337. package/src/shade/renderer/global_illumination/brick4/gpu/bake/brick4_bake_basic.js +1 -1
  338. package/src/shade/renderer/global_illumination/lpv/bake/GPULightProbeVolumeRenderer.d.ts.map +1 -1
  339. package/src/shade/renderer/global_illumination/lpv/bake/GPULightProbeVolumeRenderer.js +1 -4
  340. package/src/shade/renderer/global_illumination/lpv/lpv_visualise_probes.d.ts +8 -3
  341. package/src/shade/renderer/global_illumination/lpv/lpv_visualise_probes.d.ts.map +1 -1
  342. package/src/shade/renderer/global_illumination/lpv/lpv_visualise_probes.js +19 -14
  343. package/src/shade/renderer/global_illumination/lpv/placement/graph_generate_probe_locations.d.ts.map +1 -1
  344. package/src/shade/renderer/global_illumination/lpv/placement/graph_generate_probe_locations.js +9 -1
  345. package/src/shade/renderer/global_illumination/lpv/placement/software/lpv_generate_probe_locations2.d.ts +3 -3
  346. package/src/shade/renderer/global_illumination/lpv/placement/software/lpv_generate_probe_locations2.d.ts.map +1 -1
  347. package/src/shade/renderer/global_illumination/lpv/placement/software/lpv_generate_probe_locations2.js +12 -5
  348. package/src/shade/renderer/global_illumination/probe/octahedral/GPUProbeAtlas.js +1 -1
  349. package/src/shade/renderer/light/GPULightCollection.d.ts +29 -0
  350. package/src/shade/renderer/light/GPULightCollection.d.ts.map +1 -1
  351. package/src/shade/renderer/light/GPULightCollection.js +444 -329
  352. package/src/shade/renderer/light/LIGHT_DATABASE_SPEC.d.ts.map +1 -1
  353. package/src/shade/renderer/light/LIGHT_DATABASE_SPEC.js +7 -1
  354. package/src/shade/renderer/light/LightCollection.d.ts +29 -1
  355. package/src/shade/renderer/light/LightCollection.d.ts.map +1 -1
  356. package/src/shade/renderer/light/LightCollection.js +50 -1
  357. package/src/shade/renderer/light/make_sunlight.js +2 -2
  358. package/src/shade/renderer/light/model/Light.d.ts +29 -2
  359. package/src/shade/renderer/light/model/Light.d.ts.map +1 -1
  360. package/src/shade/renderer/light/model/Light.js +30 -2
  361. package/src/shade/renderer/light/model/io/light_record_directional.d.ts +3 -1
  362. package/src/shade/renderer/light/model/io/light_record_directional.d.ts.map +1 -1
  363. package/src/shade/renderer/light/model/io/light_record_directional.js +8 -5
  364. package/src/shade/renderer/light/model/io/light_record_point.d.ts +3 -1
  365. package/src/shade/renderer/light/model/io/light_record_point.d.ts.map +1 -1
  366. package/src/shade/renderer/light/model/io/light_record_point.js +5 -2
  367. package/src/shade/renderer/light/model/io/light_record_spot.d.ts +4 -1
  368. package/src/shade/renderer/light/model/io/light_record_spot.d.ts.map +1 -1
  369. package/src/shade/renderer/light/model/io/light_record_spot.js +10 -6
  370. package/src/shade/renderer/light/place_light.d.ts +16 -0
  371. package/src/shade/renderer/light/place_light.d.ts.map +1 -0
  372. package/src/shade/renderer/light/place_light.js +36 -0
  373. package/src/shade/renderer/light/shader_refresh_light_poses.d.ts +44 -0
  374. package/src/shade/renderer/light/shader_refresh_light_poses.d.ts.map +1 -0
  375. package/src/shade/renderer/light/shader_refresh_light_poses.js +154 -0
  376. package/src/shade/renderer/lightmap/GPULightMap.js +1 -1
  377. package/src/shade/renderer/lightmap/bake/raster/graph_draw_lightmap_viz_buffer.d.ts.map +1 -1
  378. package/src/shade/renderer/lightmap/bake/raster/graph_draw_lightmap_viz_buffer.js +12 -14
  379. package/src/shade/renderer/loader/SceneBundle.d.ts +53 -28
  380. package/src/shade/renderer/loader/SceneBundle.d.ts.map +1 -1
  381. package/src/shade/renderer/loader/SceneBundle.js +111 -56
  382. package/src/shade/renderer/loader/SceneNode.d.ts +81 -0
  383. package/src/shade/renderer/loader/SceneNode.d.ts.map +1 -0
  384. package/src/shade/renderer/loader/SceneNode.js +114 -0
  385. package/src/shade/renderer/loader/gltf/load_gltf.d.ts +3 -2
  386. package/src/shade/renderer/loader/gltf/load_gltf.d.ts.map +1 -1
  387. package/src/shade/renderer/loader/gltf/load_gltf.js +110 -142
  388. package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
  389. package/src/shade/renderer/loader/usd/UsdExtensionRegistry.d.ts +4 -4
  390. package/src/shade/renderer/loader/usd/UsdExtensionRegistry.d.ts.map +1 -1
  391. package/src/shade/renderer/loader/usd/UsdExtensionRegistry.js +2 -2
  392. package/src/shade/renderer/loader/usd/load_usd.d.ts +3 -2
  393. package/src/shade/renderer/loader/usd/load_usd.d.ts.map +1 -1
  394. package/src/shade/renderer/loader/usd/load_usd.js +4 -5
  395. package/src/shade/renderer/loader/usd/usd_build_scene.d.ts +3 -3
  396. package/src/shade/renderer/loader/usd/usd_build_scene.d.ts.map +1 -1
  397. package/src/shade/renderer/loader/usd/usd_build_scene.js +47 -55
  398. package/src/shade/renderer/material/GPUMaterialManager.js +1 -1
  399. package/src/shade/renderer/material/resident/GPUResidentMaterialContext.d.ts +5 -4
  400. package/src/shade/renderer/material/resident/GPUResidentMaterialContext.d.ts.map +1 -1
  401. package/src/shade/renderer/material/resident/GPUResidentMaterialContext.js +8 -15
  402. package/src/shade/renderer/object_property/shader_refresh_all_mesh_bounds.d.ts +15 -13
  403. package/src/shade/renderer/object_property/shader_refresh_all_mesh_bounds.d.ts.map +1 -1
  404. package/src/shade/renderer/object_property/shader_refresh_all_mesh_bounds.js +40 -21
  405. package/src/shade/renderer/particles/DESIGN.md +53 -50
  406. package/src/shade/renderer/particles/GPUParticleSystem.d.ts +31 -17
  407. package/src/shade/renderer/particles/GPUParticleSystem.d.ts.map +1 -1
  408. package/src/shade/renderer/particles/GPUParticleSystem.js +54 -91
  409. package/src/shade/renderer/particles/runtime/EmitterRegistry.d.ts +12 -11
  410. package/src/shade/renderer/particles/runtime/EmitterRegistry.d.ts.map +1 -1
  411. package/src/shade/renderer/particles/runtime/EmitterRegistry.js +12 -11
  412. package/src/shade/renderer/particles/runtime/GPUParticleEmitterContext.d.ts +13 -19
  413. package/src/shade/renderer/particles/runtime/GPUParticleEmitterContext.d.ts.map +1 -1
  414. package/src/shade/renderer/particles/runtime/GPUParticleEmitterContext.js +19 -25
  415. package/src/shade/renderer/particles/runtime/ParticleEmitter.d.ts +34 -24
  416. package/src/shade/renderer/particles/runtime/ParticleEmitter.d.ts.map +1 -1
  417. package/src/shade/renderer/particles/runtime/ParticleEmitter.js +53 -40
  418. package/src/shade/renderer/path_tracer/accumulating/AccumulatingPathTracer.js +1 -1
  419. package/src/shade/renderer/path_tracer/graph_path_trace_scene.js +1 -1
  420. package/src/shade/renderer/postprocess/nss/NSS.d.ts +1 -1
  421. package/src/shade/renderer/rasterize/expand/bucket/mesh/graph_meshes_classify_buckets.d.ts.map +1 -1
  422. package/src/shade/renderer/rasterize/expand/bucket/mesh/graph_meshes_classify_buckets.js +2 -1
  423. package/src/shade/renderer/rasterize/expand/bucket/mesh/graph_scene_meshes_cull_and_classify_buckets.d.ts.map +1 -1
  424. package/src/shade/renderer/rasterize/expand/bucket/mesh/graph_scene_meshes_cull_and_classify_buckets.js +5 -2
  425. package/src/shade/renderer/rasterize/fast/graph_rasterize_scene_fast.js +1 -1
  426. package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.js +1 -1
  427. package/src/shade/renderer/rasterize/native/graph_rasterize_meshes_alpha_tested.js +1 -1
  428. package/src/shade/renderer/rasterize/native/oit/graph_rasterize_meshes_transparent_oit.js +1 -1
  429. package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.js +1 -1
  430. package/src/shade/renderer/scene/DynamicMesh.d.ts +13 -4
  431. package/src/shade/renderer/scene/DynamicMesh.d.ts.map +1 -1
  432. package/src/shade/renderer/scene/DynamicMesh.js +14 -4
  433. package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.d.ts +38 -18
  434. package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.d.ts.map +1 -1
  435. package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.js +112 -60
  436. package/src/shade/renderer/scene/GPUSceneContext.d.ts +55 -48
  437. package/src/shade/renderer/scene/GPUSceneContext.d.ts.map +1 -1
  438. package/src/shade/renderer/scene/GPUSceneContext.js +594 -928
  439. package/src/shade/renderer/scene/NODE3D_STRUCT.d.ts +5 -5
  440. package/src/shade/renderer/scene/NODE3D_STRUCT.js +5 -5
  441. package/src/shade/renderer/scene/Node3D.d.ts +27 -8
  442. package/src/shade/renderer/scene/Node3D.d.ts.map +1 -1
  443. package/src/shade/renderer/scene/Node3DDirtyList.d.ts +59 -0
  444. package/src/shade/renderer/scene/Node3DDirtyList.d.ts.map +1 -0
  445. package/src/shade/renderer/scene/Scene.d.ts +18 -60
  446. package/src/shade/renderer/scene/Scene.d.ts.map +1 -1
  447. package/src/shade/renderer/scene/Scene.js +53 -146
  448. package/src/shade/renderer/scene/SkinnedMesh.d.ts +10 -93
  449. package/src/shade/renderer/scene/SkinnedMesh.d.ts.map +1 -1
  450. package/src/shade/renderer/scene/bvh/StaticSceneBVH.d.ts +24 -3
  451. package/src/shade/renderer/scene/bvh/StaticSceneBVH.d.ts.map +1 -1
  452. package/src/shade/renderer/scene/bvh/StaticSceneBVH.js +53 -13
  453. package/src/shade/renderer/scene/hierarchy/graph_scene_update_transform_hierarchy.d.ts +5 -6
  454. package/src/shade/renderer/scene/hierarchy/graph_scene_update_transform_hierarchy.d.ts.map +1 -1
  455. package/src/shade/renderer/scene/hierarchy/graph_scene_update_transform_hierarchy.js +5 -6
  456. package/src/shade/renderer/scene/optimization/scene_optimize.d.ts +10 -2
  457. package/src/shade/renderer/scene/optimization/scene_optimize.d.ts.map +1 -1
  458. package/src/shade/renderer/scene/optimization/scene_optimize.js +266 -230
  459. package/src/shade/renderer/scene/rows/GPUEntityBoundsReadback.d.ts +53 -0
  460. package/src/shade/renderer/scene/rows/GPUEntityBoundsReadback.d.ts.map +1 -0
  461. package/src/shade/renderer/scene/rows/GPUEntityBoundsReadback.js +144 -0
  462. package/src/shade/renderer/scene/rows/GPUSceneRows.d.ts +227 -0
  463. package/src/shade/renderer/scene/rows/GPUSceneRows.d.ts.map +1 -0
  464. package/src/shade/renderer/scene/rows/GPUSceneRows.js +1136 -0
  465. package/src/shade/renderer/scene/rows/place_primitive.d.ts +48 -0
  466. package/src/shade/renderer/scene/rows/place_primitive.d.ts.map +1 -0
  467. package/src/shade/renderer/scene/rows/place_primitive.js +98 -0
  468. package/src/shade/renderer/scene/serialization/deserialize_scene.d.ts +10 -8
  469. package/src/shade/renderer/scene/serialization/deserialize_scene.d.ts.map +1 -1
  470. package/src/shade/renderer/scene/serialization/deserialize_scene.js +24 -27
  471. package/src/shade/renderer/scene/serialization/serialize_scene.d.ts +9 -2
  472. package/src/shade/renderer/scene/serialization/serialize_scene.d.ts.map +1 -1
  473. package/src/shade/renderer/scene/serialization/serialize_scene.js +25 -4
  474. package/src/shade/renderer/scene/verify_gpu_tlas_build.js +2 -2
  475. package/src/shade/renderer/shader/chunk/light/DIRECTIONAL_LIGHT_STRUCT.d.ts.map +1 -1
  476. package/src/shade/renderer/shader/chunk/light/DIRECTIONAL_LIGHT_STRUCT.js +5 -0
  477. package/src/shade/renderer/shader/chunk/light/POINT_LIGHT_STRUCT.d.ts.map +1 -1
  478. package/src/shade/renderer/shader/chunk/light/POINT_LIGHT_STRUCT.js +5 -0
  479. package/src/shade/renderer/shader/chunk/light/SPOT_LIGHT_STRUCT.d.ts.map +1 -1
  480. package/src/shade/renderer/shader/chunk/light/SPOT_LIGHT_STRUCT.js +5 -0
  481. package/src/shade/renderer/shadow/map/DirectionalLightShadowmap.d.ts +39 -0
  482. package/src/shade/renderer/shadow/map/DirectionalLightShadowmap.d.ts.map +1 -1
  483. package/src/shade/renderer/shadow/map/DirectionalLightShadowmap.js +112 -64
  484. package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.d.ts +7 -0
  485. package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.d.ts.map +1 -1
  486. package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.js +1541 -1352
  487. package/src/shade/renderer/shadow/map/PointLightShadowmap.js +1 -1
  488. package/src/shade/renderer/shadow/map/SpotLightShadowmap.js +1 -1
  489. package/src/shade/renderer/shadow/map/TetrahedronPointLightShadowmap.js +1 -1
  490. package/src/shade/renderer/shadow/map/csm/CSM_CASTER_RANGE_STRUCT.d.ts +29 -0
  491. package/src/shade/renderer/shadow/map/csm/CSM_CASTER_RANGE_STRUCT.d.ts.map +1 -0
  492. package/src/shade/renderer/shadow/map/csm/CSM_CASTER_RANGE_STRUCT.js +43 -0
  493. package/src/shade/renderer/shadow/map/csm/SHADOWMAP_CSM_CASTER_RANGE_MARGIN_FRACTION.d.ts +13 -0
  494. package/src/shade/renderer/shadow/map/csm/SHADOWMAP_CSM_CASTER_RANGE_MARGIN_FRACTION.d.ts.map +1 -0
  495. package/src/shade/renderer/shadow/map/csm/SHADOWMAP_CSM_CASTER_RANGE_MARGIN_FRACTION.js +12 -0
  496. package/src/shade/renderer/shadow/map/csm/shader/shader_csm_caster_range.d.ts +49 -0
  497. package/src/shade/renderer/shadow/map/csm/shader/shader_csm_caster_range.d.ts.map +1 -0
  498. package/src/shade/renderer/shadow/map/csm/shader/shader_csm_caster_range.js +194 -0
  499. package/src/shade/renderer/shadow/map/csm_debug_draw_preview.js +1 -1
  500. package/src/shade/renderer/shadow/map/shadowmap_update_score.js +1 -1
  501. package/src/shade/renderer/shadow/ray/RTXShadows.js +1 -1
  502. package/src/shade/renderer/shadow/ray/staged/trace/graph_trace_rays.js +1 -1
  503. package/src/shade/renderer/shadow/sdf/cascade/CascadedSceneSDF.d.ts.map +1 -1
  504. package/src/shade/renderer/shadow/sdf/cascade/CascadedSceneSDF.js +3 -1
  505. package/src/shade/renderer/texture/bindless/GPUBindlessTextureManager.js +8 -8
  506. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts.map +1 -1
  507. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.js +4 -3
  508. package/src/engine/graphics3/instantiate_scene_bundle.js +0 -164
  509. package/src/engine/graphics3/shade_node_to_entity_composition.js +0 -88
  510. package/src/shade/renderer/animation/compute_skin_world_bounds.js +0 -146
  511. package/src/shade/renderer/animation/compute_skinned_mesh_clip_bounding_sphere.js +0 -531
  512. package/src/shade/renderer/animation/pose/pose_evaluate_world.js +0 -76
  513. package/src/shade/renderer/animation/skin_bind_transform.js +0 -33
  514. package/src/shade/renderer/animation/skin_frame_defect.js +0 -132
  515. package/src/shade/renderer/animation/skin_joint_matrix.js +0 -46
  516. package/src/shade/renderer/animation/skin_normalize_mesh_frame.js +0 -216
  517. package/src/shade/renderer/scene/InstanceBatch.js +0 -235
  518. package/src/shade/renderer/scene/Mesh.js +0 -168
  519. package/src/shade/renderer/scene/Node3D.js +0 -263
  520. package/src/shade/renderer/scene/SceneNodeBinding.js +0 -56
  521. package/src/shade/renderer/scene/SkinnedMesh.js +0 -170
  522. package/src/shade/renderer/scene/TransformAuthority.js +0 -33
@@ -36,18 +36,20 @@ const DIRTY_SZ = 64;
36
36
  * the thing to fix. `pose_evaluator_lockstep.spec.js` fails when the WGSL moves, so that the pair
37
37
  * cannot drift silently.
38
38
  *
39
- * The node's own `transform_local` supplies the rest pose. That is sound because the CPU never
40
- * writes a GPU-authoritative row (`TransformAuthority`), so what the node holds is what was
41
- * authored, and undirty axes on the GPU hold the same value for the same reason.
39
+ * `rest` supplies the rest pose: the node's or the entity's authored local offset. That is sound
40
+ * because the CPU never writes a GPU-authoritative row, so what the authored offset holds is what
41
+ * the row started from, and undirty axes on the GPU hold the same value for the same reason.
42
42
  *
43
43
  * @param {Transform64} result written with the evaluated local TRS; its matrix is left stale
44
- * @param {Node3D} node
44
+ * @param {Node3D|number} target what the channels name — a node, or an entity
45
+ * @param {Transform64} rest the target's authored local pose
45
46
  * @param {PosePlayback[]} playbacks
46
47
  * @returns {Transform64} `result`
47
48
  */
48
- export function pose_evaluate_local(result, node, playbacks) {
49
+ export function pose_evaluate_local(result, target, rest, playbacks) {
49
50
  assert.defined(result, 'result');
50
- assert.defined(node, 'node');
51
+ assert.defined(target, 'target');
52
+ assert.defined(rest, 'rest');
51
53
  assert.isArray(playbacks, 'playbacks');
52
54
 
53
55
  SUM_TRANSLATION[0] = 0;
@@ -74,7 +76,7 @@ export function pose_evaluate_local(result, node, playbacks) {
74
76
  for (let c = 0; c < channels.length; c++) {
75
77
  const channel = channels[c];
76
78
 
77
- if (channel.target !== node) {
79
+ if (channel.target !== target) {
78
80
  continue;
79
81
  }
80
82
 
@@ -137,8 +139,6 @@ export function pose_evaluate_local(result, node, playbacks) {
137
139
  }
138
140
  }
139
141
 
140
- const rest = node.transform_local;
141
-
142
142
  result.setTranslation(
143
143
  (dirty & DIRTY_TX) !== 0 ? SUM_TRANSLATION[0] : rest.translation_x,
144
144
  (dirty & DIRTY_TY) !== 0 ? SUM_TRANSLATION[1] : rest.translation_y,
@@ -1,64 +1,10 @@
1
1
  /**
2
- * The channels of a clip that would scale this skin's joints out from under the frame it is
3
- * deformed in.
2
+ * The channels of a clip that scale something: scale channels whose curves leave one anywhere
3
+ * along their length, not only at their keys.
4
4
  *
5
- * ## Why this is worth asking
6
- *
7
- * {@link skin_normalize_mesh_frame} makes `inverse(mesh.global) × joint.global × inverse_bind`
8
- * rigid, and rigid is what a dual quaternion can carry. It does that with a **constant** correction,
9
- * which is sound because the frame and the joints share their ancestors and a placement multiplies
10
- * both on the left. A clip that scales a joint breaks that: the scale enters `joint.global` and not
11
- * the frame, the fold stops being rigid, and no choice of frame fixes it —
12
- * `SKINNING_FRAME_PLAN.md` §4 is the ladder out and neither of its rungs is built.
13
- *
14
- * The failure is per-frame and on the GPU, where nothing can see it. This is the same question asked
15
- * **statically**, off the clip's own curves, at registration: exact, cheap, and it needs no device.
16
- *
17
- * ## What counts
18
- *
19
- * Not "the channel targets a joint" — that understates it. What matters is whether the scale is
20
- * *shared* between the frame and the joints, and a scale is shared exactly when the node carrying it
21
- * is an ancestor of the mesh **and** of every joint. So:
22
- *
23
- * - a scale on the character's own root reaches the mesh and all the joints, cancels out of the
24
- * fold, and is fine — this is how a model is made to grow;
25
- * - a scale on a joint, or on any node above only *some* of them, reaches the joints and not the
26
- * mesh, and is a conflict;
27
- * - a scale on a node that reaches neither is somebody else's business.
28
- *
29
- * A channel whose curves are all the constant 1 is not a scale at all, whatever it targets. The
30
- * range is taken with {@link animation_curve_compute_aabb}, which follows the Hermite spline between
31
- * keys rather than only reading the keys — a curve that leaves 1 and returns to it is a scale.
32
- *
33
- * @param {Skin} skin
34
- * @param {ShadeAnimationClip} clip
35
- * @returns {Array<{
36
- * channel: ShadeAnimationChannel,
37
- * node: Node3D,
38
- * uniform: boolean,
39
- * joints_reached: number,
40
- * reaches_mesh: boolean,
41
- * }>} one entry per conflicting channel, empty when the clip and the skin can coexist. `uniform`
42
- * says which rung of §4's ladder would be needed: a uniform scale is one a dual quaternion could
43
- * be taught to carry alongside, a non-uniform one is not. It is `true` only when all three
44
- * components are animated by equal curves, so a channel that is uniform by coincidence of the
45
- * node's own scale reads as non-uniform — the safe direction for a report
46
- */
47
- export function skin_clip_scale_conflicts(skin: Skin, clip: ShadeAnimationClip): Array<{
48
- channel: ShadeAnimationChannel;
49
- node: Node3D;
50
- uniform: boolean;
51
- joints_reached: number;
52
- reaches_mesh: boolean;
53
- }>;
54
- /**
55
- * The channels of a clip that scale something, anywhere — before any question of *whose* joints.
56
- *
57
- * Separated out because it is the cheap half and almost always the whole answer. A character's clips
58
- * rotate and translate; a clip with no scale channel at all can be dismissed in one pass over its
59
- * channel list, which is what keeps the per-`(skin, clip)` pair check from costing anything at a
60
- * few hundred dancers. {@link GPUAnimationManager} asks this first and only remembers a clip that
61
- * says yes.
5
+ * Whether such a scale is a *problem* for a skin — whether it reaches the skin's joints without
6
+ * reaching its mesh, so the fold the skinning pass performs stops being rigid — is asked of the
7
+ * model's hierarchy by `prefab_skin_clip_scale_conflicts`, once per model at compile.
62
8
  *
63
9
  * @param {ShadeAnimationClip} clip
64
10
  * @returns {ShadeAnimationChannel[]}
@@ -1 +1 @@
1
- {"version":3,"file":"skin_clip_scale_conflicts.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/animation/skin_clip_scale_conflicts.js"],"names":[],"mappings":"AAyBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,iFAZa,MAAM;IAClB,OAAa,wBAAwB;IACrC,IAAU,SAAS;IACnB,OAAa,EAAE,OAAO,CAAC;IACvB,cAAoB,EAAE,MAAM,CAAC;IAC7B,YAAkB,EAAE,OAAO,CAAC;CACzB,CAAC,CAqDJ;AAED;;;;;;;;;;;GAWG;AACH,+DAFa,uBAAuB,CAuBnC"}
1
+ {"version":3,"file":"skin_clip_scale_conflicts.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/animation/skin_clip_scale_conflicts.js"],"names":[],"mappings":"AAkBA;;;;;;;;;;GAUG;AACH,+DAFa,uBAAuB,CAuBnC"}
@@ -6,126 +6,23 @@ import {
6
6
  import { Node3DProperty } from "../object_property/Node3DProperty.js";
7
7
 
8
8
  /**
9
- * How far from 1 a scale curve may run and still count as not scaling.
10
- *
11
- * The same order as the `IDENTITY_EPSILON` {@link ShadeAnimationChannel#optimize} drops an identity
12
- * channel by, and for the same reason: a scale curve authored as the constant 1 arrives with f32
13
- * round-trip noise on it and is not a scale. Anything a person authored is orders above this.
9
+ * How far from one a scale curve may stray and still be no scale at all. Exporters write a scale
10
+ * channel on every joint whether or not anything scales, and those sit at one to the precision of
11
+ * the file.
14
12
  *
15
13
  * @type {number}
16
14
  */
17
15
  const UNIT_EPSILON = 1e-5;
18
16
 
19
- /**
20
- * Scratch for one curve's value range. Nothing here re-enters.
21
- *
22
- * @type {AABB2}
23
- */
24
17
  const _bounds = new AABB2();
25
18
 
26
19
  /**
27
- * The channels of a clip that would scale this skin's joints out from under the frame it is
28
- * deformed in.
29
- *
30
- * ## Why this is worth asking
31
- *
32
- * {@link skin_normalize_mesh_frame} makes `inverse(mesh.global) × joint.global × inverse_bind`
33
- * rigid, and rigid is what a dual quaternion can carry. It does that with a **constant** correction,
34
- * which is sound because the frame and the joints share their ancestors and a placement multiplies
35
- * both on the left. A clip that scales a joint breaks that: the scale enters `joint.global` and not
36
- * the frame, the fold stops being rigid, and no choice of frame fixes it —
37
- * `SKINNING_FRAME_PLAN.md` §4 is the ladder out and neither of its rungs is built.
38
- *
39
- * The failure is per-frame and on the GPU, where nothing can see it. This is the same question asked
40
- * **statically**, off the clip's own curves, at registration: exact, cheap, and it needs no device.
41
- *
42
- * ## What counts
43
- *
44
- * Not "the channel targets a joint" — that understates it. What matters is whether the scale is
45
- * *shared* between the frame and the joints, and a scale is shared exactly when the node carrying it
46
- * is an ancestor of the mesh **and** of every joint. So:
47
- *
48
- * - a scale on the character's own root reaches the mesh and all the joints, cancels out of the
49
- * fold, and is fine — this is how a model is made to grow;
50
- * - a scale on a joint, or on any node above only *some* of them, reaches the joints and not the
51
- * mesh, and is a conflict;
52
- * - a scale on a node that reaches neither is somebody else's business.
53
- *
54
- * A channel whose curves are all the constant 1 is not a scale at all, whatever it targets. The
55
- * range is taken with {@link animation_curve_compute_aabb}, which follows the Hermite spline between
56
- * keys rather than only reading the keys — a curve that leaves 1 and returns to it is a scale.
57
- *
58
- * @param {Skin} skin
59
- * @param {ShadeAnimationClip} clip
60
- * @returns {Array<{
61
- * channel: ShadeAnimationChannel,
62
- * node: Node3D,
63
- * uniform: boolean,
64
- * joints_reached: number,
65
- * reaches_mesh: boolean,
66
- * }>} one entry per conflicting channel, empty when the clip and the skin can coexist. `uniform`
67
- * says which rung of §4's ladder would be needed: a uniform scale is one a dual quaternion could
68
- * be taught to carry alongside, a non-uniform one is not. It is `true` only when all three
69
- * components are animated by equal curves, so a channel that is uniform by coincidence of the
70
- * node's own scale reads as non-uniform — the safe direction for a report
71
- */
72
- export function skin_clip_scale_conflicts(skin, clip) {
73
- assert.defined(skin, 'skin');
74
- assert.equal(skin.isSkin, true, 'skin.isSkin !== true');
75
- assert.defined(clip, 'clip');
76
-
77
- const scaling = clip_scale_channels(clip);
78
-
79
- const conflicts = [];
80
-
81
- if (scaling.length === 0) {
82
- return conflicts;
83
- }
84
-
85
- const joints = new Set(skin.joints);
86
- const meshes = new Set(skin.meshes);
87
-
88
- for (const channel of scaling) {
89
- let joints_reached = 0;
90
- let meshes_reached = 0;
91
-
92
- channel.target.traverse(node => {
93
- if (joints.has(node)) {
94
- joints_reached++;
95
- }
96
-
97
- if (meshes.has(node)) {
98
- meshes_reached++;
99
- }
100
- });
101
-
102
- const reaches_everything = joints_reached === joints.size && meshes_reached === meshes.size;
103
- const reaches_nothing = joints_reached === 0 && meshes_reached === 0;
104
-
105
- if (reaches_everything || reaches_nothing) {
106
- continue;
107
- }
108
-
109
- conflicts.push({
110
- channel,
111
- node: channel.target,
112
- uniform: is_uniform(channel),
113
- joints_reached,
114
- reaches_mesh: meshes_reached > 0,
115
- });
116
- }
117
-
118
- return conflicts;
119
- }
120
-
121
- /**
122
- * The channels of a clip that scale something, anywhere — before any question of *whose* joints.
20
+ * The channels of a clip that scale something: scale channels whose curves leave one anywhere
21
+ * along their length, not only at their keys.
123
22
  *
124
- * Separated out because it is the cheap half and almost always the whole answer. A character's clips
125
- * rotate and translate; a clip with no scale channel at all can be dismissed in one pass over its
126
- * channel list, which is what keeps the per-`(skin, clip)` pair check from costing anything at a
127
- * few hundred dancers. {@link GPUAnimationManager} asks this first and only remembers a clip that
128
- * says yes.
23
+ * Whether such a scale is a *problem* for a skin — whether it reaches the skin's joints without
24
+ * reaching its mesh, so the fold the skinning pass performs stops being rigid — is asked of the
25
+ * model's hierarchy by `prefab_skin_clip_scale_conflicts`, once per model at compile.
129
26
  *
130
27
  * @param {ShadeAnimationClip} clip
131
28
  * @returns {ShadeAnimationChannel[]}
@@ -154,8 +51,6 @@ export function clip_scale_channels(clip) {
154
51
  }
155
52
 
156
53
  /**
157
- * Whether a scale channel moves anything — false when every component it animates stays at 1.
158
- *
159
54
  * @param {ShadeAnimationChannel} channel
160
55
  * @returns {boolean}
161
56
  */
@@ -178,22 +73,3 @@ function scales(channel) {
178
73
 
179
74
  return false;
180
75
  }
181
-
182
- /**
183
- * Whether a scale channel drives all three axes by the same curve — the shape
184
- * {@link Node3DProperty.Scale} names as how a uniform pulsate is authored.
185
- *
186
- * @param {ShadeAnimationChannel} channel
187
- * @returns {boolean}
188
- */
189
- function is_uniform(channel) {
190
- const { x, y, z } = channel.curves;
191
-
192
- if (x === undefined || y === undefined || z === undefined) {
193
- // an axis left unanimated keeps whatever the node's own scale holds while the others move,
194
- // which is a non-uniform scale however uniform the curves that are there
195
- return false;
196
- }
197
-
198
- return (x === y || x.equals(y)) && (x === z || x.equals(z));
199
- }
@@ -2,16 +2,21 @@
2
2
  * Per-scene container for the skinning subsystem's state. Owned by
3
3
  * {@link GPUSceneContext}; receives the scene's
4
4
  * {@link GPUGeometryManager} so it can allocate per-instance geometry
5
- * clones for {@link SkinnedMesh} instances and route the skinning
6
- * compute pass against those clones.
5
+ * clones for skinned entities and route the skinning compute pass
6
+ * against those clones.
7
+ *
8
+ * **Everything here is addressed by entity.** A skinned entity is one whose mesh row draws a
9
+ * per-instance clone of its geometry, and its mesh row is `entity + 1` — the same row its
10
+ * transform holds — so a binding never has to be told where its mesh went.
7
11
  *
8
12
  * Three responsibilities:
9
- * 1. Geometry-clone routing — `obtain_geometry_index(mesh)` returns
10
- * the clone id for SkinnedMesh, the source id for everyone else.
11
- * 2. Skinning binding bookkeeping — each SkinnedMesh with a `skin_id`
13
+ * 1. Geometry clones — {@link obtain_clone} makes an entity's per-instance copy of its source
14
+ * geometry when its mesh row is written, and {@link release_clone} gives it back when the
15
+ * row goes.
16
+ * 2. Skinning binding bookkeeping — each entity bound to a `skin_id`
12
17
  * produces one binding record linking its clone's vertex region
13
18
  * back to the source's data and to the skin's matrix range.
14
- * 3. Per-frame dispatch — `update(cmd_ctx, animation_manager)`
19
+ * 3. Per-frame dispatch — `update(cmd_ctx)`
15
20
  * uploads any new bindings and dispatches the skinning compute
16
21
  * pass that deforms the cloned vertex regions in place.
17
22
  *
@@ -70,49 +75,47 @@ export class GPUMeshSkinningContext {
70
75
  */
71
76
  get prev_position_offsets_buffer(): any;
72
77
  /**
73
- * Geometry id to assign to this mesh's instance record. Idempotent.
74
- *
75
- * - For a {@link SkinnedMesh}: a per-instance clone of the source's
76
- * GPU geometry. The first time we see a given mesh, allocate a
77
- * clone; subsequent calls return the cached id. If the mesh has
78
- * already been bound to a skin via {@link bind}, the binding's
79
- * registration also runs here so scene.build's first sight of
80
- * a pre-bound mesh doesn't strand it without a deformation pass.
81
- * - For a regular {@link Mesh}: the source's id from the geometry
82
- * manager.
83
- *
84
- * @param {Mesh} mesh
85
- * @returns {number}
78
+ * The per-instance clone of `geometry` an entity's mesh row draws. Made on the first call and
79
+ * returned on every later one. If the entity has already been bound to a skin via
80
+ * {@link bind}, the binding is registered here too, so a row written after its skin arrived
81
+ * is not stranded without a deformation pass.
82
+ *
83
+ * Called by the scene rows when a skinned entity's mesh row is written — the geometry index
84
+ * the row carries is the clone's.
85
+ *
86
+ * @param {number} entity
87
+ * @param {MeshletGeometry} geometry the source
88
+ * @returns {GPUGeometryMetadata} the clone's record
86
89
  */
87
- obtain_geometry_index(mesh: Mesh): number;
90
+ obtain_clone(entity: number, geometry: MeshletGeometry): GPUGeometryMetadata;
88
91
  /**
89
- * Bind a {@link SkinnedMesh} to a skin. The mesh's clone (if not
90
- * already allocated) is created on demand; a skinning-pass
91
- * binding record is registered so the deformation runs each
92
- * frame. The skin id is stored on the context (not on the mesh
93
- * — `SkinnedMesh` carries no GPU state).
92
+ * The clone an entity's mesh row draws, if it has one.
94
93
  *
95
- * Re-binding the same mesh with a different skin id is rejected
96
- * (single-binding model in this MVP — use {@link unbind} first if
97
- * you need to swap). Calling with the same skin id is a no-op.
94
+ * @param {number} entity
95
+ * @returns {GPUGeometryMetadata|undefined}
96
+ */
97
+ clone_of(entity: number): GPUGeometryMetadata | undefined;
98
+ /**
99
+ * Bind an entity's mesh to a skin: a skinning-pass binding record is registered so the
100
+ * deformation runs each frame, as soon as the entity has a clone to deform — which it has
101
+ * once its mesh row is written, before or after this call.
98
102
  *
99
- * Tolerates being called before `scene.build` registers the mesh;
100
- * the binding upload happens during the next per-frame
101
- * {@link update}.
103
+ * Re-binding the same entity with a different skin id is rejected (one skin per mesh — use
104
+ * {@link unbind} first to swap). Calling with the same skin id is a no-op.
102
105
  *
103
- * @param {SkinnedMesh} mesh
106
+ * @param {number} entity
104
107
  * @param {number} skin_id
105
108
  */
106
- bind(mesh: SkinnedMesh, skin_id: number): void;
109
+ bind(entity: number, skin_id: number): void;
107
110
  /**
108
111
  * Skin id currently bound to this mesh, or `undefined` if the
109
112
  * mesh hasn't been bound. Read-only accessor — bookkeeping lives
110
113
  * here, not on the mesh.
111
114
  *
112
- * @param {SkinnedMesh} mesh
115
+ * @param {number} entity
113
116
  * @returns {number|undefined}
114
117
  */
115
- get_skin_id(mesh: SkinnedMesh): number | undefined;
118
+ get_skin_id(entity: number): number | undefined;
116
119
  /**
117
120
  * Drop the binding for a single mesh. The mesh's geometry clone
118
121
  * stays allocated (deallocation needs compaction work the MVP
@@ -122,9 +125,9 @@ export class GPUMeshSkinningContext {
122
125
  *
123
126
  * No-op if the mesh isn't bound.
124
127
  *
125
- * @param {SkinnedMesh} mesh
128
+ * @param {number} entity
126
129
  */
127
- unbind(mesh: SkinnedMesh): void;
130
+ unbind(entity: number): void;
128
131
  /**
129
132
  * Drop every binding that points at the given skin id. Called
130
133
  * by {@link GPUAnimationManager#unregister_skin} so freeing the
@@ -136,38 +139,36 @@ export class GPUMeshSkinningContext {
136
139
  */
137
140
  unbind_all_by_skin(skin_id: number): void;
138
141
  /**
139
- * Give back everything a {@link SkinnedMesh} was holding on the GPU: its binding, its
142
+ * Give back everything a skinned entity was holding on the GPU: its binding, its
140
143
  * prev-position slice, and the per-instance geometry clone it rendered.
141
144
  *
142
- * **Called when the mesh leaves the scene, not when it unbinds.** A clone is named by the
143
- * meshes-table row of the instance that renders it, so it lives exactly as long as that
144
- * row does — {@link GPUSceneContext} calls this from the same place it gives the row
145
- * back. Unbinding is a different event: an unbound mesh keeps rendering its clone frozen
146
- * at the last pose the skinning pass wrote, and freeing there would hand a live renderer
147
- * a vertex region that has since gone to somebody else.
145
+ * **Called when the entity's mesh row goes, not when it unbinds.** A clone lives exactly as
146
+ * long as the row that draws it — the scene rows call this from the same place they give
147
+ * the row back. Unbinding is a different event: an unbound mesh keeps rendering its clone
148
+ * frozen at the last pose the skinning pass wrote, and freeing there would hand a live
149
+ * renderer a vertex region that has since gone to somebody else.
148
150
  *
149
151
  * The binding record goes first, and for its own reason: it names the clone's meshlet
150
152
  * rows, and the skinning pass would deform whatever took their place.
151
153
  *
152
- * **Which skin the mesh belongs to is not forgotten.** A mesh may leave the scene and
153
- * come back — the row it gets is not even the row it had — and the engine's answer to
154
- * that is {@link #try_register_binding}, which rebuilds the binding from
155
- * {@link #skin_id_by_mesh} the next time `scene.build` asks for the mesh's geometry id.
156
- * Releasing through {@link unbind} would drop that association too and hand the returning
157
- * mesh back undeformed. Forgetting the skin is what {@link unbind} is for, and it is a
158
- * different thing to want.
154
+ * **Which skin the entity belongs to is not forgotten.** A mesh row may go and come back,
155
+ * and the engine's answer to that is {@link #try_register_binding}, which rebuilds the
156
+ * binding from {@link #skin_by_entity} when the new clone is made. Releasing through
157
+ * {@link unbind} would drop that association too and hand the returning mesh back
158
+ * undeformed. Forgetting the skin is what {@link unbind} is for, and it is a different
159
+ * thing to want.
159
160
  *
160
- * The mesh does pay for a fresh clone on its way back in: a new vertex region, its copy
161
- * from source, and a new tree. That is the right trade while nothing removes a mesh from
162
- * the scene except an entity that is actually leaving — culling and LOD never do — and it
163
- * is what a clone cache keyed by source geometry would take away if that ever changes.
161
+ * The entity does pay for a fresh clone on its way back in: a new vertex region, its copy
162
+ * from source, and a new tree. That is the right trade while nothing takes a mesh row away
163
+ * except an entity that is actually leaving — culling and LOD never do — and it is what a
164
+ * clone cache keyed by source geometry would take away if that ever changes.
164
165
  *
165
- * No-op for a mesh that has no clone — a {@link SkinnedMesh} that never reached
166
- * `scene.build` or was released already.
166
+ * No-op for an entity that has no clone — one whose mesh row was never written, or was
167
+ * released already.
167
168
  *
168
- * @param {SkinnedMesh} mesh
169
+ * @param {number} entity
169
170
  */
170
- release_clone(mesh: SkinnedMesh): void;
171
+ release_clone(entity: number): void;
171
172
  /**
172
173
  * Per-frame: upload any new bindings + dispatch the skinning
173
174
  * compute pass that deforms cloned vertex regions in place.
@@ -183,15 +184,17 @@ export class GPUMeshSkinningContext {
183
184
  * `skin_matrix_offset` for the binding records.
184
185
  *
185
186
  * @param {ShadeGPUCommandContext} cmd_ctx
187
+ * @returns {boolean} whether a skinning pass ran — whether any bound row's vertices, and so
188
+ * its bounds, moved this frame
186
189
  */
187
- update(cmd_ctx: ShadeGPUCommandContext): void;
190
+ update(cmd_ctx: ShadeGPUCommandContext): boolean;
188
191
  destroy(): void;
189
192
  #private;
190
193
  }
191
194
  export type ShadeGPUCommandContext = import("../../../device/ShadeGPUCommandContext.js").ShadeGPUCommandContext;
192
195
  export type GPUGeometryManager = import("../../geometry/GPUGeometryManager.js").GPUGeometryManager;
193
196
  export type GPUSceneContext = import("../../scene/GPUSceneContext.js").GPUSceneContext;
194
- export type Mesh = import("../../scene/Mesh.js").Mesh;
195
- export type SkinnedMesh = import("../../scene/SkinnedMesh.js").SkinnedMesh;
197
+ export type MeshletGeometry = import("../../geometry/MeshletGeometry.js").MeshletGeometry;
198
+ export type GPUGeometryMetadata = import("../../geometry/GPUGeometryMetadata.js").GPUGeometryMetadata;
196
199
  export type GPUAnimationManager = import("../GPUAnimationManager.js").GPUAnimationManager;
197
200
  //# sourceMappingURL=GPUMeshSkinningContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GPUMeshSkinningContext.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/animation/skinning/GPUMeshSkinningContext.js"],"names":[],"mappings":"AAkFA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH;IA0OI;;;;;;;OAOG;IACH,sEAPW;QACV,UAAgB,EAAE,kBAAkB,CAAC;QACrC,iBAAuB,EAAE,mBAAmB,CAAC;QAC7C,aAAmB,EAAE,eAAe,CAAC;QACrC,MAAY,YAAY;KACrB,EAcH;IAED;;;;;;OAMG;IACH,iCAEC;IAED;;;;;;;OAOG;IACH,yCAEC;IAED;;;;;;OAMG;IACH,2BAEC;IAED;;;;;;;OAOG;IACH,wCAEC;IAED;;;;;;;;;;;;;;OAcG;IACH,4BAHW,IAAI,GACF,MAAM,CAelB;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,WAHW,WAAW,WACX,MAAM,QAmBhB;IAED;;;;;;;OAOG;IACH,kBAHW,WAAW,GACT,MAAM,GAAC,SAAS,CAI5B;IAED;;;;;;;;;;OAUG;IACH,aAFW,WAAW,QAYrB;IAED;;;;;;;;OAQG;IACH,4BAFW,MAAM,QAUhB;IA0FD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,oBAFW,WAAW,QAqBrB;IAyCD;;;;;;;;;;;;;;;OAeG;IACH,gBAFW,sBAAsB,QA2NhC;IA4SD,gBAkBC;;CACJ;qCA7sCY,OAAO,2CAA2C,EAAE,sBAAsB;iCAC1E,OAAO,sCAAsC,EAAE,kBAAkB;8BACjE,OAAO,gCAAgC,EAAE,eAAe;mBACxD,OAAO,qBAAqB,EAAE,IAAI;0BAClC,OAAO,4BAA4B,EAAE,WAAW;kCAChD,OAAO,2BAA2B,EAAE,mBAAmB"}
1
+ {"version":3,"file":"GPUMeshSkinningContext.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/animation/skinning/GPUMeshSkinningContext.js"],"names":[],"mappings":"AAmFA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH;IAyMI;;;;;;;OAOG;IACH,sEAPW;QACV,UAAgB,EAAE,kBAAkB,CAAC;QACrC,iBAAuB,EAAE,mBAAmB,CAAC;QAC7C,aAAmB,EAAE,eAAe,CAAC;QACrC,MAAY,YAAY;KACrB,EAcH;IAED;;;;;;OAMG;IACH,iCAEC;IAED;;;;;;;OAOG;IACH,yCAEC;IAED;;;;;;OAMG;IACH,2BAEC;IAED;;;;;;;OAOG;IACH,wCAEC;IAED;;;;;;;;;;;;OAYG;IACH,qBAJW,MAAM,YACN,eAAe,GACb,mBAAmB,CAqB/B;IAED;;;;;OAKG;IACH,iBAHW,MAAM,GACJ,mBAAmB,GAAC,SAAS,CAMzC;IAED;;;;;;;;;;OAUG;IACH,aAHW,MAAM,WACN,MAAM,QAwBhB;IAED;;;;;;;OAOG;IACH,oBAHW,MAAM,GACJ,MAAM,GAAC,SAAS,CAI5B;IAED;;;;;;;;;;OAUG;IACH,eAFW,MAAM,QAYhB;IAED;;;;;;;;OAQG;IACH,4BAFW,MAAM,QAUhB;IA0FD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,sBAFW,MAAM,QAqBhB;IAuBD;;;;;;;;;;;;;;;;;OAiBG;IACH,gBAJW,sBAAsB,GACpB,OAAO,CAuNnB;IAkSD,gBAkBC;;CACJ;qCA9pCY,OAAO,2CAA2C,EAAE,sBAAsB;iCAC1E,OAAO,sCAAsC,EAAE,kBAAkB;8BACjE,OAAO,gCAAgC,EAAE,eAAe;8BACxD,OAAO,mCAAmC,EAAE,eAAe;kCAC3D,OAAO,uCAAuC,EAAE,mBAAmB;kCACnE,OAAO,2BAA2B,EAAE,mBAAmB"}