@woosh/meep-engine 3.51.0 → 3.53.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 (433) hide show
  1. package/package.json +1 -1
  2. package/src/engine/ecs/animation/Animation.d.ts +4 -25
  3. package/src/engine/ecs/animation/Animation.d.ts.map +1 -1
  4. package/src/engine/ecs/animation/Animation.js +9 -41
  5. package/src/engine/ecs/ik/IKGoalSystem.d.ts +4 -5
  6. package/src/engine/ecs/ik/IKGoalSystem.d.ts.map +1 -1
  7. package/src/engine/ecs/ik/IKGoalSystem.js +4 -6
  8. package/src/engine/graphics/ecs/mesh/assetTypeByPath.js +1 -1
  9. package/src/engine/graphics3/AnimationGraphSystem.d.ts +9 -22
  10. package/src/engine/graphics3/AnimationGraphSystem.d.ts.map +1 -1
  11. package/src/engine/graphics3/AnimationGraphSystem.js +58 -203
  12. package/src/engine/graphics3/AnimationSystem.d.ts +7 -18
  13. package/src/engine/graphics3/AnimationSystem.d.ts.map +1 -1
  14. package/src/engine/graphics3/AnimationSystem.js +62 -243
  15. package/src/engine/graphics3/FoliageWindSystem.d.ts +67 -0
  16. package/src/engine/graphics3/FoliageWindSystem.d.ts.map +1 -0
  17. package/src/engine/graphics3/FoliageWindSystem.js +257 -0
  18. package/src/engine/graphics3/GPUFluidSystem.d.ts +7 -0
  19. package/src/engine/graphics3/GPUFluidSystem.d.ts.map +1 -1
  20. package/src/engine/graphics3/GPUFluidSystem.js +39 -1
  21. package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts +0 -1
  22. package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts.map +1 -1
  23. package/src/engine/graphics3/GPUParticleEmitterSystem.js +19 -5
  24. package/src/engine/graphics3/animation/AnimationClips.d.ts +107 -13
  25. package/src/engine/graphics3/animation/AnimationClips.d.ts.map +1 -1
  26. package/src/engine/graphics3/animation/AnimationClips.js +207 -10
  27. package/src/engine/graphics3/animation/AnimationClipsSink.d.ts +89 -0
  28. package/src/engine/graphics3/animation/AnimationClipsSink.d.ts.map +1 -0
  29. package/src/engine/graphics3/animation/AnimationClipsSink.js +205 -0
  30. package/src/engine/graphics3/animation/FoliageWindRigs.d.ts +43 -0
  31. package/src/engine/graphics3/animation/FoliageWindRigs.d.ts.map +1 -0
  32. package/src/engine/graphics3/animation/FoliageWindRigs.js +69 -0
  33. package/src/engine/graphics3/animation/write_clip_playback.d.ts +17 -11
  34. package/src/engine/graphics3/animation/write_clip_playback.d.ts.map +1 -1
  35. package/src/engine/graphics3/animation/write_clip_playback.js +36 -27
  36. package/src/engine/graphics3/decal/GPUDecalRenderer.d.ts.map +1 -1
  37. package/src/engine/graphics3/decal/GPUDecalRenderer.js +8 -6
  38. package/src/engine/graphics3/decal/shader_decal_composite.d.ts.map +1 -1
  39. package/src/engine/graphics3/decal/shader_decal_composite.js +11 -5
  40. package/src/engine/graphics3/pose/collect_entity_playbacks.d.ts +7 -7
  41. package/src/engine/graphics3/pose/collect_entity_playbacks.d.ts.map +1 -1
  42. package/src/engine/graphics3/pose/collect_entity_playbacks.js +14 -15
  43. package/src/engine/graphics3/prefab/Prefab.d.ts +6 -0
  44. package/src/engine/graphics3/prefab/Prefab.d.ts.map +1 -1
  45. package/src/engine/graphics3/prefab/Prefab.js +169 -162
  46. package/src/engine/graphics3/prefab/prefab_compile.d.ts.map +1 -1
  47. package/src/engine/graphics3/prefab/prefab_compile.js +369 -334
  48. package/src/engine/graphics3/prefab/prefab_instantiate.d.ts.map +1 -1
  49. package/src/engine/graphics3/prefab/prefab_instantiate.js +43 -2
  50. package/src/engine/graphics3/terrain/chunk_terrain_material_surface.js +2 -2
  51. package/src/engine/physics/ecs/ContactProbeSystem.d.ts +2 -3
  52. package/src/engine/physics/ecs/ContactProbeSystem.d.ts.map +1 -1
  53. package/src/engine/physics/ecs/ContactProbeSystem.js +2 -4
  54. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
  55. package/src/engine/sound/simulation/PROBE_PLACEMENT.md +4 -4
  56. package/src/engine/sound/simulation/README.md +1 -1
  57. package/src/engine/sound/simulation/probe/bakeProbeField.d.ts +22 -8
  58. package/src/engine/sound/simulation/probe/bakeProbeField.d.ts.map +1 -1
  59. package/src/engine/sound/simulation/probe/bakeProbeField.js +60 -15
  60. package/src/engine/sound/simulation/probe/bakeProbeReflectors.d.ts.map +1 -1
  61. package/src/engine/sound/simulation/probe/bakeProbeReflectors.js +19 -23
  62. package/src/engine/sound/simulation/probe/probe_sdf_grid.d.ts +63 -17
  63. package/src/engine/sound/simulation/probe/probe_sdf_grid.d.ts.map +1 -1
  64. package/src/engine/sound/simulation/probe/probe_sdf_grid.js +67 -17
  65. package/src/generation/foliage/FOLIAGE_DESIGN.md +318 -0
  66. package/src/generation/foliage/FOLIAGE_PLAN.md +198 -0
  67. package/src/generation/foliage/animation/build_tree_wind_rig.d.ts +20 -0
  68. package/src/generation/foliage/animation/build_tree_wind_rig.d.ts.map +1 -0
  69. package/src/generation/foliage/animation/build_tree_wind_rig.js +108 -0
  70. package/src/generation/foliage/asset/TreeAsset.d.ts +86 -0
  71. package/src/generation/foliage/asset/TreeAsset.d.ts.map +1 -0
  72. package/src/generation/foliage/asset/TreeAsset.js +111 -0
  73. package/src/generation/foliage/asset/TreeLODAsset.d.ts +115 -0
  74. package/src/generation/foliage/asset/TreeLODAsset.d.ts.map +1 -0
  75. package/src/generation/foliage/asset/TreeLODAsset.js +346 -0
  76. package/src/generation/foliage/asset/generate_tree.d.ts +15 -0
  77. package/src/generation/foliage/asset/generate_tree.d.ts.map +1 -0
  78. package/src/generation/foliage/asset/generate_tree.js +93 -0
  79. package/src/generation/foliage/asset/place_tree.d.ts +82 -0
  80. package/src/generation/foliage/asset/place_tree.d.ts.map +1 -0
  81. package/src/generation/foliage/asset/place_tree.js +194 -0
  82. package/src/generation/foliage/config/BarkMaterialConfig.d.ts +120 -0
  83. package/src/generation/foliage/config/BarkMaterialConfig.d.ts.map +1 -0
  84. package/src/generation/foliage/config/BarkMaterialConfig.js +250 -0
  85. package/src/generation/foliage/config/BranchLevelConfig.d.ts +288 -0
  86. package/src/generation/foliage/config/BranchLevelConfig.d.ts.map +1 -0
  87. package/src/generation/foliage/config/BranchLevelConfig.js +536 -0
  88. package/src/generation/foliage/config/CrownConfig.d.ts +100 -0
  89. package/src/generation/foliage/config/CrownConfig.d.ts.map +1 -0
  90. package/src/generation/foliage/config/CrownConfig.js +186 -0
  91. package/src/generation/foliage/config/CrownEnvelopeType.d.ts +16 -0
  92. package/src/generation/foliage/config/CrownEnvelopeType.d.ts.map +1 -0
  93. package/src/generation/foliage/config/CrownEnvelopeType.js +17 -0
  94. package/src/generation/foliage/config/FoliageCardType.d.ts +12 -0
  95. package/src/generation/foliage/config/FoliageCardType.d.ts.map +1 -0
  96. package/src/generation/foliage/config/FoliageCardType.js +18 -0
  97. package/src/generation/foliage/config/FoliageConfig.d.ts +151 -0
  98. package/src/generation/foliage/config/FoliageConfig.d.ts.map +1 -0
  99. package/src/generation/foliage/config/FoliageConfig.js +283 -0
  100. package/src/generation/foliage/config/FoliageMaterialConfig.d.ts +90 -0
  101. package/src/generation/foliage/config/FoliageMaterialConfig.d.ts.map +1 -0
  102. package/src/generation/foliage/config/FoliageMaterialConfig.js +181 -0
  103. package/src/generation/foliage/config/PhyllotaxisMode.d.ts +13 -0
  104. package/src/generation/foliage/config/PhyllotaxisMode.d.ts.map +1 -0
  105. package/src/generation/foliage/config/PhyllotaxisMode.js +20 -0
  106. package/src/generation/foliage/config/TreeLODConfig.d.ts +87 -0
  107. package/src/generation/foliage/config/TreeLODConfig.d.ts.map +1 -0
  108. package/src/generation/foliage/config/TreeLODConfig.js +211 -0
  109. package/src/generation/foliage/config/TreePreset.d.ts +16 -0
  110. package/src/generation/foliage/config/TreePreset.d.ts.map +1 -0
  111. package/src/generation/foliage/config/TreePreset.js +17 -0
  112. package/src/generation/foliage/config/TreeSpeciesConfig.d.ts +109 -0
  113. package/src/generation/foliage/config/TreeSpeciesConfig.d.ts.map +1 -0
  114. package/src/generation/foliage/config/TreeSpeciesConfig.js +400 -0
  115. package/src/generation/foliage/config/TreeWindConfig.d.ts +84 -0
  116. package/src/generation/foliage/config/TreeWindConfig.d.ts.map +1 -0
  117. package/src/generation/foliage/config/TreeWindConfig.js +157 -0
  118. package/src/generation/foliage/index.d.ts +38 -0
  119. package/src/generation/foliage/index.d.ts.map +1 -0
  120. package/src/generation/foliage/index.js +43 -0
  121. package/src/generation/foliage/material/make_bark_material.d.ts +37 -0
  122. package/src/generation/foliage/material/make_bark_material.d.ts.map +1 -0
  123. package/src/generation/foliage/material/make_bark_material.js +802 -0
  124. package/src/generation/foliage/material/make_foliage_material.d.ts +14 -0
  125. package/src/generation/foliage/material/make_foliage_material.d.ts.map +1 -0
  126. package/src/generation/foliage/material/make_foliage_material.js +359 -0
  127. package/src/generation/foliage/mesh/branch_collar_project.d.ts +42 -0
  128. package/src/generation/foliage/mesh/branch_collar_project.d.ts.map +1 -0
  129. package/src/generation/foliage/mesh/branch_collar_project.js +203 -0
  130. package/src/generation/foliage/mesh/branch_ring_triangulate.d.ts +35 -0
  131. package/src/generation/foliage/mesh/branch_ring_triangulate.d.ts.map +1 -0
  132. package/src/generation/foliage/mesh/branch_ring_triangulate.js +72 -0
  133. package/src/generation/foliage/mesh/foliage_collect_attachments.d.ts +80 -0
  134. package/src/generation/foliage/mesh/foliage_collect_attachments.d.ts.map +1 -0
  135. package/src/generation/foliage/mesh/foliage_collect_attachments.js +502 -0
  136. package/src/generation/foliage/mesh/tree_mesh_apply_canopy_ao.d.ts +19 -0
  137. package/src/generation/foliage/mesh/tree_mesh_apply_canopy_ao.d.ts.map +1 -0
  138. package/src/generation/foliage/mesh/tree_mesh_apply_canopy_ao.js +150 -0
  139. package/src/generation/foliage/mesh/tree_mesh_build_bark.d.ts +55 -0
  140. package/src/generation/foliage/mesh/tree_mesh_build_bark.d.ts.map +1 -0
  141. package/src/generation/foliage/mesh/tree_mesh_build_bark.js +1047 -0
  142. package/src/generation/foliage/mesh/tree_mesh_build_foliage.d.ts +21 -0
  143. package/src/generation/foliage/mesh/tree_mesh_build_foliage.d.ts.map +1 -0
  144. package/src/generation/foliage/mesh/tree_mesh_build_foliage.js +415 -0
  145. package/src/generation/foliage/presets/make_tree_species_preset.d.ts +13 -0
  146. package/src/generation/foliage/presets/make_tree_species_preset.d.ts.map +1 -0
  147. package/src/generation/foliage/presets/make_tree_species_preset.js +837 -0
  148. package/src/generation/foliage/skeleton/TreeSkeleton.d.ts +443 -0
  149. package/src/generation/foliage/skeleton/TreeSkeleton.d.ts.map +1 -0
  150. package/src/generation/foliage/skeleton/TreeSkeleton.js +1100 -0
  151. package/src/generation/foliage/skeleton/crown_envelope_evaluate.d.ts +27 -0
  152. package/src/generation/foliage/skeleton/crown_envelope_evaluate.d.ts.map +1 -0
  153. package/src/generation/foliage/skeleton/crown_envelope_evaluate.js +121 -0
  154. package/src/generation/foliage/skeleton/spine_frame_double_reflection.d.ts +32 -0
  155. package/src/generation/foliage/skeleton/spine_frame_double_reflection.d.ts.map +1 -0
  156. package/src/generation/foliage/skeleton/spine_frame_double_reflection.js +87 -0
  157. package/src/generation/foliage/skeleton/tree_skeleton_assign_skin_joints.d.ts +33 -0
  158. package/src/generation/foliage/skeleton/tree_skeleton_assign_skin_joints.d.ts.map +1 -0
  159. package/src/generation/foliage/skeleton/tree_skeleton_assign_skin_joints.js +205 -0
  160. package/src/generation/foliage/skeleton/tree_skeleton_compute_pipe_radii.d.ts +14 -0
  161. package/src/generation/foliage/skeleton/tree_skeleton_compute_pipe_radii.d.ts.map +1 -0
  162. package/src/generation/foliage/skeleton/tree_skeleton_compute_pipe_radii.js +179 -0
  163. package/src/generation/foliage/skeleton/tree_skeleton_grow.d.ts +18 -0
  164. package/src/generation/foliage/skeleton/tree_skeleton_grow.d.ts.map +1 -0
  165. package/src/generation/foliage/skeleton/tree_skeleton_grow.js +1104 -0
  166. package/src/shade/playground/additive_blending/index.html +197 -0
  167. package/src/shade/playground/additive_blending/main.d.ts +2 -0
  168. package/src/shade/playground/additive_blending/main.d.ts.map +1 -0
  169. package/src/shade/playground/additive_blending/main.js +529 -0
  170. package/src/shade/playground/foliage_wind/README.md +18 -0
  171. package/src/shade/playground/foliage_wind/foliage_world.d.ts +127 -0
  172. package/src/shade/playground/foliage_wind/foliage_world.d.ts.map +1 -0
  173. package/src/shade/playground/foliage_wind/foliage_world.js +593 -0
  174. package/src/shade/playground/foliage_wind/index.html +254 -0
  175. package/src/shade/playground/foliage_wind/main.d.ts +2 -0
  176. package/src/shade/playground/foliage_wind/main.d.ts.map +1 -0
  177. package/src/shade/playground/foliage_wind/main.js +263 -0
  178. package/src/shade/playground/tonemap_sdr/README.md +5 -3
  179. package/src/shade/renderer/Renderer.d.ts +1 -1
  180. package/src/shade/renderer/Renderer.d.ts.map +1 -1
  181. package/src/shade/renderer/Renderer.js +88 -31
  182. package/src/shade/renderer/ShadeToneMappingMode.d.ts +3 -2
  183. package/src/shade/renderer/ShadeToneMappingMode.js +15 -4
  184. package/src/shade/renderer/animation/ADDITIVE_BLENDING_PLAN.md +145 -0
  185. package/src/shade/renderer/animation/ANIMATION_DATABASE_SPEC.d.ts +9 -1
  186. package/src/shade/renderer/animation/ANIMATION_DATABASE_SPEC.d.ts.map +1 -1
  187. package/src/shade/renderer/animation/ANIMATION_DATABASE_SPEC.js +53 -1
  188. package/src/shade/renderer/animation/ANIMATION_FOLIAGE_JOINT_STRUCT.d.ts +8 -0
  189. package/src/shade/renderer/animation/ANIMATION_FOLIAGE_JOINT_STRUCT.d.ts.map +1 -0
  190. package/src/shade/renderer/animation/ANIMATION_FOLIAGE_JOINT_STRUCT.js +71 -0
  191. package/src/shade/renderer/animation/ANIMATION_FOLIAGE_RIG_STRUCT.d.ts +11 -0
  192. package/src/shade/renderer/animation/ANIMATION_FOLIAGE_RIG_STRUCT.d.ts.map +1 -0
  193. package/src/shade/renderer/animation/ANIMATION_FOLIAGE_RIG_STRUCT.js +32 -0
  194. package/src/shade/renderer/animation/GPUAnimationManager.d.ts +30 -3
  195. package/src/shade/renderer/animation/GPUAnimationManager.d.ts.map +1 -1
  196. package/src/shade/renderer/animation/GPUAnimationManager.js +532 -79
  197. package/src/shade/renderer/animation/POSE_ACCUMULATOR_LAYOUT.d.ts +19 -12
  198. package/src/shade/renderer/animation/POSE_ACCUMULATOR_LAYOUT.d.ts.map +1 -1
  199. package/src/shade/renderer/animation/POSE_ACCUMULATOR_LAYOUT.js +20 -13
  200. package/src/shade/renderer/animation/ShadeAnimationClip.d.ts +35 -8
  201. package/src/shade/renderer/animation/ShadeAnimationClip.d.ts.map +1 -1
  202. package/src/shade/renderer/animation/ShadeAnimationClip.js +433 -2
  203. package/src/shade/renderer/animation/chunk_pose_accumulator.d.ts.map +1 -1
  204. package/src/shade/renderer/animation/chunk_pose_accumulator.js +40 -32
  205. package/src/shade/renderer/animation/foliage/FoliageWindJoint.d.ts +97 -0
  206. package/src/shade/renderer/animation/foliage/FoliageWindJoint.d.ts.map +1 -0
  207. package/src/shade/renderer/animation/foliage/FoliageWindJoint.js +161 -0
  208. package/src/shade/renderer/animation/foliage/FoliageWindRig.d.ts +65 -0
  209. package/src/shade/renderer/animation/foliage/FoliageWindRig.d.ts.map +1 -0
  210. package/src/shade/renderer/animation/foliage/FoliageWindRig.js +89 -0
  211. package/src/shade/renderer/animation/foliage/chunk_foliage_wind_step.d.ts +19 -0
  212. package/src/shade/renderer/animation/foliage/chunk_foliage_wind_step.d.ts.map +1 -0
  213. package/src/shade/renderer/animation/foliage/chunk_foliage_wind_step.js +143 -0
  214. package/src/shade/renderer/animation/foliage/shader_foliage_wind_apply.d.ts +14 -0
  215. package/src/shade/renderer/animation/foliage/shader_foliage_wind_apply.d.ts.map +1 -0
  216. package/src/shade/renderer/animation/foliage/shader_foliage_wind_apply.js +116 -0
  217. package/src/shade/renderer/animation/pose/pose_evaluate_local.d.ts.map +1 -1
  218. package/src/shade/renderer/animation/pose/pose_evaluate_local.js +39 -29
  219. package/src/shade/renderer/animation/shader_animation_pose_resolve.js +37 -37
  220. package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.js +2 -2
  221. package/src/shade/renderer/deferred/tonemap/TonemapAces2Tables.d.ts +38 -0
  222. package/src/shade/renderer/deferred/tonemap/TonemapAces2Tables.d.ts.map +1 -0
  223. package/src/shade/renderer/deferred/tonemap/TonemapAces2Tables.js +97 -0
  224. package/src/shade/renderer/deferred/{TonemapDisplaySettings.d.ts → tonemap/TonemapDisplaySettings.d.ts} +1 -1
  225. package/src/shade/renderer/deferred/tonemap/TonemapDisplaySettings.d.ts.map +1 -0
  226. package/src/shade/renderer/deferred/{TonemapDisplaySettings.js → tonemap/TonemapDisplaySettings.js} +5 -5
  227. package/src/shade/renderer/deferred/{shader_tonemap_HDR.d.ts → tonemap/shader_tonemap_HDR.d.ts} +1 -1
  228. package/src/shade/renderer/deferred/tonemap/shader_tonemap_HDR.d.ts.map +1 -0
  229. package/src/shade/renderer/deferred/{shader_tonemap_HDR.js → tonemap/shader_tonemap_HDR.js} +9 -9
  230. package/src/shade/renderer/deferred/tonemap/shader_tonemap_HDR_aces.d.ts +17 -0
  231. package/src/shade/renderer/deferred/tonemap/shader_tonemap_HDR_aces.d.ts.map +1 -0
  232. package/src/shade/renderer/deferred/tonemap/shader_tonemap_HDR_aces.js +101 -0
  233. package/src/shade/renderer/deferred/{shader_tonemap_HDR_none.d.ts → tonemap/shader_tonemap_HDR_none.d.ts} +1 -1
  234. package/src/shade/renderer/deferred/tonemap/shader_tonemap_HDR_none.d.ts.map +1 -0
  235. package/src/shade/renderer/deferred/{shader_tonemap_HDR_none.js → tonemap/shader_tonemap_HDR_none.js} +6 -6
  236. package/src/shade/renderer/deferred/{shader_tonemap_HDR_pbr_neutral.d.ts → tonemap/shader_tonemap_HDR_pbr_neutral.d.ts} +1 -1
  237. package/src/shade/renderer/deferred/tonemap/shader_tonemap_HDR_pbr_neutral.d.ts.map +1 -0
  238. package/src/shade/renderer/deferred/{shader_tonemap_HDR_pbr_neutral.js → tonemap/shader_tonemap_HDR_pbr_neutral.js} +8 -8
  239. package/src/shade/renderer/deferred/{shader_tonemap_LDR.d.ts → tonemap/shader_tonemap_LDR.d.ts} +1 -1
  240. package/src/shade/renderer/deferred/tonemap/shader_tonemap_LDR.d.ts.map +1 -0
  241. package/src/shade/renderer/deferred/{shader_tonemap_LDR.js → tonemap/shader_tonemap_LDR.js} +10 -10
  242. package/src/shade/renderer/deferred/tonemap/shader_tonemap_LDR_aces.d.ts +10 -0
  243. package/src/shade/renderer/deferred/tonemap/shader_tonemap_LDR_aces.d.ts.map +1 -0
  244. package/src/shade/renderer/deferred/tonemap/shader_tonemap_LDR_aces.js +77 -0
  245. package/src/shade/renderer/deferred/{shader_tonemap_LDR_none.d.ts → tonemap/shader_tonemap_LDR_none.d.ts} +1 -1
  246. package/src/shade/renderer/deferred/tonemap/shader_tonemap_LDR_none.d.ts.map +1 -0
  247. package/src/shade/renderer/deferred/{shader_tonemap_LDR_none.js → tonemap/shader_tonemap_LDR_none.js} +7 -7
  248. package/src/shade/renderer/deferred/{shader_tonemap_LDR_pbr_neutral.d.ts → tonemap/shader_tonemap_LDR_pbr_neutral.d.ts} +1 -1
  249. package/src/shade/renderer/deferred/tonemap/shader_tonemap_LDR_pbr_neutral.d.ts.map +1 -0
  250. package/src/shade/renderer/deferred/{shader_tonemap_LDR_pbr_neutral.js → tonemap/shader_tonemap_LDR_pbr_neutral.js} +8 -8
  251. package/src/shade/renderer/extension/RenderExtension.d.ts +7 -0
  252. package/src/shade/renderer/extension/RenderExtension.d.ts.map +1 -1
  253. package/src/shade/renderer/extension/RenderExtension.js +9 -0
  254. package/src/shade/renderer/extension/RenderExtensionRegistry.d.ts +6 -0
  255. package/src/shade/renderer/extension/RenderExtensionRegistry.d.ts.map +1 -1
  256. package/src/shade/renderer/extension/RenderExtensionRegistry.js +15 -0
  257. package/src/shade/renderer/fluid/GPUFluidCascade.d.ts +10 -3
  258. package/src/shade/renderer/fluid/GPUFluidCascade.d.ts.map +1 -1
  259. package/src/shade/renderer/fluid/GPUFluidCascade.js +15 -0
  260. package/src/shade/renderer/fluid/GPUFluidCascadeStack.d.ts +8 -1
  261. package/src/shade/renderer/fluid/GPUFluidCascadeStack.d.ts.map +1 -1
  262. package/src/shade/renderer/fluid/GPUFluidCascadeStack.js +11 -0
  263. package/src/shade/renderer/fluid/coupling/chunk_fluid_cascade_parent.d.ts.map +1 -1
  264. package/src/shade/renderer/fluid/coupling/chunk_fluid_cascade_parent.js +51 -48
  265. package/src/shade/renderer/fluid/forcing/GPUFluidForcing.d.ts +6 -6
  266. package/src/shade/renderer/fluid/mac/FluidMacPasses.d.ts +6 -0
  267. package/src/shade/renderer/fluid/mac/FluidMacPasses.d.ts.map +1 -1
  268. package/src/shade/renderer/fluid/mac/FluidMacPasses.js +16 -0
  269. package/src/shade/renderer/fluid/mac/chunk_fluid_mac_seams.d.ts.map +1 -1
  270. package/src/shade/renderer/fluid/mac/chunk_fluid_mac_seams.js +15 -3
  271. package/src/shade/renderer/fluid/mac/chunk_v3_mac_lattice_corners.d.ts.map +1 -1
  272. package/src/shade/renderer/fluid/mac/chunk_v3_mac_lattice_corners.js +102 -96
  273. package/src/shade/renderer/fluid/mac/shader_fluid_mac_advect_correct.js +12 -12
  274. package/src/shade/renderer/fluid/mac/shader_fluid_mac_advect_predict.js +12 -12
  275. package/src/shade/renderer/fluid/pressure/GPUFluidPressureSolve.d.ts +8 -1
  276. package/src/shade/renderer/fluid/pressure/GPUFluidPressureSolve.d.ts.map +1 -1
  277. package/src/shade/renderer/fluid/pressure/GPUFluidPressureSolve.js +16 -0
  278. package/src/shade/renderer/fluid/publish/FluidWindPublish.d.ts +7 -0
  279. package/src/shade/renderer/fluid/publish/FluidWindPublish.d.ts.map +1 -1
  280. package/src/shade/renderer/fluid/publish/FluidWindPublish.js +10 -0
  281. package/src/shade/renderer/fluid/query/GPUFluidQueries.d.ts +1 -1
  282. package/src/shade/renderer/geometry/bvh/GPUBLASRefitBatch.js +2 -2
  283. package/src/shade/renderer/loader/SceneBundle.d.ts +7 -0
  284. package/src/shade/renderer/loader/SceneBundle.d.ts.map +1 -1
  285. package/src/shade/renderer/loader/SceneBundle.js +119 -111
  286. package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
  287. package/src/shade/renderer/material/standard/fragment_gbuffer.d.ts +4 -0
  288. package/src/shade/renderer/material/standard/fragment_gbuffer.d.ts.map +1 -1
  289. package/src/shade/renderer/material/standard/fragment_gbuffer.js +6 -5
  290. package/src/shade/renderer/object_property/chunk_write_object_property_node3d.d.ts +8 -7
  291. package/src/shade/renderer/object_property/chunk_write_object_property_node3d.d.ts.map +1 -1
  292. package/src/shade/renderer/object_property/chunk_write_object_property_node3d.js +9 -8
  293. package/src/shade/renderer/particles/GPUParticleSystem.d.ts.map +1 -1
  294. package/src/shade/renderer/particles/GPUParticleSystem.js +3 -1
  295. package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.d.ts.map +1 -1
  296. package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.js +9 -4
  297. package/src/shade/renderer/postprocess/nss/NSS.d.ts +1 -1
  298. package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader.d.ts.map +1 -1
  299. package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader.js +9 -7
  300. package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment.d.ts.map +1 -1
  301. package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment.js +15 -7
  302. package/src/shade/renderer/rasterize/native/avboit/avboit_draw_fragment_body.d.ts.map +1 -1
  303. package/src/shade/renderer/rasterize/native/avboit/avboit_draw_fragment_body.js +6 -4
  304. package/src/shade/renderer/rasterize/native/oit/oit_resolve_fragment_body.js +3 -3
  305. package/src/shade/renderer/rasterize/native/oit/shader_oit_generate_moments.d.ts.map +1 -1
  306. package/src/shade/renderer/rasterize/native/oit/shader_oit_generate_moments.js +8 -5
  307. package/src/shade/renderer/rasterize/native/viz/viz_rasterization_alpha_tested_pass_descriptor.d.ts.map +1 -1
  308. package/src/shade/renderer/rasterize/native/viz/viz_rasterization_alpha_tested_pass_descriptor.js +4 -3
  309. package/src/shade/renderer/shader/chunk/color/tonemap/ACES_TONE_MAPPING_BRIEF_2026_10_17.md +160 -0
  310. package/src/shade/renderer/shader/chunk/color/tonemap/HDR_TONE_MAPPING_FORMS_BRIEF_2026_10_16.md +5 -1
  311. package/src/shade/renderer/shader/chunk/color/tonemap/SDR_TONE_MAPPING_BRIEF_2026_10_16.md +15 -5
  312. package/src/shade/renderer/shader/chunk/color/tonemap/aces/aces2_transform_block.d.ts +41 -0
  313. package/src/shade/renderer/shader/chunk/color/tonemap/aces/aces2_transform_block.d.ts.map +1 -0
  314. package/src/shade/renderer/shader/chunk/color/tonemap/aces/aces2_transform_block.js +692 -0
  315. package/src/shade/renderer/shader/chunk/color/tonemap/aces/chunk_aces2_output_transform.d.ts +25 -0
  316. package/src/shade/renderer/shader/chunk/color/tonemap/aces/chunk_aces2_output_transform.d.ts.map +1 -0
  317. package/src/shade/renderer/shader/chunk/color/tonemap/aces/chunk_aces2_output_transform.js +446 -0
  318. package/src/shade/renderer/shader/chunk/color/tonemap/aces/chunk_aces_ue_matrices.d.ts +22 -0
  319. package/src/shade/renderer/shader/chunk/color/tonemap/aces/chunk_aces_ue_matrices.d.ts.map +1 -0
  320. package/src/shade/renderer/shader/chunk/color/tonemap/aces/chunk_aces_ue_matrices.js +68 -0
  321. package/src/shade/renderer/shader/chunk/color/tonemap/aces/chunk_tonemap_ue_filmic.d.ts +32 -0
  322. package/src/shade/renderer/shader/chunk/color/tonemap/aces/chunk_tonemap_ue_filmic.d.ts.map +1 -0
  323. package/src/shade/renderer/shader/chunk/color/tonemap/aces/chunk_tonemap_ue_filmic.js +163 -0
  324. package/src/shade/renderer/shader/chunk/color/tonemap/chunk_PAPER_WHITE_NITS.d.ts +10 -3
  325. package/src/shade/renderer/shader/chunk/color/tonemap/chunk_PAPER_WHITE_NITS.d.ts.map +1 -1
  326. package/src/shade/renderer/shader/chunk/color/tonemap/chunk_PAPER_WHITE_NITS.js +12 -4
  327. package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.js +1 -1
  328. package/src/shade/renderer/texture/SAMPLER_ANISOTROPIC_CLAMP.d.ts +9 -0
  329. package/src/shade/renderer/texture/SAMPLER_ANISOTROPIC_CLAMP.d.ts.map +1 -0
  330. package/src/shade/renderer/texture/SAMPLER_ANISOTROPIC_CLAMP.js +17 -0
  331. package/src/shade/renderer/texture/SAMPLER_LINEAR_UPSCALE.d.ts +8 -0
  332. package/src/shade/renderer/texture/SAMPLER_LINEAR_UPSCALE.d.ts.map +1 -1
  333. package/src/shade/renderer/texture/SAMPLER_LINEAR_UPSCALE.js +28 -20
  334. package/src/shade/renderer/texture/SAMPLER_TRILINEAR_CLAMP.d.ts +8 -0
  335. package/src/shade/renderer/texture/SAMPLER_TRILINEAR_CLAMP.d.ts.map +1 -0
  336. package/src/shade/renderer/texture/SAMPLER_TRILINEAR_CLAMP.js +15 -0
  337. package/src/shade/renderer/view/chunk_view_mip_bias.d.ts +21 -0
  338. package/src/shade/renderer/view/chunk_view_mip_bias.d.ts.map +1 -0
  339. package/src/shade/renderer/view/chunk_view_mip_bias.js +44 -0
  340. package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.js +1 -1
  341. package/src/shade/wgsl/emulator/WGSLLanguageCore.d.ts.map +1 -1
  342. package/src/shade/wgsl/emulator/WGSLLanguageCore.js +105 -26
  343. package/src/engine/graphics/composit/CompositingStages.d.ts +0 -6
  344. package/src/engine/graphics/composit/CompositingStages.d.ts.map +0 -1
  345. package/src/engine/graphics/composit/CompositingStages.js +0 -8
  346. package/src/engine/graphics/geometry/buffered/computeBufferAttributeHash.d.ts +0 -7
  347. package/src/engine/graphics/geometry/buffered/computeBufferAttributeHash.d.ts.map +0 -1
  348. package/src/engine/graphics/geometry/buffered/computeBufferAttributeHash.js +0 -24
  349. package/src/engine/graphics/geometry/buffered/computeGeometryBoundingSphereMiniball.d.ts +0 -8
  350. package/src/engine/graphics/geometry/buffered/computeGeometryBoundingSphereMiniball.d.ts.map +0 -1
  351. package/src/engine/graphics/geometry/buffered/computeGeometryBoundingSphereMiniball.js +0 -17
  352. package/src/engine/graphics/geometry/buffered/computeGeometryEquality.d.ts +0 -8
  353. package/src/engine/graphics/geometry/buffered/computeGeometryEquality.d.ts.map +0 -1
  354. package/src/engine/graphics/geometry/buffered/computeGeometryEquality.js +0 -60
  355. package/src/engine/graphics/geometry/buffered/computeGeometryHash.d.ts +0 -7
  356. package/src/engine/graphics/geometry/buffered/computeGeometryHash.d.ts.map +0 -1
  357. package/src/engine/graphics/geometry/buffered/computeGeometryHash.js +0 -26
  358. package/src/engine/graphics/geometry/buffered/compute_buffer_geometry_byte_size.d.ts +0 -7
  359. package/src/engine/graphics/geometry/buffered/compute_buffer_geometry_byte_size.d.ts.map +0 -1
  360. package/src/engine/graphics/geometry/buffered/compute_buffer_geometry_byte_size.js +0 -23
  361. package/src/engine/graphics/geometry/instancing/geometry_copy.d.ts +0 -7
  362. package/src/engine/graphics/geometry/instancing/geometry_copy.d.ts.map +0 -1
  363. package/src/engine/graphics/geometry/instancing/geometry_copy.js +0 -15
  364. package/src/engine/graphics/geometry/instancing/rewriteMaterial.d.ts +0 -2
  365. package/src/engine/graphics/geometry/instancing/rewriteMaterial.d.ts.map +0 -1
  366. package/src/engine/graphics/geometry/instancing/rewriteMaterial.js +0 -57
  367. package/src/engine/graphics/geometry/ribbon/Quad.d.ts +0 -96
  368. package/src/engine/graphics/geometry/ribbon/Quad.d.ts.map +0 -1
  369. package/src/engine/graphics/geometry/ribbon/Quad.js +0 -213
  370. package/src/engine/graphics/geometry/ribbon/copyAttributeV3.d.ts +0 -9
  371. package/src/engine/graphics/geometry/ribbon/copyAttributeV3.d.ts.map +0 -1
  372. package/src/engine/graphics/geometry/ribbon/copyAttributeV3.js +0 -12
  373. package/src/engine/graphics/geometry/ribbon/copyAttributeValue.d.ts +0 -10
  374. package/src/engine/graphics/geometry/ribbon/copyAttributeValue.d.ts.map +0 -1
  375. package/src/engine/graphics/geometry/ribbon/copyAttributeValue.js +0 -17
  376. package/src/engine/graphics/geometry/ribbon/equalAttributeV3.d.ts +0 -10
  377. package/src/engine/graphics/geometry/ribbon/equalAttributeV3.d.ts.map +0 -1
  378. package/src/engine/graphics/geometry/ribbon/equalAttributeV3.js +0 -13
  379. package/src/engine/graphics/geometry/ribbon/equalAttributeValue.d.ts +0 -11
  380. package/src/engine/graphics/geometry/ribbon/equalAttributeValue.d.ts.map +0 -1
  381. package/src/engine/graphics/geometry/ribbon/equalAttributeValue.js +0 -24
  382. package/src/engine/graphics/geometry/ribbon/rotateRibbon.d.ts +0 -6
  383. package/src/engine/graphics/geometry/ribbon/rotateRibbon.d.ts.map +0 -1
  384. package/src/engine/graphics/geometry/ribbon/rotateRibbon.js +0 -37
  385. package/src/engine/graphics/geometry/ribbon/updateTipPosition.d.ts +0 -9
  386. package/src/engine/graphics/geometry/ribbon/updateTipPosition.d.ts.map +0 -1
  387. package/src/engine/graphics/geometry/ribbon/updateTipPosition.js +0 -52
  388. package/src/engine/graphics/geometry/skining/computeSkinnedMeshVertices.d.ts +0 -8
  389. package/src/engine/graphics/geometry/skining/computeSkinnedMeshVertices.d.ts.map +0 -1
  390. package/src/engine/graphics/geometry/skining/computeSkinnedMeshVertices.js +0 -54
  391. package/src/engine/graphics/render/RenderPassType.d.ts +0 -6
  392. package/src/engine/graphics/render/RenderPassType.d.ts.map +0 -1
  393. package/src/engine/graphics/render/RenderPassType.js +0 -8
  394. package/src/engine/graphics/render/layers/RenderLayer.d.ts +0 -78
  395. package/src/engine/graphics/render/layers/RenderLayer.d.ts.map +0 -1
  396. package/src/engine/graphics/render/layers/RenderLayer.js +0 -95
  397. package/src/engine/graphics/render/layers/RenderLayerManager.d.ts +0 -72
  398. package/src/engine/graphics/render/layers/RenderLayerManager.d.ts.map +0 -1
  399. package/src/engine/graphics/render/layers/RenderLayerManager.js +0 -160
  400. package/src/engine/graphics/render/layers/RenderLayerManagerState.d.ts +0 -18
  401. package/src/engine/graphics/render/layers/RenderLayerManagerState.d.ts.map +0 -1
  402. package/src/engine/graphics/render/layers/RenderLayerManagerState.js +0 -48
  403. package/src/engine/graphics/render/layers/RenderLayerState.d.ts +0 -18
  404. package/src/engine/graphics/render/layers/RenderLayerState.d.ts.map +0 -1
  405. package/src/engine/graphics/render/layers/RenderLayerState.js +0 -27
  406. package/src/engine/graphics/render/layers/RenderLayerUtils.d.ts +0 -8
  407. package/src/engine/graphics/render/layers/RenderLayerUtils.d.ts.map +0 -1
  408. package/src/engine/graphics/render/layers/RenderLayerUtils.js +0 -103
  409. package/src/engine/graphics/render/make_bvh_visibility_builder.d.ts +0 -10
  410. package/src/engine/graphics/render/make_bvh_visibility_builder.d.ts.map +0 -1
  411. package/src/engine/graphics/render/make_bvh_visibility_builder.js +0 -64
  412. package/src/engine/graphics/render/view/CameraViewFlags.d.ts +0 -7
  413. package/src/engine/graphics/render/view/CameraViewFlags.d.ts.map +0 -1
  414. package/src/engine/graphics/render/view/CameraViewFlags.js +0 -9
  415. package/src/engine/graphics/render/visibility/IncrementalDeltaSet.d.ts +0 -143
  416. package/src/engine/graphics/render/visibility/IncrementalDeltaSet.d.ts.map +0 -1
  417. package/src/engine/graphics/render/visibility/IncrementalDeltaSet.js +0 -328
  418. package/src/engine/graphics/render/visibility/VisibilityComputer.d.ts +0 -39
  419. package/src/engine/graphics/render/visibility/VisibilityComputer.d.ts.map +0 -1
  420. package/src/engine/graphics/render/visibility/VisibilityComputer.js +0 -80
  421. package/src/engine/graphics/render/visibility/VisibilityFilter.d.ts +0 -29
  422. package/src/engine/graphics/render/visibility/VisibilityFilter.d.ts.map +0 -1
  423. package/src/engine/graphics/render/visibility/VisibilityFilter.js +0 -37
  424. package/src/engine/graphics3/animation/write_graph_playback.d.ts +0 -24
  425. package/src/engine/graphics3/animation/write_graph_playback.d.ts.map +0 -1
  426. package/src/engine/graphics3/animation/write_graph_playback.js +0 -48
  427. package/src/shade/renderer/deferred/TonemapDisplaySettings.d.ts.map +0 -1
  428. package/src/shade/renderer/deferred/shader_tonemap_HDR.d.ts.map +0 -1
  429. package/src/shade/renderer/deferred/shader_tonemap_HDR_none.d.ts.map +0 -1
  430. package/src/shade/renderer/deferred/shader_tonemap_HDR_pbr_neutral.d.ts.map +0 -1
  431. package/src/shade/renderer/deferred/shader_tonemap_LDR.d.ts.map +0 -1
  432. package/src/shade/renderer/deferred/shader_tonemap_LDR_none.d.ts.map +0 -1
  433. package/src/shade/renderer/deferred/shader_tonemap_LDR_pbr_neutral.d.ts.map +0 -1
@@ -1,26 +1,32 @@
1
1
  /**
2
- * Hand one clip list's blend down to the renderer: what each of the entity's clips weighs, and where
3
- * each of the audible ones is playing.
2
+ * @typedef {import("../../../shade/renderer/animation/GPUAnimationManager.js").GPUAnimationManager} GPUAnimationManager
3
+ * @typedef {import("./AnimationClips.js").AnimationClips} AnimationClips
4
+ */
5
+ /**
6
+ * Hand an entity's {@link AnimationClips} blend down to the renderer: what each of its playable
7
+ * clips weighs, and where each of the audible ones is playing.
4
8
  *
5
9
  * **Time is written every frame and weight only when it moves.** The clock is the reason this
6
10
  * function exists — Shade can advance a clip itself and is never asked to, because the pose gameplay
7
- * reads and the pose on the screen have to be the same one (I-4) — while a building looping one clip
8
- * has the weight it had last frame and there is nothing to say. Both calls go through the clip
9
- * table's upload dedupe, so a repeated value costs a comparison rather than a transfer; skipping the
10
- * unchanged weights is about not doing the read either.
11
+ * reads and the pose on the screen have to be the same one (I-4) — while an entity looping one clip
12
+ * or sitting in one graph state has the weights it had last frame and there is nothing to say. Both
13
+ * calls go through the clip table's upload dedupe, so a repeated value costs a comparison rather
14
+ * than a transfer; skipping the unchanged weights is about not doing the read either.
11
15
  *
12
16
  * A clip at zero weight has its time left alone. It contributes nothing wherever it is, and where it
13
17
  * is, is where it stopped.
14
18
  *
15
19
  * @param {GPUAnimationManager} manager
16
- * @param {ClipListPlayer} player
17
- * @param {ArrayLike<number>} clip_ids the manager's id for each of the entity's clips, in its
18
- * `AnimationClips`' order, or {@link CLIP_NOT_REGISTERED} for one this driver does not play. Those are
20
+ * @param {AnimationClips} clips
21
+ * @param {ArrayLike<number>} [clip_ids] the manager's id for each of the entity's clips, in
22
+ * `clips.clips`' order, or {@link CLIP_NOT_REGISTERED} for one the driver does not play. Those are
19
23
  * skipped rather than written at weight zero: an unregistered clip has no row, and it is unregistered
20
24
  * precisely so that it marks no joints (D37)
21
- * @param {Float32Array} written the weight each of those clips was last given; updated in place.
25
+ * @param {Float32Array} [written] the weight each of those clips was last given; updated in place.
22
26
  * A value no weight can take — `-1` — is how a caller says it does not know, which is the case
23
27
  * after a renderer restart
24
28
  */
25
- export function write_clip_playback(manager: GPUAnimationManager, player: ClipListPlayer, clip_ids: ArrayLike<number>, written: Float32Array): void;
29
+ export function write_clip_playback(manager: GPUAnimationManager, clips: AnimationClips, clip_ids?: ArrayLike<number>, written?: Float32Array): void;
30
+ export type GPUAnimationManager = import("../../../shade/renderer/animation/GPUAnimationManager.js").GPUAnimationManager;
31
+ export type AnimationClips = import("./AnimationClips.js").AnimationClips;
26
32
  //# sourceMappingURL=write_clip_playback.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"write_clip_playback.d.ts","sourceRoot":"","sources":["../../../../../src/engine/graphics3/animation/write_clip_playback.js"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,oGARW,UAAU,MAAM,CAAC,WAIjB,YAAY,QAoCtB"}
1
+ {"version":3,"file":"write_clip_playback.d.ts","sourceRoot":"","sources":["../../../../../src/engine/graphics3/animation/write_clip_playback.js"],"names":[],"mappings":"AAGA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,6CAVW,mBAAmB,SACnB,cAAc,aACd,UAAU,MAAM,CAAC,YAIjB,YAAY,QAwCtB;kCAhEY,OAAO,0DAA0D,EAAE,mBAAmB;6BACtF,OAAO,qBAAqB,EAAE,cAAc"}
@@ -2,59 +2,68 @@ import { assert } from "../../../core/assert.js";
2
2
  import { CLIP_NOT_REGISTERED } from "../register_clips.js";
3
3
 
4
4
  /**
5
- * Hand one clip list's blend down to the renderer: what each of the entity's clips weighs, and where
6
- * each of the audible ones is playing.
5
+ * @typedef {import("../../../shade/renderer/animation/GPUAnimationManager.js").GPUAnimationManager} GPUAnimationManager
6
+ * @typedef {import("./AnimationClips.js").AnimationClips} AnimationClips
7
+ */
8
+
9
+ /**
10
+ * Hand an entity's {@link AnimationClips} blend down to the renderer: what each of its playable
11
+ * clips weighs, and where each of the audible ones is playing.
7
12
  *
8
13
  * **Time is written every frame and weight only when it moves.** The clock is the reason this
9
14
  * function exists — Shade can advance a clip itself and is never asked to, because the pose gameplay
10
- * reads and the pose on the screen have to be the same one (I-4) — while a building looping one clip
11
- * has the weight it had last frame and there is nothing to say. Both calls go through the clip
12
- * table's upload dedupe, so a repeated value costs a comparison rather than a transfer; skipping the
13
- * unchanged weights is about not doing the read either.
15
+ * reads and the pose on the screen have to be the same one (I-4) — while an entity looping one clip
16
+ * or sitting in one graph state has the weights it had last frame and there is nothing to say. Both
17
+ * calls go through the clip table's upload dedupe, so a repeated value costs a comparison rather
18
+ * than a transfer; skipping the unchanged weights is about not doing the read either.
14
19
  *
15
20
  * A clip at zero weight has its time left alone. It contributes nothing wherever it is, and where it
16
21
  * is, is where it stopped.
17
22
  *
18
23
  * @param {GPUAnimationManager} manager
19
- * @param {ClipListPlayer} player
20
- * @param {ArrayLike<number>} clip_ids the manager's id for each of the entity's clips, in its
21
- * `AnimationClips`' order, or {@link CLIP_NOT_REGISTERED} for one this driver does not play. Those are
24
+ * @param {AnimationClips} clips
25
+ * @param {ArrayLike<number>} [clip_ids] the manager's id for each of the entity's clips, in
26
+ * `clips.clips`' order, or {@link CLIP_NOT_REGISTERED} for one the driver does not play. Those are
22
27
  * skipped rather than written at weight zero: an unregistered clip has no row, and it is unregistered
23
28
  * precisely so that it marks no joints (D37)
24
- * @param {Float32Array} written the weight each of those clips was last given; updated in place.
29
+ * @param {Float32Array} [written] the weight each of those clips was last given; updated in place.
25
30
  * A value no weight can take — `-1` — is how a caller says it does not know, which is the case
26
31
  * after a renderer restart
27
32
  */
28
- export function write_clip_playback(manager, player, clip_ids, written) {
33
+ export function write_clip_playback(
34
+ manager,
35
+ clips,
36
+ clip_ids = clips.clip_registration.ids,
37
+ written = clips.written
38
+ ) {
29
39
  assert.defined(manager, 'manager');
30
- assert.defined(player, 'player');
40
+ assert.defined(clips, 'clips');
31
41
 
32
- const weights = player.weights;
42
+ const weights = clips.weights;
43
+ const times = clips.times;
44
+ const played = clips.played_slots;
33
45
 
34
46
  assert.equal(clip_ids.length, weights.length, 'clip_ids.length');
35
47
  assert.equal(written.length, weights.length, 'written.length');
36
48
 
37
- for (let i = 0; i < weights.length; i++) {
38
- if (clip_ids[i] === CLIP_NOT_REGISTERED) {
49
+ for (let i = 0; i < played.length; i++) {
50
+ const slot = played[i];
51
+ const clip_id = clip_ids[slot];
52
+
53
+ if (clip_id === CLIP_NOT_REGISTERED) {
39
54
  continue;
40
55
  }
41
56
 
42
- const weight = weights[i];
57
+ const weight = weights[slot];
43
58
 
44
- if (weight !== written[i]) {
45
- manager.set_playback_weight(clip_ids[i], weight);
59
+ if (weight !== written[slot]) {
60
+ manager.set_playback_weight(clip_id, weight);
46
61
 
47
- written[i] = weight;
62
+ written[slot] = weight;
48
63
  }
49
- }
50
-
51
- const playbacks = player.playbacks;
52
-
53
- for (let i = 0; i < playbacks.length; i++) {
54
- const playback = playbacks[i];
55
64
 
56
- if (playback.weight > 0) {
57
- manager.set_time(clip_ids[playback.slot], playback.time);
65
+ if (weight > 0) {
66
+ manager.set_time(clip_id, times[slot]);
58
67
  }
59
68
  }
60
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GPUDecalRenderer.d.ts","sourceRoot":"","sources":["../../../../../src/engine/graphics3/decal/GPUDecalRenderer.js"],"names":[],"mappings":"AA4CA;;;;;;;GAOG;AACH;IA6BI;;;;;;;;;;;OAWG;IACH;QAP8B,KAAK;QACL,OAAO,EAA1B,YAAY;QACC,YAAY,EAAzB,MAAM;QACU,YAAY;QACZ,YAAY;QACZ,SAAS;aAuBnC;IAgPD,gBAoBC;;CACJ"}
1
+ {"version":3,"file":"GPUDecalRenderer.d.ts","sourceRoot":"","sources":["../../../../../src/engine/graphics3/decal/GPUDecalRenderer.js"],"names":[],"mappings":"AA4CA;;;;;;;GAOG;AACH;IA6BI;;;;;;;;;;;OAWG;IACH;QAP8B,KAAK;QACL,OAAO,EAA1B,YAAY;QACC,YAAY,EAAzB,MAAM;QACU,YAAY;QACZ,YAAY;QACZ,SAAS;aAuBnC;IAkPD,gBAoBC;;CACJ"}
@@ -7,7 +7,7 @@ import { TextureViewDescriptor } from "../../../shade/descriptor/texture/Texture
7
7
  import { TextureResourceDescriptor } from "../../../shade/device/graph/TextureResourceDescriptor.js";
8
8
  import { G_BUFFER_ALBEDO_FORMAT } from "../../../shade/renderer/gbuffer/G_BUFFER_ALBEDO_FORMAT.js";
9
9
  import { TextureFilterType } from "../../../shade/renderer/texture/TextureFilterType.js";
10
- import { SAMPLER_LINEAR_UPSCALE } from "../../../shade/renderer/texture/SAMPLER_LINEAR_UPSCALE.js";
10
+ import { SAMPLER_ANISOTROPIC_CLAMP } from "../../../shade/renderer/texture/SAMPLER_ANISOTROPIC_CLAMP.js";
11
11
  import { graph_build_decal_clusters } from "./graph_build_decal_clusters.js";
12
12
  import { DECAL_RECORD_WORD_COUNT } from "./DECAL_GPU_RECORD.js";
13
13
  import { shader_decal_composite } from "./shader_decal_composite.js";
@@ -138,7 +138,7 @@ export class GPUDecalRenderer {
138
138
  const data = {};
139
139
 
140
140
  const pass = graph.add('decals / composite', data, (data, resources, execution) => {
141
- this.#execute(data, resources, execution, camera, cluster_params, resolution);
141
+ this.#execute(data, resources, execution, frame.view, cluster_params, resolution);
142
142
  });
143
143
 
144
144
  data.depth = pass.read(frame.get(ViewTextures).depth);
@@ -182,11 +182,12 @@ export class GPUDecalRenderer {
182
182
  * @param data
183
183
  * @param {FramePassResources} resources
184
184
  * @param {GraphicsExecutionContext} context
185
- * @param {GPUCameraContext} camera
185
+ * @param {GPUViewContext} view_context
186
186
  * @param {number[]} cluster_params
187
187
  * @param {number[]} resolution
188
188
  */
189
- #execute(data, resources, context, camera, cluster_params, resolution) {
189
+ #execute(data, resources, context, view_context, cluster_params, resolution) {
190
+ const camera = view_context.camera;
190
191
  const encoder = context.encoder;
191
192
  const graphics = context.graphics;
192
193
 
@@ -197,7 +198,7 @@ export class GPUDecalRenderer {
197
198
  distance_max: camera.camera.far,
198
199
  };
199
200
 
200
- const sampler = graphics.samplers.obtain(SAMPLER_LINEAR_UPSCALE);
201
+ const sampler = graphics.samplers.obtain(SAMPLER_ANISOTROPIC_CLAMP);
201
202
 
202
203
  /**
203
204
  * @param {number} handle
@@ -217,7 +218,8 @@ export class GPUDecalRenderer {
217
218
  shader_decal_composite.draw({
218
219
  encoder,
219
220
  bindings: {
220
- camera: camera.buffer,
221
+ camera: camera.buffer,
222
+ view: view_context.uniform_buffer.buffer,
221
223
  settings,
222
224
  gBufferPBR: view(data.in_pbr),
223
225
  gBufferNormal: view(data.in_normal),
@@ -1 +1 @@
1
- {"version":3,"file":"shader_decal_composite.d.ts","sourceRoot":"","sources":["../../../../../src/engine/graphics3/decal/shader_decal_composite.js"],"names":[],"mappings":"AA8DA,oDAKG;AAqSH;;;;;;;;;;;;GAYG;AACH,qCAFU,WAAW,CAclB;6BAtV0B,qDAAqD;4BAPtD,+CAA+C"}
1
+ {"version":3,"file":"shader_decal_composite.d.ts","sourceRoot":"","sources":["../../../../../src/engine/graphics3/decal/shader_decal_composite.js"],"names":[],"mappings":"AAgEA,oDAKG;AAySH;;;;;;;;;;;;GAYG;AACH,qCAFU,WAAW,CAclB;6BA1V0B,qDAAqD;4BAPtD,+CAA+C"}
@@ -1,4 +1,6 @@
1
- import { CAMERA_UNIFORM_STRUCT } from "../../../shade/renderer/camera/CAMERA_UNIFORM_STRUCT.js";
1
+ import { CAMERA_UNIFORM_STRUCT } from "../../../shade/renderer/camera/CAMERA_UNIFORM_STRUCT.js";
2
+ import { VIEW_UNIFORM_STRUCT } from "../../../shade/renderer/view/VIEW_UNIFORM_STRUCT.js";
3
+ import { chunk_view_mip_bias } from "../../../shade/renderer/view/chunk_view_mip_bias.js";
2
4
  import { G_BUFFER_ALBEDO_FORMAT } from "../../../shade/renderer/gbuffer/G_BUFFER_ALBEDO_FORMAT.js";
3
5
  import {
4
6
  chunk_cluster_depth_to_z_slice
@@ -73,7 +75,8 @@ const resources = new ShaderResourceSetDescriptor();
73
75
  resources.setImmediate("settings", DECAL_COMPOSITE_SETTINGS);
74
76
 
75
77
  resources.createGroup()
76
- .addUniform("camera", CAMERA_UNIFORM_STRUCT);
78
+ .addUniform("camera", CAMERA_UNIFORM_STRUCT)
79
+ .addUniform("view", VIEW_UNIFORM_STRUCT);
77
80
 
78
81
  /*
79
82
  The two integer targets are declared as such, exactly as `shader_deferred_main` declares the same
@@ -243,6 +246,8 @@ fn main(
243
246
  var normal = shading_normal;
244
247
  var emissive = rgbe9995_decode(old_emissive);
245
248
 
249
+ let uv_bias = view_uv_derivative_bias(view.upscale_ratio);
250
+
246
251
  for (var i = 0u; i < metadata.count; i++) {
247
252
  let decal_index = cluster_data[metadata.offset + i];
248
253
 
@@ -274,8 +279,8 @@ fn main(
274
279
  let local_x = (inverse * vec4<f32>(position_x, 1.0)).xy;
275
280
  let local_y = (inverse * vec4<f32>(position_y, 1.0)).xy;
276
281
 
277
- let duv_dx = local_x - local.xy;
278
- let duv_dy = local_y - local.xy;
282
+ let duv_dx = (local_x - local.xy) * uv_bias.x;
283
+ let duv_dy = (local_y - local.xy) * uv_bias.y;
279
284
 
280
285
  let lod = decal_vec4(decal_index, ${DECAL_RECORD_OFFSET_LOD}u);
281
286
 
@@ -354,7 +359,8 @@ fn main(
354
359
  chunk_rgbe9995_encode,
355
360
  chunk_light_cluster_resolution_xy_from_screen,
356
361
  chunk_cluster_depth_to_z_slice,
357
- chunk_grid3d_to_index
362
+ chunk_grid3d_to_index,
363
+ chunk_view_mip_bias
358
364
  ]
359
365
  );
360
366
 
@@ -1,12 +1,12 @@
1
1
  /**
2
- * Collect what every animation driver is playing on an entity, in the form the
3
- * CPU pose evaluator takes.
2
+ * Collect what is playing on an entity, in the form the CPU pose evaluator
3
+ * takes.
4
4
  *
5
- * Both drivers are asked because either may be the one driving it — a combat
6
- * unit runs a state machine, a building runs a clip list — and an entity has
7
- * one of them, so the two sets do not overlap in practice. What they hand back
8
- * is one entry per clip of the model, silent clips included, because that is
9
- * what the GPU's accumulator is summing.
5
+ * Whichever animation driver is running (`AnimationSystem` for a clip list,
6
+ * `AnimationGraphSystem` for a state machine) writes this tick's weights and
7
+ * times into the entity's {@link AnimationClips} sink. What it hands back is
8
+ * one entry per clip the driver plays, silent clips included, because that is
9
+ * what the GPU's accumulator is summing (D37).
10
10
  *
11
11
  * A free function rather than a private helper of
12
12
  * {@link query_entity_node_world_pose} because M3 gave it a second caller:
@@ -1 +1 @@
1
- {"version":3,"file":"collect_entity_playbacks.d.ts","sourceRoot":"","sources":["../../../../../src/engine/graphics3/pose/collect_entity_playbacks.js"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,iDARW,cAAc,yCAEd,MAAM,GACJ,IAAI,CAiBhB"}
1
+ {"version":3,"file":"collect_entity_playbacks.d.ts","sourceRoot":"","sources":["../../../../../src/engine/graphics3/pose/collect_entity_playbacks.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,iDARW,cAAc,yCAEd,MAAM,GACJ,IAAI,CAiBhB"}
@@ -1,15 +1,14 @@
1
- import { AnimationGraphSystem } from "../AnimationGraphSystem.js";
2
- import { AnimationSystem } from "../AnimationSystem.js";
1
+ import { AnimationClips } from "../animation/AnimationClips.js";
3
2
 
4
3
  /**
5
- * Collect what every animation driver is playing on an entity, in the form the
6
- * CPU pose evaluator takes.
4
+ * Collect what is playing on an entity, in the form the CPU pose evaluator
5
+ * takes.
7
6
  *
8
- * Both drivers are asked because either may be the one driving it — a combat
9
- * unit runs a state machine, a building runs a clip list — and an entity has
10
- * one of them, so the two sets do not overlap in practice. What they hand back
11
- * is one entry per clip of the model, silent clips included, because that is
12
- * what the GPU's accumulator is summing.
7
+ * Whichever animation driver is running (`AnimationSystem` for a clip list,
8
+ * `AnimationGraphSystem` for a state machine) writes this tick's weights and
9
+ * times into the entity's {@link AnimationClips} sink. What it hands back is
10
+ * one entry per clip the driver plays, silent clips included, because that is
11
+ * what the GPU's accumulator is summing (D37).
13
12
  *
14
13
  * A free function rather than a private helper of
15
14
  * {@link query_entity_node_world_pose} because M3 gave it a second caller:
@@ -26,15 +25,15 @@ import { AnimationSystem } from "../AnimationSystem.js";
26
25
  * @copyright Company Named Limited (c) 2026
27
26
  */
28
27
  export function collect_entity_playbacks(target, entity_manager, entity) {
29
- const graphs = entity_manager.getSystem(AnimationGraphSystem);
28
+ const dataset = entity_manager.dataset;
30
29
 
31
- if (graphs !== null) {
32
- graphs.write_pose_playbacks(target, entity);
30
+ if (dataset === null || entity < 0 || !dataset.entityExists(entity)) {
31
+ return;
33
32
  }
34
33
 
35
- const clips = entity_manager.getSystem(AnimationSystem);
34
+ const clips = dataset.getComponent(entity, AnimationClips);
36
35
 
37
- if (clips !== null) {
38
- clips.write_pose_playbacks(target, entity);
36
+ if (clips !== undefined) {
37
+ clips.write_pose_playbacks(target);
39
38
  }
40
39
  }
@@ -103,6 +103,12 @@ export class Prefab {
103
103
  * @type {ShadeAnimationClip[]}
104
104
  */
105
105
  clips: ShadeAnimationClip[];
106
+ /**
107
+ * Aeroelastic foliage wind rigs whose `root` and joint `target`s address prefab node indices.
108
+ *
109
+ * @type {import("../../../shade/renderer/animation/foliage/FoliageWindRig.js").FoliageWindRig[]}
110
+ */
111
+ foliage_rigs: import("../../../shade/renderer/animation/foliage/FoliageWindRig.js").FoliageWindRig[];
106
112
  /**
107
113
  * Which node the asset calls `name`. A name authored twice answers with the first node in
108
114
  * pre-order, which is the same answer a search would have given.
@@ -1 +1 @@
1
- {"version":3,"file":"Prefab.d.ts","sourceRoot":"","sources":["../../../../../src/engine/graphics3/prefab/Prefab.js"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH;IACI;;;;OAIG;IACH,MAFU,MAAM,CAEP;IAET;;OAEG;IACH,UAFU,eAAe,CAET;IAEhB;;OAEG;IACH,UAFU,aAAa,CAEP;IAEhB;;;;;OAKG;IACH,MAFU,MAAM,CAEN;CACb;AAED;;;;;;;;;;;;;;;GAeG;AACH;IACI;;OAEG;IACH,YAFU,MAAM,CAED;IAEf;;;;OAIG;IACH,QAFU,UAAU,CAEO;IAE3B;;;;OAIG;IACH,MAFU,MAAM,EAAE,CAER;IAEV;;;;;OAKG;IACH,OAFU,WAAW,EAAE,CAEZ;IAEX;;;;;OAKG;IACH,OAFU,YAAY,EAAE,CAEb;IAEX;;;;;;;OAOG;IACH,UAFU,UAAU,CAES;IAE7B;;OAEG;IACH,YAFU,eAAe,EAAE,CAEX;IAEhB;;;;OAIG;IACH,OAFU,IAAI,EAAE,CAEL;IAEX;;;;OAIG;IACH,OAFU,kBAAkB,EAAE,CAEnB;IAOX;;;;;;OAMG;IACH,eAHW,MAAM,GACJ,MAAM,CAMlB;IAED;;OAEG;IACH,oBAcC;IAGL;;;OAGG;IACH,mBAFU,OAAO,CAEQ;;CANxB;8BA1JY,OAAO,qDAAqD,EAAE,eAAe;4BAC7E,OAAO,mDAAmD,EAAE,aAAa;mBACzE,OAAO,2CAA2C,EAAE,IAAI;iCACxD,OAAO,yDAAyD,EAAE,kBAAkB;0BACpF,OAAO,oCAAoC,EAAE,WAAW"}
1
+ {"version":3,"file":"Prefab.d.ts","sourceRoot":"","sources":["../../../../../src/engine/graphics3/prefab/Prefab.js"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH;IACI;;;;OAIG;IACH,MAFU,MAAM,CAEP;IAET;;OAEG;IACH,UAFU,eAAe,CAET;IAEhB;;OAEG;IACH,UAFU,aAAa,CAEP;IAEhB;;;;;OAKG;IACH,MAFU,MAAM,CAEN;CACb;AAED;;;;;;;;;;;;;;;GAeG;AACH;IACI;;OAEG;IACH,YAFU,MAAM,CAED;IAEf;;;;OAIG;IACH,QAFU,UAAU,CAEO;IAE3B;;;;OAIG;IACH,MAFU,MAAM,EAAE,CAER;IAEV;;;;;OAKG;IACH,OAFU,WAAW,EAAE,CAEZ;IAEX;;;;;OAKG;IACH,OAFU,YAAY,EAAE,CAEb;IAEX;;;;;;;OAOG;IACH,UAFU,UAAU,CAES;IAE7B;;OAEG;IACH,YAFU,eAAe,EAAE,CAEX;IAEhB;;;;OAIG;IACH,OAFU,IAAI,EAAE,CAEL;IAEX;;;;OAIG;IACH,OAFU,kBAAkB,EAAE,CAEnB;IAEX;;;;OAIG;IACH,cAFU,OAAO,6DAA6D,EAAE,cAAc,EAAE,CAE9E;IAOlB;;;;;;OAMG;IACH,eAHW,MAAM,GACJ,MAAM,CAMlB;IAED;;OAEG;IACH,oBAcC;IAGL;;;OAGG;IACH,mBAFU,OAAO,CAEQ;;CANxB;8BAjKY,OAAO,qDAAqD,EAAE,eAAe;4BAC7E,OAAO,mDAAmD,EAAE,aAAa;mBACzE,OAAO,2CAA2C,EAAE,IAAI;iCACxD,OAAO,yDAAyD,EAAE,kBAAkB;0BACpF,OAAO,oCAAoC,EAAE,WAAW"}