@woosh/meep-engine 3.33.0 → 3.35.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 (503) hide show
  1. package/editor/Editor.d.ts.map +1 -1
  2. package/editor/Editor.js +0 -3
  3. package/editor/ecs/component/prototypeObjectEditor.js +1 -165
  4. package/editor/ecs/component/registerBasicTypeEditors.d.ts.map +1 -1
  5. package/editor/ecs/component/registerBasicTypeEditors.js +0 -5
  6. package/editor/ecs/component/registerEngineComponentEditors.d.ts.map +1 -1
  7. package/editor/ecs/component/registerEngineComponentEditors.js +0 -20
  8. package/editor/process/SymbolicDisplayProcess.d.ts.map +1 -1
  9. package/editor/process/SymbolicDisplayProcess.js +100 -106
  10. package/editor/prototypeEditorShell.d.ts.map +1 -1
  11. package/editor/prototypeEditorShell.js +190 -186
  12. package/editor/templates/entity_templates.d.ts.map +1 -1
  13. package/editor/templates/entity_templates.js +10 -27
  14. package/editor/view/makeEntityDecorators.js +2 -2
  15. package/package.json +1 -1
  16. package/src/{engine/graphics/particles/particular/engine → core/geom/3d/aabb}/MovingBoundingBox.d.ts +3 -3
  17. package/src/core/geom/3d/aabb/MovingBoundingBox.d.ts.map +1 -0
  18. package/src/{engine/graphics/particles/particular/engine → core/geom/3d/aabb}/MovingBoundingBox.js +5 -5
  19. package/src/core/math/lookup/RGBA_LUT_HEATMAP_IR.d.ts +3 -0
  20. package/src/core/math/lookup/RGBA_LUT_HEATMAP_IR.d.ts.map +1 -0
  21. package/src/{engine/graphics/particles/particular/engine/parameter/sample → core/math/lookup}/RGBA_LUT_HEATMAP_IR.js +1 -1
  22. package/src/core/math/lookup/RGB_LUT_INFERNO.d.ts +6 -0
  23. package/src/core/math/lookup/RGB_LUT_INFERNO.d.ts.map +1 -0
  24. package/src/{engine/graphics/particles/particular/engine/parameter/sample → core/math/lookup}/RGB_LUT_INFERNO.js +1 -1
  25. package/src/{engine/graphics/particles/particular/engine/parameter/sample → core/math/lookup}/RGB_LUT_TURBO.d.ts +1 -1
  26. package/src/core/math/lookup/RGB_LUT_TURBO.d.ts.map +1 -0
  27. package/src/{engine/graphics/particles/particular/engine/parameter/sample → core/math/lookup}/RGB_LUT_TURBO.js +1 -1
  28. package/src/{engine/graphics/particles/particular/engine/parameter/sample → core/math/lookup}/RGB_LUT_VIRIDIS.d.ts +1 -1
  29. package/src/core/math/lookup/RGB_LUT_VIRIDIS.d.ts.map +1 -0
  30. package/src/{engine/graphics/particles/particular/engine/parameter/sample → core/math/lookup}/RGB_LUT_VIRIDIS.js +1 -1
  31. package/src/engine/animation/AnimatedActions.d.ts.map +1 -1
  32. package/src/engine/animation/AnimatedActions.js +2 -4
  33. package/src/engine/animation/AnimationUtils.d.ts +1 -17
  34. package/src/engine/animation/AnimationUtils.d.ts.map +1 -1
  35. package/src/engine/animation/AnimationUtils.js +138 -246
  36. package/src/engine/ecs/EntityManager.d.ts +1 -1
  37. package/src/engine/ecs/EntityManager.d.ts.map +1 -1
  38. package/src/engine/ecs/EntityManager.js +2 -2
  39. package/src/engine/ecs/storage/binary/SERIALIZATION_COVERAGE.md +268 -275
  40. package/src/engine/ecs/storage/populateEngineSerializationRegistry.d.ts.map +1 -1
  41. package/src/engine/ecs/storage/populateEngineSerializationRegistry.js +0 -10
  42. package/src/engine/graphics/geometry/distribute_points_on_indexed_triangles.d.ts.map +1 -0
  43. package/src/engine/graphics/{particles/particular/engine/utils → geometry}/distribute_points_on_indexed_triangles.js +3 -3
  44. package/src/engine/graphics/{particles/particular/engine/utils/volume → texture/sampler}/lut_to_sampler.d.ts +1 -1
  45. package/src/engine/graphics/texture/sampler/lut_to_sampler.d.ts.map +1 -0
  46. package/src/engine/graphics/{particles/particular/engine/utils/volume → texture/sampler}/lut_to_sampler.js +1 -1
  47. package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts +0 -3
  48. package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts.map +1 -1
  49. package/src/engine/graphics3/GPUParticleEmitterSystem.js +0 -3
  50. package/src/engine/network/NetworkSession.d.ts +1 -1
  51. package/src/engine/network/NetworkSession.js +1 -1
  52. package/src/engine/physics/cloth/MEASUREMENTS.md +115 -0
  53. package/src/engine/physics/cloth/solver/cloth_contact_find.d.ts.map +1 -1
  54. package/src/engine/physics/cloth/solver/cloth_contact_find.js +2 -0
  55. package/src/engine/physics/cloth/solver/constraint/cloth_contact_row.d.ts +9 -0
  56. package/src/engine/physics/cloth/solver/constraint/cloth_contact_row.d.ts.map +1 -1
  57. package/src/engine/physics/cloth/solver/constraint/cloth_contact_row.js +30 -7
  58. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
  59. package/src/engine/sound/ecs/audio/AudioEmitterSystem.d.ts.map +1 -1
  60. package/src/engine/sound/ecs/audio/AudioEmitterSystem.js +12 -2
  61. package/src/engine/sound/ecs/audio/LiveEmitterSet.d.ts +11 -2
  62. package/src/engine/sound/ecs/audio/LiveEmitterSet.d.ts.map +1 -1
  63. package/src/engine/sound/ecs/audio/LiveEmitterSet.js +14 -7
  64. package/src/engine/sound/ecs/audio/SpatialAudioIndex.d.ts +6 -15
  65. package/src/engine/sound/ecs/audio/SpatialAudioIndex.d.ts.map +1 -1
  66. package/src/engine/sound/ecs/audio/SpatialAudioIndex.js +161 -174
  67. package/src/shade/device/mock/SoftwareGPUBuffer.d.ts +5 -3
  68. package/src/shade/device/mock/SoftwareGPUBuffer.d.ts.map +1 -1
  69. package/src/shade/device/mock/SoftwareGPUBuffer.js +32 -3
  70. package/src/shade/device/timing/profile/GPUProfileSession.d.ts +25 -11
  71. package/src/shade/device/timing/profile/GPUProfileSession.d.ts.map +1 -1
  72. package/src/shade/device/timing/profile/GPUProfileSession.js +553 -474
  73. package/src/shade/playground/avboit/main.d.ts.map +1 -1
  74. package/src/shade/playground/avboit/main.js +888 -916
  75. package/src/shade/playground/caldera/main.js +73 -60
  76. package/src/shade/playground/particle_ecs/README.md +13 -7
  77. package/src/shade/playground/particle_ecs/bonfire_effects.d.ts +5 -5
  78. package/src/shade/playground/particle_ecs/bonfire_effects.js +5 -5
  79. package/src/shade/playground/particle_ecs/effects/smoke.json +1859 -1859
  80. package/src/shade/playground/particle_ecs/effects/soot.json +1605 -1605
  81. package/src/shade/playground/particle_system/README.md +1 -2
  82. package/src/shade/playground/profile_hotkey.d.ts.map +1 -1
  83. package/src/shade/playground/profile_hotkey.js +4 -40
  84. package/src/shade/playground/skinned_blas_refit/main.d.ts.map +1 -1
  85. package/src/shade/playground/skinned_blas_refit/main.js +4 -39
  86. package/src/shade/playground/vgeo_runtime/main.js +25 -77
  87. package/src/shade/playground/vgeo_scene/main.js +2231 -2217
  88. package/src/shade/playground/volumetrics_froxel/main.d.ts.map +1 -1
  89. package/src/shade/playground/volumetrics_froxel/main.js +4 -39
  90. package/src/shade/playground/volumetrics_froxel/measure.d.ts.map +1 -1
  91. package/src/shade/playground/volumetrics_froxel/measure.js +2 -4
  92. package/src/shade/renderer/GraphicsContext.d.ts +7 -0
  93. package/src/shade/renderer/GraphicsContext.d.ts.map +1 -1
  94. package/src/shade/renderer/GraphicsContext.js +11 -2
  95. package/src/shade/renderer/Renderer.d.ts +1 -1
  96. package/src/shade/renderer/Renderer.d.ts.map +1 -1
  97. package/src/shade/renderer/Renderer.js +41 -1
  98. package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.d.ts +8 -0
  99. package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.d.ts.map +1 -1
  100. package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.js +21 -0
  101. package/src/shade/renderer/extension/RENDER_EXTENSION_DESIGN.md +1 -1
  102. package/src/shade/renderer/geometry/GPUGeometryManager.d.ts.map +1 -1
  103. package/src/shade/renderer/geometry/GPUGeometryManager.js +9 -10
  104. package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.d.ts +5 -0
  105. package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.d.ts.map +1 -1
  106. package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.js +11 -0
  107. package/src/shade/renderer/geometry/virtual/runtime/GPUVirtualGeometryPool.d.ts +12 -0
  108. package/src/shade/renderer/geometry/virtual/runtime/GPUVirtualGeometryPool.d.ts.map +1 -1
  109. package/src/shade/renderer/geometry/virtual/runtime/GPUVirtualGeometryPool.js +25 -0
  110. package/src/shade/renderer/geometry/virtual/runtime/GPUVirtualGeometryRuntime.d.ts +115 -101
  111. package/src/shade/renderer/geometry/virtual/runtime/GPUVirtualGeometryRuntime.d.ts.map +1 -1
  112. package/src/shade/renderer/geometry/virtual/runtime/GPUVirtualGeometryRuntime.js +282 -140
  113. package/src/shade/renderer/geometry/virtual/runtime/REVIEW_LEDGER.md +30 -0
  114. package/src/shade/renderer/geometry/virtual/runtime/RUNTIME_PLAN_2026_09_14.md +4 -1
  115. package/src/shade/renderer/geometry/virtual/runtime/SHADOW_PLAN_2026_09_28.md +536 -0
  116. package/src/shade/renderer/geometry/virtual/runtime/VGeoFeedbackLoop.d.ts +6 -2
  117. package/src/shade/renderer/geometry/virtual/runtime/VGeoFeedbackLoop.d.ts.map +1 -1
  118. package/src/shade/renderer/geometry/virtual/runtime/VGeoFeedbackLoop.js +68 -19
  119. package/src/shade/renderer/geometry/virtual/runtime/VGeoPageFetcher.d.ts +2 -1
  120. package/src/shade/renderer/geometry/virtual/runtime/VGeoPageFetcher.d.ts.map +1 -1
  121. package/src/shade/renderer/geometry/virtual/runtime/VGeoPageFetcher.js +17 -1
  122. package/src/shade/renderer/geometry/virtual/runtime/VGeoResidency.d.ts +4 -0
  123. package/src/shade/renderer/geometry/virtual/runtime/VGeoResidency.d.ts.map +1 -1
  124. package/src/shade/renderer/geometry/virtual/runtime/VGeoResidency.js +42 -12
  125. package/src/shade/renderer/geometry/virtual/runtime/VGeoViewCut.d.ts +93 -12
  126. package/src/shade/renderer/geometry/virtual/runtime/VGeoViewCut.d.ts.map +1 -1
  127. package/src/shade/renderer/geometry/virtual/runtime/VGeoViewCut.js +166 -20
  128. package/src/shade/renderer/geometry/virtual/runtime/cut/VGEO_CUT_PARAMS_STRUCT.d.ts.map +1 -1
  129. package/src/shade/renderer/geometry/virtual/runtime/cut/VGEO_CUT_PARAMS_STRUCT.js +30 -7
  130. package/src/shade/renderer/geometry/virtual/runtime/cut/chunk_vgeo_cut_access.d.ts.map +1 -1
  131. package/src/shade/renderer/geometry/virtual/runtime/cut/chunk_vgeo_cut_access.js +12 -5
  132. package/src/shade/renderer/geometry/virtual/runtime/cut/chunk_vgeo_cut_claim.d.ts.map +1 -1
  133. package/src/shade/renderer/geometry/virtual/runtime/cut/chunk_vgeo_cut_claim.js +2 -2
  134. package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_collect.d.ts.map +1 -1
  135. package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_collect.js +23 -13
  136. package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_queue_remainder.d.ts.map +1 -1
  137. package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_queue_remainder.js +1 -2
  138. package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_seed.d.ts.map +1 -1
  139. package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_seed.js +1 -2
  140. package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_traverse.d.ts.map +1 -1
  141. package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_traverse.js +10 -6
  142. package/src/shade/renderer/geometry/virtual/runtime/cut/vgeo_cut_feedback_layout.d.ts +45 -17
  143. package/src/shade/renderer/geometry/virtual/runtime/cut/vgeo_cut_feedback_layout.d.ts.map +1 -1
  144. package/src/shade/renderer/geometry/virtual/runtime/cut/vgeo_cut_feedback_layout.js +61 -19
  145. package/src/shade/renderer/geometry/virtual/runtime/graph_vgeo_expand_if_enabled.d.ts +8 -11
  146. package/src/shade/renderer/geometry/virtual/runtime/graph_vgeo_expand_if_enabled.d.ts.map +1 -1
  147. package/src/shade/renderer/geometry/virtual/runtime/graph_vgeo_expand_if_enabled.js +9 -16
  148. package/src/shade/renderer/geometry/virtual/runtime/graph_vgeo_expand_instances_to_meshlets.d.ts.map +1 -1
  149. package/src/shade/renderer/geometry/virtual/runtime/graph_vgeo_expand_instances_to_meshlets.js +25 -10
  150. package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_FEEDBACK_OFFSET.js +10 -8
  151. package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_INSTANCE_OFFSET.d.ts +1 -0
  152. package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_INSTANCE_OFFSET.js +19 -7
  153. package/src/shade/renderer/geometry/virtual/runtime/make_vgeo_page_worker.d.ts +4 -2
  154. package/src/shade/renderer/geometry/virtual/runtime/make_vgeo_page_worker.d.ts.map +1 -1
  155. package/src/shade/renderer/geometry/virtual/runtime/make_vgeo_page_worker.js +4 -2
  156. package/src/shade/renderer/global_illumination/brick4/Brick4LightMap.d.ts +4 -0
  157. package/src/shade/renderer/global_illumination/brick4/Brick4LightMap.d.ts.map +1 -1
  158. package/src/shade/renderer/global_illumination/brick4/Brick4LightMap.js +7 -0
  159. package/src/shade/renderer/global_illumination/lpv/GPULightProbeVolume.d.ts.map +1 -1
  160. package/src/shade/renderer/global_illumination/lpv/GPULightProbeVolume.js +1 -0
  161. package/src/shade/renderer/light/GPULightCollection.d.ts +9 -1
  162. package/src/shade/renderer/light/GPULightCollection.d.ts.map +1 -1
  163. package/src/shade/renderer/light/GPULightCollection.js +41 -0
  164. package/src/shade/renderer/light/environment/shader_project_environment_sh.d.ts +37 -0
  165. package/src/shade/renderer/light/environment/shader_project_environment_sh.d.ts.map +1 -0
  166. package/src/shade/renderer/light/environment/shader_project_environment_sh.js +105 -0
  167. package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
  168. package/src/shade/renderer/material/GPUMaterialManager.d.ts.map +1 -1
  169. package/src/shade/renderer/material/GPUMaterialManager.js +2 -0
  170. package/src/shade/renderer/particles/DESIGN.md +69 -18
  171. package/src/shade/renderer/particles/GPUParticleSystem.d.ts +7 -1
  172. package/src/shade/renderer/particles/GPUParticleSystem.d.ts.map +1 -1
  173. package/src/shade/renderer/particles/GPUParticleSystem.js +1247 -1244
  174. package/src/shade/renderer/particles/ParticleConstants.d.ts +1 -3
  175. package/src/shade/renderer/particles/ParticleConstants.d.ts.map +1 -1
  176. package/src/shade/renderer/particles/ParticleConstants.js +1 -3
  177. package/src/shade/renderer/particles/graph_particles_avboit.d.ts +7 -1
  178. package/src/shade/renderer/particles/graph_particles_avboit.d.ts.map +1 -1
  179. package/src/shade/renderer/particles/graph_particles_avboit.js +9 -0
  180. package/src/shade/renderer/particles/shaders/chunk_particle_billboard_vertex.d.ts +3 -4
  181. package/src/shade/renderer/particles/shaders/chunk_particle_billboard_vertex.d.ts.map +1 -1
  182. package/src/shade/renderer/particles/shaders/chunk_particle_billboard_vertex.js +7 -6
  183. package/src/shade/renderer/particles/shaders/chunk_particle_lighting.d.ts +15 -9
  184. package/src/shade/renderer/particles/shaders/chunk_particle_lighting.d.ts.map +1 -1
  185. package/src/shade/renderer/particles/shaders/chunk_particle_lighting.js +29 -11
  186. package/src/shade/renderer/particles/shaders/chunk_particle_lighting_model.d.ts +24 -0
  187. package/src/shade/renderer/particles/shaders/chunk_particle_lighting_model.d.ts.map +1 -0
  188. package/src/shade/renderer/particles/shaders/chunk_particle_lighting_model.js +45 -0
  189. package/src/shade/renderer/particles/shaders/chunk_particle_render_math.d.ts +3 -0
  190. package/src/shade/renderer/particles/shaders/chunk_particle_render_math.d.ts.map +1 -1
  191. package/src/shade/renderer/particles/shaders/chunk_particle_render_math.js +38 -0
  192. package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.d.ts.map +1 -1
  193. package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.js +190 -185
  194. package/src/shade/renderer/rasterize/bucket/graph_meshlets_rasterize_by_bucket.d.ts +45 -0
  195. package/src/shade/renderer/rasterize/bucket/graph_meshlets_rasterize_by_bucket.d.ts.map +1 -0
  196. package/src/shade/renderer/rasterize/bucket/graph_meshlets_rasterize_by_bucket.js +99 -0
  197. package/src/shade/renderer/rasterize/bucket/rasterization_opaque_buckets.d.ts +4 -4
  198. package/src/shade/renderer/rasterize/bucket/rasterization_opaque_buckets.js +36 -36
  199. package/src/shade/renderer/rasterize/bucket/shader_gather_bucket.d.ts +15 -0
  200. package/src/shade/renderer/rasterize/bucket/shader_gather_bucket.d.ts.map +1 -0
  201. package/src/shade/renderer/rasterize/bucket/shader_gather_bucket.js +103 -0
  202. package/src/shade/renderer/rasterize/expand/GPUCollectionLimits.d.ts +3 -0
  203. package/src/shade/renderer/rasterize/expand/GPUCollectionLimits.d.ts.map +1 -1
  204. package/src/shade/renderer/rasterize/expand/GPUCollectionLimits.js +6 -1
  205. package/src/shade/renderer/rasterize/expand/bucket/meshlet/graph_extract_meshlets_from_bucket.d.ts +26 -0
  206. package/src/shade/renderer/rasterize/expand/bucket/meshlet/graph_extract_meshlets_from_bucket.d.ts.map +1 -0
  207. package/src/shade/renderer/rasterize/expand/bucket/meshlet/graph_extract_meshlets_from_bucket.js +91 -0
  208. package/src/shade/renderer/rasterize/fast/graph_gather_meshes_from_buckets.d.ts +22 -0
  209. package/src/shade/renderer/rasterize/fast/graph_gather_meshes_from_buckets.d.ts.map +1 -0
  210. package/src/shade/renderer/rasterize/fast/graph_gather_meshes_from_buckets.js +102 -0
  211. package/src/shade/renderer/rasterize/fast/graph_rasterize_scene_fast.d.ts +2 -1
  212. package/src/shade/renderer/rasterize/fast/graph_rasterize_scene_fast.d.ts.map +1 -1
  213. package/src/shade/renderer/rasterize/fast/graph_rasterize_scene_fast.js +28 -24
  214. package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts +8 -0
  215. package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts.map +1 -1
  216. package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.js +5 -0
  217. package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.d.ts +8 -1
  218. package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.d.ts.map +1 -1
  219. package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.js +9 -0
  220. package/src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.d.ts.map +1 -1
  221. package/src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.js +32 -28
  222. package/src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.d.ts.map +1 -1
  223. package/src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.js +9 -105
  224. package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.d.ts +5 -0
  225. package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.d.ts.map +1 -1
  226. package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.js +11 -0
  227. package/src/shade/renderer/scene/GPUSceneContext.d.ts +11 -3
  228. package/src/shade/renderer/scene/GPUSceneContext.d.ts.map +1 -1
  229. package/src/shade/renderer/scene/GPUSceneContext.js +93 -21
  230. package/src/shade/renderer/scene/rows/GPUSceneRows.d.ts +4 -1
  231. package/src/shade/renderer/scene/rows/GPUSceneRows.d.ts.map +1 -1
  232. package/src/shade/renderer/scene/rows/GPUSceneRows.js +5 -23
  233. package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.d.ts.map +1 -1
  234. package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.js +63 -0
  235. package/src/shade/renderer/shadow/map/SHADOWMAP_VGEO_TAU_SCALE.d.ts +12 -0
  236. package/src/shade/renderer/shadow/map/SHADOWMAP_VGEO_TAU_SCALE.d.ts.map +1 -0
  237. package/src/shade/renderer/shadow/map/SHADOWMAP_VGEO_TAU_SCALE.js +11 -0
  238. package/src/shade/renderer/shadow/map/Shadowmap.d.ts +15 -0
  239. package/src/shade/renderer/shadow/map/Shadowmap.d.ts.map +1 -1
  240. package/src/shade/renderer/shadow/map/Shadowmap.js +17 -0
  241. package/src/shade/renderer/shadow/map/shadowmap_caster_detail_pending.d.ts +25 -0
  242. package/src/shade/renderer/shadow/map/shadowmap_caster_detail_pending.d.ts.map +1 -0
  243. package/src/shade/renderer/shadow/map/shadowmap_caster_detail_pending.js +22 -0
  244. package/src/shade/renderer/shadow/map/shadowmap_update_score.d.ts.map +1 -1
  245. package/src/shade/renderer/shadow/map/shadowmap_update_score.js +5 -2
  246. package/src/shade/renderer/texture/TextureManager.d.ts +2 -1
  247. package/src/shade/renderer/texture/TextureManager.d.ts.map +1 -1
  248. package/src/shade/renderer/texture/TextureManager.js +4 -1
  249. package/src/shade/renderer/texture/mipmaps/WebGPUMipmapGenerator.js +1 -1
  250. package/src/shade/renderer/util/Uint32BufferSamplingStats.d.ts +9 -1
  251. package/src/shade/renderer/util/Uint32BufferSamplingStats.d.ts.map +1 -1
  252. package/src/shade/renderer/util/Uint32BufferSamplingStats.js +55 -5
  253. package/src/shade/renderer/view/ViewManager.d.ts +7 -1
  254. package/src/shade/renderer/view/ViewManager.d.ts.map +1 -1
  255. package/src/shade/renderer/view/ViewManager.js +17 -1
  256. package/src/shade/renderer/volumetrics/GPUSceneVolumetrics.d.ts.map +1 -1
  257. package/src/shade/renderer/volumetrics/GPUSceneVolumetrics.js +1 -0
  258. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts +13 -3
  259. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts.map +1 -1
  260. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.js +9 -1
  261. package/src/shade/renderer/volumetrics/chunk_volumetrics_irradiance_sh.d.ts +39 -0
  262. package/src/shade/renderer/volumetrics/chunk_volumetrics_irradiance_sh.d.ts.map +1 -0
  263. package/src/shade/renderer/volumetrics/chunk_volumetrics_irradiance_sh.js +107 -0
  264. package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_froxel_centre_ws.d.ts +15 -0
  265. package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_froxel_centre_ws.d.ts.map +1 -0
  266. package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_froxel_centre_ws.js +44 -0
  267. package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_gi.d.ts +19 -0
  268. package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_gi.d.ts.map +1 -0
  269. package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_gi.js +48 -0
  270. package/src/shade/renderer/volumetrics/gi/graph_build_froxel_gi.d.ts +29 -0
  271. package/src/shade/renderer/volumetrics/gi/graph_build_froxel_gi.d.ts.map +1 -0
  272. package/src/shade/renderer/volumetrics/gi/graph_build_froxel_gi.js +90 -0
  273. package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_brick4.d.ts +10 -0
  274. package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_brick4.d.ts.map +1 -0
  275. package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_brick4.js +55 -0
  276. package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_ibl.d.ts +10 -0
  277. package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_ibl.d.ts.map +1 -0
  278. package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_ibl.js +47 -0
  279. package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_lpv.d.ts +10 -0
  280. package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_lpv.d.ts.map +1 -0
  281. package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_lpv.js +63 -0
  282. package/src/shade/renderer/volumetrics/gi/volumetrics_gi_resources.d.ts +17 -0
  283. package/src/shade/renderer/volumetrics/gi/volumetrics_gi_resources.d.ts.map +1 -0
  284. package/src/shade/renderer/volumetrics/gi/volumetrics_gi_resources.js +26 -0
  285. package/src/shade/renderer/volumetrics/graph_build_volumetrics.d.ts +8 -1
  286. package/src/shade/renderer/volumetrics/graph_build_volumetrics.d.ts.map +1 -1
  287. package/src/shade/renderer/volumetrics/graph_build_volumetrics.js +50 -2
  288. package/src/shade/renderer/volumetrics/shader_volumetrics_build_lighting.d.ts.map +1 -1
  289. package/src/shade/renderer/volumetrics/shader_volumetrics_build_lighting.js +488 -436
  290. package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.d.ts +1 -1
  291. package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.d.ts.map +1 -1
  292. package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.js +254 -63
  293. package/editor/ecs/component/editors/ecs/ParameterLookupTableEditor.d.ts +0 -20
  294. package/editor/ecs/component/editors/ecs/ParameterLookupTableEditor.d.ts.map +0 -1
  295. package/editor/ecs/component/editors/ecs/ParameterLookupTableEditor.js +0 -35
  296. package/editor/ecs/component/editors/ecs/ParameterTrackEditor.d.ts +0 -12
  297. package/editor/ecs/component/editors/ecs/ParameterTrackEditor.d.ts.map +0 -1
  298. package/editor/ecs/component/editors/ecs/ParameterTrackEditor.js +0 -17
  299. package/editor/ecs/component/editors/ecs/ParameterTrackSetEditor.d.ts +0 -14
  300. package/editor/ecs/component/editors/ecs/ParameterTrackSetEditor.d.ts.map +0 -1
  301. package/editor/ecs/component/editors/ecs/ParameterTrackSetEditor.js +0 -18
  302. package/editor/ecs/component/editors/ecs/ParticleEmitterEditor.d.ts +0 -52
  303. package/editor/ecs/component/editors/ecs/ParticleEmitterEditor.d.ts.map +0 -1
  304. package/editor/ecs/component/editors/ecs/ParticleEmitterEditor.js +0 -58
  305. package/editor/ecs/component/editors/ecs/ParticleEmitterLayerEditor.d.ts +0 -47
  306. package/editor/ecs/component/editors/ecs/ParticleEmitterLayerEditor.d.ts.map +0 -1
  307. package/editor/ecs/component/editors/ecs/ParticleEmitterLayerEditor.js +0 -58
  308. package/editor/ecs/component/editors/ecs/SimulationStepDefinitionEditor.d.ts +0 -16
  309. package/editor/ecs/component/editors/ecs/SimulationStepDefinitionEditor.d.ts.map +0 -1
  310. package/editor/ecs/component/editors/ecs/SimulationStepDefinitionEditor.js +0 -21
  311. package/editor/particles/rebuildParticleEmitter.d.ts +0 -11
  312. package/editor/particles/rebuildParticleEmitter.d.ts.map +0 -1
  313. package/editor/particles/rebuildParticleEmitter.js +0 -31
  314. package/editor/process/ParticleEmitterRebuildProcess.d.ts +0 -66
  315. package/editor/process/ParticleEmitterRebuildProcess.d.ts.map +0 -1
  316. package/editor/process/ParticleEmitterRebuildProcess.js +0 -217
  317. package/editor/process/symbolic/ParticleEmitterSymbolicDisplay.d.ts +0 -18
  318. package/editor/process/symbolic/ParticleEmitterSymbolicDisplay.d.ts.map +0 -1
  319. package/editor/process/symbolic/ParticleEmitterSymbolicDisplay.js +0 -140
  320. package/src/engine/animation/removeEntityGenericEffect.d.ts +0 -18
  321. package/src/engine/animation/removeEntityGenericEffect.d.ts.map +0 -1
  322. package/src/engine/animation/removeEntityGenericEffect.js +0 -160
  323. package/src/engine/animation/removeEntityWithMeshParticlesEffect.d.ts +0 -16
  324. package/src/engine/animation/removeEntityWithMeshParticlesEffect.d.ts.map +0 -1
  325. package/src/engine/animation/removeEntityWithMeshParticlesEffect.js +0 -194
  326. package/src/engine/graphics/ecs/sprite/Sprite.d.ts +0 -15
  327. package/src/engine/graphics/ecs/sprite/Sprite.d.ts.map +0 -1
  328. package/src/engine/graphics/ecs/sprite/Sprite.js +0 -14
  329. package/src/engine/graphics/ecs/sprite/SpriteSystemPE.d.ts +0 -11
  330. package/src/engine/graphics/ecs/sprite/SpriteSystemPE.d.ts.map +0 -1
  331. package/src/engine/graphics/ecs/sprite/SpriteSystemPE.js +0 -144
  332. package/src/engine/graphics/particles/particular/engine/MovingBoundingBox.d.ts.map +0 -1
  333. package/src/engine/graphics/particles/particular/engine/ParticularEngine.d.ts +0 -61
  334. package/src/engine/graphics/particles/particular/engine/ParticularEngine.d.ts.map +0 -1
  335. package/src/engine/graphics/particles/particular/engine/ParticularEngine.js +0 -229
  336. package/src/engine/graphics/particles/particular/engine/emitter/EmissionFromType.d.ts +0 -6
  337. package/src/engine/graphics/particles/particular/engine/emitter/EmissionFromType.d.ts.map +0 -1
  338. package/src/engine/graphics/particles/particular/engine/emitter/EmissionFromType.js +0 -8
  339. package/src/engine/graphics/particles/particular/engine/emitter/EmissionShapeType.d.ts +0 -7
  340. package/src/engine/graphics/particles/particular/engine/emitter/EmissionShapeType.d.ts.map +0 -1
  341. package/src/engine/graphics/particles/particular/engine/emitter/EmissionShapeType.js +0 -9
  342. package/src/engine/graphics/particles/particular/engine/emitter/PARTICLE_ATTRIBUTES.d.ts +0 -13
  343. package/src/engine/graphics/particles/particular/engine/emitter/PARTICLE_ATTRIBUTES.d.ts.map +0 -1
  344. package/src/engine/graphics/particles/particular/engine/emitter/PARTICLE_ATTRIBUTES.js +0 -12
  345. package/src/engine/graphics/particles/particular/engine/emitter/PARTICULAR_PARTICLE_SPECIFICATION.d.ts +0 -3
  346. package/src/engine/graphics/particles/particular/engine/emitter/PARTICULAR_PARTICLE_SPECIFICATION.d.ts.map +0 -1
  347. package/src/engine/graphics/particles/particular/engine/emitter/PARTICULAR_PARTICLE_SPECIFICATION.js +0 -84
  348. package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.d.ts +0 -285
  349. package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.d.ts.map +0 -1
  350. package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.js +0 -1201
  351. package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitterFlag.d.ts +0 -19
  352. package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitterFlag.d.ts.map +0 -1
  353. package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitterFlag.js +0 -67
  354. package/src/engine/graphics/particles/particular/engine/emitter/ParticleLayer.d.ts +0 -197
  355. package/src/engine/graphics/particles/particular/engine/emitter/ParticleLayer.d.ts.map +0 -1
  356. package/src/engine/graphics/particles/particular/engine/emitter/ParticleLayer.js +0 -398
  357. package/src/engine/graphics/particles/particular/engine/emitter/ParticleParameters.d.ts +0 -5
  358. package/src/engine/graphics/particles/particular/engine/emitter/ParticleParameters.d.ts.map +0 -1
  359. package/src/engine/graphics/particles/particular/engine/emitter/ParticleParameters.js +0 -4
  360. package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.d.ts +0 -162
  361. package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.d.ts.map +0 -1
  362. package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.js +0 -472
  363. package/src/engine/graphics/particles/particular/engine/emitter/computeEmissionFunction.d.ts +0 -10
  364. package/src/engine/graphics/particles/particular/engine/emitter/computeEmissionFunction.d.ts.map +0 -1
  365. package/src/engine/graphics/particles/particular/engine/emitter/computeEmissionFunction.js +0 -37
  366. package/src/engine/graphics/particles/particular/engine/emitter/distance_to_camera.d.ts +0 -9
  367. package/src/engine/graphics/particles/particular/engine/emitter/distance_to_camera.d.ts.map +0 -1
  368. package/src/engine/graphics/particles/particular/engine/emitter/distance_to_camera.js +0 -25
  369. package/src/engine/graphics/particles/particular/engine/emitter/serde/ParameterLookupTableSerializationAdapter.d.ts +0 -19
  370. package/src/engine/graphics/particles/particular/engine/emitter/serde/ParameterLookupTableSerializationAdapter.d.ts.map +0 -1
  371. package/src/engine/graphics/particles/particular/engine/emitter/serde/ParameterLookupTableSerializationAdapter.js +0 -28
  372. package/src/engine/graphics/particles/particular/engine/emitter/serde/ParticleEmitterSerializationAdapter.d.ts +0 -19
  373. package/src/engine/graphics/particles/particular/engine/emitter/serde/ParticleEmitterSerializationAdapter.d.ts.map +0 -1
  374. package/src/engine/graphics/particles/particular/engine/emitter/serde/ParticleEmitterSerializationAdapter.js +0 -162
  375. package/src/engine/graphics/particles/particular/engine/emitter/serde/ParticleEmitterSerializationUpgrader_0_1.d.ts +0 -5
  376. package/src/engine/graphics/particles/particular/engine/emitter/serde/ParticleEmitterSerializationUpgrader_0_1.d.ts.map +0 -1
  377. package/src/engine/graphics/particles/particular/engine/emitter/serde/ParticleEmitterSerializationUpgrader_0_1.js +0 -103
  378. package/src/engine/graphics/particles/particular/engine/emitter/write_particle_patch_uv.d.ts +0 -8
  379. package/src/engine/graphics/particles/particular/engine/emitter/write_particle_patch_uv.d.ts.map +0 -1
  380. package/src/engine/graphics/particles/particular/engine/emitter/write_particle_patch_uv.js +0 -28
  381. package/src/engine/graphics/particles/particular/engine/parameter/ParameterLookupTable.d.ts +0 -2
  382. package/src/engine/graphics/particles/particular/engine/parameter/ParameterLookupTable.d.ts.map +0 -1
  383. package/src/engine/graphics/particles/particular/engine/parameter/ParameterLookupTable.js +0 -2
  384. package/src/engine/graphics/particles/particular/engine/parameter/ParameterLookupTableFlags.d.ts +0 -2
  385. package/src/engine/graphics/particles/particular/engine/parameter/ParameterLookupTableFlags.d.ts.map +0 -1
  386. package/src/engine/graphics/particles/particular/engine/parameter/ParameterLookupTableFlags.js +0 -2
  387. package/src/engine/graphics/particles/particular/engine/parameter/ParameterSet.d.ts +0 -60
  388. package/src/engine/graphics/particles/particular/engine/parameter/ParameterSet.d.ts.map +0 -1
  389. package/src/engine/graphics/particles/particular/engine/parameter/ParameterSet.js +0 -128
  390. package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrack.d.ts +0 -47
  391. package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrack.d.ts.map +0 -1
  392. package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrack.js +0 -77
  393. package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrackSet.d.ts +0 -45
  394. package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrackSet.d.ts.map +0 -1
  395. package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrackSet.js +0 -93
  396. package/src/engine/graphics/particles/particular/engine/parameter/ParticleParameter.d.ts +0 -95
  397. package/src/engine/graphics/particles/particular/engine/parameter/ParticleParameter.d.ts.map +0 -1
  398. package/src/engine/graphics/particles/particular/engine/parameter/ParticleParameter.js +0 -239
  399. package/src/engine/graphics/particles/particular/engine/parameter/sample/RGBA_LUT_HEATMAP_IR.d.ts +0 -3
  400. package/src/engine/graphics/particles/particular/engine/parameter/sample/RGBA_LUT_HEATMAP_IR.d.ts.map +0 -1
  401. package/src/engine/graphics/particles/particular/engine/parameter/sample/RGB_LUT_INFERNO.d.ts +0 -6
  402. package/src/engine/graphics/particles/particular/engine/parameter/sample/RGB_LUT_INFERNO.d.ts.map +0 -1
  403. package/src/engine/graphics/particles/particular/engine/parameter/sample/RGB_LUT_TURBO.d.ts.map +0 -1
  404. package/src/engine/graphics/particles/particular/engine/parameter/sample/RGB_LUT_VIRIDIS.d.ts.map +0 -1
  405. package/src/engine/graphics/particles/particular/engine/renderers/ParticleRenderer.d.ts +0 -13
  406. package/src/engine/graphics/particles/particular/engine/renderers/ParticleRenderer.d.ts.map +0 -1
  407. package/src/engine/graphics/particles/particular/engine/renderers/ParticleRenderer.js +0 -28
  408. package/src/engine/graphics/particles/particular/engine/renderers/billboard/BILLBOARD_PARTICLE_SPECIFICATION.d.ts +0 -9
  409. package/src/engine/graphics/particles/particular/engine/renderers/billboard/BILLBOARD_PARTICLE_SPECIFICATION.d.ts.map +0 -1
  410. package/src/engine/graphics/particles/particular/engine/renderers/billboard/BILLBOARD_PARTICLE_SPECIFICATION.js +0 -24
  411. package/src/engine/graphics/particles/particular/engine/renderers/billboard/SoftBillboardParticlePool.d.ts +0 -13
  412. package/src/engine/graphics/particles/particular/engine/renderers/billboard/SoftBillboardParticlePool.d.ts.map +0 -1
  413. package/src/engine/graphics/particles/particular/engine/renderers/billboard/SoftBillboardParticlePool.js +0 -27
  414. package/src/engine/graphics/particles/particular/engine/renderers/billboard/SoftBillboardParticleRenderer.d.ts +0 -33
  415. package/src/engine/graphics/particles/particular/engine/renderers/billboard/SoftBillboardParticleRenderer.d.ts.map +0 -1
  416. package/src/engine/graphics/particles/particular/engine/renderers/billboard/SoftBillboardParticleRenderer.js +0 -80
  417. package/src/engine/graphics/particles/particular/engine/shader/ShaderManager.d.ts +0 -49
  418. package/src/engine/graphics/particles/particular/engine/shader/ShaderManager.d.ts.map +0 -1
  419. package/src/engine/graphics/particles/particular/engine/shader/ShaderManager.js +0 -135
  420. package/src/engine/graphics/particles/particular/engine/shader/debugAtlas.d.ts +0 -7
  421. package/src/engine/graphics/particles/particular/engine/shader/debugAtlas.d.ts.map +0 -1
  422. package/src/engine/graphics/particles/particular/engine/shader/debugAtlas.js +0 -14
  423. package/src/engine/graphics/particles/particular/engine/simulator/AbstractSimulationStep.d.ts +0 -41
  424. package/src/engine/graphics/particles/particular/engine/simulator/AbstractSimulationStep.d.ts.map +0 -1
  425. package/src/engine/graphics/particles/particular/engine/simulator/AbstractSimulationStep.js +0 -59
  426. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepApplyForce.d.ts +0 -4
  427. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepApplyForce.d.ts.map +0 -1
  428. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepApplyForce.js +0 -56
  429. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepCurlNoiseAcceleration.d.ts +0 -4
  430. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepCurlNoiseAcceleration.d.ts.map +0 -1
  431. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepCurlNoiseAcceleration.js +0 -84
  432. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepCurlNoiseVelocity.d.ts +0 -4
  433. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepCurlNoiseVelocity.d.ts.map +0 -1
  434. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepCurlNoiseVelocity.js +0 -80
  435. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepDefinition.d.ts +0 -29
  436. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepDefinition.d.ts.map +0 -1
  437. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepDefinition.js +0 -43
  438. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepFixedPhysics.d.ts +0 -5
  439. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepFixedPhysics.d.ts.map +0 -1
  440. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepFixedPhysics.js +0 -104
  441. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepType.d.ts +0 -9
  442. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepType.d.ts.map +0 -1
  443. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepType.js +0 -11
  444. package/src/engine/graphics/particles/particular/engine/simulator/update_parameters.d.ts +0 -9
  445. package/src/engine/graphics/particles/particular/engine/simulator/update_parameters.d.ts.map +0 -1
  446. package/src/engine/graphics/particles/particular/engine/simulator/update_parameters.js +0 -64
  447. package/src/engine/graphics/particles/particular/engine/utils/distributeParticlesOnObject3D.d.ts +0 -9
  448. package/src/engine/graphics/particles/particular/engine/utils/distributeParticlesOnObject3D.d.ts.map +0 -1
  449. package/src/engine/graphics/particles/particular/engine/utils/distributeParticlesOnObject3D.js +0 -172
  450. package/src/engine/graphics/particles/particular/engine/utils/distribute_points_on_indexed_triangles.d.ts.map +0 -1
  451. package/src/engine/graphics/particles/particular/engine/utils/distrubuteParticlesOnMesh.d.ts +0 -20
  452. package/src/engine/graphics/particles/particular/engine/utils/distrubuteParticlesOnMesh.d.ts.map +0 -1
  453. package/src/engine/graphics/particles/particular/engine/utils/distrubuteParticlesOnMesh.js +0 -84
  454. package/src/engine/graphics/particles/particular/engine/utils/volume/AttributeValue.d.ts +0 -81
  455. package/src/engine/graphics/particles/particular/engine/utils/volume/AttributeValue.d.ts.map +0 -1
  456. package/src/engine/graphics/particles/particular/engine/utils/volume/AttributeValue.js +0 -200
  457. package/src/engine/graphics/particles/particular/engine/utils/volume/SamplingFunctionKind.d.ts +0 -6
  458. package/src/engine/graphics/particles/particular/engine/utils/volume/SamplingFunctionKind.d.ts.map +0 -1
  459. package/src/engine/graphics/particles/particular/engine/utils/volume/SamplingFunctionKind.js +0 -8
  460. package/src/engine/graphics/particles/particular/engine/utils/volume/lut_to_sampler.d.ts.map +0 -1
  461. package/src/engine/graphics/particles/particular/group/Operation.d.ts +0 -20
  462. package/src/engine/graphics/particles/particular/group/Operation.d.ts.map +0 -1
  463. package/src/engine/graphics/particles/particular/group/Operation.js +0 -20
  464. package/src/engine/graphics/particles/particular/group/OperationType.d.ts +0 -7
  465. package/src/engine/graphics/particles/particular/group/OperationType.d.ts.map +0 -1
  466. package/src/engine/graphics/particles/particular/group/OperationType.js +0 -9
  467. package/src/engine/graphics/particles/particular/group/ParticleAttribute.d.ts +0 -27
  468. package/src/engine/graphics/particles/particular/group/ParticleAttribute.d.ts.map +0 -1
  469. package/src/engine/graphics/particles/particular/group/ParticleAttribute.js +0 -27
  470. package/src/engine/graphics/particles/particular/group/ParticleAttributeType.d.ts +0 -8
  471. package/src/engine/graphics/particles/particular/group/ParticleAttributeType.d.ts.map +0 -1
  472. package/src/engine/graphics/particles/particular/group/ParticleAttributeType.js +0 -11
  473. package/src/engine/graphics/particles/particular/group/ParticleDataType.d.ts +0 -7
  474. package/src/engine/graphics/particles/particular/group/ParticleDataType.d.ts.map +0 -1
  475. package/src/engine/graphics/particles/particular/group/ParticleDataType.js +0 -10
  476. package/src/engine/graphics/particles/particular/group/ParticleSpecification.d.ts +0 -24
  477. package/src/engine/graphics/particles/particular/group/ParticleSpecification.d.ts.map +0 -1
  478. package/src/engine/graphics/particles/particular/group/ParticleSpecification.js +0 -48
  479. package/src/engine/graphics/particles/particular/group/itemSizeFromAttributeType.d.ts +0 -7
  480. package/src/engine/graphics/particles/particular/group/itemSizeFromAttributeType.d.ts.map +0 -1
  481. package/src/engine/graphics/particles/particular/group/itemSizeFromAttributeType.js +0 -20
  482. package/src/engine/graphics/particles/particular/group/optimizeCommandQueue.d.ts +0 -6
  483. package/src/engine/graphics/particles/particular/group/optimizeCommandQueue.d.ts.map +0 -1
  484. package/src/engine/graphics/particles/particular/group/optimizeCommandQueue.js +0 -162
  485. package/src/engine/graphics/particles/particular/group/typedArrayConstructorFromDataType.d.ts +0 -8
  486. package/src/engine/graphics/particles/particular/group/typedArrayConstructorFromDataType.d.ts.map +0 -1
  487. package/src/engine/graphics/particles/particular/group/typedArrayConstructorFromDataType.js +0 -19
  488. package/src/engine/graphics3/ParticleEmitterSystem.d.ts +0 -77
  489. package/src/engine/graphics3/ParticleEmitterSystem.d.ts.map +0 -1
  490. package/src/engine/graphics3/ParticleEmitterSystem.js +0 -307
  491. package/src/engine/graphics3/ParticleEmitterSystem3.d.ts +0 -10
  492. package/src/engine/graphics3/ParticleEmitterSystem3.d.ts.map +0 -1
  493. package/src/engine/graphics3/ParticleEmitterSystem3.js +0 -10
  494. package/src/engine/graphics3/particles/GPUParticularRenderer.d.ts +0 -61
  495. package/src/engine/graphics3/particles/GPUParticularRenderer.d.ts.map +0 -1
  496. package/src/engine/graphics3/particles/GPUParticularRenderer.js +0 -627
  497. package/src/engine/graphics3/particles/particle_gpu_records.d.ts +0 -85
  498. package/src/engine/graphics3/particles/particle_gpu_records.d.ts.map +0 -1
  499. package/src/engine/graphics3/particles/particle_gpu_records.js +0 -227
  500. package/src/shade/renderer/particles/shaders/shader_particle_render.d.ts +0 -35
  501. package/src/shade/renderer/particles/shaders/shader_particle_render.d.ts.map +0 -1
  502. package/src/shade/renderer/particles/shaders/shader_particle_render.js +0 -135
  503. /package/src/engine/graphics/{particles/particular/engine/utils → geometry}/distribute_points_on_indexed_triangles.d.ts +0 -0
@@ -708,6 +708,9 @@ export function avboit_create_accumulators(pass, resolution) {
708
708
  * @param {number} options.shadowmap_atlas
709
709
  * @param {number} options.volumetrics_lut
710
710
  * @param {number} options.volumetrics_metadata
711
+ * @param {{Y: number, CoCg: number}} options.volumetrics_irradiance the froxel irradiance volume
712
+ * (`chunk_volumetrics_irradiance_sh`), for side channels that light their own fragments; the
713
+ * MBOIT orchestrator ignores it
711
714
  * @param {ShadeIndirectLightingMode} options.indirect_lighting_mode
712
715
  * @param {AVBOITSettings} [options.avboit] `Renderer.avboit`; the MBOIT orchestrator ignores it
713
716
  * @param {import("./AVBOITSideChannel.js").AVBOITSideChannel[]} [options.side_channels] non-meshlet
@@ -730,6 +733,7 @@ export function graph_rasterize_meshes_transparent_avboit({
730
733
 
731
734
  volumetrics_lut,
732
735
  volumetrics_metadata,
736
+ volumetrics_irradiance,
733
737
 
734
738
  indirect_lighting_mode = ShadeIndirectLightingMode.IBL,
735
739
  avboit = DEFAULT_SETTINGS,
@@ -747,6 +751,10 @@ export function graph_rasterize_meshes_transparent_avboit({
747
751
 
748
752
  assert.isNonNegativeInteger(shadowmap_atlas, 'shadowmap_atlas');
749
753
 
754
+ assert.defined(volumetrics_irradiance, 'volumetrics_irradiance');
755
+ assert.isNonNegativeInteger(volumetrics_irradiance.Y, 'volumetrics_irradiance.Y');
756
+ assert.isNonNegativeInteger(volumetrics_irradiance.CoCg, 'volumetrics_irradiance.CoCg');
757
+
750
758
  assert.equal(view_ctx.isGPUViewContext, true, 'view_ctx.isGPUViewContext !== true');
751
759
 
752
760
  const scene_ctx = view_ctx.scene;
@@ -971,6 +979,7 @@ export function graph_rasterize_meshes_transparent_avboit({
971
979
  integral,
972
980
  volumetrics_lut,
973
981
  volumetrics_metadata,
982
+ volumetrics_irradiance,
974
983
  accumulators,
975
984
  });
976
985
  }
@@ -1 +1 @@
1
- {"version":3,"file":"graph_rasterize_partial_opaque.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.js"],"names":[],"mappings":"AAyBA;;;;;;;;;;;;;;;GAeG;AACH,gMAFa;IAAC,eAAe,EAAC,MAAM,CAAC;IAAC,cAAc,EAAC,MAAM,CAAC;IAAC,KAAK,EAAC,MAAM,CAAC;IAAC,aAAa,EAAC,MAAM,EAAE,CAAA;CAAC,CAmNjG"}
1
+ {"version":3,"file":"graph_rasterize_partial_opaque.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.js"],"names":[],"mappings":"AAsBA;;;;;;;;;;;;;;;GAeG;AACH,gMAFa;IAAC,eAAe,EAAC,MAAM,CAAC;IAAC,cAAc,EAAC,MAAM,CAAC;IAAC,KAAK,EAAC,MAAM,CAAC;IAAC,aAAa,EAAC,MAAM,EAAE,CAAA;CAAC,CA0NjG"}
@@ -3,9 +3,6 @@ import { noop } from "../../../../core/function/noop.js";
3
3
  import { BufferResourceDescriptor } from "../../../device/graph/BufferResourceDescriptor.js";
4
4
  import { u32 } from "../../shader/type/WEBGPU_WGSL_PRIMITIVE_TYPES.js";
5
5
  import { shader_hzb_mesh_filter_2way } from "../cull/hzb/shader_hzb_mesh_filter_2way.js";
6
- import { ShadeDrawMode } from "../../material/ShadeDrawMode.js";
7
- import { ShadeDrawSide } from "../../material/ShadeDrawSide.js";
8
- import { TransparencyMode } from "../../material/TransparencyMode.js";
9
6
  import { COMPUTE_SHADER_DEFAULT_GROUP_SIZE } from "../../shader/COMPUTE_SHADER_DEFAULT_GROUP_SIZE.js";
10
7
  import { graph_import_buffer } from "../../shader/graph/graph_import_buffer.js";
11
8
  import { graph_record_stat } from "../../util/graph_record_stat.js";
@@ -14,12 +11,12 @@ import {
14
11
  graph_build_indirect_dispatch_command,
15
12
  INDIRECT_COMPUTE_COMMAND_DESCRIPTOR
16
13
  } from "../../gpu_primitive/indirect/IndirectComputeCommandBuildPass.js";
17
- import { graph_meshlets_rasterize } from "../expand/graph_meshlets_rasterize.js";
18
14
  import { graph_expand_meshes_to_meshlets } from "../expand/mesh/graph_expand_meshes_to_meshlets.js";
19
15
  import { graph_vgeo_expand_if_enabled } from "../../geometry/virtual/runtime/graph_vgeo_expand_if_enabled.js";
20
16
  import { MeshletFilter2WayPassData, pass_filter_meshlets_2way } from "../expand/pass1/pass_filter_meshlets_2way.js";
21
17
  import { RasterizationCollectionType } from "../expand/RasterizationCollectionType.js";
22
- import { construct_primitive_state, CullPolicy } from "../bucket/construct_primitive_state.js";
18
+ import { CullPolicy } from "../bucket/construct_primitive_state.js";
19
+ import { graph_meshlets_rasterize_by_bucket } from "../bucket/graph_meshlets_rasterize_by_bucket.js";
23
20
  import { rasterization_opaque_buckets } from "../bucket/rasterization_opaque_buckets.js";
24
21
  import { graph_clear_raster_targets } from "../graph_clear_raster_targets.js";
25
22
 
@@ -110,9 +107,6 @@ export function graph_rasterize_partial_opaque({
110
107
  },
111
108
  command
112
109
  });
113
-
114
- limits.stats.record(encoder, RasterizationCollectionType.Meshes, instances_positive);
115
-
116
110
  }
117
111
 
118
112
 
@@ -122,6 +116,17 @@ export function graph_rasterize_partial_opaque({
122
116
  // create a dummy pass to spawn persistent resources
123
117
  const dummy_pass = graph.add('dummy/spawn', {}, noop);
124
118
 
119
+ /*
120
+ One positive set for every bucket, as the maybe set always was. The filter appends, so each
121
+ bucket's pass adds its instances to what the buckets before it left, and what comes out of the
122
+ loop is every instance the view draws in this phase — which is what gets expanded and cut, once
123
+ (CUT_PLAN_2026_09_14 §7 6b).
124
+ */
125
+ let gr_instances_positive = dummy_pass.create("positive meshes", BufferResourceDescriptor.from(
126
+ collection_size_meshes,
127
+ GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC,
128
+ 0, 16
129
+ ));
125
130
  let gr_instances_maybe = dummy_pass.create("maybe meshes", BufferResourceDescriptor.from(
126
131
  collection_size_meshes,
127
132
  GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC,
@@ -136,10 +141,9 @@ export function graph_rasterize_partial_opaque({
136
141
 
137
142
  let viz_depth = depth;
138
143
 
144
+ const opaque = Array.from(rasterization_opaque_buckets(active_buckets));
139
145
 
140
- let is_first_draw = true;
141
-
142
- for (const { draw_mode, side, bucket_id } of rasterization_opaque_buckets(active_buckets)) {
146
+ for (const { bucket_id } of opaque) {
143
147
  const pass_data_instances_0 = {};
144
148
 
145
149
  const pass_instances_0 = graph.add("HZB mesh filter", pass_data_instances_0, execute);
@@ -151,33 +155,34 @@ export function graph_rasterize_partial_opaque({
151
155
  pass_data_instances_0.camera_previous = pass_instances_0.read(camera_previous);
152
156
  pass_data_instances_0.hzb = pass_instances_0.read(hzb);
153
157
 
154
- pass_data_instances_0.instances_positive = pass_instances_0.create("positive meshes", BufferResourceDescriptor.from(
155
- collection_size_meshes,
156
- GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC,
157
- 0, 16
158
- ));
159
-
158
+ gr_instances_positive = pass_data_instances_0.instances_positive = pass_instances_0.write(gr_instances_positive);
160
159
  gr_instances_maybe = pass_data_instances_0.instances_maybe = pass_instances_0.write(gr_instances_maybe);
160
+ }
161
+
162
+ let is_first_draw = true;
163
+
164
+ if (opaque.length > 0) {
165
+ graph_record_stat(graph, limits.stats, RasterizationCollectionType.Meshes, gr_instances_positive);
161
166
 
162
167
  let meshlet_expansion_0 = graph_expand_meshes_to_meshlets({
163
168
  graph,
164
- input_meshes: pass_data_instances_0.instances_positive,
169
+ input_meshes: gr_instances_positive,
165
170
  scene: scene_ctx,
166
171
  expected_output_size: collection_size_meshlets,
167
172
  limits,
168
173
  });
169
174
 
170
- // the seam. The instance sets of the two HZB passes are disjoint, so cutting each of
171
- // them costs one cut per view in total and no instance is ever cut twice
175
+ // the seam, over every opaque bucket at once. The instance sets of the two HZB passes are
176
+ // disjoint, so this and the second phase's are one cut per view in total, and no instance
177
+ // is ever cut twice
172
178
  meshlet_expansion_0 = graph_vgeo_expand_if_enabled({
173
179
  graph,
174
- input_meshes: pass_data_instances_0.instances_positive,
180
+ input_meshes: gr_instances_positive,
175
181
  output_meshlets: meshlet_expansion_0,
176
182
  view,
177
183
  limits,
178
184
  });
179
185
 
180
-
181
186
  graph_record_stat(graph, limits.stats, RasterizationCollectionType.Meshlets, meshlet_expansion_0);
182
187
 
183
188
  // ----------
@@ -201,22 +206,21 @@ export function graph_rasterize_partial_opaque({
201
206
  ));
202
207
  gr_meshlets_maybe = pass_data_meshlets_1.out_meshlets_maybe = pass_meshlets_1.write(gr_meshlets_maybe);
203
208
 
204
- const primitive_state = construct_primitive_state(draw_mode, side, cull_policy);
205
-
206
209
  // ----------
207
- [viz_depth, raster_color_targets] = graph_meshlets_rasterize({
210
+ [viz_depth, raster_color_targets] = graph_meshlets_rasterize_by_bucket({
208
211
  graph,
209
212
  view,
210
213
  input_meshlets: pass_data_meshlets_1.out_meshlets_positive,
214
+ buckets: opaque,
211
215
  depth: viz_depth,
212
216
  color_targets: raster_color_targets,
213
217
  pass_descriptor: render_pass_descriptor,
214
- clear_targets: is_first_draw,
215
- primitive_state,
218
+ clear_targets: true,
219
+ cull_policy,
216
220
  viewport,
221
+ limits,
217
222
  });
218
223
 
219
- //
220
224
  is_first_draw = false;
221
225
  }
222
226
 
@@ -1 +1 @@
1
- {"version":3,"file":"graph_rasterize_remaining_opaque.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.js"],"names":[],"mappings":"AA6FA;;;;;;;;;;;;;;;;;GAiBG;AACH,kOAFa;IAAC,KAAK,EAAC,MAAM,CAAC;IAAC,aAAa,EAAC,MAAM,EAAE,CAAA;CAAC,CAkGlD"}
1
+ {"version":3,"file":"graph_rasterize_remaining_opaque.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.js"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;;;;GAiBG;AACH,kOAFa;IAAC,KAAK,EAAC,MAAM,CAAC;IAAC,aAAa,EAAC,MAAM,EAAE,CAAA;CAAC,CAqFlD"}
@@ -1,96 +1,13 @@
1
- import { BufferResourceDescriptor } from "../../../device/graph/BufferResourceDescriptor.js";
2
- import { u32 } from "../../shader/type/WEBGPU_WGSL_PRIMITIVE_TYPES.js";
3
- import { STRUCT_DISPATCH_COMPUTE_COMMAND } from "../../gpu_primitive/indirect/STRUCT_DISPATCH_COMPUTE_COMMAND.js";
4
- import { ShadeDrawMode } from "../../material/ShadeDrawMode.js";
5
- import { ShadeDrawSide } from "../../material/ShadeDrawSide.js";
6
- import { TransparencyMode } from "../../material/TransparencyMode.js";
7
- import { COMPUTE_SHADER_DEFAULT_GROUP_SIZE } from "../../shader/COMPUTE_SHADER_DEFAULT_GROUP_SIZE.js";
8
1
  import { graph_record_stat } from "../../util/graph_record_stat.js";
9
- import { build_indirect_compute_dispatch_command } from "../../gpu_primitive/indirect/IndirectComputeCommandBuildPass.js";
10
- import { graph_sort_meshlets_by_bucket_id } from "../expand/bucket/meshlet/graph_sort_meshlets_by_bucket_id.js";
11
- import { shader_meshlets_extract_bucket } from "../expand/bucket/meshlet/shader_meshlets_extract_bucket.js";
12
2
  import { graph_mesh_filter_one_way } from "../expand/graph_mesh_filter_one_way.js";
13
3
  import { graph_meshlets_filter_one_way } from "../expand/graph_meshlets_filter_one_way.js";
14
- import { graph_meshlets_rasterize } from "../expand/graph_meshlets_rasterize.js";
15
4
  import { graph_expand_meshes_to_meshlets } from "../expand/mesh/graph_expand_meshes_to_meshlets.js";
16
5
  import { graph_vgeo_expand_if_enabled } from "../../geometry/virtual/runtime/graph_vgeo_expand_if_enabled.js";
17
6
  import { RasterizationCollectionType } from "../expand/RasterizationCollectionType.js";
18
- import { construct_primitive_state, CullPolicy } from "../bucket/construct_primitive_state.js";
7
+ import { CullPolicy } from "../bucket/construct_primitive_state.js";
8
+ import { graph_meshlets_rasterize_by_bucket } from "../bucket/graph_meshlets_rasterize_by_bucket.js";
19
9
  import { rasterization_opaque_buckets } from "../bucket/rasterization_opaque_buckets.js";
20
10
 
21
- /**
22
- *
23
- * @param {Object} options
24
- * @param {FrameGraph} options.graph
25
- * @param {number} options.buckets
26
- * @param {number} options.bucket_id
27
- * @param {GPUCollectionLimits} options.limits
28
- */
29
- function graph_extract_meshlets_from_bucket({
30
- graph,
31
- buckets,
32
- bucket_id,
33
- limits,
34
- }) {
35
-
36
- /**
37
- *
38
- * @param data
39
- * @param {FramePassResources} resources
40
- * @param {GraphicsExecutionContext} context
41
- */
42
- function execute(data, resources, context) {
43
- const encoder = context.encoder;
44
-
45
- const buckets = resources.get(data.buckets);
46
- const output = resources.get(data.output);
47
- const command = resources.get(data.command);
48
-
49
- const bucket_id = data.bucket_id;
50
-
51
- // folded: a meshlet collection is past what one dispatch dimension reaches — see
52
- // IndirectComputeCommandBuildPass
53
- build_indirect_compute_dispatch_command(
54
- COMPUTE_SHADER_DEFAULT_GROUP_SIZE,
55
- encoder,
56
- buckets,
57
- // the bucketed buffer header consists of pairs of u32 values (count,offset)
58
- bucket_id * (u32.size * 2),
59
- command,
60
- 0,
61
- true,
62
- );
63
-
64
- shader_meshlets_extract_bucket.dispatchIndirect({
65
- encoder,
66
- command,
67
- bindings: {
68
- bucket_index: { value: bucket_id },
69
- bucket_data: buckets,
70
- output: output,
71
- }
72
- });
73
- }
74
-
75
- const data = {};
76
-
77
- const pass = graph.add("extract meshlets from bucket", data, execute);
78
-
79
- data.buckets = pass.read(buckets);
80
- data.bucket_id = bucket_id;
81
- data.command = pass.create("command", BufferResourceDescriptor.from(
82
- STRUCT_DISPATCH_COMPUTE_COMMAND.aligned_size,
83
- GPUBufferUsage.STORAGE | GPUBufferUsage.INDIRECT,
84
- ));
85
- data.output = pass.create("output", BufferResourceDescriptor.from(
86
- limits.compute_buffer_size(RasterizationCollectionType.Meshlets),
87
- GPUBufferUsage.STORAGE,
88
- 0, 16 // clear count
89
- ));
90
-
91
- return data.output;
92
- }
93
-
94
11
  /**
95
12
  *
96
13
  * @param {FrameGraph} graph
@@ -170,34 +87,21 @@ export function graph_rasterize_remaining_opaque({
170
87
  });
171
88
 
172
89
 
173
- const meshlet_buckets = graph_sort_meshlets_by_bucket_id({
174
- graph,
175
- input_meshlets: gr_live_meshlets,
176
- scene_ctx: view.scene,
177
- limits,
178
- });
179
-
180
- for (const { draw_mode, side, bucket_id } of rasterization_opaque_buckets(active_buckets)) {
181
- const primitive_state = construct_primitive_state(draw_mode, side, cull_policy);
182
-
183
- // copy out a meshlet set
184
- const meshlets = graph_extract_meshlets_from_bucket({
185
- graph,
186
- buckets: meshlet_buckets,
187
- bucket_id,
188
- limits,
189
- });
90
+ const opaque = Array.from(rasterization_opaque_buckets(active_buckets));
190
91
 
191
- [gr_depth_texture, raster_color_targets] = graph_meshlets_rasterize({
92
+ if (opaque.length > 0) {
93
+ [gr_depth_texture, raster_color_targets] = graph_meshlets_rasterize_by_bucket({
192
94
  graph,
193
95
  view,
194
- input_meshlets: meshlets,
96
+ input_meshlets: gr_live_meshlets,
97
+ buckets: opaque,
195
98
  depth: gr_depth_texture,
196
99
  color_targets: raster_color_targets,
197
100
  pass_descriptor: render_pass_descriptor,
198
101
  clear_targets: false,
199
- primitive_state,
102
+ cull_policy,
200
103
  viewport,
104
+ limits,
201
105
  });
202
106
  }
203
107
 
@@ -69,6 +69,11 @@ export class GPUInstancesAccelerationStructure {
69
69
  * on its own — what a frame does, so the build follows the bounds pass it reads
70
70
  */
71
71
  update(scene_database_buffer: GPUBuffer, cmd_ctx?: ShadeGPUCommandContext): void;
72
+ /**
73
+ * Release the tree and the list of rows it was built over. For the scene context's own
74
+ * teardown: nothing builds or reads the tree afterwards. Safe to call twice.
75
+ */
76
+ destroy(): void;
72
77
  #private;
73
78
  }
74
79
  export type GraphicsContext = import("../GraphicsContext.js").GraphicsContext;
@@ -1 +1 @@
1
- {"version":3,"file":"GPUInstancesAccelerationStructure.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/scene/GPUInstancesAccelerationStructure.js"],"names":[],"mappings":"AAmCA;;GAEG;AACH;IA8DI;;;OAGG;IACH,sBAFW,eAAe,EAqBzB;IAzED,cAIC;IAOD;;;OAGG;IACH,wBAEC;IAmED;;;;OAIG;IACH,oBAFW,MAAM,QAUhB;IAED;;;;;OAKG;IACH,uBAFW,MAAM,QAUhB;IAED;;;;OAIG;IACH,uBAFW,MAAM,QAOhB;IA8CD;;;;OAIG;IACH;;;OAGG;IACH,mBAEC;IAiGD;;;;;;;;;;;;OAYG;IACH,0BAHW,YAAY,GAAC,YAAY,GAAC,MAAM,EAAE,GAChC,QAAQ,OAAO,CAAC,CA0C5B;IAED;;;OAGG;IACH,wDAFW,sBAAsB,QAMhC;IAED;;;;;;OAMG;IACH,mDAHW,sBAAsB,QAShC;;CACJ;8BA7YY,OAAO,uBAAuB,EAAE,eAAe;uCARrB,wCAAwC"}
1
+ {"version":3,"file":"GPUInstancesAccelerationStructure.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/scene/GPUInstancesAccelerationStructure.js"],"names":[],"mappings":"AAmCA;;GAEG;AACH;IA8DI;;;OAGG;IACH,sBAFW,eAAe,EAqBzB;IAzED,cAIC;IAOD;;;OAGG;IACH,wBAEC;IAmED;;;;OAIG;IACH,oBAFW,MAAM,QAUhB;IAED;;;;;OAKG;IACH,uBAFW,MAAM,QAUhB;IAED;;;;OAIG;IACH,uBAFW,MAAM,QAOhB;IA8CD;;;;OAIG;IACH;;;OAGG;IACH,mBAEC;IAiGD;;;;;;;;;;;;OAYG;IACH,0BAHW,YAAY,GAAC,YAAY,GAAC,MAAM,EAAE,GAChC,QAAQ,OAAO,CAAC,CA0C5B;IAED;;;OAGG;IACH,wDAFW,sBAAsB,QAMhC;IAED;;;;;;OAMG;IACH,mDAHW,sBAAsB,QAShC;IAED;;;OAGG;IACH,gBAKC;;CACJ;8BAxZY,OAAO,uBAAuB,EAAE,eAAe;uCARrB,wCAAwC"}
@@ -406,6 +406,17 @@ export class GPUInstancesAccelerationStructure {
406
406
 
407
407
  this.push_to_gpu(scene_database_buffer, cmd_ctx);
408
408
  }
409
+
410
+ /**
411
+ * Release the tree and the list of rows it was built over. For the scene context's own
412
+ * teardown: nothing builds or reads the tree afterwards. Safe to call twice.
413
+ */
414
+ destroy() {
415
+ this.#buffer.destroy();
416
+ this.#rows_buffer?.destroy();
417
+
418
+ this.#live.clear();
419
+ }
409
420
  }
410
421
 
411
422
  /**
@@ -75,9 +75,10 @@ export class GPUSceneContext {
75
75
  *
76
76
  * And the residency and the feedback loop with it, so that an engine host gets the whole
77
77
  * streaming loop by enabling virtual geometry rather than by wiring four objects itself
78
- * (REVIEW_LEDGER U1): `register` a container with {@link virtual_geometry_residency}, call
79
- * {@link virtual_geometry_feedback}'s `read` once a frame after the last rasterization path,
80
- * and every page after the root arrives because the cut asked for it.
78
+ * (REVIEW_LEDGER U1): `register` a container with {@link virtual_geometry_residency}, and every
79
+ * page after the root arrives because a cut asked for it. The renderer opens and closes each
80
+ * frame and schedules each reading, and {@link destroy} releases all of it; a host touches none
81
+ * of it.
81
82
  *
82
83
  * @param {Object} [options] passed to {@link GPUVirtualGeometryPool} and
83
84
  * {@link GPUVirtualGeometryRuntime}, except for `residency`
@@ -181,6 +182,13 @@ export class GPUSceneContext {
181
182
  * @param {number} dt_seconds wall-clock seconds since last call
182
183
  */
183
184
  tick(cmd_ctx: ShadeGPUCommandContext, dt_seconds: number): void;
185
+ /**
186
+ * Release this context's virtual geometry — everything {@link enable_virtual_geometry} built,
187
+ * so that a host tears a scene down by destroying the renderer and nothing of the streaming loop
188
+ * is left for it to find — then its rows, its database, its TLAS, its lights, its probe volume,
189
+ * its volumetrics, its volumetric light map, its animation and its skinning: every buffer the
190
+ * context made. Safe to call twice, and on a context that never enabled virtual geometry.
191
+ */
184
192
  destroy(): void;
185
193
  /**
186
194
  * @readonly
@@ -1 +1 @@
1
- {"version":3,"file":"GPUSceneContext.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/scene/GPUSceneContext.js"],"names":[],"mappings":"AAqEA;;;;;;;;;GASG;AACH;IA0II;;;;OAIG;IACH,sBAHW,eAAe,SACf,KAAK,EAiCf;IA5KD;;;OAGG;IACH,aAFU,MAAM,CAEE;IAElB;;OAEG;IACH,YAFU,kBAAkB,CAEjB;IAEX;;OAEG;IACH,WAFU,kBAAkB,CAElB;IAGV;;OAEG;IACH,sBAFU,cAAc,CAEH;IASrB;;;OAGG;IACH,mBAEC;IAOD,uCAEC;IAQD;;;OAGG;IACH,iCAEC;IAOD;;;OAGG;IACH,8CAEC;IAOD;;;OAGG;IACH,8CAEC;IAoHD;;OAEG;IACH,kDAEC;IAED;;OAEG;IACH,gDAEC;IAED;;OAEG;IACH,kDAEC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH;QAH0C,SAAS,GAAxC,oBAAoB;QAClB,yBAAyB,CAmCrC;IAED;;OAEG;IACH,6CAEC;IAYD;;;OAGG;IACH,kCAEC;IAED;;;;;OAKG;IACH,uCAEC;IAED;;;;;;;;;;;OAWG;IACH,uCAUC;IAED,+BAUC;IAED;;;;;;;;;;OAUG;IACH,yBAEC;IAED;;;;;OAKG;IACH,sCAMC;IAOD;;;;;;;OAOG;IACH,8EAEC;IA0BD;;;;;OAKG;IACH,cAsEC;IAED;;;OAGG;IACH,YAFW,eAAe,QA0BzB;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,cAHW,sBAAsB,cACtB,MAAM,QAuBhB;IAoCD,gBAYC;IAIL;;;OAGG;IACH,4BAFU,OAAO,CAE0B;;CAN1C;8BA9pBY,OAAO,uBAAuB,EAAE,eAAe;iCAC/C,OAAO,mCAAmC,EAAE,kBAAkB;iCAC9D,OAAO,mCAAmC,EAAE,kBAAkB;4BAC9D,OAAO,8BAA8B,EAAE,aAAa;8BACpD,OAAO,iDAAiD,EAAE,eAAe;+BAtBvD,iDAAiD;sBAI1D,YAAY;oCADE,uCAAuC;mCADxC,gCAAgC;oCAD/B,mDAAmD;kDAIrC,wCAAwC;0CAfhD,0DAA0D;8BAItE,8CAA8C;iCAF3C,iDAAiD;qCAG7C,qDAAqD;oCAGtD,qCAAqC;4BAC7C,gCAAgC;uCAOrB,iDAAiD;6BAM3D,wBAAwB;wCADb,mCAAmC;uCAdpC,wCAAwC"}
1
+ {"version":3,"file":"GPUSceneContext.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/scene/GPUSceneContext.js"],"names":[],"mappings":"AAqEA;;;;;;;;;GASG;AACH;IA0II;;;;OAIG;IACH,sBAHW,eAAe,SACf,KAAK,EAiCf;IA5KD;;;OAGG;IACH,aAFU,MAAM,CAEE;IAElB;;OAEG;IACH,YAFU,kBAAkB,CAEjB;IAEX;;OAEG;IACH,WAFU,kBAAkB,CAElB;IAGV;;OAEG;IACH,sBAFU,cAAc,CAEH;IASrB;;;OAGG;IACH,mBAEC;IAOD,uCAEC;IAQD;;;OAGG;IACH,iCAEC;IAOD;;;OAGG;IACH,8CAEC;IAOD;;;OAGG;IACH,8CAEC;IA2HD;;OAEG;IACH,kDAEC;IAED;;OAEG;IACH,gDAEC;IAED;;OAEG;IACH,kDAEC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH;QAH0C,SAAS,GAAxC,oBAAoB;QAClB,yBAAyB,CAuDrC;IAED;;OAEG;IACH,6CAEC;IAYD;;;OAGG;IACH,kCAEC;IAED;;;;;OAKG;IACH,uCAEC;IAED;;;;;;;;;;;OAWG;IACH,uCAUC;IAED,+BAUC;IAED;;;;;;;;;;OAUG;IACH,yBAEC;IAED;;;;;OAKG;IACH,sCAMC;IAOD;;;;;;;OAOG;IACH,8EAEC;IA0BD;;;;;OAKG;IACH,cAsEC;IAED;;;OAGG;IACH,YAFW,eAAe,QA0BzB;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,cAHW,sBAAsB,cACtB,MAAM,QAuBhB;IAoCD;;;;;;OAMG;IACH,gBAiBC;IAoCL;;;OAGG;IACH,4BAFU,OAAO,CAE0B;;CAN1C;8BAtuBY,OAAO,uBAAuB,EAAE,eAAe;iCAC/C,OAAO,mCAAmC,EAAE,kBAAkB;iCAC9D,OAAO,mCAAmC,EAAE,kBAAkB;4BAC9D,OAAO,8BAA8B,EAAE,aAAa;8BACpD,OAAO,iDAAiD,EAAE,eAAe;+BAtBvD,iDAAiD;sBAI1D,YAAY;oCADE,uCAAuC;mCADxC,gCAAgC;oCAD/B,mDAAmD;kDAIrC,wCAAwC;0CAfhD,0DAA0D;8BAItE,8CAA8C;iCAF3C,iDAAiD;qCAG7C,qDAAqD;oCAGtD,qCAAqC;4BAC7C,gCAAgC;uCAOrB,iDAAiD;6BAM3D,wBAAwB;wCADb,mCAAmC;uCAdpC,wCAAwC"}
@@ -273,12 +273,19 @@ export class GPUSceneContext {
273
273
 
274
274
  /**
275
275
  * The feedback loop that carries the cut's readings into the residency, once
276
- * {@link enable_virtual_geometry} has run. A host calls its `read` once a frame after every
277
- * rasterization path has cut.
276
+ * {@link enable_virtual_geometry} has run. The renderer reads it once a frame after every
277
+ * rasterization path has cut; a host does not.
278
278
  * @type {VGeoFeedbackLoop|undefined}
279
279
  */
280
280
  #virtual_geometry_feedback;
281
281
 
282
+ /**
283
+ * Where the residency's pages are fetched, and the workers that fetch them. This context made
284
+ * it and handed it in, so the residency does not release it and {@link destroy} does.
285
+ * @type {VGeoPageFetcher|undefined}
286
+ */
287
+ #virtual_geometry_fetcher;
288
+
282
289
  /**
283
290
  * @returns {GPUVirtualGeometryRuntime|undefined}
284
291
  */
@@ -310,9 +317,10 @@ export class GPUSceneContext {
310
317
  *
311
318
  * And the residency and the feedback loop with it, so that an engine host gets the whole
312
319
  * streaming loop by enabling virtual geometry rather than by wiring four objects itself
313
- * (REVIEW_LEDGER U1): `register` a container with {@link virtual_geometry_residency}, call
314
- * {@link virtual_geometry_feedback}'s `read` once a frame after the last rasterization path,
315
- * and every page after the root arrives because the cut asked for it.
320
+ * (REVIEW_LEDGER U1): `register` a container with {@link virtual_geometry_residency}, and every
321
+ * page after the root arrives because a cut asked for it. The renderer opens and closes each
322
+ * frame and schedules each reading, and {@link destroy} releases all of it; a host touches none
323
+ * of it.
316
324
  *
317
325
  * @param {Object} [options] passed to {@link GPUVirtualGeometryPool} and
318
326
  * {@link GPUVirtualGeometryRuntime}, except for `residency`
@@ -332,26 +340,46 @@ export class GPUSceneContext {
332
340
  ...rest,
333
341
  });
334
342
 
335
- this.#virtual_geometry = new GPUVirtualGeometryRuntime({
336
- pool,
337
- ...rest,
338
- });
343
+ /*
344
+ All four or none. Installed one at a time, a throw partway — options a residency refuses —
345
+ left a runtime on offer with no loop behind it, and destroy() then threw on the missing loop
346
+ before it reached the rest of the scene.
347
+ */
348
+ let runtime;
349
+ let fetcher;
350
+ let tiers;
351
+ let feedback;
352
+
353
+ try {
354
+ runtime = new GPUVirtualGeometryRuntime({
355
+ pool,
356
+ ...rest,
357
+ });
339
358
 
340
- // pages are fetched, verified and decoded on workers, spawned on first use; a host with no
341
- // Worker gets the same fetch in-process
342
- const fetcher = new VGeoPageFetcher({
343
- worker_count: residency.worker_count,
344
- make_worker: typeof Worker === 'undefined' ? undefined : make_vgeo_page_worker,
345
- });
359
+ // pages are fetched, verified and decoded on workers, spawned on first use; a host with
360
+ // no Worker gets the same fetch in-process
361
+ fetcher = new VGeoPageFetcher({
362
+ worker_count: residency.worker_count,
363
+ make_worker: typeof Worker === 'undefined' ? undefined : make_vgeo_page_worker,
364
+ });
346
365
 
347
- this.#virtual_geometry_residency = new VGeoResidency({ pool, options: residency, fetcher });
366
+ tiers = new VGeoResidency({ pool, options: residency, fetcher });
348
367
 
349
- this.#virtual_geometry_feedback = new VGeoFeedbackLoop({
350
- runtime: this.#virtual_geometry,
351
- residency: this.#virtual_geometry_residency,
352
- });
368
+ feedback = new VGeoFeedbackLoop({ runtime, residency: tiers });
369
+ } catch (error) {
370
+ // the pool is the only one holding anything yet: the fetcher spawns its workers on its
371
+ // first fetch, and the runtime makes its buffer on its first frame
372
+ pool.destroy();
353
373
 
354
- return this.#virtual_geometry;
374
+ throw error;
375
+ }
376
+
377
+ this.#virtual_geometry = runtime;
378
+ this.#virtual_geometry_fetcher = fetcher;
379
+ this.#virtual_geometry_residency = tiers;
380
+ this.#virtual_geometry_feedback = feedback;
381
+
382
+ return runtime;
355
383
  }
356
384
 
357
385
  /**
@@ -683,20 +711,64 @@ export class GPUSceneContext {
683
711
  });
684
712
  }
685
713
 
714
+ /**
715
+ * Release this context's virtual geometry — everything {@link enable_virtual_geometry} built,
716
+ * so that a host tears a scene down by destroying the renderer and nothing of the streaming loop
717
+ * is left for it to find — then its rows, its database, its TLAS, its lights, its probe volume,
718
+ * its volumetrics, its volumetric light map, its animation and its skinning: every buffer the
719
+ * context made. Safe to call twice, and on a context that never enabled virtual geometry.
720
+ */
686
721
  destroy() {
722
+ this.#destroy_virtual_geometry();
723
+
687
724
  if (this.#rows !== null) {
688
725
  this.#rows.destroy();
689
726
  }
690
727
 
691
728
  this.#scene_database.destroy();
729
+ this.#tlas.destroy();
692
730
  this.#lights.destroy();
693
731
  this.#light_probe_volume.destroy();
732
+ this.#volumetrics.destroy();
733
+ this.volumetric_light_map.destroy();
694
734
  this.#animation_manager.destroy();
695
735
  if (this.#skinning !== null) {
696
736
  this.#skinning.destroy();
697
737
  }
698
738
  }
699
739
 
740
+ /**
741
+ * Everything {@link enable_virtual_geometry} built, in the order it depends on itself: the work
742
+ * still outstanding first — the loop's and the residency's fetches, and the workers they run on
743
+ * — because each of those lands on the pool's rows when it finishes, and then the device memory,
744
+ * the runtime's feedback buffer before the pool's tables that its frames write into.
745
+ *
746
+ * Afterwards the scene has no virtual geometry, which is what every rasterization path already
747
+ * takes to mean "skip the cut".
748
+ */
749
+ #destroy_virtual_geometry() {
750
+ const runtime = this.#virtual_geometry;
751
+
752
+ if (runtime === undefined) {
753
+ return;
754
+ }
755
+
756
+ this.#virtual_geometry_feedback.destroy();
757
+
758
+ // gives back every container's rows and slots, and cancels what they had on the wire
759
+ this.#virtual_geometry_residency.destroy();
760
+
761
+ this.#virtual_geometry_fetcher.destroy();
762
+
763
+ runtime.destroy();
764
+ runtime.pool.destroy();
765
+
766
+ this.#virtual_geometry = undefined;
767
+ this.#virtual_geometry_residency = undefined;
768
+ this.#virtual_geometry_feedback = undefined;
769
+ this.#virtual_geometry_fetcher = undefined;
770
+ }
771
+
700
772
  }
701
773
 
702
774
  /**
@@ -220,7 +220,10 @@ export class GPUSceneRows {
220
220
  */
221
221
  for_each_descendant(entity: number, visitor: (arg0: number) => void): void;
222
222
  /**
223
- * Forget everything, freeing every row. For the context's own teardown.
223
+ * Forget everything. For the context's own teardown, which destroys the tables and the tree
224
+ * next — so no row is given back to them one at a time, which cost about 2 µs a row and took a
225
+ * scene of millions seconds to leave. What outlives the context is not the rows' to give back:
226
+ * the skinned clones go back to the shared geometry manager with the skinning context.
224
227
  */
225
228
  destroy(): void;
226
229
  #private;
@@ -1 +1 @@
1
- {"version":3,"file":"GPUSceneRows.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/scene/rows/GPUSceneRows.js"],"names":[],"mappings":"AAcA;;;;;;;;;;GAUG;AAEH;;;;;;;;;GASG;AACH,sCAHW,MAAM,GACJ,MAAM,CAIlB;AAED;;;;;;GAMG;AACH,mCAHW,MAAM,GACJ,MAAM,CAIlB;AAoID;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH;IA2II;;;;;;;;;OASG;IACH;QAR2C,OAAO,EAAvC,sBAAsB;QACC,UAAU;QACV,MAAM;QACD,UAAU,EAAtC,kBAAkB;QACU,SAAS,EAArC,kBAAkB;QACyB,IAAI,EAA/C,iCAAiC;QACW,QAAQ,QAAxC,sBAAsB;OAmB5C;IAED;;OAEG;IACH,iGAEC;IAED;;;;;OAKG;IACH,gCAEC;IAED;;;;;OAKG;IACH,YAHW,MAAM,GACJ,OAAO,CAInB;IAED;;;;;;;;OAQG;IACH,oBAA8B;IAE9B;;;;;OAKG;IACH,iBAHW,MAAM,GACJ,OAAO,CAInB;IAED;;;;;;;OAOG;IACH,8BAHoB,MAAM,QAAE,eAAe,QAAE,aAAa,QAAE,OAAO,KAAG,IAAI,QASzE;IAED;;;;;;;;;OASG;IACH,6BAHW,KAAK,GACH,OAAO,CAyBnB;IAED;;;;;;;;;;OAUG;IACH,gBAFW,MAAM,QAuChB;IAED;;;;;;;;OAQG;IACH,gBAFW,MAAM,QA0BhB;IAED;;;;OAIG;IACH,mBAFW,MAAM,QAIhB;IAED;;;;;OAKG;IACH,mBAFW,MAAM,QAIhB;IAED;;;;;OAKG;IACH,2EAOC;IAED;;;;OAIG;IACH,gCAEC;IAqCD;;;;;;;;;;;;;;OAcG;IACH,oBALW,MAAM,YACN,eAAe,YACf,aAAa,YACb,OAAO,QAgDjB;IAED;;;;;OAKG;IACH,oBAFW,MAAM,QAUhB;IAwCD;;;;OAIG;IACH,SAFa,MAAM,CAsDlB;IAyMD;;;;OAIG;IACH;;;;;;;;OAQG;IACH,4BAHW,MAAM,kBACG,MAAM,KAAG,IAAI,QAiBhC;IAyGD;;OAEG;IACH,gBA+BC;;CACJ;qCA5oCY,OAAO,kDAAkD,EAAE,sBAAsB;;iCAEjF,OAAO,sCAAsC,EAAE,kBAAkB;iCACjE,OAAO,sCAAsC,EAAE,kBAAkB;gDACjE,OAAO,yCAAyC,EAAE,iCAAiC;qCACnF,OAAO,oDAAoD,EAAE,sBAAsB;8BACnF,OAAO,mCAAmC,EAAE,eAAe;4BAC3D,OAAO,iCAAiC,EAAE,aAAa;oBACvD,OAAO,wCAAwC,EAAE,KAAK"}
1
+ {"version":3,"file":"GPUSceneRows.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/scene/rows/GPUSceneRows.js"],"names":[],"mappings":"AAcA;;;;;;;;;;GAUG;AAEH;;;;;;;;;GASG;AACH,sCAHW,MAAM,GACJ,MAAM,CAIlB;AAED;;;;;;GAMG;AACH,mCAHW,MAAM,GACJ,MAAM,CAIlB;AAoID;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH;IA2II;;;;;;;;;OASG;IACH;QAR2C,OAAO,EAAvC,sBAAsB;QACC,UAAU;QACV,MAAM;QACD,UAAU,EAAtC,kBAAkB;QACU,SAAS,EAArC,kBAAkB;QACyB,IAAI,EAA/C,iCAAiC;QACW,QAAQ,QAAxC,sBAAsB;OAmB5C;IAED;;OAEG;IACH,iGAEC;IAED;;;;;OAKG;IACH,gCAEC;IAED;;;;;OAKG;IACH,YAHW,MAAM,GACJ,OAAO,CAInB;IAED;;;;;;;;OAQG;IACH,oBAA8B;IAE9B;;;;;OAKG;IACH,iBAHW,MAAM,GACJ,OAAO,CAInB;IAED;;;;;;;OAOG;IACH,8BAHoB,MAAM,QAAE,eAAe,QAAE,aAAa,QAAE,OAAO,KAAG,IAAI,QASzE;IAED;;;;;;;;;OASG;IACH,6BAHW,KAAK,GACH,OAAO,CAyBnB;IAED;;;;;;;;;;OAUG;IACH,gBAFW,MAAM,QAuChB;IAED;;;;;;;;OAQG;IACH,gBAFW,MAAM,QA0BhB;IAED;;;;OAIG;IACH,mBAFW,MAAM,QAIhB;IAED;;;;;OAKG;IACH,mBAFW,MAAM,QAIhB;IAED;;;;;OAKG;IACH,2EAOC;IAED;;;;OAIG;IACH,gCAEC;IAqCD;;;;;;;;;;;;;;OAcG;IACH,oBALW,MAAM,YACN,eAAe,YACf,aAAa,YACb,OAAO,QAgDjB;IAED;;;;;OAKG;IACH,oBAFW,MAAM,QAUhB;IAwCD;;;;OAIG;IACH,SAFa,MAAM,CAsDlB;IAyMD;;;;OAIG;IACH;;;;;;;;OAQG;IACH,4BAHW,MAAM,kBACG,MAAM,KAAG,IAAI,QAiBhC;IAyGD;;;;;OAKG;IACH,gBAUC;;CACJ;qCA1nCY,OAAO,kDAAkD,EAAE,sBAAsB;;iCAEjF,OAAO,sCAAsC,EAAE,kBAAkB;iCACjE,OAAO,sCAAsC,EAAE,kBAAkB;gDACjE,OAAO,yCAAyC,EAAE,iCAAiC;qCACnF,OAAO,oDAAoD,EAAE,sBAAsB;8BACnF,OAAO,mCAAmC,EAAE,eAAe;4BAC3D,OAAO,iCAAiC,EAAE,aAAa;oBACvD,OAAO,wCAAwC,EAAE,KAAK"}
@@ -1143,33 +1143,15 @@ export class GPUSceneRows {
1143
1143
  }
1144
1144
 
1145
1145
  /**
1146
- * Forget everything, freeing every row. For the context's own teardown.
1146
+ * Forget everything. For the context's own teardown, which destroys the tables and the tree
1147
+ * next — so no row is given back to them one at a time, which cost about 2 µs a row and took a
1148
+ * scene of millions seconds to leave. What outlives the context is not the rows' to give back:
1149
+ * the skinned clones go back to the shared geometry manager with the skinning context.
1147
1150
  */
1148
1151
  destroy() {
1149
- for (const [entity, entry] of this.#mesh_entries) {
1150
- if (entry.written) {
1151
- const row = row_of_entity(entity);
1152
-
1153
- this.#meshes.remove(row);
1154
- this.#tlas.instance_remove(row);
1155
-
1156
- if (entry.skinned) {
1157
- this.#skinning().release_clone(entity);
1158
- }
1159
- }
1160
- }
1161
-
1162
1152
  this.#mesh_entries.clear();
1163
1153
 
1164
- const acquired = this.#acquired;
1165
-
1166
- for (let entity = acquired.nextSetBit(0); entity !== -1; entity = acquired.nextSetBit(entity + 1)) {
1167
- if (this.#written.get(entity)) {
1168
- this.#transforms.remove(row_of_entity(entity));
1169
- }
1170
- }
1171
-
1172
- acquired.reset();
1154
+ this.#acquired.reset();
1173
1155
  this.#written.reset();
1174
1156
  this.#reason.fill(0);
1175
1157
  this.#holds.fill(0);
@@ -1 +1 @@
1
- {"version":3,"file":"GPUSceneShadowmapContext.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/shadow/map/GPUSceneShadowmapContext.js"],"names":[],"mappings":"AAuFA;;GAEG;AACH;IAgPI;;;;;;;;OAQG;IACH,sBAPW,eAAe,aACf,eAAe,SAGf,kBAAkB,EA+D5B;IApTD,2BAAwG;IAExG;;;OAGG;IACH,SAFU,iBAAiB,CAEnB;IAQR;;;;;;;;OAQG;IACH,qBAFU,WAAW,CAED;IAsCpB;;;;;;;;OAQG;IACH,SAFU,OAAO,CAEF;IAEf;;;;;;;;;;OAUG;IACH,+BAFU,OAAO,CAEqB;IA2BtC;;;;OAIG;IACH,6BAIC;IAhBD;;OAEG;IACH,4BAEC;IA8ED;;OAEG;IACH,iCAEC;IAED;;;;;;OAMG;IACH,oCAEC;IAED;;;;;OAKG;IACH,oCAEC;IAkGD;;;;;OAKG;IACH,iCAMC;IAgHD;;;;OAIG;IACH,eAHW,KAAK,GACH,SAAS,GAAC,SAAS,CAI/B;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2CG;IACH,6BAPW,MAAM,SAEN,eAAe,eACf,MAAM,mBACN,UAAU,MAAM,CAAC,QAgE3B;IAyED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,kBAFW,sBAAsB,QAsFhC;IAsbD;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,kBALa,OAAO,CAwOnB;IAED;;;;OAIG;IACH,iBAHW,MAAM,GACJ,KAAK,CAWjB;IAED,gBAiBC;;CACJ;qCAn9CY,OAAO,2CAA2C,EAAE,sBAAsB;8BAC1E,OAAO,0BAA0B,EAAE,eAAe;qBAClD,OAAO,wBAAwB,EAAE,MAAM;iCACvC,OAAO,mCAAmC,EAAE,kBAAkB;oBAC9D,OAAO,4BAA4B,EAAE,KAAK;8BAC1C,OAAO,gCAAgC,EAAE,eAAe;wBACxD,OAAO,gBAAgB,EAAE,SAAS;oCA9DX,+DAA+D;kCAkBjE,oCAAoC;4BAG1C,2BAA2B;kBAtBrC,wCAAwC"}
1
+ {"version":3,"file":"GPUSceneShadowmapContext.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/shadow/map/GPUSceneShadowmapContext.js"],"names":[],"mappings":"AA0FA;;GAEG;AACH;IAgPI;;;;;;;;OAQG;IACH,sBAPW,eAAe,aACf,eAAe,SAGf,kBAAkB,EAiE5B;IAtTD,2BAAwG;IAExG;;;OAGG;IACH,SAFU,iBAAiB,CAEnB;IAQR;;;;;;;;OAQG;IACH,qBAFU,WAAW,CAED;IAsCpB;;;;;;;;OAQG;IACH,SAFU,OAAO,CAEF;IAEf;;;;;;;;;;OAUG;IACH,+BAFU,OAAO,CAEqB;IA2BtC;;;;OAIG;IACH,6BAIC;IAhBD;;OAEG;IACH,4BAEC;IA8ED;;OAEG;IACH,iCAEC;IAED;;;;;;OAMG;IACH,oCAEC;IAED;;;;;OAKG;IACH,oCAEC;IAoGD;;;;;OAKG;IACH,iCAMC;IAoKD;;;;OAIG;IACH,eAHW,KAAK,GACH,SAAS,GAAC,SAAS,CAI/B;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2CG;IACH,6BAPW,MAAM,SAEN,eAAe,eACf,MAAM,mBACN,UAAU,MAAM,CAAC,QAoE3B;IAyED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,kBAFW,sBAAsB,QAwFhC;IAsbD;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,kBALa,OAAO,CAwOnB;IAED;;;;OAIG;IACH,iBAHW,MAAM,GACJ,KAAK,CAWjB;IAED,gBAiBC;;CACJ;qCA/gDY,OAAO,2CAA2C,EAAE,sBAAsB;8BAC1E,OAAO,0BAA0B,EAAE,eAAe;qBAClD,OAAO,wBAAwB,EAAE,MAAM;iCACvC,OAAO,mCAAmC,EAAE,kBAAkB;oBAC9D,OAAO,4BAA4B,EAAE,KAAK;8BAC1C,OAAO,gCAAgC,EAAE,eAAe;wBACxD,OAAO,gBAAgB,EAAE,SAAS;oCAhEX,+DAA+D;kCAkBjE,oCAAoC;4BAG1C,2BAA2B;kBAtBrC,wCAAwC"}