@woosh/meep-engine 3.47.0 → 3.50.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 (1770) hide show
  1. package/build/bundle-worker-terrain.js +1 -1
  2. package/editor/particles/effect/ParticleReferenceSimulation.d.ts +12 -2
  3. package/editor/particles/effect/ParticleReferenceSimulation.d.ts.map +1 -1
  4. package/editor/particles/effect/ParticleReferenceSimulation.js +30 -4
  5. package/editor/view/particles/effect/ParticleGraphEditorView.d.ts.map +1 -1
  6. package/editor/view/particles/effect/ParticleGraphEditorView.js +3 -1
  7. package/package.json +1 -1
  8. package/src/core/color/xyz/m3_rgb_to_xyz_from_primaries.d.ts +11 -0
  9. package/src/core/color/xyz/m3_rgb_to_xyz_from_primaries.d.ts.map +1 -0
  10. package/src/core/color/xyz/m3_rgb_to_xyz_from_primaries.js +40 -0
  11. package/src/core/geom/3d/mat4/m4_decompose_rigid_array.d.ts +24 -0
  12. package/src/core/geom/3d/mat4/m4_decompose_rigid_array.d.ts.map +1 -0
  13. package/src/core/geom/3d/mat4/m4_decompose_rigid_array.js +80 -0
  14. package/src/core/geom/3d/shape/PosedShape3D.d.ts +10 -0
  15. package/src/core/geom/3d/shape/PosedShape3D.d.ts.map +1 -1
  16. package/src/core/geom/3d/shape/PosedShape3D.js +50 -11
  17. package/src/core/geom/3d/shape/TransformedShape3D.d.ts +37 -0
  18. package/src/core/geom/3d/shape/TransformedShape3D.d.ts.map +1 -1
  19. package/src/core/geom/3d/shape/TransformedShape3D.js +73 -49
  20. package/src/core/geom/3d/shape/UnionShape3D.d.ts +13 -0
  21. package/src/core/geom/3d/shape/UnionShape3D.d.ts.map +1 -1
  22. package/src/core/geom/3d/shape/UnionShape3D.js +17 -4
  23. package/src/core/geom/3d/shape/record/ShapeRecord.d.ts +65 -0
  24. package/src/core/geom/3d/shape/record/ShapeRecord.d.ts.map +1 -0
  25. package/src/core/geom/3d/shape/record/ShapeRecord.js +72 -0
  26. package/src/core/geom/3d/shape/record/ShapeRecordKind.d.ts +13 -0
  27. package/src/core/geom/3d/shape/record/ShapeRecordKind.d.ts.map +1 -0
  28. package/src/core/geom/3d/shape/record/ShapeRecordKind.js +39 -0
  29. package/src/core/geom/3d/shape/record/shape_record_local_bounds.d.ts +19 -0
  30. package/src/core/geom/3d/shape/record/shape_record_local_bounds.d.ts.map +1 -0
  31. package/src/core/geom/3d/shape/record/shape_record_local_bounds.js +61 -0
  32. package/src/core/geom/3d/shape/record/shape_record_pack.d.ts +88 -0
  33. package/src/core/geom/3d/shape/record/shape_record_pack.d.ts.map +1 -0
  34. package/src/core/geom/3d/shape/record/shape_record_pack.js +418 -0
  35. package/src/core/geom/3d/shape/record/shape_record_pack_bounding_box.d.ts +23 -0
  36. package/src/core/geom/3d/shape/record/shape_record_pack_bounding_box.d.ts.map +1 -0
  37. package/src/core/geom/3d/shape/record/shape_record_pack_bounding_box.js +69 -0
  38. package/src/core/geom/3d/shape/record/shape_record_signed_distance.d.ts +52 -0
  39. package/src/core/geom/3d/shape/record/shape_record_signed_distance.d.ts.map +1 -0
  40. package/src/core/geom/3d/shape/record/shape_record_signed_distance.js +135 -0
  41. package/src/core/geom/3d/shape/sdf/sdf3_plane.d.ts +7 -0
  42. package/src/core/geom/3d/shape/sdf/sdf3_plane.d.ts.map +1 -1
  43. package/src/core/geom/3d/shape/sdf/sdf3_plane.js +7 -0
  44. package/src/core/geom/3d/shape/util/compute_signed_distance_gradient_by_sampling.d.ts +3 -0
  45. package/src/core/geom/3d/shape/util/compute_signed_distance_gradient_by_sampling.d.ts.map +1 -1
  46. package/src/core/geom/3d/shape/util/compute_signed_distance_gradient_by_sampling.js +19 -13
  47. package/src/core/geom/clipmap/ClipmapWindowSet.d.ts +141 -0
  48. package/src/core/geom/clipmap/ClipmapWindowSet.d.ts.map +1 -0
  49. package/src/core/geom/clipmap/ClipmapWindowSet.js +301 -0
  50. package/src/core/geom/clipmap/clipmap_select_finest.d.ts +20 -0
  51. package/src/core/geom/clipmap/clipmap_select_finest.d.ts.map +1 -0
  52. package/src/core/geom/clipmap/clipmap_select_finest.js +53 -0
  53. package/src/core/geom/clipmap/quantize_hysteretic.d.ts +22 -0
  54. package/src/core/geom/clipmap/quantize_hysteretic.d.ts.map +1 -0
  55. package/src/core/geom/clipmap/quantize_hysteretic.js +33 -0
  56. package/src/core/geom/clipmap/window_scroll_regions.d.ts +25 -0
  57. package/src/core/geom/clipmap/window_scroll_regions.d.ts.map +1 -0
  58. package/src/core/geom/clipmap/window_scroll_regions.js +83 -0
  59. package/src/core/geom/vec3/v3_clamp_to_cone.d.ts +59 -0
  60. package/src/core/geom/vec3/v3_clamp_to_cone.d.ts.map +1 -0
  61. package/src/core/geom/vec3/v3_clamp_to_cone.js +197 -0
  62. package/src/core/math/falloff_quadratic.d.ts +13 -0
  63. package/src/core/math/falloff_quadratic.d.ts.map +1 -0
  64. package/src/core/math/falloff_quadratic.js +20 -0
  65. package/src/core/math/physics/fluid/vortex_swirl.d.ts +40 -0
  66. package/src/core/math/physics/fluid/vortex_swirl.d.ts.map +1 -0
  67. package/src/core/math/physics/fluid/vortex_swirl.js +91 -0
  68. package/src/core/math/physics/kinematics/rigid_velocity_at_point.d.ts +27 -0
  69. package/src/core/math/physics/kinematics/rigid_velocity_at_point.d.ts.map +1 -0
  70. package/src/core/math/physics/kinematics/rigid_velocity_at_point.js +40 -0
  71. package/src/engine/EngineHarness.d.ts.map +1 -1
  72. package/src/engine/EngineHarness.js +6 -0
  73. package/src/engine/ecs/EntityComponentDataset.d.ts +48 -4
  74. package/src/engine/ecs/EntityComponentDataset.d.ts.map +1 -1
  75. package/src/engine/ecs/EntityComponentDataset.js +120 -11
  76. package/src/engine/ecs/async/WORKER_SYSTEM_PLAN.md +27 -11
  77. package/src/engine/ecs/fow/FogOfWarVisibilityPredicate.d.ts.map +1 -1
  78. package/src/engine/ecs/fow/FogOfWarVisibilityPredicate.js +1 -3
  79. package/src/engine/ecs/storage/populateEngineSerializationRegistry.d.ts.map +1 -1
  80. package/src/engine/ecs/storage/populateEngineSerializationRegistry.js +13 -0
  81. package/src/engine/ecs/terrain/util/obtainTerrain.d.ts.map +1 -1
  82. package/src/engine/ecs/terrain/util/obtainTerrain.js +5 -0
  83. package/src/engine/graphics/ecs/particles/ParticleEffect.d.ts +2 -2
  84. package/src/engine/graphics/ecs/particles/ParticleEffect.d.ts.map +1 -1
  85. package/src/engine/graphics/ecs/particles/ParticleEffect.js +7 -7
  86. package/src/engine/graphics/ecs/particles/ParticleEffectSerializationAdapter.d.ts +8 -0
  87. package/src/engine/graphics/ecs/particles/ParticleEffectSerializationAdapter.d.ts.map +1 -1
  88. package/src/engine/graphics/ecs/particles/ParticleEffectSerializationAdapter.js +11 -3
  89. package/src/engine/graphics/ecs/particles/ParticleEffectSerializationUpgrader_1_2.d.ts +26 -0
  90. package/src/engine/graphics/ecs/particles/ParticleEffectSerializationUpgrader_1_2.d.ts.map +1 -0
  91. package/src/engine/graphics/ecs/particles/ParticleEffectSerializationUpgrader_1_2.js +91 -0
  92. package/src/engine/graphics/ecs/water/WaterWaves.d.ts +8 -21
  93. package/src/engine/graphics/ecs/water/WaterWaves.d.ts.map +1 -1
  94. package/src/engine/graphics/ecs/water/WaterWaves.js +8 -31
  95. package/src/engine/graphics/ecs/water/WaterWavesSerializationAdapter.d.ts +4 -0
  96. package/src/engine/graphics/ecs/water/WaterWavesSerializationAdapter.d.ts.map +1 -1
  97. package/src/engine/graphics/ecs/water/WaterWavesSerializationAdapter.js +5 -5
  98. package/src/engine/graphics/ecs/water/WaterWavesSerializationUpgrader_1_2.d.ts +9 -0
  99. package/src/engine/graphics/ecs/water/WaterWavesSerializationUpgrader_1_2.d.ts.map +1 -0
  100. package/src/engine/graphics/ecs/water/WaterWavesSerializationUpgrader_1_2.js +19 -0
  101. package/src/engine/graphics/texture/3d/scs3d_sample_linear3.d.ts +21 -0
  102. package/src/engine/graphics/texture/3d/scs3d_sample_linear3.d.ts.map +1 -1
  103. package/src/engine/graphics/texture/3d/scs3d_sample_linear3.js +78 -0
  104. package/src/engine/graphics3/GPUFluidSystem.d.ts +266 -0
  105. package/src/engine/graphics3/GPUFluidSystem.d.ts.map +1 -0
  106. package/src/engine/graphics3/GPUFluidSystem.js +1613 -0
  107. package/src/engine/graphics3/GPUParticleEmitterSystem.js +2 -2
  108. package/src/engine/graphics3/GraphicsEngine.d.ts.map +1 -1
  109. package/src/engine/graphics3/GraphicsEngine.js +8 -1
  110. package/src/engine/graphics3/ParticipatingMedia.d.ts +90 -1
  111. package/src/engine/graphics3/ParticipatingMedia.d.ts.map +1 -1
  112. package/src/engine/graphics3/ParticipatingMedia.js +145 -5
  113. package/src/engine/graphics3/ParticipatingMediaSerializationAdapter.d.ts +6 -2
  114. package/src/engine/graphics3/ParticipatingMediaSerializationAdapter.d.ts.map +1 -1
  115. package/src/engine/graphics3/ParticipatingMediaSerializationAdapter.js +29 -4
  116. package/src/engine/graphics3/ParticipatingMediaSerializationUpgrader_0_1.d.ts +10 -0
  117. package/src/engine/graphics3/ParticipatingMediaSerializationUpgrader_0_1.d.ts.map +1 -0
  118. package/src/engine/graphics3/ParticipatingMediaSerializationUpgrader_0_1.js +38 -0
  119. package/src/engine/graphics3/ParticipatingMediaSystem.d.ts +32 -22
  120. package/src/engine/graphics3/ParticipatingMediaSystem.d.ts.map +1 -1
  121. package/src/engine/graphics3/ParticipatingMediaSystem.js +236 -45
  122. package/src/engine/graphics3/WaterSystem.d.ts +9 -2
  123. package/src/engine/graphics3/WaterSystem.d.ts.map +1 -1
  124. package/src/engine/graphics3/WaterSystem.js +53 -15
  125. package/src/engine/network/NetworkSession.d.ts +16 -5
  126. package/src/engine/network/NetworkSession.d.ts.map +1 -1
  127. package/src/engine/network/NetworkSession.js +104 -7
  128. package/src/engine/network/README.md +27 -1
  129. package/src/engine/network/orchestrator/ServerAuthoritativeServer.d.ts +40 -18
  130. package/src/engine/network/orchestrator/ServerAuthoritativeServer.d.ts.map +1 -1
  131. package/src/engine/network/orchestrator/ServerAuthoritativeServer.js +180 -190
  132. package/src/engine/network/replication/Replicator.d.ts +15 -4
  133. package/src/engine/network/replication/Replicator.d.ts.map +1 -1
  134. package/src/engine/network/replication/Replicator.js +50 -16
  135. package/src/engine/network/state/RecordArrivalRing.d.ts +57 -0
  136. package/src/engine/network/state/RecordArrivalRing.d.ts.map +1 -0
  137. package/src/engine/network/state/RecordArrivalRing.js +144 -0
  138. package/src/engine/physics/cloth/MEASUREMENTS.md +393 -0
  139. package/src/engine/physics/cloth/PLAN.md +106 -7
  140. package/src/engine/physics/cloth/collider/ClothColliderKind.d.ts.map +1 -1
  141. package/src/engine/physics/cloth/collider/ClothColliderKind.js +14 -7
  142. package/src/engine/physics/cloth/collider/ClothColliderRecord.d.ts +19 -5
  143. package/src/engine/physics/cloth/collider/ClothColliderRecord.d.ts.map +1 -1
  144. package/src/engine/physics/cloth/collider/ClothColliderRecord.js +28 -5
  145. package/src/engine/physics/cloth/collider/cloth_collider_pack.d.ts +3 -2
  146. package/src/engine/physics/cloth/collider/cloth_collider_pack.d.ts.map +1 -1
  147. package/src/engine/physics/cloth/collider/cloth_collider_pack.js +26 -108
  148. package/src/engine/physics/cloth/collider/cloth_collider_sdf.d.ts +6 -5
  149. package/src/engine/physics/cloth/collider/cloth_collider_sdf.d.ts.map +1 -1
  150. package/src/engine/physics/cloth/collider/cloth_collider_sdf.js +18 -28
  151. package/src/engine/physics/cloth/ecs/ClothInstance.d.ts +6 -21
  152. package/src/engine/physics/cloth/ecs/ClothInstance.d.ts.map +1 -1
  153. package/src/engine/physics/cloth/ecs/ClothInstance.js +6 -22
  154. package/src/engine/physics/cloth/ecs/ClothSystem.d.ts +5 -3
  155. package/src/engine/physics/cloth/ecs/ClothSystem.d.ts.map +1 -1
  156. package/src/engine/physics/cloth/ecs/ClothSystem.js +10 -3
  157. package/src/engine/physics/cloth/ecs/ClothWorld.d.ts +38 -28
  158. package/src/engine/physics/cloth/ecs/ClothWorld.d.ts.map +1 -1
  159. package/src/engine/physics/cloth/ecs/ClothWorld.js +140 -43
  160. package/src/engine/physics/cloth/ecs/WorkerClothSystem.d.ts +2 -1
  161. package/src/engine/physics/cloth/ecs/WorkerClothSystem.d.ts.map +1 -1
  162. package/src/engine/physics/cloth/ecs/WorkerClothSystem.js +6 -1
  163. package/src/engine/physics/cloth/ecs/cloth_build_rows.d.ts.map +1 -1
  164. package/src/engine/physics/cloth/ecs/cloth_build_rows.js +20 -10
  165. package/src/engine/physics/cloth/playground/README.md +8 -4
  166. package/src/engine/physics/cloth/playground/collide.html +5 -3
  167. package/src/engine/physics/cloth/playground/collide_main.js +14 -13
  168. package/src/engine/physics/cloth/playground/wind.html +4 -4
  169. package/src/engine/physics/cloth/playground/wind_build.d.ts +3 -2
  170. package/src/engine/physics/cloth/playground/wind_build.d.ts.map +1 -1
  171. package/src/engine/physics/cloth/playground/wind_build.js +4 -3
  172. package/src/engine/physics/cloth/playground/wind_main.js +58 -19
  173. package/src/engine/physics/cloth/solver/ClothState.d.ts +30 -2
  174. package/src/engine/physics/cloth/solver/ClothState.d.ts.map +1 -1
  175. package/src/engine/physics/cloth/solver/ClothState.js +62 -4
  176. package/src/engine/physics/cloth/solver/cloth_self_find.d.ts +11 -3
  177. package/src/engine/physics/cloth/solver/cloth_self_find.d.ts.map +1 -1
  178. package/src/engine/physics/cloth/solver/cloth_self_find.js +52 -11
  179. package/src/engine/physics/cloth/solver/cloth_self_radius.d.ts +42 -0
  180. package/src/engine/physics/cloth/solver/cloth_self_radius.d.ts.map +1 -0
  181. package/src/engine/physics/cloth/solver/cloth_self_radius.js +64 -0
  182. package/src/engine/physics/cloth/solver/cloth_solver_constants.d.ts +99 -24
  183. package/src/engine/physics/cloth/solver/cloth_solver_constants.d.ts.map +1 -1
  184. package/src/engine/physics/cloth/solver/cloth_solver_constants.js +102 -25
  185. package/src/engine/physics/cloth/solver/cloth_step.d.ts +5 -1
  186. package/src/engine/physics/cloth/solver/cloth_step.d.ts.map +1 -1
  187. package/src/engine/physics/cloth/solver/cloth_step.js +13 -3
  188. package/src/engine/physics/cloth/solver/cloth_step_instance.d.ts +0 -1
  189. package/src/engine/physics/cloth/solver/cloth_step_instance.d.ts.map +1 -1
  190. package/src/engine/physics/cloth/solver/cloth_step_instance.js +12 -14
  191. package/src/engine/physics/cloth/solver/constraint/cloth_contact_row.d.ts +23 -4
  192. package/src/engine/physics/cloth/solver/constraint/cloth_contact_row.d.ts.map +1 -1
  193. package/src/engine/physics/cloth/solver/constraint/cloth_contact_row.js +36 -8
  194. package/src/engine/physics/cloth/solver/constraint/cloth_self_row.d.ts.map +1 -1
  195. package/src/engine/physics/cloth/solver/constraint/cloth_self_row.js +4 -2
  196. package/src/engine/physics/cloth/wind/AbstractClothWind.d.ts +36 -35
  197. package/src/engine/physics/cloth/wind/AbstractClothWind.d.ts.map +1 -1
  198. package/src/engine/physics/cloth/wind/AbstractClothWind.js +36 -35
  199. package/src/engine/physics/cloth/wind/ClothFluidWind.d.ts +46 -25
  200. package/src/engine/physics/cloth/wind/ClothFluidWind.d.ts.map +1 -1
  201. package/src/engine/physics/cloth/wind/ClothFluidWind.js +70 -30
  202. package/src/engine/physics/cloth/wind/ClothGPUFluidWind.d.ts +96 -0
  203. package/src/engine/physics/cloth/wind/ClothGPUFluidWind.d.ts.map +1 -0
  204. package/src/engine/physics/cloth/wind/ClothGPUFluidWind.js +441 -0
  205. package/src/engine/physics/cloth/wind/cloth_sample_air.d.ts +9 -7
  206. package/src/engine/physics/cloth/wind/cloth_sample_air.d.ts.map +1 -1
  207. package/src/engine/physics/cloth/wind/cloth_sample_air.js +9 -7
  208. package/src/engine/physics/ecs/ColliderObserverSystem.d.ts +1 -1
  209. package/src/engine/physics/ecs/PhysicsSystem.d.ts +1 -1
  210. package/src/engine/physics/fluid/FluidAtmosphere.d.ts +80 -0
  211. package/src/engine/physics/fluid/FluidAtmosphere.d.ts.map +1 -0
  212. package/src/engine/physics/fluid/FluidAtmosphere.js +78 -0
  213. package/src/engine/physics/fluid/FluidField.d.ts +14 -2
  214. package/src/engine/physics/fluid/FluidField.d.ts.map +1 -1
  215. package/src/engine/physics/fluid/FluidField.js +26 -6
  216. package/src/engine/physics/fluid/FluidSimulator.d.ts +5 -1
  217. package/src/engine/physics/fluid/FluidSimulator.d.ts.map +1 -1
  218. package/src/engine/physics/fluid/FluidSimulator.js +13 -2
  219. package/src/engine/physics/fluid/GPU_FLUID_CASCADES_PROPOSAL_2026_10_16.md +1382 -0
  220. package/src/engine/physics/fluid/ecs/FluidEffectorsComponent.d.ts +10 -4
  221. package/src/engine/physics/fluid/ecs/FluidEffectorsComponent.d.ts.map +1 -1
  222. package/src/engine/physics/fluid/ecs/FluidEffectorsComponent.js +13 -4
  223. package/src/engine/physics/fluid/ecs/FluidEffectorsComponentSerializationAdapter.d.ts +47 -0
  224. package/src/engine/physics/fluid/ecs/FluidEffectorsComponentSerializationAdapter.d.ts.map +1 -0
  225. package/src/engine/physics/fluid/ecs/FluidEffectorsComponentSerializationAdapter.js +72 -0
  226. package/src/engine/physics/fluid/ecs/FluidEffectorsSystem.d.ts +67 -0
  227. package/src/engine/physics/fluid/ecs/FluidEffectorsSystem.d.ts.map +1 -0
  228. package/src/engine/physics/fluid/ecs/FluidEffectorsSystem.js +307 -0
  229. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +6 -6
  230. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts.map +1 -1
  231. package/src/engine/physics/fluid/ecs/FluidSystem.d.ts +24 -13
  232. package/src/engine/physics/fluid/ecs/FluidSystem.d.ts.map +1 -1
  233. package/src/engine/physics/fluid/ecs/FluidSystem.js +79 -15
  234. package/src/engine/physics/fluid/ecs/FluidWorkerCore.d.ts.map +1 -1
  235. package/src/engine/physics/fluid/ecs/FluidWorkerCore.js +17 -5
  236. package/src/engine/physics/fluid/ecs/GPUFluidComponent.d.ts +82 -0
  237. package/src/engine/physics/fluid/ecs/GPUFluidComponent.d.ts.map +1 -0
  238. package/src/engine/physics/fluid/ecs/GPUFluidComponent.js +124 -0
  239. package/src/engine/physics/fluid/ecs/GPUFluidComponentSerializationAdapter.d.ts +30 -0
  240. package/src/engine/physics/fluid/ecs/GPUFluidComponentSerializationAdapter.d.ts.map +1 -0
  241. package/src/engine/physics/fluid/ecs/GPUFluidComponentSerializationAdapter.js +51 -0
  242. package/src/engine/physics/fluid/ecs/WorkerFluidSystem.d.ts +19 -10
  243. package/src/engine/physics/fluid/ecs/WorkerFluidSystem.d.ts.map +1 -1
  244. package/src/engine/physics/fluid/ecs/WorkerFluidSystem.js +64 -14
  245. package/src/engine/physics/fluid/ecs/fluid_gather_visible_effectors.d.ts +4 -1
  246. package/src/engine/physics/fluid/ecs/fluid_gather_visible_effectors.d.ts.map +1 -1
  247. package/src/engine/physics/fluid/ecs/fluid_gather_visible_effectors.js +9 -1
  248. package/src/engine/physics/fluid/ecs/fluid_reanchor_field.d.ts +1 -0
  249. package/src/engine/physics/fluid/ecs/fluid_reanchor_field.d.ts.map +1 -1
  250. package/src/engine/physics/fluid/ecs/fluid_reanchor_field.js +9 -7
  251. package/src/engine/physics/fluid/ecs/fluid_sync_effectors_from_transform.d.ts +5 -3
  252. package/src/engine/physics/fluid/ecs/fluid_sync_effectors_from_transform.d.ts.map +1 -1
  253. package/src/engine/physics/fluid/ecs/fluid_sync_effectors_from_transform.js +5 -3
  254. package/src/engine/physics/fluid/ecs/fluid_worker_protocol.d.ts +20 -2
  255. package/src/engine/physics/fluid/ecs/fluid_worker_protocol.d.ts.map +1 -1
  256. package/src/engine/physics/fluid/ecs/fluid_worker_protocol.js +34 -6
  257. package/src/engine/physics/fluid/effector/AbstractFluidEffector.d.ts +46 -3
  258. package/src/engine/physics/fluid/effector/AbstractFluidEffector.d.ts.map +1 -1
  259. package/src/engine/physics/fluid/effector/AbstractFluidEffector.js +53 -3
  260. package/src/engine/physics/fluid/effector/GlobalFluidEffector.d.ts +73 -13
  261. package/src/engine/physics/fluid/effector/GlobalFluidEffector.d.ts.map +1 -1
  262. package/src/engine/physics/fluid/effector/GlobalFluidEffector.js +207 -88
  263. package/src/engine/physics/fluid/effector/GlobalFluidEffectorSerializationAdapter.d.ts +35 -0
  264. package/src/engine/physics/fluid/effector/GlobalFluidEffectorSerializationAdapter.d.ts.map +1 -0
  265. package/src/engine/physics/fluid/effector/GlobalFluidEffectorSerializationAdapter.js +72 -0
  266. package/src/engine/physics/fluid/effector/ImpulseFluidEffector.d.ts +34 -10
  267. package/src/engine/physics/fluid/effector/ImpulseFluidEffector.d.ts.map +1 -1
  268. package/src/engine/physics/fluid/effector/ImpulseFluidEffector.js +139 -150
  269. package/src/engine/physics/fluid/effector/ImpulseFluidEffectorSerializationAdapter.d.ts +26 -0
  270. package/src/engine/physics/fluid/effector/ImpulseFluidEffectorSerializationAdapter.d.ts.map +1 -0
  271. package/src/engine/physics/fluid/effector/ImpulseFluidEffectorSerializationAdapter.js +51 -0
  272. package/src/engine/physics/fluid/effector/VortexFluidEffector.d.ts +55 -0
  273. package/src/engine/physics/fluid/effector/VortexFluidEffector.d.ts.map +1 -0
  274. package/src/engine/physics/fluid/effector/VortexFluidEffector.js +255 -0
  275. package/src/engine/physics/fluid/effector/VortexFluidEffectorSerializationAdapter.d.ts +25 -0
  276. package/src/engine/physics/fluid/effector/VortexFluidEffectorSerializationAdapter.d.ts.map +1 -0
  277. package/src/engine/physics/fluid/effector/VortexFluidEffectorSerializationAdapter.js +52 -0
  278. package/src/engine/physics/fluid/effector/WakeFluidEffector.d.ts +22 -20
  279. package/src/engine/physics/fluid/effector/WakeFluidEffector.d.ts.map +1 -1
  280. package/src/engine/physics/fluid/effector/WakeFluidEffector.js +181 -185
  281. package/src/engine/physics/fluid/effector/WakeFluidEffectorSerializationAdapter.d.ts +31 -0
  282. package/src/engine/physics/fluid/effector/WakeFluidEffectorSerializationAdapter.d.ts.map +1 -0
  283. package/src/engine/physics/fluid/effector/WakeFluidEffectorSerializationAdapter.js +56 -0
  284. package/src/engine/physics/fluid/effector/record/FLUID_EFFECTOR_RECORD_STRUCT.d.ts +52 -0
  285. package/src/engine/physics/fluid/effector/record/FLUID_EFFECTOR_RECORD_STRUCT.d.ts.map +1 -0
  286. package/src/engine/physics/fluid/effector/record/FLUID_EFFECTOR_RECORD_STRUCT.js +68 -0
  287. package/src/engine/physics/fluid/effector/record/FluidEffectorRecordKind.d.ts +10 -0
  288. package/src/engine/physics/fluid/effector/record/FluidEffectorRecordKind.d.ts.map +1 -0
  289. package/src/engine/physics/fluid/effector/record/FluidEffectorRecordKind.js +31 -0
  290. package/src/engine/physics/fluid/effector/record/chunk_fluid_effector_record_deposit.d.ts +25 -0
  291. package/src/engine/physics/fluid/effector/record/chunk_fluid_effector_record_deposit.d.ts.map +1 -0
  292. package/src/engine/physics/fluid/effector/record/chunk_fluid_effector_record_deposit.js +105 -0
  293. package/src/engine/physics/fluid/effector/record/chunk_fluid_effector_record_resolve.d.ts +17 -0
  294. package/src/engine/physics/fluid/effector/record/chunk_fluid_effector_record_resolve.d.ts.map +1 -0
  295. package/src/engine/physics/fluid/effector/record/chunk_fluid_effector_record_resolve.js +47 -0
  296. package/src/engine/physics/fluid/effector/record/fluid_effector_record_create.d.ts +54 -0
  297. package/src/engine/physics/fluid/effector/record/fluid_effector_record_create.d.ts.map +1 -0
  298. package/src/engine/physics/fluid/effector/record/fluid_effector_record_create.js +34 -0
  299. package/src/engine/physics/fluid/effector/record/fluid_effector_record_deposit.d.ts +98 -0
  300. package/src/engine/physics/fluid/effector/record/fluid_effector_record_deposit.d.ts.map +1 -0
  301. package/src/engine/physics/fluid/effector/record/fluid_effector_record_deposit.js +409 -0
  302. package/src/engine/physics/fluid/effector/record/fluid_effector_record_resolve.d.ts +25 -0
  303. package/src/engine/physics/fluid/effector/record/fluid_effector_record_resolve.d.ts.map +1 -0
  304. package/src/engine/physics/fluid/effector/record/fluid_effector_record_resolve.js +78 -0
  305. package/src/engine/physics/fluid/effector/record/fluid_record_apply.d.ts +27 -0
  306. package/src/engine/physics/fluid/effector/record/fluid_record_apply.d.ts.map +1 -0
  307. package/src/engine/physics/fluid/effector/record/fluid_record_apply.js +151 -0
  308. package/src/engine/physics/fluid/fluid_apply_atmosphere.d.ts +42 -0
  309. package/src/engine/physics/fluid/fluid_apply_atmosphere.d.ts.map +1 -0
  310. package/src/engine/physics/fluid/fluid_apply_atmosphere.js +148 -0
  311. package/src/engine/physics/fluid/fluid_atmosphere_to_grid.d.ts +16 -0
  312. package/src/engine/physics/fluid/fluid_atmosphere_to_grid.d.ts.map +1 -0
  313. package/src/engine/physics/fluid/fluid_atmosphere_to_grid.js +47 -0
  314. package/src/engine/physics/fluid/obstacle/FLUID_OBSTACLE_RECORD_STRUCT.d.ts +32 -0
  315. package/src/engine/physics/fluid/obstacle/FLUID_OBSTACLE_RECORD_STRUCT.d.ts.map +1 -0
  316. package/src/engine/physics/fluid/obstacle/FLUID_OBSTACLE_RECORD_STRUCT.js +50 -0
  317. package/src/engine/physics/fluid/obstacle/chunk_fluid_obstacle_record.d.ts +24 -0
  318. package/src/engine/physics/fluid/obstacle/chunk_fluid_obstacle_record.d.ts.map +1 -0
  319. package/src/engine/physics/fluid/obstacle/chunk_fluid_obstacle_record.js +61 -0
  320. package/src/engine/physics/fluid/obstacle/fluid_obstacle_record_create.d.ts +58 -0
  321. package/src/engine/physics/fluid/obstacle/fluid_obstacle_record_create.d.ts.map +1 -0
  322. package/src/engine/physics/fluid/obstacle/fluid_obstacle_record_create.js +35 -0
  323. package/src/engine/physics/fluid/obstacle/fluid_obstacle_record_evaluate.d.ts +34 -0
  324. package/src/engine/physics/fluid/obstacle/fluid_obstacle_record_evaluate.d.ts.map +1 -0
  325. package/src/engine/physics/fluid/obstacle/fluid_obstacle_record_evaluate.js +90 -0
  326. package/src/engine/physics/fluid/obstacle/fluid_obstacle_record_extent.d.ts +17 -0
  327. package/src/engine/physics/fluid/obstacle/fluid_obstacle_record_extent.d.ts.map +1 -0
  328. package/src/engine/physics/fluid/obstacle/fluid_obstacle_record_extent.js +44 -0
  329. package/src/engine/physics/fluid/obstacle/fluid_obstacle_write_gpu_record.d.ts +98 -0
  330. package/src/engine/physics/fluid/obstacle/fluid_obstacle_write_gpu_record.d.ts.map +1 -0
  331. package/src/engine/physics/fluid/obstacle/fluid_obstacle_write_gpu_record.js +281 -0
  332. package/src/engine/physics/fluid/prototype.js +2 -0
  333. package/src/engine/physics/narrowphase/rigid_subject_pose.d.ts.map +1 -1
  334. package/src/engine/physics/narrowphase/rigid_subject_pose.js +3 -43
  335. package/src/generation/markers/actions/terrain/MarkerNodeActionPaintTerrain.js +4 -4
  336. package/src/shade/assets/textures/split_sum.bin +0 -0
  337. package/src/shade/device/ShadeGPUCommandContext.d.ts +20 -0
  338. package/src/shade/device/ShadeGPUCommandContext.d.ts.map +1 -1
  339. package/src/shade/device/ShadeGPUCommandContext.js +25 -8
  340. package/src/shade/device/mock/SoftwareGPUComputePassEncoder.d.ts +6 -2
  341. package/src/shade/device/mock/SoftwareGPUComputePassEncoder.d.ts.map +1 -1
  342. package/src/shade/device/mock/SoftwareGPUComputePassEncoder.js +7 -3
  343. package/src/shade/device/mock/SoftwareGPUDevice.d.ts +15 -0
  344. package/src/shade/device/mock/SoftwareGPUDevice.d.ts.map +1 -1
  345. package/src/shade/device/mock/SoftwareGPUDevice.js +21 -0
  346. package/src/shade/device/pipeline/ComputePipelineManager.d.ts +20 -0
  347. package/src/shade/device/pipeline/ComputePipelineManager.d.ts.map +1 -1
  348. package/src/shade/device/pipeline/ComputePipelineManager.js +80 -6
  349. package/src/shade/device/pipeline/PipelineEnquiry.d.ts +52 -0
  350. package/src/shade/device/pipeline/PipelineEnquiry.d.ts.map +1 -0
  351. package/src/shade/device/pipeline/PipelineEnquiry.js +63 -0
  352. package/src/shade/device/pipeline/RenderPipelineManager.d.ts +21 -0
  353. package/src/shade/device/pipeline/RenderPipelineManager.d.ts.map +1 -1
  354. package/src/shade/device/pipeline/RenderPipelineManager.js +84 -4
  355. package/src/shade/playground/avboit/main.d.ts.map +1 -1
  356. package/src/shade/playground/avboit/main.js +9 -6
  357. package/src/shade/playground/contact_shadows/ContactShadowLab.d.ts +137 -0
  358. package/src/shade/playground/contact_shadows/ContactShadowLab.d.ts.map +1 -0
  359. package/src/shade/playground/contact_shadows/ContactShadowLab.js +654 -0
  360. package/src/shade/playground/contact_shadows/README.md +126 -0
  361. package/src/shade/playground/contact_shadows/index.html +191 -0
  362. package/src/shade/playground/contact_shadows/main.d.ts +2 -0
  363. package/src/shade/playground/contact_shadows/main.d.ts.map +1 -0
  364. package/src/shade/playground/contact_shadows/main.js +888 -0
  365. package/src/shade/playground/contact_shadows/scenes.d.ts +48 -0
  366. package/src/shade/playground/contact_shadows/scenes.d.ts.map +1 -0
  367. package/src/shade/playground/contact_shadows/scenes.js +620 -0
  368. package/src/shade/playground/contact_shadows/shader_contact_lab_composite.d.ts +36 -0
  369. package/src/shade/playground/contact_shadows/shader_contact_lab_composite.d.ts.map +1 -0
  370. package/src/shade/playground/contact_shadows/shader_contact_lab_composite.js +245 -0
  371. package/src/shade/playground/contact_shadows/shader_contact_lab_reference.d.ts +15 -0
  372. package/src/shade/playground/contact_shadows/shader_contact_lab_reference.d.ts.map +1 -0
  373. package/src/shade/playground/contact_shadows/shader_contact_lab_reference.js +120 -0
  374. package/src/shade/playground/contact_shadows/shader_contact_lab_stats.d.ts +55 -0
  375. package/src/shade/playground/contact_shadows/shader_contact_lab_stats.d.ts.map +1 -0
  376. package/src/shade/playground/contact_shadows/shader_contact_lab_stats.js +216 -0
  377. package/src/shade/playground/contact_shadows/shader_contact_lab_view.d.ts +20 -0
  378. package/src/shade/playground/contact_shadows/shader_contact_lab_view.d.ts.map +1 -0
  379. package/src/shade/playground/contact_shadows/shader_contact_lab_view.js +114 -0
  380. package/src/shade/playground/contact_shadows/shader_contact_shadow_march.d.ts +11 -0
  381. package/src/shade/playground/contact_shadows/shader_contact_shadow_march.d.ts.map +1 -0
  382. package/src/shade/playground/contact_shadows/shader_contact_shadow_march.js +90 -0
  383. package/src/shade/playground/contact_shadows/textures.d.ts +16 -0
  384. package/src/shade/playground/contact_shadows/textures.d.ts.map +1 -0
  385. package/src/shade/playground/contact_shadows/textures.js +123 -0
  386. package/src/shade/playground/particle_ecs/README.md +21 -1
  387. package/src/shade/playground/particle_ecs/bonfire_effects.d.ts +10 -0
  388. package/src/shade/playground/particle_ecs/bonfire_effects.d.ts.map +1 -1
  389. package/src/shade/playground/particle_ecs/bonfire_effects.js +10 -0
  390. package/src/shade/playground/particle_ecs/bonfire_wind.d.ts +48 -0
  391. package/src/shade/playground/particle_ecs/bonfire_wind.d.ts.map +1 -0
  392. package/src/shade/playground/particle_ecs/bonfire_wind.js +83 -0
  393. package/src/shade/playground/particle_ecs/effects/embers.json +1695 -1633
  394. package/src/shade/playground/particle_ecs/effects/flame.json +1994 -1881
  395. package/src/shade/playground/particle_ecs/effects/smoke.json +113 -15
  396. package/src/shade/playground/particle_ecs/effects/soot.json +214 -145
  397. package/src/shade/playground/particle_ecs/index.html +21 -0
  398. package/src/shade/playground/particle_ecs/main.js +35 -1
  399. package/src/shade/playground/path_traced_media/main.js +12 -10
  400. package/src/shade/playground/render_submitted_frames.d.ts +20 -0
  401. package/src/shade/playground/render_submitted_frames.d.ts.map +1 -0
  402. package/src/shade/playground/render_submitted_frames.js +29 -0
  403. package/src/shade/playground/skinned_blas_refit/main.d.ts.map +1 -1
  404. package/src/shade/playground/skinned_blas_refit/main.js +4 -6
  405. package/src/shade/playground/skinned_blas_refit/verify_instance_bounds.d.ts.map +1 -1
  406. package/src/shade/playground/skinned_blas_refit/verify_instance_bounds.js +267 -270
  407. package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.d.ts.map +1 -1
  408. package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.js +3 -6
  409. package/src/shade/playground/skinned_mesh_soup/main.d.ts.map +1 -1
  410. package/src/shade/playground/skinned_mesh_soup/main.js +4 -5
  411. package/src/shade/playground/skinned_mesh_soup/verify_clone_vertices.js +438 -438
  412. package/src/shade/playground/ssr_motion/README.md +24 -22
  413. package/src/shade/playground/ssr_motion/main.js +150 -149
  414. package/src/shade/playground/ssr_reprojection/SpatialFilterProbe.js +1 -1
  415. package/src/shade/playground/ssr_reprojection/main.js +5 -3
  416. package/src/shade/playground/ssr_variance/capture.js +1 -1
  417. package/src/shade/playground/ssr_variance/main.js +247 -246
  418. package/src/shade/playground/submit_frame.d.ts +25 -0
  419. package/src/shade/playground/submit_frame.d.ts.map +1 -0
  420. package/src/shade/playground/submit_frame.js +36 -0
  421. package/src/shade/playground/tonemap_sdr/README.md +90 -0
  422. package/src/shade/playground/tonemap_sdr/ToneMapCompare.d.ts +105 -0
  423. package/src/shade/playground/tonemap_sdr/ToneMapCompare.d.ts.map +1 -0
  424. package/src/shade/playground/tonemap_sdr/ToneMapCompare.js +389 -0
  425. package/src/shade/playground/tonemap_sdr/chunk_tonemap_gt7_sdr_reference.d.ts +32 -0
  426. package/src/shade/playground/tonemap_sdr/chunk_tonemap_gt7_sdr_reference.d.ts.map +1 -0
  427. package/src/shade/playground/tonemap_sdr/chunk_tonemap_gt7_sdr_reference.js +104 -0
  428. package/src/shade/playground/tonemap_sdr/index.html +90 -0
  429. package/src/shade/playground/tonemap_sdr/main.d.ts +2 -0
  430. package/src/shade/playground/tonemap_sdr/main.d.ts.map +1 -0
  431. package/src/shade/playground/tonemap_sdr/main.js +306 -0
  432. package/src/shade/playground/tonemap_sdr/scenes.d.ts +26 -0
  433. package/src/shade/playground/tonemap_sdr/scenes.d.ts.map +1 -0
  434. package/src/shade/playground/tonemap_sdr/scenes.js +404 -0
  435. package/src/shade/playground/volumetrics_froxel/main.d.ts.map +1 -1
  436. package/src/shade/playground/volumetrics_froxel/main.js +91 -4
  437. package/src/shade/playground/water_refraction/README.md +30 -20
  438. package/src/shade/playground/water_refraction/index.html +1 -1
  439. package/src/shade/playground/water_refraction/main.js +19 -3
  440. package/src/shade/playground/water_refraction/world.d.ts.map +1 -1
  441. package/src/shade/playground/water_refraction/world.js +2 -1
  442. package/src/shade/playground/water_surface/README.md +15 -7
  443. package/src/shade/playground/water_surface/index.html +2 -1
  444. package/src/shade/playground/water_surface/main.js +39 -7
  445. package/src/shade/playground/water_surface/world.d.ts +2 -5
  446. package/src/shade/playground/water_surface/world.d.ts.map +1 -1
  447. package/src/shade/playground/water_surface/world.js +9 -8
  448. package/src/shade/renderer/INDIRECT_LIGHTING.d.ts +13 -0
  449. package/src/shade/renderer/INDIRECT_LIGHTING.d.ts.map +1 -0
  450. package/src/shade/renderer/INDIRECT_LIGHTING.js +14 -0
  451. package/src/shade/renderer/Renderer.d.ts +35 -3
  452. package/src/shade/renderer/Renderer.d.ts.map +1 -1
  453. package/src/shade/renderer/Renderer.js +260 -57
  454. package/src/shade/renderer/STATIC_GRAPHICS_ENGINE_ASSET_RESOURCES.d.ts +17 -0
  455. package/src/shade/renderer/STATIC_GRAPHICS_ENGINE_ASSET_RESOURCES.d.ts.map +1 -0
  456. package/src/shade/renderer/STATIC_GRAPHICS_ENGINE_ASSET_RESOURCES.js +19 -0
  457. package/src/shade/renderer/ShadeToneMappingMode.d.ts +14 -0
  458. package/src/shade/renderer/ShadeToneMappingMode.d.ts.map +1 -0
  459. package/src/shade/renderer/ShadeToneMappingMode.js +30 -0
  460. package/src/shade/renderer/animation/GPUAnimationManager.d.ts +9 -0
  461. package/src/shade/renderer/animation/GPUAnimationManager.d.ts.map +1 -1
  462. package/src/shade/renderer/animation/GPUAnimationManager.js +14 -0
  463. package/src/shade/renderer/animation/skinning/shader_meshlet_apply_skinning.d.ts.map +1 -1
  464. package/src/shade/renderer/animation/skinning/shader_meshlet_apply_skinning.js +5 -3
  465. package/src/shade/renderer/buffer/table/GPUDatabase.d.ts +7 -0
  466. package/src/shade/renderer/buffer/table/GPUDatabase.d.ts.map +1 -1
  467. package/src/shade/renderer/buffer/table/GPUDatabase.js +19 -4
  468. package/src/shade/renderer/buffer/table/GPUDatabaseReadback.d.ts +32 -2
  469. package/src/shade/renderer/buffer/table/GPUDatabaseReadback.d.ts.map +1 -1
  470. package/src/shade/renderer/buffer/table/GPUDatabaseReadback.js +231 -62
  471. package/src/shade/renderer/buffer/table/GPUTypedTable.d.ts +12 -0
  472. package/src/shade/renderer/buffer/table/GPUTypedTable.d.ts.map +1 -1
  473. package/src/shade/renderer/buffer/table/GPUTypedTable.js +51 -14
  474. package/src/shade/renderer/buffer/table/single/GPUSingleTypeTable.d.ts +8 -0
  475. package/src/shade/renderer/buffer/table/single/GPUSingleTypeTable.d.ts.map +1 -1
  476. package/src/shade/renderer/buffer/table/single/GPUSingleTypeTable.js +12 -0
  477. package/src/shade/renderer/camera/CAMERA_RESOURCE.d.ts +7 -0
  478. package/src/shade/renderer/camera/CAMERA_RESOURCE.d.ts.map +1 -0
  479. package/src/shade/renderer/camera/CAMERA_RESOURCE.js +8 -0
  480. package/src/shade/renderer/camera/GPUCameraContext.d.ts.map +1 -1
  481. package/src/shade/renderer/camera/GPUCameraContext.js +19 -8
  482. package/src/shade/renderer/deferred/GBUFFER_RESOURCES.d.ts +22 -0
  483. package/src/shade/renderer/deferred/GBUFFER_RESOURCES.d.ts.map +1 -0
  484. package/src/shade/renderer/deferred/GBUFFER_RESOURCES.js +25 -0
  485. package/src/shade/renderer/deferred/LOCAL_LIGHT_SHADING.d.ts +12 -0
  486. package/src/shade/renderer/deferred/LOCAL_LIGHT_SHADING.d.ts.map +1 -0
  487. package/src/shade/renderer/deferred/LOCAL_LIGHT_SHADING.js +13 -0
  488. package/src/shade/renderer/deferred/LocalLightShading.d.ts +10 -0
  489. package/src/shade/renderer/deferred/LocalLightShading.d.ts.map +1 -0
  490. package/src/shade/renderer/deferred/LocalLightShading.js +12 -0
  491. package/src/shade/renderer/deferred/SHADING_LIGHT_RESOURCE_GROUP.d.ts.map +1 -1
  492. package/src/shade/renderer/deferred/SHADING_LIGHT_RESOURCE_GROUP.js +15 -11
  493. package/src/shade/renderer/deferred/TonemapDisplaySettings.d.ts +50 -0
  494. package/src/shade/renderer/deferred/TonemapDisplaySettings.d.ts.map +1 -0
  495. package/src/shade/renderer/deferred/TonemapDisplaySettings.js +142 -0
  496. package/src/shade/renderer/deferred/chunk_read_gBuffer_material.d.ts.map +1 -1
  497. package/src/shade/renderer/deferred/chunk_read_gBuffer_material.js +10 -1
  498. package/src/shade/renderer/deferred/chunk_sample_volumetrics.d.ts.map +1 -1
  499. package/src/shade/renderer/deferred/chunk_sample_volumetrics.js +11 -1
  500. package/src/shade/renderer/deferred/chunk_shade_directional_lights.d.ts +1 -2
  501. package/src/shade/renderer/deferred/chunk_shade_directional_lights.d.ts.map +1 -1
  502. package/src/shade/renderer/deferred/chunk_shade_directional_lights.js +4 -2
  503. package/src/shade/renderer/deferred/chunk_shade_standard_material_direct.d.ts +10 -3
  504. package/src/shade/renderer/deferred/chunk_shade_standard_material_direct.d.ts.map +1 -1
  505. package/src/shade/renderer/deferred/chunk_shade_standard_material_direct.js +27 -5
  506. package/src/shade/renderer/deferred/chunk_shade_standard_material_direct_deferred.d.ts +16 -0
  507. package/src/shade/renderer/deferred/chunk_shade_standard_material_direct_deferred.d.ts.map +1 -0
  508. package/src/shade/renderer/deferred/chunk_shade_standard_material_direct_deferred.js +23 -0
  509. package/src/shade/renderer/deferred/chunk_shade_standard_material_direct_heavy.d.ts +3 -2
  510. package/src/shade/renderer/deferred/chunk_shade_standard_material_direct_heavy.d.ts.map +1 -1
  511. package/src/shade/renderer/deferred/chunk_shade_standard_material_direct_heavy.js +17 -16
  512. package/src/shade/renderer/deferred/chunk_shade_standard_material_direct_restir.d.ts +3 -2
  513. package/src/shade/renderer/deferred/chunk_shade_standard_material_direct_restir.d.ts.map +1 -1
  514. package/src/shade/renderer/deferred/chunk_shade_standard_material_direct_restir.js +13 -2
  515. package/src/shade/renderer/deferred/indirect/chunk_get_ibl_irradiance.d.ts.map +1 -1
  516. package/src/shade/renderer/deferred/indirect/chunk_get_ibl_irradiance.js +4 -1
  517. package/src/shade/renderer/deferred/indirect/chunk_get_ibl_radiance.d.ts.map +1 -1
  518. package/src/shade/renderer/deferred/indirect/chunk_get_ibl_radiance.js +4 -1
  519. package/src/shade/renderer/deferred/indirect/chunk_lpv_sample_light.d.ts.map +1 -1
  520. package/src/shade/renderer/deferred/indirect/chunk_lpv_sample_light.js +7 -0
  521. package/src/shade/renderer/deferred/shader_deferred_main.d.ts +11 -6
  522. package/src/shade/renderer/deferred/shader_deferred_main.d.ts.map +1 -1
  523. package/src/shade/renderer/deferred/shader_deferred_main.js +69 -87
  524. package/src/shade/renderer/deferred/shader_tonemap_HDR.d.ts +6 -0
  525. package/src/shade/renderer/deferred/shader_tonemap_HDR.d.ts.map +1 -1
  526. package/src/shade/renderer/deferred/shader_tonemap_HDR.js +22 -18
  527. package/src/shade/renderer/deferred/shader_tonemap_HDR_none.d.ts +9 -0
  528. package/src/shade/renderer/deferred/shader_tonemap_HDR_none.d.ts.map +1 -0
  529. package/src/shade/renderer/deferred/shader_tonemap_HDR_none.js +66 -0
  530. package/src/shade/renderer/deferred/shader_tonemap_HDR_pbr_neutral.d.ts +10 -0
  531. package/src/shade/renderer/deferred/shader_tonemap_HDR_pbr_neutral.d.ts.map +1 -0
  532. package/src/shade/renderer/deferred/shader_tonemap_HDR_pbr_neutral.js +80 -0
  533. package/src/shade/renderer/deferred/shader_tonemap_LDR.d.ts +6 -0
  534. package/src/shade/renderer/deferred/shader_tonemap_LDR.d.ts.map +1 -1
  535. package/src/shade/renderer/deferred/shader_tonemap_LDR.js +27 -7
  536. package/src/shade/renderer/deferred/shader_tonemap_LDR_none.d.ts +9 -0
  537. package/src/shade/renderer/deferred/shader_tonemap_LDR_none.d.ts.map +1 -0
  538. package/src/shade/renderer/deferred/shader_tonemap_LDR_none.js +71 -0
  539. package/src/shade/renderer/deferred/shader_tonemap_LDR_pbr_neutral.d.ts +10 -0
  540. package/src/shade/renderer/deferred/shader_tonemap_LDR_pbr_neutral.d.ts.map +1 -0
  541. package/src/shade/renderer/deferred/shader_tonemap_LDR_pbr_neutral.js +76 -0
  542. package/src/shade/renderer/fluid/FluidCascadePlacement.d.ts +142 -0
  543. package/src/shade/renderer/fluid/FluidCascadePlacement.d.ts.map +1 -0
  544. package/src/shade/renderer/fluid/FluidCascadePlacement.js +349 -0
  545. package/src/shade/renderer/fluid/GPUFluidCascade.d.ts +383 -0
  546. package/src/shade/renderer/fluid/GPUFluidCascade.d.ts.map +1 -0
  547. package/src/shade/renderer/fluid/GPUFluidCascade.js +1217 -0
  548. package/src/shade/renderer/fluid/GPUFluidCascadeStack.d.ts +191 -0
  549. package/src/shade/renderer/fluid/GPUFluidCascadeStack.d.ts.map +1 -0
  550. package/src/shade/renderer/fluid/GPUFluidCascadeStack.js +463 -0
  551. package/src/shade/renderer/fluid/coupling/FLUID_CASCADE_FILL_STRUCT.d.ts +27 -0
  552. package/src/shade/renderer/fluid/coupling/FLUID_CASCADE_FILL_STRUCT.d.ts.map +1 -0
  553. package/src/shade/renderer/fluid/coupling/FLUID_CASCADE_FILL_STRUCT.js +43 -0
  554. package/src/shade/renderer/fluid/coupling/FLUID_CASCADE_GHOSTS.d.ts +31 -0
  555. package/src/shade/renderer/fluid/coupling/FLUID_CASCADE_GHOSTS.d.ts.map +1 -0
  556. package/src/shade/renderer/fluid/coupling/FLUID_CASCADE_GHOSTS.js +38 -0
  557. package/src/shade/renderer/fluid/coupling/FLUID_CASCADE_PARENT_STRUCT.d.ts +46 -0
  558. package/src/shade/renderer/fluid/coupling/FLUID_CASCADE_PARENT_STRUCT.d.ts.map +1 -0
  559. package/src/shade/renderer/fluid/coupling/FLUID_CASCADE_PARENT_STRUCT.js +61 -0
  560. package/src/shade/renderer/fluid/coupling/FLUID_CASCADE_RESTRICT_STRUCT.d.ts +25 -0
  561. package/src/shade/renderer/fluid/coupling/FLUID_CASCADE_RESTRICT_STRUCT.d.ts.map +1 -0
  562. package/src/shade/renderer/fluid/coupling/FLUID_CASCADE_RESTRICT_STRUCT.js +41 -0
  563. package/src/shade/renderer/fluid/coupling/chunk_fluid_cascade_epilogue.d.ts +52 -0
  564. package/src/shade/renderer/fluid/coupling/chunk_fluid_cascade_epilogue.d.ts.map +1 -0
  565. package/src/shade/renderer/fluid/coupling/chunk_fluid_cascade_epilogue.js +146 -0
  566. package/src/shade/renderer/fluid/coupling/chunk_fluid_cascade_parent.d.ts +41 -0
  567. package/src/shade/renderer/fluid/coupling/chunk_fluid_cascade_parent.d.ts.map +1 -0
  568. package/src/shade/renderer/fluid/coupling/chunk_fluid_cascade_parent.js +238 -0
  569. package/src/shade/renderer/fluid/coupling/shader_fluid_cascade_fill.d.ts +32 -0
  570. package/src/shade/renderer/fluid/coupling/shader_fluid_cascade_fill.d.ts.map +1 -0
  571. package/src/shade/renderer/fluid/coupling/shader_fluid_cascade_fill.js +141 -0
  572. package/src/shade/renderer/fluid/coupling/shader_fluid_cascade_ghosts.d.ts +34 -0
  573. package/src/shade/renderer/fluid/coupling/shader_fluid_cascade_ghosts.d.ts.map +1 -0
  574. package/src/shade/renderer/fluid/coupling/shader_fluid_cascade_ghosts.js +101 -0
  575. package/src/shade/renderer/fluid/coupling/shader_fluid_cascade_restrict.d.ts +31 -0
  576. package/src/shade/renderer/fluid/coupling/shader_fluid_cascade_restrict.d.ts.map +1 -0
  577. package/src/shade/renderer/fluid/coupling/shader_fluid_cascade_restrict.js +126 -0
  578. package/src/shade/renderer/fluid/fluid_cascade_ruler.d.ts +15 -0
  579. package/src/shade/renderer/fluid/fluid_cascade_ruler.d.ts.map +1 -0
  580. package/src/shade/renderer/fluid/fluid_cascade_ruler.js +38 -0
  581. package/src/shade/renderer/fluid/fluid_cascade_window.d.ts +41 -0
  582. package/src/shade/renderer/fluid/fluid_cascade_window.d.ts.map +1 -0
  583. package/src/shade/renderer/fluid/fluid_cascade_window.js +49 -0
  584. package/src/shade/renderer/fluid/forcing/FLUID_DATABASE_SPEC.d.ts +68 -0
  585. package/src/shade/renderer/fluid/forcing/FLUID_DATABASE_SPEC.d.ts.map +1 -0
  586. package/src/shade/renderer/fluid/forcing/FLUID_DATABASE_SPEC.js +103 -0
  587. package/src/shade/renderer/fluid/forcing/FLUID_FORCING.d.ts +71 -0
  588. package/src/shade/renderer/fluid/forcing/FLUID_FORCING.d.ts.map +1 -0
  589. package/src/shade/renderer/fluid/forcing/FLUID_FORCING.js +100 -0
  590. package/src/shade/renderer/fluid/forcing/FLUID_FORCING_APPLY_STRUCT.d.ts +21 -0
  591. package/src/shade/renderer/fluid/forcing/FLUID_FORCING_APPLY_STRUCT.d.ts.map +1 -0
  592. package/src/shade/renderer/fluid/forcing/FLUID_FORCING_APPLY_STRUCT.js +35 -0
  593. package/src/shade/renderer/fluid/forcing/FLUID_FORCING_EXTRACT_STRUCT.d.ts +18 -0
  594. package/src/shade/renderer/fluid/forcing/FLUID_FORCING_EXTRACT_STRUCT.d.ts.map +1 -0
  595. package/src/shade/renderer/fluid/forcing/FLUID_FORCING_EXTRACT_STRUCT.js +27 -0
  596. package/src/shade/renderer/fluid/forcing/FLUID_FORCING_QUERY_STRUCT.d.ts +17 -0
  597. package/src/shade/renderer/fluid/forcing/FLUID_FORCING_QUERY_STRUCT.d.ts.map +1 -0
  598. package/src/shade/renderer/fluid/forcing/FLUID_FORCING_QUERY_STRUCT.js +28 -0
  599. package/src/shade/renderer/fluid/forcing/FLUID_OBSTACLE_PLANE_STRUCT.d.ts +12 -0
  600. package/src/shade/renderer/fluid/forcing/FLUID_OBSTACLE_PLANE_STRUCT.d.ts.map +1 -0
  601. package/src/shade/renderer/fluid/forcing/FLUID_OBSTACLE_PLANE_STRUCT.js +16 -0
  602. package/src/shade/renderer/fluid/forcing/GPUFluidForcing.d.ts +289 -0
  603. package/src/shade/renderer/fluid/forcing/GPUFluidForcing.d.ts.map +1 -0
  604. package/src/shade/renderer/fluid/forcing/GPUFluidForcing.js +1487 -0
  605. package/src/shade/renderer/fluid/forcing/chunk_fluid_forcing_cell.d.ts +32 -0
  606. package/src/shade/renderer/fluid/forcing/chunk_fluid_forcing_cell.d.ts.map +1 -0
  607. package/src/shade/renderer/fluid/forcing/chunk_fluid_forcing_cell.js +87 -0
  608. package/src/shade/renderer/fluid/forcing/chunk_fluid_forcing_leaf.d.ts +28 -0
  609. package/src/shade/renderer/fluid/forcing/chunk_fluid_forcing_leaf.d.ts.map +1 -0
  610. package/src/shade/renderer/fluid/forcing/chunk_fluid_forcing_leaf.js +99 -0
  611. package/src/shade/renderer/fluid/forcing/chunk_fluid_forcing_query_select.d.ts +29 -0
  612. package/src/shade/renderer/fluid/forcing/chunk_fluid_forcing_query_select.d.ts.map +1 -0
  613. package/src/shade/renderer/fluid/forcing/chunk_fluid_forcing_query_select.js +67 -0
  614. package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_apply.d.ts +38 -0
  615. package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_apply.d.ts.map +1 -0
  616. package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_apply.js +287 -0
  617. package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_command.d.ts +18 -0
  618. package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_command.d.ts.map +1 -0
  619. package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_command.js +64 -0
  620. package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_extract.d.ts +22 -0
  621. package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_extract.d.ts.map +1 -0
  622. package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_extract.js +168 -0
  623. package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_query.d.ts +31 -0
  624. package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_query.d.ts.map +1 -0
  625. package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_query.js +208 -0
  626. package/src/shade/renderer/fluid/mac/FLUID_MAC_STEP_STRUCT.d.ts +35 -0
  627. package/src/shade/renderer/fluid/mac/FLUID_MAC_STEP_STRUCT.d.ts.map +1 -0
  628. package/src/shade/renderer/fluid/mac/FLUID_MAC_STEP_STRUCT.js +50 -0
  629. package/src/shade/renderer/fluid/mac/FluidMacPasses.d.ts +162 -0
  630. package/src/shade/renderer/fluid/mac/FluidMacPasses.d.ts.map +1 -0
  631. package/src/shade/renderer/fluid/mac/FluidMacPasses.js +384 -0
  632. package/src/shade/renderer/fluid/mac/FluidMacVelocitySet.d.ts +40 -0
  633. package/src/shade/renderer/fluid/mac/FluidMacVelocitySet.d.ts.map +1 -0
  634. package/src/shade/renderer/fluid/mac/FluidMacVelocitySet.js +77 -0
  635. package/src/shade/renderer/fluid/mac/V3_MAC_LATTICE_TAP_STRUCT.d.ts +14 -0
  636. package/src/shade/renderer/fluid/mac/V3_MAC_LATTICE_TAP_STRUCT.d.ts.map +1 -0
  637. package/src/shade/renderer/fluid/mac/V3_MAC_LATTICE_TAP_STRUCT.js +19 -0
  638. package/src/shade/renderer/fluid/mac/chunk_fluid_mac_seams.d.ts +35 -0
  639. package/src/shade/renderer/fluid/mac/chunk_fluid_mac_seams.d.ts.map +1 -0
  640. package/src/shade/renderer/fluid/mac/chunk_fluid_mac_seams.js +178 -0
  641. package/src/shade/renderer/fluid/mac/chunk_v3_mac_advect_maccormack.d.ts +17 -0
  642. package/src/shade/renderer/fluid/mac/chunk_v3_mac_advect_maccormack.d.ts.map +1 -0
  643. package/src/shade/renderer/fluid/mac/chunk_v3_mac_advect_maccormack.js +156 -0
  644. package/src/shade/renderer/fluid/mac/chunk_v3_mac_clip_trace.d.ts +31 -0
  645. package/src/shade/renderer/fluid/mac/chunk_v3_mac_clip_trace.d.ts.map +1 -0
  646. package/src/shade/renderer/fluid/mac/chunk_v3_mac_clip_trace.js +63 -0
  647. package/src/shade/renderer/fluid/mac/chunk_v3_mac_compute_divergence.d.ts +27 -0
  648. package/src/shade/renderer/fluid/mac/chunk_v3_mac_compute_divergence.d.ts.map +1 -0
  649. package/src/shade/renderer/fluid/mac/chunk_v3_mac_compute_divergence.js +42 -0
  650. package/src/shade/renderer/fluid/mac/chunk_v3_mac_face_carrier.d.ts +25 -0
  651. package/src/shade/renderer/fluid/mac/chunk_v3_mac_face_carrier.d.ts.map +1 -0
  652. package/src/shade/renderer/fluid/mac/chunk_v3_mac_face_carrier.js +67 -0
  653. package/src/shade/renderer/fluid/mac/chunk_v3_mac_face_pinned.d.ts +23 -0
  654. package/src/shade/renderer/fluid/mac/chunk_v3_mac_face_pinned.d.ts.map +1 -0
  655. package/src/shade/renderer/fluid/mac/chunk_v3_mac_face_pinned.js +38 -0
  656. package/src/shade/renderer/fluid/mac/chunk_v3_mac_lattice_corners.d.ts +33 -0
  657. package/src/shade/renderer/fluid/mac/chunk_v3_mac_lattice_corners.d.ts.map +1 -0
  658. package/src/shade/renderer/fluid/mac/chunk_v3_mac_lattice_corners.js +231 -0
  659. package/src/shade/renderer/fluid/mac/chunk_v3_mac_subtract_pressure_gradient.d.ts +30 -0
  660. package/src/shade/renderer/fluid/mac/chunk_v3_mac_subtract_pressure_gradient.d.ts.map +1 -0
  661. package/src/shade/renderer/fluid/mac/chunk_v3_mac_subtract_pressure_gradient.js +66 -0
  662. package/src/shade/renderer/fluid/mac/chunk_v3_mac_vorticity_confinement.d.ts +27 -0
  663. package/src/shade/renderer/fluid/mac/chunk_v3_mac_vorticity_confinement.d.ts.map +1 -0
  664. package/src/shade/renderer/fluid/mac/chunk_v3_mac_vorticity_confinement.js +65 -0
  665. package/src/shade/renderer/fluid/mac/shader_fluid_mac_advect_correct.d.ts +43 -0
  666. package/src/shade/renderer/fluid/mac/shader_fluid_mac_advect_correct.d.ts.map +1 -0
  667. package/src/shade/renderer/fluid/mac/shader_fluid_mac_advect_correct.js +245 -0
  668. package/src/shade/renderer/fluid/mac/shader_fluid_mac_advect_predict.d.ts +31 -0
  669. package/src/shade/renderer/fluid/mac/shader_fluid_mac_advect_predict.d.ts.map +1 -0
  670. package/src/shade/renderer/fluid/mac/shader_fluid_mac_advect_predict.js +109 -0
  671. package/src/shade/renderer/fluid/mac/shader_fluid_mac_curl.d.ts +38 -0
  672. package/src/shade/renderer/fluid/mac/shader_fluid_mac_curl.d.ts.map +1 -0
  673. package/src/shade/renderer/fluid/mac/shader_fluid_mac_curl.js +222 -0
  674. package/src/shade/renderer/fluid/mac/shader_fluid_mac_divergence.d.ts +26 -0
  675. package/src/shade/renderer/fluid/mac/shader_fluid_mac_divergence.d.ts.map +1 -0
  676. package/src/shade/renderer/fluid/mac/shader_fluid_mac_divergence.js +92 -0
  677. package/src/shade/renderer/fluid/mac/shader_fluid_mac_gradient.d.ts +32 -0
  678. package/src/shade/renderer/fluid/mac/shader_fluid_mac_gradient.d.ts.map +1 -0
  679. package/src/shade/renderer/fluid/mac/shader_fluid_mac_gradient.js +181 -0
  680. package/src/shade/renderer/fluid/pressure/FLUID_MG.d.ts +112 -0
  681. package/src/shade/renderer/fluid/pressure/FLUID_MG.d.ts.map +1 -0
  682. package/src/shade/renderer/fluid/pressure/FLUID_MG.js +140 -0
  683. package/src/shade/renderer/fluid/pressure/FLUID_MG_PASS_STRUCT.d.ts +29 -0
  684. package/src/shade/renderer/fluid/pressure/FLUID_MG_PASS_STRUCT.d.ts.map +1 -0
  685. package/src/shade/renderer/fluid/pressure/FLUID_MG_PASS_STRUCT.js +45 -0
  686. package/src/shade/renderer/fluid/pressure/GPUFluidPressureSolve.d.ts +156 -0
  687. package/src/shade/renderer/fluid/pressure/GPUFluidPressureSolve.d.ts.map +1 -0
  688. package/src/shade/renderer/fluid/pressure/GPUFluidPressureSolve.js +605 -0
  689. package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_coarse_word.d.ts +18 -0
  690. package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_coarse_word.d.ts.map +1 -0
  691. package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_coarse_word.js +48 -0
  692. package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_level0_word.d.ts +17 -0
  693. package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_level0_word.d.ts.map +1 -0
  694. package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_level0_word.js +47 -0
  695. package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_prolong.d.ts +21 -0
  696. package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_prolong.d.ts.map +1 -0
  697. package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_prolong.js +47 -0
  698. package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_relax.d.ts +27 -0
  699. package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_relax.d.ts.map +1 -0
  700. package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_relax.js +79 -0
  701. package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_restrict.d.ts +18 -0
  702. package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_restrict.d.ts.map +1 -0
  703. package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_restrict.js +35 -0
  704. package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_word.d.ts +17 -0
  705. package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_word.d.ts.map +1 -0
  706. package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_word.js +34 -0
  707. package/src/shade/renderer/fluid/pressure/chunk_fluid_pressure_ghost.d.ts +21 -0
  708. package/src/shade/renderer/fluid/pressure/chunk_fluid_pressure_ghost.d.ts.map +1 -0
  709. package/src/shade/renderer/fluid/pressure/chunk_fluid_pressure_ghost.js +34 -0
  710. package/src/shade/renderer/fluid/pressure/shader_fluid_mg_coarse_weights.d.ts +10 -0
  711. package/src/shade/renderer/fluid/pressure/shader_fluid_mg_coarse_weights.d.ts.map +1 -0
  712. package/src/shade/renderer/fluid/pressure/shader_fluid_mg_coarse_weights.js +45 -0
  713. package/src/shade/renderer/fluid/pressure/shader_fluid_mg_coarsest.d.ts +17 -0
  714. package/src/shade/renderer/fluid/pressure/shader_fluid_mg_coarsest.d.ts.map +1 -0
  715. package/src/shade/renderer/fluid/pressure/shader_fluid_mg_coarsest.js +126 -0
  716. package/src/shade/renderer/fluid/pressure/shader_fluid_mg_level0_weights.d.ts +10 -0
  717. package/src/shade/renderer/fluid/pressure/shader_fluid_mg_level0_weights.d.ts.map +1 -0
  718. package/src/shade/renderer/fluid/pressure/shader_fluid_mg_level0_weights.js +44 -0
  719. package/src/shade/renderer/fluid/pressure/shader_fluid_mg_residual_restrict.d.ts +18 -0
  720. package/src/shade/renderer/fluid/pressure/shader_fluid_mg_residual_restrict.d.ts.map +1 -0
  721. package/src/shade/renderer/fluid/pressure/shader_fluid_mg_residual_restrict.js +149 -0
  722. package/src/shade/renderer/fluid/pressure/shader_fluid_mg_smooth.d.ts +30 -0
  723. package/src/shade/renderer/fluid/pressure/shader_fluid_mg_smooth.d.ts.map +1 -0
  724. package/src/shade/renderer/fluid/pressure/shader_fluid_mg_smooth.js +183 -0
  725. package/src/shade/renderer/fluid/publish/FLUID_WIND_PUBLISH_STRUCT.d.ts +9 -0
  726. package/src/shade/renderer/fluid/publish/FLUID_WIND_PUBLISH_STRUCT.d.ts.map +1 -0
  727. package/src/shade/renderer/fluid/publish/FLUID_WIND_PUBLISH_STRUCT.js +12 -0
  728. package/src/shade/renderer/fluid/publish/FluidWindPublish.d.ts +49 -0
  729. package/src/shade/renderer/fluid/publish/FluidWindPublish.d.ts.map +1 -0
  730. package/src/shade/renderer/fluid/publish/FluidWindPublish.js +136 -0
  731. package/src/shade/renderer/fluid/publish/chunk_fluid_wind_publish_cell.d.ts +24 -0
  732. package/src/shade/renderer/fluid/publish/chunk_fluid_wind_publish_cell.d.ts.map +1 -0
  733. package/src/shade/renderer/fluid/publish/chunk_fluid_wind_publish_cell.js +37 -0
  734. package/src/shade/renderer/fluid/publish/shader_fluid_wind_publish.d.ts +41 -0
  735. package/src/shade/renderer/fluid/publish/shader_fluid_wind_publish.d.ts.map +1 -0
  736. package/src/shade/renderer/fluid/publish/shader_fluid_wind_publish.js +122 -0
  737. package/src/shade/renderer/fluid/query/FLUID_QUERY_DATABASE_SPEC.d.ts +66 -0
  738. package/src/shade/renderer/fluid/query/FLUID_QUERY_DATABASE_SPEC.d.ts.map +1 -0
  739. package/src/shade/renderer/fluid/query/FLUID_QUERY_DATABASE_SPEC.js +88 -0
  740. package/src/shade/renderer/fluid/query/GPUFluidQueries.d.ts +157 -0
  741. package/src/shade/renderer/fluid/query/GPUFluidQueries.d.ts.map +1 -0
  742. package/src/shade/renderer/fluid/query/GPUFluidQueries.js +709 -0
  743. package/src/shade/renderer/fluid/query/shader_fluid_query_gather.d.ts +47 -0
  744. package/src/shade/renderer/fluid/query/shader_fluid_query_gather.d.ts.map +1 -0
  745. package/src/shade/renderer/fluid/query/shader_fluid_query_gather.js +140 -0
  746. package/src/shade/renderer/geometry/GEOMETRY_ATTRIBUTE_DATA_RESOURCE.d.ts +7 -0
  747. package/src/shade/renderer/geometry/GEOMETRY_ATTRIBUTE_DATA_RESOURCE.d.ts.map +1 -0
  748. package/src/shade/renderer/geometry/GEOMETRY_ATTRIBUTE_DATA_RESOURCE.js +8 -0
  749. package/src/shade/renderer/geometry/bvh/BLAS_REFIT_BATCH_PLAN.md +619 -606
  750. package/src/shade/renderer/geometry/bvh/BLAS_REFIT_TARGET_STRUCT.d.ts +3 -2
  751. package/src/shade/renderer/geometry/bvh/BLAS_REFIT_TARGET_STRUCT.d.ts.map +1 -1
  752. package/src/shade/renderer/geometry/bvh/BLAS_REFIT_TARGET_STRUCT.js +50 -44
  753. package/src/shade/renderer/geometry/bvh/GPUBLASRefitBatch.d.ts +12 -9
  754. package/src/shade/renderer/geometry/bvh/GPUBLASRefitBatch.d.ts.map +1 -1
  755. package/src/shade/renderer/geometry/bvh/GPUBLASRefitBatch.js +447 -363
  756. package/src/shade/renderer/geometry/bvh/shader_blas_refit_batch.d.ts +7 -4
  757. package/src/shade/renderer/geometry/bvh/shader_blas_refit_batch.d.ts.map +1 -1
  758. package/src/shade/renderer/geometry/bvh/shader_blas_refit_batch.js +13 -6
  759. package/src/shade/renderer/geometry/bvh/shader_blas_refit_batch_seed.d.ts +21 -0
  760. package/src/shade/renderer/geometry/bvh/shader_blas_refit_batch_seed.d.ts.map +1 -0
  761. package/src/shade/renderer/geometry/bvh/shader_blas_refit_batch_seed.js +75 -0
  762. package/src/shade/renderer/geometry/meshlet/MESHLET_METADATA_RESOURCE.d.ts +7 -0
  763. package/src/shade/renderer/geometry/meshlet/MESHLET_METADATA_RESOURCE.d.ts.map +1 -0
  764. package/src/shade/renderer/geometry/meshlet/MESHLET_METADATA_RESOURCE.js +9 -0
  765. package/src/shade/renderer/geometry/meshlet/MeshletBatch.d.ts.map +1 -1
  766. package/src/shade/renderer/geometry/meshlet/MeshletBatch.js +58 -9
  767. package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.d.ts +35 -25
  768. package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.d.ts.map +1 -1
  769. package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.js +99 -196
  770. package/src/shade/renderer/geometry/sdf/shader_build_sdf.d.ts.map +1 -1
  771. package/src/shade/renderer/geometry/sdf/shader_build_sdf.js +125 -129
  772. package/src/shade/renderer/geometry/sdf/shader_sdf_visualize.js +1 -1
  773. package/src/shade/renderer/global_illumination/brick4/gpu/BRICK4_RESOURCE.d.ts +7 -0
  774. package/src/shade/renderer/global_illumination/brick4/gpu/BRICK4_RESOURCE.d.ts.map +1 -0
  775. package/src/shade/renderer/global_illumination/brick4/gpu/BRICK4_RESOURCE.js +8 -0
  776. package/src/shade/renderer/global_illumination/brick4/gpu/bake/brick4_bake_basic.d.ts.map +1 -1
  777. package/src/shade/renderer/global_illumination/brick4/gpu/bake/brick4_bake_basic.js +5 -0
  778. package/src/shade/renderer/global_illumination/brick4/gpu/bake/shader_brick4_bake_probes.d.ts.map +1 -1
  779. package/src/shade/renderer/global_illumination/brick4/gpu/bake/shader_brick4_bake_probes.js +7 -1
  780. package/src/shade/renderer/global_illumination/brick4/gpu/draw/chunk_brick4_load_probe.d.ts.map +1 -1
  781. package/src/shade/renderer/global_illumination/brick4/gpu/draw/chunk_brick4_load_probe.js +4 -1
  782. package/src/shade/renderer/global_illumination/brick4/gpu/draw/chunk_brick4_node_by_position.d.ts.map +1 -1
  783. package/src/shade/renderer/global_illumination/brick4/gpu/draw/chunk_brick4_node_by_position.js +4 -1
  784. package/src/shade/renderer/global_illumination/brick4/gpu/draw/chunk_brick4_node_sample_probes.d.ts.map +1 -1
  785. package/src/shade/renderer/global_illumination/brick4/gpu/draw/chunk_brick4_node_sample_probes.js +3 -0
  786. package/src/shade/renderer/global_illumination/brick4/gpu/draw/chunk_brick4_probe_meta_pick2.d.ts.map +1 -1
  787. package/src/shade/renderer/global_illumination/brick4/gpu/draw/chunk_brick4_probe_meta_pick2.js +4 -1
  788. package/src/shade/renderer/global_illumination/brick4/gpu/draw/chunk_brick4_sample_forward_indirect.d.ts.map +1 -1
  789. package/src/shade/renderer/global_illumination/brick4/gpu/draw/chunk_brick4_sample_forward_indirect.js +3 -0
  790. package/src/shade/renderer/global_illumination/brick4/gpu/draw/shader_brick4_indirect_lighting.d.ts.map +1 -1
  791. package/src/shade/renderer/global_illumination/brick4/gpu/draw/shader_brick4_indirect_lighting.js +4 -0
  792. package/src/shade/renderer/global_illumination/clipmap/shader_debug_clipmap.d.ts +15 -0
  793. package/src/shade/renderer/global_illumination/clipmap/shader_debug_clipmap.d.ts.map +1 -1
  794. package/src/shade/renderer/global_illumination/clipmap/shader_debug_clipmap.js +57 -57
  795. package/src/shade/renderer/global_illumination/lpv/bake/GPULightProbeVolumeRenderer.d.ts.map +1 -1
  796. package/src/shade/renderer/global_illumination/lpv/bake/GPULightProbeVolumeRenderer.js +5 -0
  797. package/src/shade/renderer/global_illumination/lpv/deprecated/chunk_lpv_get_visibility_mask.d.ts.map +1 -1
  798. package/src/shade/renderer/global_illumination/lpv/deprecated/chunk_lpv_get_visibility_mask.js +3 -0
  799. package/src/shade/renderer/global_illumination/lpv/deprecated/probe_trace_compute_shader_code.d.ts.map +1 -1
  800. package/src/shade/renderer/global_illumination/lpv/deprecated/probe_trace_compute_shader_code.js +7 -1
  801. package/src/shade/renderer/global_illumination/probe/octahedral/LPV_SHADER_RESOURCE_GROUP.d.ts +39 -0
  802. package/src/shade/renderer/global_illumination/probe/octahedral/LPV_SHADER_RESOURCE_GROUP.d.ts.map +1 -1
  803. package/src/shade/renderer/global_illumination/probe/octahedral/LPV_SHADER_RESOURCE_GROUP.js +57 -4
  804. package/src/shade/renderer/global_illumination/probe/octahedral/graph_lpv_shade.js +3 -3
  805. package/src/shade/renderer/global_illumination/probe/octahedral/graph_sample_light_probes.d.ts.map +1 -1
  806. package/src/shade/renderer/global_illumination/probe/octahedral/graph_sample_light_probes.js +4 -0
  807. package/src/shade/renderer/global_illumination/probe/octahedral/sample/chunk_lpv_radiance_sample_reflection.d.ts.map +1 -1
  808. package/src/shade/renderer/global_illumination/probe/octahedral/sample/chunk_lpv_radiance_sample_reflection.js +3 -0
  809. package/src/shade/renderer/global_illumination/shader_resolve_indirect_lighting.d.ts.map +1 -1
  810. package/src/shade/renderer/global_illumination/shader_resolve_indirect_lighting.js +4 -0
  811. package/src/shade/renderer/gpu_primitive/bvh/BVH_REFIT_DEFERRED_DEFINITION.d.ts +10 -0
  812. package/src/shade/renderer/gpu_primitive/bvh/BVH_REFIT_DEFERRED_DEFINITION.d.ts.map +1 -0
  813. package/src/shade/renderer/gpu_primitive/bvh/BVH_REFIT_DEFERRED_DEFINITION.js +25 -0
  814. package/src/shade/renderer/gpu_primitive/bvh/BVH_REFIT_DEFERRED_LAYOUT.d.ts +55 -0
  815. package/src/shade/renderer/gpu_primitive/bvh/BVH_REFIT_DEFERRED_LAYOUT.d.ts.map +1 -0
  816. package/src/shade/renderer/gpu_primitive/bvh/BVH_REFIT_DEFERRED_LAYOUT.js +63 -0
  817. package/src/shade/renderer/gpu_primitive/bvh/GPU_BVH_BUILD_PLAN.md +248 -2
  818. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_delta.d.ts +7 -0
  819. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_delta.d.ts.map +1 -1
  820. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_delta.js +45 -38
  821. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_determine_range.d.ts +2 -0
  822. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_determine_range.d.ts.map +1 -1
  823. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_determine_range.js +81 -79
  824. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_find_split.d.ts +2 -0
  825. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_find_split.d.ts.map +1 -1
  826. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_find_split.js +5 -3
  827. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_internal_children.d.ts +21 -0
  828. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_internal_children.d.ts.map +1 -0
  829. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_internal_children.js +42 -0
  830. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_morton_code.d.ts +19 -0
  831. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_morton_code.d.ts.map +1 -0
  832. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_morton_code.js +44 -0
  833. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_refit_climb.d.ts +23 -11
  834. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_refit_climb.d.ts.map +1 -1
  835. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_refit_climb.js +171 -102
  836. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_refit_repair.d.ts +23 -0
  837. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_refit_repair.d.ts.map +1 -0
  838. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_refit_repair.js +80 -0
  839. package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_build_lbvh.d.ts +25 -5
  840. package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_build_lbvh.d.ts.map +1 -1
  841. package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_build_lbvh.js +189 -23
  842. package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_refit_lbvh.d.ts +55 -0
  843. package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_refit_lbvh.d.ts.map +1 -0
  844. package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_refit_lbvh.js +197 -0
  845. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_build_single_workgroup.d.ts +27 -0
  846. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_build_single_workgroup.d.ts.map +1 -0
  847. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_build_single_workgroup.js +222 -0
  848. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_emit_hierarchy.d.ts +5 -4
  849. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_emit_hierarchy.d.ts.map +1 -1
  850. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_emit_hierarchy.js +20 -19
  851. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_morton.d.ts +3 -4
  852. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_morton.d.ts.map +1 -1
  853. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_morton.js +6 -23
  854. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit.d.ts +6 -6
  855. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit.d.ts.map +1 -1
  856. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit.js +11 -8
  857. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit_prepare.d.ts +24 -0
  858. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit_prepare.d.ts.map +1 -0
  859. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit_prepare.js +99 -0
  860. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit_repair.d.ts +17 -0
  861. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit_repair.d.ts.map +1 -0
  862. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit_repair.js +63 -0
  863. package/src/shade/renderer/gpu_primitive/chunk_collection_u32_append.d.ts +19 -0
  864. package/src/shade/renderer/gpu_primitive/chunk_collection_u32_append.d.ts.map +1 -0
  865. package/src/shade/renderer/gpu_primitive/chunk_collection_u32_append.js +44 -0
  866. package/src/shade/renderer/gpu_primitive/indirect/IndirectComputeCommandBuildPass.d.ts +11 -0
  867. package/src/shade/renderer/gpu_primitive/indirect/IndirectComputeCommandBuildPass.d.ts.map +1 -1
  868. package/src/shade/renderer/gpu_primitive/indirect/IndirectComputeCommandBuildPass.js +14 -3
  869. package/src/shade/renderer/gpu_primitive/indirect/build_indirect_draw_command.d.ts +10 -0
  870. package/src/shade/renderer/gpu_primitive/indirect/build_indirect_draw_command.d.ts.map +1 -1
  871. package/src/shade/renderer/gpu_primitive/indirect/build_indirect_draw_command.js +13 -3
  872. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/graph_prefix_scan_csdldf.d.ts +10 -0
  873. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/graph_prefix_scan_csdldf.d.ts.map +1 -1
  874. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/graph_prefix_scan_csdldf.js +14 -0
  875. package/src/shade/renderer/gpu_primitive/sort/chunk_sort_bitonic_comparator.d.ts +26 -0
  876. package/src/shade/renderer/gpu_primitive/sort/chunk_sort_bitonic_comparator.d.ts.map +1 -0
  877. package/src/shade/renderer/gpu_primitive/sort/chunk_sort_bitonic_comparator.js +52 -0
  878. package/src/shade/renderer/gpu_primitive/sort/chunk_sort_bitonic_workgroup.d.ts +32 -0
  879. package/src/shade/renderer/gpu_primitive/sort/chunk_sort_bitonic_workgroup.d.ts.map +1 -0
  880. package/src/shade/renderer/gpu_primitive/sort/chunk_sort_bitonic_workgroup.js +89 -0
  881. package/src/shade/renderer/gpu_primitive/sort/graph_radix_sort.d.ts +10 -0
  882. package/src/shade/renderer/gpu_primitive/sort/graph_radix_sort.d.ts.map +1 -1
  883. package/src/shade/renderer/gpu_primitive/sort/graph_radix_sort.js +20 -1
  884. package/src/shade/renderer/hiz/HierarchicalZBuffer.d.ts +10 -0
  885. package/src/shade/renderer/hiz/HierarchicalZBuffer.d.ts.map +1 -1
  886. package/src/shade/renderer/hiz/HierarchicalZBuffer.js +294 -281
  887. package/src/shade/renderer/light/GPULightCollection.d.ts +8 -0
  888. package/src/shade/renderer/light/GPULightCollection.d.ts.map +1 -1
  889. package/src/shade/renderer/light/GPULightCollection.js +18 -1
  890. package/src/shade/renderer/light/LIGHT_DATA_RESOURCE.d.ts +7 -0
  891. package/src/shade/renderer/light/LIGHT_DATA_RESOURCE.d.ts.map +1 -0
  892. package/src/shade/renderer/light/LIGHT_DATA_RESOURCE.js +8 -0
  893. package/src/shade/renderer/light/cluster/CLUSTER_LIGHT_LIST.d.ts +7 -0
  894. package/src/shade/renderer/light/cluster/CLUSTER_LIGHT_LIST.d.ts.map +1 -0
  895. package/src/shade/renderer/light/cluster/CLUSTER_LIGHT_LIST.js +16 -0
  896. package/src/shade/renderer/light/cluster/CLUSTER_LIGHT_PROXY.d.ts +12 -0
  897. package/src/shade/renderer/light/cluster/CLUSTER_LIGHT_PROXY.d.ts.map +1 -0
  898. package/src/shade/renderer/light/cluster/CLUSTER_LIGHT_PROXY.js +33 -0
  899. package/src/shade/renderer/light/cluster/LIGHT_CLUSTER_ASSIGNMENT_SETTINGS.d.ts +7 -0
  900. package/src/shade/renderer/light/cluster/LIGHT_CLUSTER_ASSIGNMENT_SETTINGS.d.ts.map +1 -0
  901. package/src/shade/renderer/light/cluster/LIGHT_CLUSTER_ASSIGNMENT_SETTINGS.js +24 -0
  902. package/src/shade/renderer/light/cluster/LIGHT_CLUSTER_COARSE_BLOCK.d.ts +8 -0
  903. package/src/shade/renderer/light/cluster/LIGHT_CLUSTER_COARSE_BLOCK.d.ts.map +1 -0
  904. package/src/shade/renderer/light/cluster/LIGHT_CLUSTER_COARSE_BLOCK.js +7 -0
  905. package/src/shade/renderer/light/cluster/LIGHT_CLUSTER_METADATA.d.ts.map +1 -1
  906. package/src/shade/renderer/light/cluster/LIGHT_CLUSTER_METADATA.js +2 -3
  907. package/src/shade/renderer/light/cluster/LIGHT_CLUSTER_RESOURCES.d.ts +17 -0
  908. package/src/shade/renderer/light/cluster/LIGHT_CLUSTER_RESOURCES.d.ts.map +1 -0
  909. package/src/shade/renderer/light/cluster/LIGHT_CLUSTER_RESOURCES.js +22 -0
  910. package/src/shade/renderer/light/cluster/PROPOSAL_ALGORITHM_2026_10_16.md +524 -0
  911. package/src/shade/renderer/light/cluster/PROPOSAL_HIERARCHICAL_2026_10_16.md +1101 -0
  912. package/src/shade/renderer/light/cluster/chunk_cluster_cell.d.ts +19 -0
  913. package/src/shade/renderer/light/cluster/chunk_cluster_cell.d.ts.map +1 -0
  914. package/src/shade/renderer/light/cluster/chunk_cluster_cell.js +133 -0
  915. package/src/shade/renderer/light/cluster/chunk_cluster_from_fragment_coord.d.ts.map +1 -1
  916. package/src/shade/renderer/light/cluster/chunk_cluster_from_fragment_coord.js +6 -1
  917. package/src/shade/renderer/light/cluster/chunk_cluster_light_proxy.d.ts +19 -0
  918. package/src/shade/renderer/light/cluster/chunk_cluster_light_proxy.d.ts.map +1 -0
  919. package/src/shade/renderer/light/cluster/chunk_cluster_light_proxy.js +95 -0
  920. package/src/shade/renderer/light/cluster/chunk_light_cluster_counts.d.ts +6 -4
  921. package/src/shade/renderer/light/cluster/chunk_light_cluster_counts.d.ts.map +1 -1
  922. package/src/shade/renderer/light/cluster/chunk_light_cluster_counts.js +10 -8
  923. package/src/shade/renderer/light/cluster/chunk_light_cluster_metadata_by_position.d.ts.map +1 -1
  924. package/src/shade/renderer/light/cluster/chunk_light_cluster_metadata_by_position.js +4 -1
  925. package/src/shade/renderer/light/cluster/cull/graph_cull_lights.d.ts +16 -0
  926. package/src/shade/renderer/light/cluster/cull/graph_cull_lights.d.ts.map +1 -1
  927. package/src/shade/renderer/light/cluster/cull/graph_cull_lights.js +234 -218
  928. package/src/shade/renderer/light/cluster/graph_assign_clsuters.d.ts +33 -1
  929. package/src/shade/renderer/light/cluster/graph_assign_clsuters.d.ts.map +1 -1
  930. package/src/shade/renderer/light/cluster/graph_assign_clsuters.js +184 -73
  931. package/src/shade/renderer/light/cluster/graph_build_light_clusters.d.ts +10 -1
  932. package/src/shade/renderer/light/cluster/graph_build_light_clusters.d.ts.map +1 -1
  933. package/src/shade/renderer/light/cluster/graph_build_light_clusters.js +19 -2
  934. package/src/shade/renderer/light/cluster/shader_cluster_assign_lights.d.ts +14 -2
  935. package/src/shade/renderer/light/cluster/shader_cluster_assign_lights.d.ts.map +1 -1
  936. package/src/shade/renderer/light/cluster/shader_cluster_assign_lights.js +230 -139
  937. package/src/shade/renderer/light/cluster/shader_cluster_coarse_mark.d.ts +19 -0
  938. package/src/shade/renderer/light/cluster/shader_cluster_coarse_mark.d.ts.map +1 -0
  939. package/src/shade/renderer/light/cluster/shader_cluster_coarse_mark.js +134 -0
  940. package/src/shade/renderer/light/cluster/shader_cluster_light_compact.d.ts +11 -0
  941. package/src/shade/renderer/light/cluster/shader_cluster_light_compact.d.ts.map +1 -0
  942. package/src/shade/renderer/light/cluster/shader_cluster_light_compact.js +114 -0
  943. package/src/shade/renderer/light/cluster/shader_cluster_light_mark.d.ts +9 -0
  944. package/src/shade/renderer/light/cluster/shader_cluster_light_mark.d.ts.map +1 -0
  945. package/src/shade/renderer/light/cluster/shader_cluster_light_mark.js +59 -0
  946. package/src/shade/renderer/light/cluster/shader_cluster_light_prepare.d.ts +14 -0
  947. package/src/shade/renderer/light/cluster/shader_cluster_light_prepare.d.ts.map +1 -0
  948. package/src/shade/renderer/light/cluster/shader_cluster_light_prepare.js +142 -0
  949. package/src/shade/renderer/light/environment/ENVIRONMENT_MAP_RESOURCE.d.ts +7 -0
  950. package/src/shade/renderer/light/environment/ENVIRONMENT_MAP_RESOURCE.d.ts.map +1 -0
  951. package/src/shade/renderer/light/environment/ENVIRONMENT_MAP_RESOURCE.js +7 -0
  952. package/src/shade/renderer/light/environment/ENVIRONMENT_SH_RESOURCE.d.ts +7 -0
  953. package/src/shade/renderer/light/environment/ENVIRONMENT_SH_RESOURCE.d.ts.map +1 -0
  954. package/src/shade/renderer/light/environment/ENVIRONMENT_SH_RESOURCE.js +8 -0
  955. package/src/shade/renderer/light/environment/execute_filter_environment_map.d.ts +10 -0
  956. package/src/shade/renderer/light/environment/execute_filter_environment_map.d.ts.map +1 -1
  957. package/src/shade/renderer/light/environment/execute_filter_environment_map.js +13 -0
  958. package/src/shade/renderer/light/environment/sh_exponential/README.md +2 -1
  959. package/src/shade/renderer/lightmap/GPULightMap.d.ts.map +1 -1
  960. package/src/shade/renderer/lightmap/GPULightMap.js +5 -0
  961. package/src/shade/renderer/lightmap/bake/shader_lightmap_viz_to_irradiance_flat.d.ts.map +1 -1
  962. package/src/shade/renderer/lightmap/bake/shader_lightmap_viz_to_irradiance_flat.js +7 -1
  963. package/src/shade/renderer/lightmap/bake/shader_lightmap_viz_to_sh.d.ts.map +1 -1
  964. package/src/shade/renderer/lightmap/bake/shader_lightmap_viz_to_sh.js +7 -1
  965. package/src/shade/renderer/lightmap/debug/shader_lightmap_debug_density.d.ts.map +1 -1
  966. package/src/shade/renderer/lightmap/debug/shader_lightmap_debug_density.js +4 -0
  967. package/src/shade/renderer/lightmap/debug/shader_lightmap_debug_uv_checker.d.ts.map +1 -1
  968. package/src/shade/renderer/lightmap/debug/shader_lightmap_debug_uv_checker.js +4 -0
  969. package/src/shade/renderer/lightmap/debug/shader_lightmap_debug_view_flat.d.ts.map +1 -1
  970. package/src/shade/renderer/lightmap/debug/shader_lightmap_debug_view_flat.js +4 -0
  971. package/src/shade/renderer/lightmap/debug/shader_lightmap_debug_view_sh.d.ts.map +1 -1
  972. package/src/shade/renderer/lightmap/debug/shader_lightmap_debug_view_sh.js +4 -0
  973. package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
  974. package/src/shade/renderer/material/GPUMaterialManager.d.ts +16 -4
  975. package/src/shade/renderer/material/GPUMaterialManager.d.ts.map +1 -1
  976. package/src/shade/renderer/material/GPUMaterialManager.js +38 -8
  977. package/src/shade/renderer/material/standard/SHADING_MATERIAL_RESOURCE_GROUP.d.ts +22 -0
  978. package/src/shade/renderer/material/standard/SHADING_MATERIAL_RESOURCE_GROUP.d.ts.map +1 -1
  979. package/src/shade/renderer/material/standard/SHADING_MATERIAL_RESOURCE_GROUP.js +33 -9
  980. package/src/shade/renderer/particles/DESIGN.md +65 -9
  981. package/src/shade/renderer/particles/GPUParticleSystem.d.ts.map +1 -1
  982. package/src/shade/renderer/particles/GPUParticleSystem.js +3 -0
  983. package/src/shade/renderer/particles/ORIENTATION_PLAN_2026_10_15.md +453 -0
  984. package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STRUCT.d.ts +5 -1
  985. package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STRUCT.d.ts.map +1 -1
  986. package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STRUCT.js +13 -5
  987. package/src/shade/renderer/particles/data/particle_emitter_record.js +2 -2
  988. package/src/shade/renderer/particles/graph/ParticleNodeRegistry.d.ts.map +1 -1
  989. package/src/shade/renderer/particles/graph/ParticleNodeRegistry.js +21 -9
  990. package/src/shade/renderer/particles/graph/groups/particle_builtin_groups.d.ts.map +1 -1
  991. package/src/shade/renderer/particles/graph/groups/particle_builtin_groups.js +12 -0
  992. package/src/shade/renderer/particles/graph/groups/particle_groups_geometry.d.ts +60 -0
  993. package/src/shade/renderer/particles/graph/groups/particle_groups_geometry.d.ts.map +1 -1
  994. package/src/shade/renderer/particles/graph/groups/particle_groups_geometry.js +156 -0
  995. package/src/shade/renderer/particles/graph/particle_node_parameters.d.ts.map +1 -1
  996. package/src/shade/renderer/particles/graph/particle_node_parameters.js +1 -0
  997. package/src/shade/renderer/particles/graph/particle_node_presentation.d.ts.map +1 -1
  998. package/src/shade/renderer/particles/graph/particle_node_presentation.js +8 -0
  999. package/src/shade/renderer/particles/graph_particles.d.ts +4 -1
  1000. package/src/shade/renderer/particles/graph_particles.d.ts.map +1 -1
  1001. package/src/shade/renderer/particles/graph_particles.js +13 -0
  1002. package/src/shade/renderer/particles/isa/InstructionStream.d.ts +13 -0
  1003. package/src/shade/renderer/particles/isa/InstructionStream.d.ts.map +1 -1
  1004. package/src/shade/renderer/particles/isa/InstructionStream.js +13 -0
  1005. package/src/shade/renderer/particles/isa/ParticleVMISA.d.ts +1 -0
  1006. package/src/shade/renderer/particles/isa/ParticleVMISA.d.ts.map +1 -1
  1007. package/src/shade/renderer/particles/isa/ParticleVMISA.js +8 -0
  1008. package/src/shade/renderer/particles/optimizer/particle_program_equivalence.d.ts +2 -1
  1009. package/src/shade/renderer/particles/optimizer/particle_program_equivalence.d.ts.map +1 -1
  1010. package/src/shade/renderer/particles/optimizer/particle_program_equivalence.js +28 -6
  1011. package/src/shade/renderer/particles/optimizer/particle_program_fuzz.js +1 -1
  1012. package/src/shade/renderer/particles/optimizer/particle_vm_semantics.d.ts.map +1 -1
  1013. package/src/shade/renderer/particles/optimizer/particle_vm_semantics.js +7 -0
  1014. package/src/shade/renderer/particles/runtime/ParticleEmitter.d.ts +2 -2
  1015. package/src/shade/renderer/particles/runtime/ParticleEmitter.d.ts.map +1 -1
  1016. package/src/shade/renderer/particles/runtime/ParticleEmitter.js +8 -8
  1017. package/src/shade/renderer/particles/shaders/chunk_particle_billboard_vertex.d.ts.map +1 -1
  1018. package/src/shade/renderer/particles/shaders/chunk_particle_billboard_vertex.js +6 -4
  1019. package/src/shade/renderer/particles/shaders/chunk_particle_render_math.d.ts +7 -6
  1020. package/src/shade/renderer/particles/shaders/chunk_particle_render_math.d.ts.map +1 -1
  1021. package/src/shade/renderer/particles/shaders/chunk_particle_render_math.js +91 -58
  1022. package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.js +1 -1
  1023. package/src/shade/renderer/particles/shaders/shader_particle_emit.d.ts.map +1 -1
  1024. package/src/shade/renderer/particles/shaders/shader_particle_emit.js +5 -2
  1025. package/src/shade/renderer/particles/shaders/shader_particle_emit_wide.d.ts.map +1 -1
  1026. package/src/shade/renderer/particles/shaders/shader_particle_emit_wide.js +5 -2
  1027. package/src/shade/renderer/particles/shaders/shader_particle_simulate.d.ts.map +1 -1
  1028. package/src/shade/renderer/particles/shaders/shader_particle_simulate.js +5 -2
  1029. package/src/shade/renderer/particles/shaders/shader_particle_simulate_wide.d.ts.map +1 -1
  1030. package/src/shade/renderer/particles/shaders/shader_particle_simulate_wide.js +5 -2
  1031. package/src/shade/renderer/particles/vm/ParticleVMReference.d.ts +16 -1
  1032. package/src/shade/renderer/particles/vm/ParticleVMReference.d.ts.map +1 -1
  1033. package/src/shade/renderer/particles/vm/ParticleVMReference.js +35 -2
  1034. package/src/shade/renderer/particles/vm/chunk_particle_vm.d.ts.map +1 -1
  1035. package/src/shade/renderer/particles/vm/chunk_particle_vm.js +8 -0
  1036. package/src/shade/renderer/particles/vm/chunk_particle_vm_wind_field.d.ts +20 -0
  1037. package/src/shade/renderer/particles/vm/chunk_particle_vm_wind_field.d.ts.map +1 -0
  1038. package/src/shade/renderer/particles/vm/chunk_particle_vm_wind_field.js +25 -0
  1039. package/src/shade/renderer/particles/warmup/graph_particle_warmup.d.ts +4 -1
  1040. package/src/shade/renderer/particles/warmup/graph_particle_warmup.d.ts.map +1 -1
  1041. package/src/shade/renderer/particles/warmup/graph_particle_warmup.js +8 -0
  1042. package/src/shade/renderer/particles/warmup/shader_particle_warmup_advance.d.ts.map +1 -1
  1043. package/src/shade/renderer/particles/warmup/shader_particle_warmup_advance.js +109 -106
  1044. package/src/shade/renderer/particles/warmup/shader_particle_warmup_advance_wide.d.ts.map +1 -1
  1045. package/src/shade/renderer/particles/warmup/shader_particle_warmup_advance_wide.js +71 -68
  1046. package/src/shade/renderer/path_tracer/accumulating/AccumulatingPathTracer.d.ts.map +1 -1
  1047. package/src/shade/renderer/path_tracer/accumulating/AccumulatingPathTracer.js +5 -0
  1048. package/src/shade/renderer/path_tracer/accumulating/shader_accumulating_path_tracer.d.ts.map +1 -1
  1049. package/src/shade/renderer/path_tracer/accumulating/shader_accumulating_path_tracer.js +8 -2
  1050. package/src/shade/renderer/path_tracer/graph_path_trace_scene.d.ts.map +1 -1
  1051. package/src/shade/renderer/path_tracer/graph_path_trace_scene.js +11 -1
  1052. package/src/shade/renderer/path_tracer/shader/chunk_render_trace_path.js +4 -4
  1053. package/src/shade/renderer/path_tracer/shader/chunk_sample_material_data.js +3 -3
  1054. package/src/shade/renderer/postprocess/bloom/graph_postprocess_bloom.d.ts +7 -0
  1055. package/src/shade/renderer/postprocess/bloom/graph_postprocess_bloom.d.ts.map +1 -1
  1056. package/src/shade/renderer/postprocess/bloom/graph_postprocess_bloom.js +18 -0
  1057. package/src/shade/renderer/postprocess/denoise/LigmaDenoiser.d.ts.map +1 -1
  1058. package/src/shade/renderer/postprocess/denoise/LigmaDenoiser.js +1 -0
  1059. package/src/shade/renderer/postprocess/denoise/shader_temporal_reprojection_luma.d.ts.map +1 -1
  1060. package/src/shade/renderer/postprocess/denoise/shader_temporal_reprojection_luma.js +6 -4
  1061. package/src/shade/renderer/postprocess/eye/GPUCameraExposureManager.d.ts +11 -0
  1062. package/src/shade/renderer/postprocess/eye/GPUCameraExposureManager.d.ts.map +1 -1
  1063. package/src/shade/renderer/postprocess/eye/GPUCameraExposureManager.js +16 -0
  1064. package/src/shade/renderer/postprocess/gtao/GTAO.d.ts +10 -0
  1065. package/src/shade/renderer/postprocess/gtao/GTAO.d.ts.map +1 -1
  1066. package/src/shade/renderer/postprocess/gtao/GTAO.js +16 -0
  1067. package/src/shade/renderer/postprocess/gtao/fragment_shader_gtao.d.ts.map +1 -1
  1068. package/src/shade/renderer/postprocess/gtao/fragment_shader_gtao.js +32 -10
  1069. package/src/shade/renderer/postprocess/nss/NSS.d.ts +1 -1
  1070. package/src/shade/renderer/postprocess/ssr/SSR.d.ts +11 -8
  1071. package/src/shade/renderer/postprocess/ssr/SSR.d.ts.map +1 -1
  1072. package/src/shade/renderer/postprocess/ssr/SSR.js +49 -52
  1073. package/src/shade/renderer/postprocess/ssr/reproject/chunk_ssr_temporal_accumulate.d.ts.map +1 -1
  1074. package/src/shade/renderer/postprocess/ssr/reproject/chunk_ssr_temporal_accumulate.js +3 -0
  1075. package/src/shade/renderer/postprocess/ssr/resolve/chunk_ssr_add_hit_irradiance.d.ts +28 -0
  1076. package/src/shade/renderer/postprocess/ssr/resolve/chunk_ssr_add_hit_irradiance.d.ts.map +1 -0
  1077. package/src/shade/renderer/postprocess/ssr/resolve/chunk_ssr_add_hit_irradiance.js +79 -0
  1078. package/src/shade/renderer/postprocess/ssr/resolve/chunk_ssr_sample_radiance.d.ts +30 -0
  1079. package/src/shade/renderer/postprocess/ssr/resolve/chunk_ssr_sample_radiance.d.ts.map +1 -0
  1080. package/src/shade/renderer/postprocess/ssr/resolve/chunk_ssr_sample_radiance.js +66 -0
  1081. package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader.d.ts +11 -0
  1082. package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader.d.ts.map +1 -0
  1083. package/src/shade/renderer/postprocess/ssr/resolve/{build_ssr_resolve_shader.js → ssr_resolve_shader.js} +98 -87
  1084. package/src/shade/renderer/postprocess/taa/TAA.d.ts +12 -0
  1085. package/src/shade/renderer/postprocess/taa/TAA.d.ts.map +1 -1
  1086. package/src/shade/renderer/postprocess/taa/TAA.js +15 -0
  1087. package/src/shade/renderer/postprocess/velocity/graph_add_per_object_velocity.d.ts +7 -0
  1088. package/src/shade/renderer/postprocess/velocity/graph_add_per_object_velocity.d.ts.map +1 -1
  1089. package/src/shade/renderer/postprocess/velocity/graph_add_per_object_velocity.js +13 -0
  1090. package/src/shade/renderer/rasterize/TemplatePassDescriptor.d.ts +31 -3
  1091. package/src/shade/renderer/rasterize/TemplatePassDescriptor.d.ts.map +1 -1
  1092. package/src/shade/renderer/rasterize/TemplatePassDescriptor.js +79 -4
  1093. package/src/shade/renderer/rasterize/bucket/graph_meshlets_rasterize_by_bucket.d.ts +17 -0
  1094. package/src/shade/renderer/rasterize/bucket/graph_meshlets_rasterize_by_bucket.d.ts.map +1 -1
  1095. package/src/shade/renderer/rasterize/bucket/graph_meshlets_rasterize_by_bucket.js +35 -4
  1096. package/src/shade/renderer/rasterize/compute/graph_mesh_frustum_cull.d.ts +7 -0
  1097. package/src/shade/renderer/rasterize/compute/graph_mesh_frustum_cull.d.ts.map +1 -1
  1098. package/src/shade/renderer/rasterize/compute/graph_mesh_frustum_cull.js +182 -169
  1099. package/src/shade/renderer/rasterize/expand/GPUCollectionLimits.d.ts.map +1 -1
  1100. package/src/shade/renderer/rasterize/expand/GPUCollectionLimits.js +4 -0
  1101. package/src/shade/renderer/rasterize/expand/RasterizationCollectionType.d.ts +1 -0
  1102. package/src/shade/renderer/rasterize/expand/RasterizationCollectionType.js +5 -0
  1103. package/src/shade/renderer/rasterize/expand/bucket/mesh/graph_meshes_classify_buckets.d.ts +10 -0
  1104. package/src/shade/renderer/rasterize/expand/bucket/mesh/graph_meshes_classify_buckets.d.ts.map +1 -1
  1105. package/src/shade/renderer/rasterize/expand/bucket/mesh/graph_meshes_classify_buckets.js +20 -1
  1106. package/src/shade/renderer/rasterize/expand/bucket/meshlet/graph_extract_meshlets_from_bucket.d.ts +10 -0
  1107. package/src/shade/renderer/rasterize/expand/bucket/meshlet/graph_extract_meshlets_from_bucket.d.ts.map +1 -1
  1108. package/src/shade/renderer/rasterize/expand/bucket/meshlet/graph_extract_meshlets_from_bucket.js +18 -1
  1109. package/src/shade/renderer/rasterize/expand/bucket/meshlet/graph_sort_meshlets_by_bucket_id.d.ts +10 -0
  1110. package/src/shade/renderer/rasterize/expand/bucket/meshlet/graph_sort_meshlets_by_bucket_id.d.ts.map +1 -1
  1111. package/src/shade/renderer/rasterize/expand/bucket/meshlet/graph_sort_meshlets_by_bucket_id.js +20 -1
  1112. package/src/shade/renderer/rasterize/expand/graph_mesh_filter_one_way.d.ts +7 -0
  1113. package/src/shade/renderer/rasterize/expand/graph_mesh_filter_one_way.d.ts.map +1 -1
  1114. package/src/shade/renderer/rasterize/expand/graph_mesh_filter_one_way.js +187 -170
  1115. package/src/shade/renderer/rasterize/expand/graph_meshlets_filter_one_way.d.ts +10 -0
  1116. package/src/shade/renderer/rasterize/expand/graph_meshlets_filter_one_way.d.ts.map +1 -1
  1117. package/src/shade/renderer/rasterize/expand/graph_meshlets_filter_one_way.js +19 -1
  1118. package/src/shade/renderer/rasterize/expand/graph_meshlets_rasterize.d.ts +13 -0
  1119. package/src/shade/renderer/rasterize/expand/graph_meshlets_rasterize.d.ts.map +1 -1
  1120. package/src/shade/renderer/rasterize/expand/graph_meshlets_rasterize.js +25 -1
  1121. package/src/shade/renderer/rasterize/expand/mesh/graph_expand_meshes_to_meshlets.d.ts +10 -0
  1122. package/src/shade/renderer/rasterize/expand/mesh/graph_expand_meshes_to_meshlets.d.ts.map +1 -1
  1123. package/src/shade/renderer/rasterize/expand/mesh/graph_expand_meshes_to_meshlets.js +20 -0
  1124. package/src/shade/renderer/rasterize/forward/chunk_forward_sample_indirect.d.ts +25 -0
  1125. package/src/shade/renderer/rasterize/forward/chunk_forward_sample_indirect.d.ts.map +1 -0
  1126. package/src/shade/renderer/rasterize/forward/chunk_forward_sample_indirect.js +33 -0
  1127. package/src/shade/renderer/rasterize/forward/chunk_forward_sample_indirect_brick4.d.ts +10 -0
  1128. package/src/shade/renderer/rasterize/forward/chunk_forward_sample_indirect_brick4.d.ts.map +1 -0
  1129. package/src/shade/renderer/rasterize/forward/chunk_forward_sample_indirect_brick4.js +38 -0
  1130. package/src/shade/renderer/rasterize/forward/chunk_forward_sample_indirect_environment.d.ts +9 -0
  1131. package/src/shade/renderer/rasterize/forward/chunk_forward_sample_indirect_environment.d.ts.map +1 -0
  1132. package/src/shade/renderer/rasterize/forward/chunk_forward_sample_indirect_environment.js +30 -0
  1133. package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment.d.ts +10 -0
  1134. package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment.d.ts.map +1 -0
  1135. package/src/shade/renderer/rasterize/forward/{chunk_forward_shade_standard_fragment_brick4.js → chunk_forward_shade_standard_fragment.js} +66 -33
  1136. package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts +3 -3
  1137. package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts.map +1 -1
  1138. package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.js +3 -3
  1139. package/src/shade/renderer/rasterize/native/avboit/avboit_draw_fragment_body.d.ts +9 -4
  1140. package/src/shade/renderer/rasterize/native/avboit/avboit_draw_fragment_body.d.ts.map +1 -1
  1141. package/src/shade/renderer/rasterize/native/avboit/avboit_draw_fragment_body.js +11 -5
  1142. package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.d.ts +8 -6
  1143. package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.d.ts.map +1 -1
  1144. package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.js +27 -45
  1145. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw.d.ts +18 -0
  1146. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw.d.ts.map +1 -0
  1147. package/src/shade/renderer/rasterize/native/avboit/{shader_avboit_draw_brick4.js → shader_avboit_draw.js} +26 -21
  1148. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_splat.js +3 -3
  1149. package/src/shade/renderer/rasterize/native/oit/graph_rasterize_meshes_transparent_oit.d.ts +3 -2
  1150. package/src/shade/renderer/rasterize/native/oit/graph_rasterize_meshes_transparent_oit.d.ts.map +1 -1
  1151. package/src/shade/renderer/rasterize/native/oit/graph_rasterize_meshes_transparent_oit.js +26 -47
  1152. package/src/shade/renderer/rasterize/native/oit/oit_resolve_fragment_body.d.ts +12 -8
  1153. package/src/shade/renderer/rasterize/native/oit/oit_resolve_fragment_body.d.ts.map +1 -1
  1154. package/src/shade/renderer/rasterize/native/oit/oit_resolve_fragment_body.js +128 -123
  1155. package/src/shade/renderer/rasterize/native/oit/shader_oit_generate_moments.js +3 -3
  1156. package/src/shade/renderer/rasterize/native/oit/shader_oit_resolve_moments.d.ts +11 -2
  1157. package/src/shade/renderer/rasterize/native/oit/shader_oit_resolve_moments.d.ts.map +1 -1
  1158. package/src/shade/renderer/rasterize/native/oit/shader_oit_resolve_moments.js +21 -13
  1159. package/src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.d.ts +15 -0
  1160. package/src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.d.ts.map +1 -1
  1161. package/src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.js +35 -2
  1162. package/src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.d.ts +14 -0
  1163. package/src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.d.ts.map +1 -1
  1164. package/src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.js +32 -4
  1165. package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.d.ts +17 -0
  1166. package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.d.ts.map +1 -1
  1167. package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.js +34 -4
  1168. package/src/shade/renderer/restir/di/RESTIR_RADIANCE_RESOURCE.d.ts +7 -0
  1169. package/src/shade/renderer/restir/di/RESTIR_RADIANCE_RESOURCE.d.ts.map +1 -0
  1170. package/src/shade/renderer/restir/di/RESTIR_RADIANCE_RESOURCE.js +7 -0
  1171. package/src/shade/renderer/restir/di/chunk_restir_resolve.d.ts +5 -3
  1172. package/src/shade/renderer/restir/di/chunk_restir_resolve.d.ts.map +1 -1
  1173. package/src/shade/renderer/restir/di/chunk_restir_resolve.js +8 -3
  1174. package/src/shade/renderer/restir/di/graph_restir_di.d.ts.map +1 -1
  1175. package/src/shade/renderer/restir/di/graph_restir_di.js +1 -0
  1176. package/src/shade/renderer/restir/di/shader_restir_di_resolve.d.ts.map +1 -1
  1177. package/src/shade/renderer/restir/di/shader_restir_di_resolve.js +5 -1
  1178. package/src/shade/renderer/restir/reservoir/shader.d.ts.map +1 -1
  1179. package/src/shade/renderer/restir/reservoir/shader.js +7 -4
  1180. package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.d.ts +7 -0
  1181. package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.d.ts.map +1 -1
  1182. package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.js +13 -1
  1183. package/src/shade/renderer/scene/GPUSceneContext.d.ts +19 -1
  1184. package/src/shade/renderer/scene/GPUSceneContext.d.ts.map +1 -1
  1185. package/src/shade/renderer/scene/GPUSceneContext.js +40 -1
  1186. package/src/shade/renderer/scene/MESH_INSTANCE_METADATA_STRUCT.d.ts.map +1 -1
  1187. package/src/shade/renderer/scene/MESH_INSTANCE_METADATA_STRUCT.js +5 -0
  1188. package/src/shade/renderer/scene/SCENE_DATABASE_RESOURCE.d.ts +7 -0
  1189. package/src/shade/renderer/scene/SCENE_DATABASE_RESOURCE.d.ts.map +1 -0
  1190. package/src/shade/renderer/scene/SCENE_DATABASE_RESOURCE.js +8 -0
  1191. package/src/shade/renderer/scene/SceneManager.d.ts +9 -0
  1192. package/src/shade/renderer/scene/SceneManager.d.ts.map +1 -1
  1193. package/src/shade/renderer/scene/SceneManager.js +11 -0
  1194. package/src/shade/renderer/scene/hierarchy/graph_nodes_update_transform_hierarchy.d.ts +11 -0
  1195. package/src/shade/renderer/scene/hierarchy/graph_nodes_update_transform_hierarchy.d.ts.map +1 -1
  1196. package/src/shade/renderer/scene/hierarchy/graph_nodes_update_transform_hierarchy.js +17 -0
  1197. package/src/shade/renderer/scene/hierarchy/graph_scene_update_transform_hierarchy.d.ts +11 -0
  1198. package/src/shade/renderer/scene/hierarchy/graph_scene_update_transform_hierarchy.d.ts.map +1 -1
  1199. package/src/shade/renderer/scene/hierarchy/graph_scene_update_transform_hierarchy.js +18 -1
  1200. package/src/shade/renderer/scene/rows/GPUSceneRows.d.ts +14 -0
  1201. package/src/shade/renderer/scene/rows/GPUSceneRows.d.ts.map +1 -1
  1202. package/src/shade/renderer/scene/rows/GPUSceneRows.js +114 -10
  1203. package/src/shade/renderer/shader/ComputeShader.d.ts +33 -0
  1204. package/src/shade/renderer/shader/ComputeShader.d.ts.map +1 -1
  1205. package/src/shade/renderer/shader/ComputeShader.js +107 -0
  1206. package/src/shade/renderer/shader/ImageShader.d.ts +27 -8
  1207. package/src/shade/renderer/shader/ImageShader.d.ts.map +1 -1
  1208. package/src/shade/renderer/shader/ImageShader.js +70 -1
  1209. package/src/shade/renderer/shader/ShaderDescriptor.d.ts +27 -0
  1210. package/src/shade/renderer/shader/ShaderDescriptor.d.ts.map +1 -1
  1211. package/src/shade/renderer/shader/ShaderDescriptor.js +149 -1
  1212. package/src/shade/renderer/shader/chunk/brdf/FRESNEL_BRIEF_2026_10_16.md +394 -0
  1213. package/src/shade/renderer/shader/chunk/brdf/chunk_BRDF_GGX.d.ts +4 -1
  1214. package/src/shade/renderer/shader/chunk/brdf/chunk_BRDF_GGX.d.ts.map +1 -1
  1215. package/src/shade/renderer/shader/chunk/brdf/chunk_BRDF_GGX.js +7 -4
  1216. package/src/shade/renderer/shader/chunk/brdf/dfg/chunk_integrate_brdf.d.ts +4 -1
  1217. package/src/shade/renderer/shader/chunk/brdf/dfg/chunk_integrate_brdf.d.ts.map +1 -1
  1218. package/src/shade/renderer/shader/chunk/brdf/dfg/chunk_integrate_brdf.js +9 -9
  1219. package/src/shade/renderer/shader/chunk/brdf/fresnel/chunk_F_Schlick.d.ts +10 -1
  1220. package/src/shade/renderer/shader/chunk/brdf/fresnel/chunk_F_Schlick.d.ts.map +1 -1
  1221. package/src/shade/renderer/shader/chunk/brdf/fresnel/chunk_F_Schlick.js +16 -5
  1222. package/src/shade/renderer/shader/chunk/bvh/chunk_bvh_query_aabb_cooperative.d.ts +82 -0
  1223. package/src/shade/renderer/shader/chunk/bvh/chunk_bvh_query_aabb_cooperative.d.ts.map +1 -0
  1224. package/src/shade/renderer/shader/chunk/bvh/chunk_bvh_query_aabb_cooperative.js +286 -0
  1225. package/src/shade/renderer/shader/chunk/bvh/chunk_bvh_query_aabb_frontier.d.ts +47 -0
  1226. package/src/shade/renderer/shader/chunk/bvh/chunk_bvh_query_aabb_frontier.d.ts.map +1 -0
  1227. package/src/shade/renderer/shader/chunk/bvh/chunk_bvh_query_aabb_frontier.js +121 -0
  1228. package/src/shade/renderer/shader/chunk/camera/chunk_project_view_position_from_depth.d.ts +17 -0
  1229. package/src/shade/renderer/shader/chunk/camera/chunk_project_view_position_from_depth.d.ts.map +1 -0
  1230. package/src/shade/renderer/shader/chunk/camera/chunk_project_view_position_from_depth.js +45 -0
  1231. package/src/shade/renderer/shader/chunk/camera/chunk_screen_coordinate_to_view.js +3 -3
  1232. package/src/shade/renderer/shader/chunk/clipmap/CLIPMAP_LEVEL_STRUCT.d.ts +22 -0
  1233. package/src/shade/renderer/shader/chunk/clipmap/CLIPMAP_LEVEL_STRUCT.d.ts.map +1 -0
  1234. package/src/shade/renderer/shader/chunk/clipmap/CLIPMAP_LEVEL_STRUCT.js +38 -0
  1235. package/src/shade/renderer/shader/chunk/clipmap/chunk_clipmap_contains.d.ts +11 -0
  1236. package/src/shade/renderer/shader/chunk/clipmap/chunk_clipmap_contains.d.ts.map +1 -0
  1237. package/src/shade/renderer/shader/chunk/clipmap/chunk_clipmap_contains.js +20 -0
  1238. package/src/shade/renderer/shader/chunk/clipmap/chunk_clipmap_select_finest.d.ts +19 -0
  1239. package/src/shade/renderer/shader/chunk/clipmap/chunk_clipmap_select_finest.d.ts.map +1 -0
  1240. package/src/shade/renderer/shader/chunk/clipmap/chunk_clipmap_select_finest.js +71 -0
  1241. package/src/shade/renderer/shader/chunk/clipmap/chunk_clipmap_storage_coord.d.ts +15 -0
  1242. package/src/shade/renderer/shader/chunk/clipmap/chunk_clipmap_storage_coord.d.ts.map +1 -0
  1243. package/src/shade/renderer/shader/chunk/clipmap/chunk_clipmap_storage_coord.js +25 -0
  1244. package/src/shade/renderer/shader/chunk/color/conversion/chunk_CRM_FROM_REC709_TO_P3.d.ts +17 -0
  1245. package/src/shade/renderer/shader/chunk/color/conversion/chunk_CRM_FROM_REC709_TO_P3.d.ts.map +1 -0
  1246. package/src/shade/renderer/shader/chunk/color/conversion/chunk_CRM_FROM_REC709_TO_P3.js +26 -0
  1247. package/src/shade/renderer/shader/chunk/color/iCtCp/chunk_eotf_st2084.d.ts +1 -1
  1248. package/src/shade/renderer/shader/chunk/color/iCtCp/chunk_eotf_st2084.js +62 -62
  1249. package/src/shade/renderer/shader/chunk/color/tonemap/HDR_TONE_MAPPING_FORMS_BRIEF_2026_10_16.md +318 -0
  1250. package/src/shade/renderer/shader/chunk/color/tonemap/SDR_TONE_MAPPING_BRIEF_2026_10_16.md +237 -0
  1251. package/src/shade/renderer/shader/chunk/color/tonemap/chunk_PAPER_WHITE_NITS.d.ts +17 -0
  1252. package/src/shade/renderer/shader/chunk/color/tonemap/chunk_PAPER_WHITE_NITS.d.ts.map +1 -0
  1253. package/src/shade/renderer/shader/chunk/color/tonemap/chunk_PAPER_WHITE_NITS.js +22 -0
  1254. package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_khronos_pbr.d.ts +14 -1
  1255. package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_khronos_pbr.d.ts.map +1 -1
  1256. package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_khronos_pbr.js +28 -15
  1257. package/src/shade/renderer/shader/chunk/color/tonemap/gt7/chunk_tonemap_gt7.d.ts +16 -0
  1258. package/src/shade/renderer/shader/chunk/color/tonemap/gt7/chunk_tonemap_gt7.d.ts.map +1 -1
  1259. package/src/shade/renderer/shader/chunk/color/tonemap/gt7/chunk_tonemap_gt7.js +122 -110
  1260. package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_intersects_aabb3.d.ts +14 -0
  1261. package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_intersects_aabb3.d.ts.map +1 -0
  1262. package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_intersects_aabb3.js +24 -0
  1263. package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_signed_distance_to_point.d.ts +3 -0
  1264. package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_signed_distance_to_point.d.ts.map +1 -1
  1265. package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_signed_distance_to_point.js +9 -10
  1266. package/src/shade/renderer/shader/chunk/geometry/chunk_point_closest_on_line.d.ts +11 -0
  1267. package/src/shade/renderer/shader/chunk/geometry/chunk_point_closest_on_line.d.ts.map +1 -0
  1268. package/src/shade/renderer/shader/chunk/geometry/chunk_point_closest_on_line.js +28 -0
  1269. package/src/shade/renderer/shader/chunk/geometry/chunk_point_distance_to_line.d.ts +3 -2
  1270. package/src/shade/renderer/shader/chunk/geometry/chunk_point_distance_to_line.d.ts.map +1 -1
  1271. package/src/shade/renderer/shader/chunk/geometry/chunk_point_distance_to_line.js +8 -17
  1272. package/src/shade/renderer/shader/chunk/geometry/meshlet/chunk_read_meshlet_attribute_u32.d.ts.map +1 -1
  1273. package/src/shade/renderer/shader/chunk/geometry/meshlet/chunk_read_meshlet_attribute_u32.js +3 -0
  1274. package/src/shade/renderer/shader/chunk/geometry/meshlet/chunk_read_meshlet_attribute_vec2f.d.ts.map +1 -1
  1275. package/src/shade/renderer/shader/chunk/geometry/meshlet/chunk_read_meshlet_attribute_vec2f.js +4 -1
  1276. package/src/shade/renderer/shader/chunk/geometry/meshlet/chunk_read_meshlet_attribute_vec3f.d.ts.map +1 -1
  1277. package/src/shade/renderer/shader/chunk/geometry/meshlet/chunk_read_meshlet_attribute_vec3f.js +4 -1
  1278. package/src/shade/renderer/shader/chunk/geometry/plane/chunk_point_distance_above_plane.d.ts +8 -0
  1279. package/src/shade/renderer/shader/chunk/geometry/plane/chunk_point_distance_above_plane.d.ts.map +1 -1
  1280. package/src/shade/renderer/shader/chunk/geometry/plane/chunk_point_distance_above_plane.js +8 -0
  1281. package/src/shade/renderer/shader/chunk/geometry/ray/chunk_offset_ray_from_depth.d.ts +20 -0
  1282. package/src/shade/renderer/shader/chunk/geometry/ray/chunk_offset_ray_from_depth.d.ts.map +1 -0
  1283. package/src/shade/renderer/shader/chunk/geometry/ray/chunk_offset_ray_from_depth.js +33 -0
  1284. package/src/shade/renderer/shader/chunk/geometry/vec3/chunk_v3_angle_stable.d.ts +14 -0
  1285. package/src/shade/renderer/shader/chunk/geometry/vec3/chunk_v3_angle_stable.d.ts.map +1 -0
  1286. package/src/shade/renderer/shader/chunk/geometry/vec3/chunk_v3_angle_stable.js +21 -0
  1287. package/src/shade/renderer/shader/chunk/geometry/vec3/chunk_v3_clamp_to_cone.d.ts +21 -0
  1288. package/src/shade/renderer/shader/chunk/geometry/vec3/chunk_v3_clamp_to_cone.d.ts.map +1 -0
  1289. package/src/shade/renderer/shader/chunk/geometry/vec3/chunk_v3_clamp_to_cone.js +49 -0
  1290. package/src/shade/renderer/shader/chunk/geometry/vec3/chunk_v3_slerp.d.ts +29 -0
  1291. package/src/shade/renderer/shader/chunk/geometry/vec3/chunk_v3_slerp.d.ts.map +1 -0
  1292. package/src/shade/renderer/shader/chunk/geometry/vec3/chunk_v3_slerp.js +86 -0
  1293. package/src/shade/renderer/shader/chunk/grid/GRID_TILE_WINDOW_STRUCT.d.ts +24 -0
  1294. package/src/shade/renderer/shader/chunk/grid/GRID_TILE_WINDOW_STRUCT.d.ts.map +1 -0
  1295. package/src/shade/renderer/shader/chunk/grid/GRID_TILE_WINDOW_STRUCT.js +30 -0
  1296. package/src/shade/renderer/shader/chunk/grid/chunk_grid_tile_halo_f32.d.ts +55 -0
  1297. package/src/shade/renderer/shader/chunk/grid/chunk_grid_tile_halo_f32.d.ts.map +1 -0
  1298. package/src/shade/renderer/shader/chunk/grid/chunk_grid_tile_halo_f32.js +101 -0
  1299. package/src/shade/renderer/shader/chunk/grid/chunk_grid_tile_halo_vec4.d.ts +24 -0
  1300. package/src/shade/renderer/shader/chunk/grid/chunk_grid_tile_halo_vec4.d.ts.map +1 -0
  1301. package/src/shade/renderer/shader/chunk/grid/chunk_grid_tile_halo_vec4.js +70 -0
  1302. package/src/shade/renderer/shader/chunk/grid/chunk_grid_tile_window.d.ts +42 -0
  1303. package/src/shade/renderer/shader/chunk/grid/chunk_grid_tile_window.d.ts.map +1 -0
  1304. package/src/shade/renderer/shader/chunk/grid/chunk_grid_tile_window.js +88 -0
  1305. package/src/shade/renderer/shader/chunk/light/chunk_compute_multiscattering_specular.d.ts +4 -0
  1306. package/src/shade/renderer/shader/chunk/light/chunk_compute_multiscattering_specular.d.ts.map +1 -1
  1307. package/src/shade/renderer/shader/chunk/light/chunk_compute_multiscattering_specular.js +12 -1
  1308. package/src/shade/renderer/shader/chunk/light/lpv/chunk_lpv_mesh_get_vertices.d.ts.map +1 -1
  1309. package/src/shade/renderer/shader/chunk/light/lpv/chunk_lpv_mesh_get_vertices.js +4 -1
  1310. package/src/shade/renderer/shader/chunk/light/lpv/chunk_lpv_mesh_lookup_nearest_cell.d.ts.map +1 -1
  1311. package/src/shade/renderer/shader/chunk/light/lpv/chunk_lpv_mesh_lookup_nearest_cell.js +4 -1
  1312. package/src/shade/renderer/shader/chunk/light/lpv/chunk_lpv_probe_get_data.d.ts.map +1 -1
  1313. package/src/shade/renderer/shader/chunk/light/lpv/chunk_lpv_probe_get_data.js +4 -1
  1314. package/src/shade/renderer/shader/chunk/light/lpv/chunk_lpv_probe_get_position.d.ts.map +1 -1
  1315. package/src/shade/renderer/shader/chunk/light/lpv/chunk_lpv_probe_get_position.js +4 -1
  1316. package/src/shade/renderer/shader/chunk/light/lpv/chunk_lpv_sample_radiance.d.ts.map +1 -1
  1317. package/src/shade/renderer/shader/chunk/light/lpv/chunk_lpv_sample_radiance.js +4 -1
  1318. package/src/shade/renderer/shader/chunk/light/lpv/depth/chunk_lpv_mask_weights_by_visibility.d.ts.map +1 -1
  1319. package/src/shade/renderer/shader/chunk/light/lpv/depth/chunk_lpv_mask_weights_by_visibility.js +6 -1
  1320. package/src/shade/renderer/shader/chunk/light/lpv/depth/chunk_lpv_sample_depth_atlas.d.ts.map +1 -1
  1321. package/src/shade/renderer/shader/chunk/light/lpv/depth/chunk_lpv_sample_depth_atlas.js +13 -1
  1322. package/src/shade/renderer/shader/chunk/material/MATERIAL_SHADING_INFO_STRUCT.d.ts.map +1 -1
  1323. package/src/shade/renderer/shader/chunk/material/MATERIAL_SHADING_INFO_STRUCT.js +7 -0
  1324. package/src/shade/renderer/shader/chunk/material/MULTISCATTER.md +159 -0
  1325. package/src/shade/renderer/shader/chunk/material/chunk_compute_indirect_specular.d.ts.map +1 -1
  1326. package/src/shade/renderer/shader/chunk/material/chunk_compute_indirect_specular.js +29 -5
  1327. package/src/shade/renderer/shader/chunk/material/chunk_re_direct_multiscatter.d.ts +24 -0
  1328. package/src/shade/renderer/shader/chunk/material/chunk_re_direct_multiscatter.d.ts.map +1 -0
  1329. package/src/shade/renderer/shader/chunk/material/chunk_re_direct_multiscatter.js +84 -0
  1330. package/src/shade/renderer/shader/chunk/material/chunk_re_indirect_specular_physical.d.ts.map +1 -1
  1331. package/src/shade/renderer/shader/chunk/material/chunk_re_indirect_specular_physical.js +2 -0
  1332. package/src/shade/renderer/shader/chunk/math/chunk_falloff_quadratic.d.ts +11 -0
  1333. package/src/shade/renderer/shader/chunk/math/chunk_falloff_quadratic.d.ts.map +1 -0
  1334. package/src/shade/renderer/shader/chunk/math/chunk_falloff_quadratic.js +20 -0
  1335. package/src/shade/renderer/shader/chunk/noise/chunk_stbn_sample_vec2.d.ts.map +1 -1
  1336. package/src/shade/renderer/shader/chunk/noise/chunk_stbn_sample_vec2.js +4 -1
  1337. package/src/shade/renderer/shader/chunk/noise/chunk_stbn_sample_vec3.d.ts.map +1 -1
  1338. package/src/shade/renderer/shader/chunk/noise/chunk_stbn_sample_vec3.js +3 -0
  1339. package/src/shade/renderer/shader/chunk/physics/fluid/chunk_vortex_swirl.d.ts +20 -0
  1340. package/src/shade/renderer/shader/chunk/physics/fluid/chunk_vortex_swirl.d.ts.map +1 -0
  1341. package/src/shade/renderer/shader/chunk/physics/fluid/chunk_vortex_swirl.js +39 -0
  1342. package/src/shade/renderer/shader/chunk/physics/kinematics/chunk_rigid_velocity_at_point.d.ts +12 -0
  1343. package/src/shade/renderer/shader/chunk/physics/kinematics/chunk_rigid_velocity_at_point.d.ts.map +1 -0
  1344. package/src/shade/renderer/shader/chunk/physics/kinematics/chunk_rigid_velocity_at_point.js +21 -0
  1345. package/src/shade/renderer/shader/chunk/screen_space/SCREEN_SPACE_RESOURCES.d.ts +17 -0
  1346. package/src/shade/renderer/shader/chunk/screen_space/SCREEN_SPACE_RESOURCES.d.ts.map +1 -0
  1347. package/src/shade/renderer/shader/chunk/screen_space/SCREEN_SPACE_RESOURCES.js +19 -0
  1348. package/src/shade/renderer/shader/chunk/screen_space/chunk_ffx_sssr_load_depth.d.ts.map +1 -1
  1349. package/src/shade/renderer/shader/chunk/screen_space/chunk_ffx_sssr_load_depth.js +5 -1
  1350. package/src/shade/renderer/shader/chunk/screen_space/chunk_ffx_sssr_load_world_space_normal.d.ts.map +1 -1
  1351. package/src/shade/renderer/shader/chunk/screen_space/chunk_ffx_sssr_load_world_space_normal.js +4 -1
  1352. package/src/shade/renderer/shader/chunk/screen_space/chunk_ffx_sssr_screen_space_to_view_space.d.ts.map +1 -1
  1353. package/src/shade/renderer/shader/chunk/screen_space/chunk_ffx_sssr_screen_space_to_view_space.js +4 -1
  1354. package/src/shade/renderer/shader/chunk/screen_space/chunk_ffx_sssr_validate_hit.d.ts.map +1 -1
  1355. package/src/shade/renderer/shader/chunk/screen_space/chunk_ffx_sssr_validate_hit.js +3 -0
  1356. package/src/shade/renderer/shader/chunk/screen_space/chunk_screen_space_linear_ray.d.ts +43 -0
  1357. package/src/shade/renderer/shader/chunk/screen_space/chunk_screen_space_linear_ray.d.ts.map +1 -0
  1358. package/src/shade/renderer/shader/chunk/screen_space/chunk_screen_space_linear_ray.js +319 -0
  1359. package/src/shade/renderer/shader/chunk/sdf/chunk_scene_sdf_raymarch.d.ts.map +1 -1
  1360. package/src/shade/renderer/shader/chunk/sdf/chunk_scene_sdf_raymarch.js +3 -5
  1361. package/src/shade/renderer/shader/chunk/sdf/chunk_sdf3_box.d.ts +16 -0
  1362. package/src/shade/renderer/shader/chunk/sdf/chunk_sdf3_box.d.ts.map +1 -0
  1363. package/src/shade/renderer/shader/chunk/sdf/chunk_sdf3_box.js +28 -0
  1364. package/src/shade/renderer/shader/chunk/sdf/chunk_sdf3_capsule.d.ts +18 -0
  1365. package/src/shade/renderer/shader/chunk/sdf/chunk_sdf3_capsule.d.ts.map +1 -0
  1366. package/src/shade/renderer/shader/chunk/sdf/chunk_sdf3_capsule.js +30 -0
  1367. package/src/shade/renderer/shader/chunk/sdf/chunk_sdf3_cylinder.d.ts +18 -0
  1368. package/src/shade/renderer/shader/chunk/sdf/chunk_sdf3_cylinder.d.ts.map +1 -0
  1369. package/src/shade/renderer/shader/chunk/sdf/chunk_sdf3_cylinder.js +28 -0
  1370. package/src/shade/renderer/shader/chunk/sdf/chunk_sdf3_sphere.d.ts +13 -0
  1371. package/src/shade/renderer/shader/chunk/sdf/chunk_sdf3_sphere.d.ts.map +1 -0
  1372. package/src/shade/renderer/shader/chunk/sdf/chunk_sdf3_sphere.js +20 -0
  1373. package/src/shade/renderer/shader/chunk/sdf/chunk_sdf_texture_region_sample_linear_uv.d.ts +7 -0
  1374. package/src/shade/renderer/shader/chunk/sdf/chunk_sdf_texture_region_sample_linear_uv.d.ts.map +1 -1
  1375. package/src/shade/renderer/shader/chunk/sdf/chunk_sdf_texture_region_sample_linear_uv.js +16 -41
  1376. package/src/shade/renderer/shader/chunk/sdf/chunk_shape_record_kind.d.ts +10 -0
  1377. package/src/shade/renderer/shader/chunk/sdf/chunk_shape_record_kind.d.ts.map +1 -0
  1378. package/src/shade/renderer/shader/chunk/sdf/chunk_shape_record_kind.js +24 -0
  1379. package/src/shade/renderer/shader/chunk/sdf/chunk_shape_record_local_bounds.d.ts +20 -0
  1380. package/src/shade/renderer/shader/chunk/sdf/chunk_shape_record_local_bounds.d.ts.map +1 -0
  1381. package/src/shade/renderer/shader/chunk/sdf/chunk_shape_record_local_bounds.js +54 -0
  1382. package/src/shade/renderer/shader/chunk/sdf/chunk_shape_record_signed_distance.d.ts +23 -0
  1383. package/src/shade/renderer/shader/chunk/sdf/chunk_shape_record_signed_distance.d.ts.map +1 -0
  1384. package/src/shade/renderer/shader/chunk/sdf/chunk_shape_record_signed_distance.js +82 -0
  1385. package/src/shade/renderer/shader/chunk/spherical_harmonics/exponential/chunk_sh_exp_split_sum.d.ts +4 -3
  1386. package/src/shade/renderer/shader/chunk/spherical_harmonics/exponential/chunk_sh_exp_split_sum.d.ts.map +1 -1
  1387. package/src/shade/renderer/shader/chunk/spherical_harmonics/exponential/chunk_sh_exp_split_sum.js +4 -3
  1388. package/src/shade/renderer/shader/chunk/subgroup/chunk_subgroup_append_slot.d.ts +31 -0
  1389. package/src/shade/renderer/shader/chunk/subgroup/chunk_subgroup_append_slot.d.ts.map +1 -0
  1390. package/src/shade/renderer/shader/chunk/subgroup/chunk_subgroup_append_slot.js +60 -0
  1391. package/src/shade/renderer/shader/chunk/subgroup/chunk_subgroup_atomic_add.d.ts +15 -0
  1392. package/src/shade/renderer/shader/chunk/subgroup/chunk_subgroup_atomic_add.d.ts.map +1 -0
  1393. package/src/shade/renderer/shader/chunk/subgroup/chunk_subgroup_atomic_add.js +29 -0
  1394. package/src/shade/renderer/shader/chunk/texture/TEXTURE3D_TRILINEAR_CORNERS_STRUCT.d.ts +15 -0
  1395. package/src/shade/renderer/shader/chunk/texture/TEXTURE3D_TRILINEAR_CORNERS_STRUCT.d.ts.map +1 -0
  1396. package/src/shade/renderer/shader/chunk/texture/TEXTURE3D_TRILINEAR_CORNERS_STRUCT.js +20 -0
  1397. package/src/shade/renderer/shader/chunk/texture/chunk_texel_coordinate_to_uv3.d.ts +11 -0
  1398. package/src/shade/renderer/shader/chunk/texture/chunk_texel_coordinate_to_uv3.d.ts.map +1 -0
  1399. package/src/shade/renderer/shader/chunk/texture/chunk_texel_coordinate_to_uv3.js +18 -0
  1400. package/src/shade/renderer/shader/chunk/texture/chunk_uv3_to_texel_coordinate.d.ts +11 -0
  1401. package/src/shade/renderer/shader/chunk/texture/chunk_uv3_to_texel_coordinate.d.ts.map +1 -0
  1402. package/src/shade/renderer/shader/chunk/texture/chunk_uv3_to_texel_coordinate.js +18 -0
  1403. package/src/shade/renderer/shader/chunk/texture/sample/chunk_texture3d_trilinear_corners.d.ts +35 -0
  1404. package/src/shade/renderer/shader/chunk/texture/sample/chunk_texture3d_trilinear_corners.d.ts.map +1 -0
  1405. package/src/shade/renderer/shader/chunk/texture/sample/chunk_texture3d_trilinear_corners.js +159 -0
  1406. package/src/shade/renderer/shader/compiler/CodeChunk.d.ts +67 -1
  1407. package/src/shade/renderer/shader/compiler/CodeChunk.d.ts.map +1 -1
  1408. package/src/shade/renderer/shader/compiler/CodeChunk.js +205 -2
  1409. package/src/shade/renderer/shader/compiler/CodeChunkChoice.d.ts +76 -0
  1410. package/src/shade/renderer/shader/compiler/CodeChunkChoice.d.ts.map +1 -0
  1411. package/src/shade/renderer/shader/compiler/CodeChunkChoice.js +176 -0
  1412. package/src/shade/renderer/shader/compiler/SHADER_SWITCH_PROPOSAL_2026_10_16.md +932 -0
  1413. package/src/shade/renderer/shader/compiler/ShaderSwitch.d.ts +86 -0
  1414. package/src/shade/renderer/shader/compiler/ShaderSwitch.d.ts.map +1 -0
  1415. package/src/shade/renderer/shader/compiler/ShaderSwitch.js +178 -0
  1416. package/src/shade/renderer/shader/compiler/ShaderSwitchSet.d.ts +67 -0
  1417. package/src/shade/renderer/shader/compiler/ShaderSwitchSet.d.ts.map +1 -0
  1418. package/src/shade/renderer/shader/compiler/ShaderSwitchSet.js +229 -0
  1419. package/src/shade/renderer/shader/graph/graph_prepare_bindings.d.ts.map +1 -1
  1420. package/src/shade/renderer/shader/graph/graph_prepare_bindings.js +69 -0
  1421. package/src/shade/renderer/shader/resource/ShaderResourceDescriptor.d.ts +94 -2
  1422. package/src/shade/renderer/shader/resource/ShaderResourceDescriptor.d.ts.map +1 -1
  1423. package/src/shade/renderer/shader/resource/ShaderResourceDescriptor.js +333 -2
  1424. package/src/shade/renderer/shader/resource/ShaderResourceGroupDescriptor.d.ts +14 -1
  1425. package/src/shade/renderer/shader/resource/ShaderResourceGroupDescriptor.d.ts.map +1 -1
  1426. package/src/shade/renderer/shader/resource/ShaderResourceGroupDescriptor.js +28 -150
  1427. package/src/shade/renderer/shader/resource/encoder_prepare_shader_bindings_defaults.d.ts +5 -0
  1428. package/src/shade/renderer/shader/resource/encoder_prepare_shader_bindings_defaults.d.ts.map +1 -1
  1429. package/src/shade/renderer/shader/resource/encoder_prepare_shader_bindings_defaults.js +11 -1
  1430. package/src/shade/renderer/shadow/contact/CONTACT_SHADOW_WAVE_SIZE.d.ts +14 -0
  1431. package/src/shade/renderer/shadow/contact/CONTACT_SHADOW_WAVE_SIZE.d.ts.map +1 -0
  1432. package/src/shade/renderer/shadow/contact/CONTACT_SHADOW_WAVE_SIZE.js +13 -0
  1433. package/src/shade/renderer/shadow/contact/ContactShadowDispatchList.d.ts +65 -0
  1434. package/src/shade/renderer/shadow/contact/ContactShadowDispatchList.d.ts.map +1 -0
  1435. package/src/shade/renderer/shadow/contact/ContactShadowDispatchList.js +252 -0
  1436. package/src/shade/renderer/shadow/contact/FINDINGS.md +413 -0
  1437. package/src/shade/renderer/shadow/contact/chunk_contact_shadow_wavefront_extents.d.ts +29 -0
  1438. package/src/shade/renderer/shadow/contact/chunk_contact_shadow_wavefront_extents.d.ts.map +1 -0
  1439. package/src/shade/renderer/shadow/contact/chunk_contact_shadow_wavefront_extents.js +105 -0
  1440. package/src/shade/renderer/shadow/contact/graph_contact_shadow_linear.d.ts +29 -0
  1441. package/src/shade/renderer/shadow/contact/graph_contact_shadow_linear.d.ts.map +1 -0
  1442. package/src/shade/renderer/shadow/contact/graph_contact_shadow_linear.js +39 -0
  1443. package/src/shade/renderer/shadow/contact/graph_contact_shadow_wavefront.d.ts +29 -0
  1444. package/src/shade/renderer/shadow/contact/graph_contact_shadow_wavefront.d.ts.map +1 -0
  1445. package/src/shade/renderer/shadow/contact/graph_contact_shadow_wavefront.js +92 -0
  1446. package/src/shade/renderer/shadow/contact/shader_contact_shadow_linear.d.ts +29 -0
  1447. package/src/shade/renderer/shadow/contact/shader_contact_shadow_linear.d.ts.map +1 -0
  1448. package/src/shade/renderer/shadow/contact/shader_contact_shadow_linear.js +128 -0
  1449. package/src/shade/renderer/shadow/contact/shader_contact_shadow_wavefront.d.ts +52 -0
  1450. package/src/shade/renderer/shadow/contact/shader_contact_shadow_wavefront.d.ts.map +1 -0
  1451. package/src/shade/renderer/shadow/contact/shader_contact_shadow_wavefront.js +358 -0
  1452. package/src/shade/renderer/shadow/map/SHADOWMAP_RESOURCES.d.ts +12 -0
  1453. package/src/shade/renderer/shadow/map/SHADOWMAP_RESOURCES.d.ts.map +1 -0
  1454. package/src/shade/renderer/shadow/map/SHADOWMAP_RESOURCES.js +14 -0
  1455. package/src/shade/renderer/shadow/map/ShadowDirectionalTechnique.d.ts +10 -0
  1456. package/src/shade/renderer/shadow/map/ShadowDirectionalTechnique.d.ts.map +1 -0
  1457. package/src/shade/renderer/shadow/map/ShadowDirectionalTechnique.js +12 -0
  1458. package/src/shade/renderer/shadow/map/shader/SHADOW_DIRECTIONAL_TECHNIQUE.d.ts +13 -0
  1459. package/src/shade/renderer/shadow/map/shader/SHADOW_DIRECTIONAL_TECHNIQUE.d.ts.map +1 -0
  1460. package/src/shade/renderer/shadow/map/shader/SHADOW_DIRECTIONAL_TECHNIQUE.js +14 -0
  1461. package/src/shade/renderer/shadow/map/shader/chunk_sample_shadowmap_atlas_for_light.d.ts.map +1 -1
  1462. package/src/shade/renderer/shadow/map/shader/chunk_sample_shadowmap_atlas_for_light.js +3 -0
  1463. package/src/shade/renderer/shadow/map/shader/chunk_shadowmap_sample_directional.d.ts +14 -8
  1464. package/src/shade/renderer/shadow/map/shader/chunk_shadowmap_sample_directional.d.ts.map +1 -1
  1465. package/src/shade/renderer/shadow/map/shader/chunk_shadowmap_sample_directional.js +20 -86
  1466. package/src/shade/renderer/shadow/map/shader/chunk_shadowmap_sample_directional_cascades.d.ts +14 -0
  1467. package/src/shade/renderer/shadow/map/shader/chunk_shadowmap_sample_directional_cascades.d.ts.map +1 -0
  1468. package/src/shade/renderer/shadow/map/shader/chunk_shadowmap_sample_directional_cascades.js +79 -0
  1469. package/src/shade/renderer/shadow/map/shader/chunk_shadowmap_sample_filtered.d.ts.map +1 -1
  1470. package/src/shade/renderer/shadow/map/shader/chunk_shadowmap_sample_filtered.js +8 -1
  1471. package/src/shade/renderer/shadow/map/shader/chunk_shadowmap_sample_point2.d.ts.map +1 -1
  1472. package/src/shade/renderer/shadow/map/shader/chunk_shadowmap_sample_point2.js +3 -0
  1473. package/src/shade/renderer/shadow/ray/shader_ray_shadow_code.d.ts.map +1 -1
  1474. package/src/shade/renderer/shadow/ray/shader_ray_shadow_code.js +12 -12
  1475. package/src/shade/renderer/shadow/ray/shader_screens_space_shadows.d.ts.map +1 -1
  1476. package/src/shade/renderer/shadow/ray/shader_screens_space_shadows.js +3 -0
  1477. package/src/shade/renderer/shadow/ray/staged/gen/shader_generate_rays.d.ts.map +1 -1
  1478. package/src/shade/renderer/shadow/ray/staged/gen/shader_generate_rays.js +153 -151
  1479. package/src/shade/renderer/shadow/sdf/chunk_geometry_sdf_query_distance.d.ts.map +1 -1
  1480. package/src/shade/renderer/shadow/sdf/chunk_geometry_sdf_query_distance.js +3 -3
  1481. package/src/shade/renderer/shadow/sdf/chunk_sdf_geometry_raymarch.d.ts.map +1 -1
  1482. package/src/shade/renderer/shadow/sdf/chunk_sdf_geometry_raymarch.js +3 -3
  1483. package/src/shade/renderer/shadow/vsm/VSMPageManager.d.ts +5 -3
  1484. package/src/shade/renderer/shadow/vsm/VSMPageManager.d.ts.map +1 -1
  1485. package/src/shade/renderer/shadow/vsm/VSMPageManager.js +86 -89
  1486. package/src/shade/renderer/shadow/vsm/VirtualShadowMap.d.ts.map +1 -1
  1487. package/src/shade/renderer/shadow/vsm/VirtualShadowMap.js +12 -9
  1488. package/src/shade/renderer/shadow/vsm/shader/chunk_shadowmap_sample_directional_virtual.d.ts +13 -0
  1489. package/src/shade/renderer/shadow/vsm/shader/chunk_shadowmap_sample_directional_virtual.d.ts.map +1 -0
  1490. package/src/shade/renderer/shadow/vsm/shader/chunk_shadowmap_sample_directional_virtual.js +48 -0
  1491. package/src/shade/renderer/shadow/vsm/shader/chunk_vsm_append_mover.d.ts +2 -2
  1492. package/src/shade/renderer/shadow/vsm/shader/chunk_vsm_append_mover.d.ts.map +1 -1
  1493. package/src/shade/renderer/shadow/vsm/shader/chunk_vsm_append_mover.js +13 -26
  1494. package/src/shade/renderer/texture/GPUTextureContext.d.ts +10 -0
  1495. package/src/shade/renderer/texture/GPUTextureContext.d.ts.map +1 -1
  1496. package/src/shade/renderer/texture/GPUTextureContext.js +24 -0
  1497. package/src/shade/renderer/texture/SAMPLER_LINEAR_RESOURCE.d.ts +7 -0
  1498. package/src/shade/renderer/texture/SAMPLER_LINEAR_RESOURCE.d.ts.map +1 -0
  1499. package/src/shade/renderer/texture/SAMPLER_LINEAR_RESOURCE.js +8 -0
  1500. package/src/shade/renderer/texture/atlas/GPUTileAtlas3D.d.ts +238 -0
  1501. package/src/shade/renderer/texture/atlas/GPUTileAtlas3D.d.ts.map +1 -0
  1502. package/src/shade/renderer/texture/atlas/GPUTileAtlas3D.js +747 -0
  1503. package/src/shade/renderer/texture/atlas/chunk_tile_atlas_slot_origin.d.ts +20 -0
  1504. package/src/shade/renderer/texture/atlas/chunk_tile_atlas_slot_origin.d.ts.map +1 -0
  1505. package/src/shade/renderer/texture/atlas/chunk_tile_atlas_slot_origin.js +30 -0
  1506. package/src/shade/renderer/texture/draw_texture_as_rgba.d.ts +2 -0
  1507. package/src/shade/renderer/texture/draw_texture_as_rgba.d.ts.map +1 -1
  1508. package/src/shade/renderer/texture/draw_texture_as_rgba.js +2 -0
  1509. package/src/shade/renderer/texture/graph_draw_texture_3d_slice_as_rgba.d.ts +31 -0
  1510. package/src/shade/renderer/texture/graph_draw_texture_3d_slice_as_rgba.d.ts.map +1 -0
  1511. package/src/shade/renderer/texture/graph_draw_texture_3d_slice_as_rgba.js +116 -0
  1512. package/src/shade/renderer/texture/shader_draw_texture_3d_slice_as_rgba.d.ts +33 -0
  1513. package/src/shade/renderer/texture/shader_draw_texture_3d_slice_as_rgba.d.ts.map +1 -0
  1514. package/src/shade/renderer/texture/shader_draw_texture_3d_slice_as_rgba.js +90 -0
  1515. package/src/shade/renderer/texture/util/ZERO_UINT_PIXEL_TEXTURE.d.ts +10 -0
  1516. package/src/shade/renderer/texture/util/ZERO_UINT_PIXEL_TEXTURE.d.ts.map +1 -0
  1517. package/src/shade/renderer/texture/util/ZERO_UINT_PIXEL_TEXTURE.js +33 -0
  1518. package/src/shade/renderer/view/VIEW_RESOURCE.d.ts +7 -0
  1519. package/src/shade/renderer/view/VIEW_RESOURCE.d.ts.map +1 -0
  1520. package/src/shade/renderer/view/VIEW_RESOURCE.js +8 -0
  1521. package/src/shade/renderer/volumetrics/GPUSceneVolumetrics.d.ts +33 -6
  1522. package/src/shade/renderer/volumetrics/GPUSceneVolumetrics.d.ts.map +1 -1
  1523. package/src/shade/renderer/volumetrics/GPUSceneVolumetrics.js +299 -16
  1524. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts +11 -4
  1525. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts.map +1 -1
  1526. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.js +14 -4
  1527. package/src/shade/renderer/volumetrics/NOTES.md +97 -0
  1528. package/src/shade/renderer/volumetrics/PARTICIPATING_MEDIA_VOLUME_STRUCT.d.ts.map +1 -1
  1529. package/src/shade/renderer/volumetrics/PARTICIPATING_MEDIA_VOLUME_STRUCT.js +42 -1
  1530. package/src/shade/renderer/volumetrics/ParticipatingMediaVolume.d.ts +74 -10
  1531. package/src/shade/renderer/volumetrics/ParticipatingMediaVolume.d.ts.map +1 -1
  1532. package/src/shade/renderer/volumetrics/ParticipatingMediaVolume.js +136 -10
  1533. package/src/shade/renderer/volumetrics/SceneVolumetrics.d.ts +30 -5
  1534. package/src/shade/renderer/volumetrics/SceneVolumetrics.d.ts.map +1 -1
  1535. package/src/shade/renderer/volumetrics/SceneVolumetrics.js +97 -68
  1536. package/src/shade/renderer/volumetrics/VOLUMETRICS_RESOURCES.d.ts +17 -0
  1537. package/src/shade/renderer/volumetrics/VOLUMETRICS_RESOURCES.d.ts.map +1 -0
  1538. package/src/shade/renderer/volumetrics/VOLUMETRICS_RESOURCES.js +20 -0
  1539. package/src/shade/renderer/volumetrics/VOLUMETRIC_NOISE_PLAN_2026_10_15.md +336 -0
  1540. package/src/shade/renderer/volumetrics/chunk_integrate_optical_depth.d.ts.map +1 -1
  1541. package/src/shade/renderer/volumetrics/chunk_integrate_optical_depth.js +82 -76
  1542. package/src/shade/renderer/volumetrics/chunk_participating_media_volume_sample.d.ts +8 -4
  1543. package/src/shade/renderer/volumetrics/chunk_participating_media_volume_sample.d.ts.map +1 -1
  1544. package/src/shade/renderer/volumetrics/chunk_participating_media_volume_sample.js +22 -9
  1545. package/src/shade/renderer/volumetrics/chunk_volumetrics_froxel_uvw_from_clip.d.ts +19 -0
  1546. package/src/shade/renderer/volumetrics/chunk_volumetrics_froxel_uvw_from_clip.d.ts.map +1 -0
  1547. package/src/shade/renderer/volumetrics/chunk_volumetrics_froxel_uvw_from_clip.js +56 -0
  1548. package/src/shade/renderer/volumetrics/chunk_volumetrics_local_light_shadow.d.ts.map +1 -1
  1549. package/src/shade/renderer/volumetrics/chunk_volumetrics_local_light_shadow.js +3 -0
  1550. package/src/shade/renderer/volumetrics/chunk_volumetrics_sample_froxel_extinction.d.ts +12 -3
  1551. package/src/shade/renderer/volumetrics/chunk_volumetrics_sample_froxel_extinction.d.ts.map +1 -1
  1552. package/src/shade/renderer/volumetrics/chunk_volumetrics_sample_froxel_extinction.js +85 -48
  1553. package/src/shade/renderer/volumetrics/chunk_volumetrics_sun_optical_depth.d.ts +7 -0
  1554. package/src/shade/renderer/volumetrics/chunk_volumetrics_sun_optical_depth.d.ts.map +1 -1
  1555. package/src/shade/renderer/volumetrics/chunk_volumetrics_sun_optical_depth.js +152 -130
  1556. package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_froxel_centre_ws.d.ts.map +1 -1
  1557. package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_froxel_centre_ws.js +5 -0
  1558. package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_gi.d.ts +7 -9
  1559. package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_gi.d.ts.map +1 -1
  1560. package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_gi.js +11 -9
  1561. package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_gi_sample.d.ts +35 -0
  1562. package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_gi_sample.d.ts.map +1 -0
  1563. package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_gi_sample.js +105 -0
  1564. package/src/shade/renderer/volumetrics/gi/graph_build_froxel_gi.d.ts +15 -9
  1565. package/src/shade/renderer/volumetrics/gi/graph_build_froxel_gi.d.ts.map +1 -1
  1566. package/src/shade/renderer/volumetrics/gi/graph_build_froxel_gi.js +26 -36
  1567. package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi.d.ts +10 -0
  1568. package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi.d.ts.map +1 -0
  1569. package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi.js +51 -0
  1570. package/src/shade/renderer/volumetrics/gi/volumetrics_gi_resources.d.ts +11 -0
  1571. package/src/shade/renderer/volumetrics/gi/volumetrics_gi_resources.d.ts.map +1 -1
  1572. package/src/shade/renderer/volumetrics/gi/volumetrics_gi_resources.js +19 -6
  1573. package/src/shade/renderer/volumetrics/graph_build_froxel_irradiance.d.ts +11 -4
  1574. package/src/shade/renderer/volumetrics/graph_build_froxel_irradiance.d.ts.map +1 -1
  1575. package/src/shade/renderer/volumetrics/graph_build_froxel_irradiance.js +14 -5
  1576. package/src/shade/renderer/volumetrics/graph_build_volumetrics.d.ts +4 -1
  1577. package/src/shade/renderer/volumetrics/graph_build_volumetrics.d.ts.map +1 -1
  1578. package/src/shade/renderer/volumetrics/graph_build_volumetrics.js +43 -10
  1579. package/src/shade/renderer/volumetrics/noise/PARTICIPATING_MEDIA_NOISE.d.ts +133 -0
  1580. package/src/shade/renderer/volumetrics/noise/PARTICIPATING_MEDIA_NOISE.d.ts.map +1 -0
  1581. package/src/shade/renderer/volumetrics/noise/PARTICIPATING_MEDIA_NOISE.js +152 -0
  1582. package/src/shade/renderer/volumetrics/noise/VOLUMETRICS_NOISE_TILE_BAKE_SETTINGS_STRUCT.d.ts +9 -0
  1583. package/src/shade/renderer/volumetrics/noise/VOLUMETRICS_NOISE_TILE_BAKE_SETTINGS_STRUCT.d.ts.map +1 -0
  1584. package/src/shade/renderer/volumetrics/noise/VOLUMETRICS_NOISE_TILE_BAKE_SETTINGS_STRUCT.js +24 -0
  1585. package/src/shade/renderer/volumetrics/noise/bake_volumetrics_noise_tile.d.ts +28 -0
  1586. package/src/shade/renderer/volumetrics/noise/bake_volumetrics_noise_tile.d.ts.map +1 -0
  1587. package/src/shade/renderer/volumetrics/noise/bake_volumetrics_noise_tile.js +96 -0
  1588. package/src/shade/renderer/volumetrics/noise/chunk_participating_media_noise.d.ts +67 -0
  1589. package/src/shade/renderer/volumetrics/noise/chunk_participating_media_noise.d.ts.map +1 -0
  1590. package/src/shade/renderer/volumetrics/noise/chunk_participating_media_noise.js +73 -0
  1591. package/src/shade/renderer/volumetrics/noise/chunk_participating_media_noise_carried.d.ts +14 -0
  1592. package/src/shade/renderer/volumetrics/noise/chunk_participating_media_noise_carried.d.ts.map +1 -0
  1593. package/src/shade/renderer/volumetrics/noise/chunk_participating_media_noise_carried.js +76 -0
  1594. package/src/shade/renderer/volumetrics/noise/chunk_participating_media_noise_scrolled.d.ts +14 -0
  1595. package/src/shade/renderer/volumetrics/noise/chunk_participating_media_noise_scrolled.d.ts.map +1 -0
  1596. package/src/shade/renderer/volumetrics/noise/chunk_participating_media_noise_scrolled.js +38 -0
  1597. package/src/shade/renderer/volumetrics/noise/chunk_participating_media_noise_tap.d.ts +21 -0
  1598. package/src/shade/renderer/volumetrics/noise/chunk_participating_media_noise_tap.d.ts.map +1 -0
  1599. package/src/shade/renderer/volumetrics/noise/chunk_participating_media_noise_tap.js +74 -0
  1600. package/src/shade/renderer/volumetrics/noise/shader_volumetrics_noise_tile_bake.d.ts +10 -0
  1601. package/src/shade/renderer/volumetrics/noise/shader_volumetrics_noise_tile_bake.d.ts.map +1 -0
  1602. package/src/shade/renderer/volumetrics/noise/shader_volumetrics_noise_tile_bake.js +121 -0
  1603. package/src/shade/renderer/volumetrics/shader_volumetrics_build_irradiance.d.ts +6 -0
  1604. package/src/shade/renderer/volumetrics/shader_volumetrics_build_irradiance.d.ts.map +1 -1
  1605. package/src/shade/renderer/volumetrics/shader_volumetrics_build_irradiance.js +11 -2
  1606. package/src/shade/renderer/volumetrics/shader_volumetrics_build_lighting.d.ts +7 -0
  1607. package/src/shade/renderer/volumetrics/shader_volumetrics_build_lighting.d.ts.map +1 -1
  1608. package/src/shade/renderer/volumetrics/shader_volumetrics_build_lighting.js +14 -4
  1609. package/src/shade/renderer/volumetrics/shader_volumetrics_build_participating_media.d.ts.map +1 -1
  1610. package/src/shade/renderer/volumetrics/shader_volumetrics_build_participating_media.js +54 -5
  1611. package/src/shade/renderer/volumetrics/shader_volumetrics_build_sun_shadow_volume.d.ts.map +1 -1
  1612. package/src/shade/renderer/volumetrics/shader_volumetrics_build_sun_shadow_volume.js +311 -290
  1613. package/src/shade/renderer/volumetrics/volumetrics_position_world_to_froxel_uvw.d.ts.map +1 -1
  1614. package/src/shade/renderer/volumetrics/volumetrics_position_world_to_froxel_uvw.js +33 -49
  1615. package/src/shade/renderer/water/GPUWaterRenderer.d.ts +3 -2
  1616. package/src/shade/renderer/water/GPUWaterRenderer.d.ts.map +1 -1
  1617. package/src/shade/renderer/water/GPUWaterRenderer.js +27 -30
  1618. package/src/shade/renderer/water/chunk_water_gi.d.ts +10 -2
  1619. package/src/shade/renderer/water/chunk_water_gi.d.ts.map +1 -1
  1620. package/src/shade/renderer/water/chunk_water_gi.js +70 -56
  1621. package/src/shade/renderer/water/chunk_water_transport.d.ts +0 -1
  1622. package/src/shade/renderer/water/chunk_water_transport.d.ts.map +1 -1
  1623. package/src/shade/renderer/water/chunk_water_transport.js +0 -17
  1624. package/src/shade/renderer/water/optics/chunk_water_inscatter.d.ts +2 -2
  1625. package/src/shade/renderer/water/optics/chunk_water_inscatter.d.ts.map +1 -1
  1626. package/src/shade/renderer/water/optics/chunk_water_inscatter.js +5 -2
  1627. package/src/shade/renderer/water/optics/chunk_water_receiver_downwelling.d.ts +1 -2
  1628. package/src/shade/renderer/water/optics/chunk_water_receiver_downwelling.d.ts.map +1 -1
  1629. package/src/shade/renderer/water/optics/chunk_water_receiver_downwelling.js +4 -2
  1630. package/src/shade/renderer/water/shader_water.d.ts +9 -10
  1631. package/src/shade/renderer/water/shader_water.d.ts.map +1 -1
  1632. package/src/shade/renderer/water/shader_water.js +88 -55
  1633. package/src/shade/renderer/water/shader_water_avboit.d.ts +0 -4
  1634. package/src/shade/renderer/water/shader_water_avboit.d.ts.map +1 -1
  1635. package/src/shade/renderer/water/shader_water_avboit.js +0 -63
  1636. package/src/shade/renderer/water/surface/GPUWaterSurface.d.ts +4 -1
  1637. package/src/shade/renderer/water/surface/GPUWaterSurface.d.ts.map +1 -1
  1638. package/src/shade/renderer/water/surface/GPUWaterSurface.js +9 -3
  1639. package/src/shade/renderer/water/surface/WATER_SURFACE_RESOURCES.d.ts +15 -0
  1640. package/src/shade/renderer/water/surface/WATER_SURFACE_RESOURCES.d.ts.map +1 -0
  1641. package/src/shade/renderer/water/surface/WATER_SURFACE_RESOURCES.js +27 -0
  1642. package/src/shade/renderer/water/surface/WATER_WAVE_RECORD_STRUCT.d.ts +2 -1
  1643. package/src/shade/renderer/water/surface/WATER_WAVE_RECORD_STRUCT.d.ts.map +1 -1
  1644. package/src/shade/renderer/water/surface/WATER_WAVE_RECORD_STRUCT.js +18 -9
  1645. package/src/shade/renderer/water/surface/chunk_water_surface_sample.d.ts +0 -3
  1646. package/src/shade/renderer/water/surface/chunk_water_surface_sample.d.ts.map +1 -1
  1647. package/src/shade/renderer/water/surface/chunk_water_surface_sample.js +15 -3
  1648. package/src/shade/renderer/water/surface/particles/shader_water_particles.js +2 -2
  1649. package/src/shade/renderer/water/surface/shader_water_cull.d.ts +9 -3
  1650. package/src/shade/renderer/water/surface/shader_water_cull.d.ts.map +1 -1
  1651. package/src/shade/renderer/water/surface/shader_water_cull.js +46 -22
  1652. package/src/shade/renderer/water/surface/shader_water_waves_derive.d.ts +26 -1
  1653. package/src/shade/renderer/water/surface/shader_water_waves_derive.d.ts.map +1 -1
  1654. package/src/shade/renderer/water/surface/shader_water_waves_derive.js +73 -9
  1655. package/src/shade/renderer/wind/GPUSceneWind.d.ts +127 -0
  1656. package/src/shade/renderer/wind/GPUSceneWind.d.ts.map +1 -0
  1657. package/src/shade/renderer/wind/GPUSceneWind.js +410 -0
  1658. package/src/shade/renderer/wind/WIND_FIELD.d.ts +53 -0
  1659. package/src/shade/renderer/wind/WIND_FIELD.d.ts.map +1 -0
  1660. package/src/shade/renderer/wind/WIND_FIELD.js +60 -0
  1661. package/src/shade/renderer/wind/WIND_FIELD_STRUCT.d.ts +36 -0
  1662. package/src/shade/renderer/wind/WIND_FIELD_STRUCT.d.ts.map +1 -0
  1663. package/src/shade/renderer/wind/WIND_FIELD_STRUCT.js +61 -0
  1664. package/src/shade/renderer/wind/WIND_FIELD_UNIFORM.d.ts +17 -0
  1665. package/src/shade/renderer/wind/WIND_FIELD_UNIFORM.d.ts.map +1 -0
  1666. package/src/shade/renderer/wind/WIND_FIELD_UNIFORM.js +17 -0
  1667. package/src/shade/renderer/wind/chunk_wind_field_sample.d.ts +20 -0
  1668. package/src/shade/renderer/wind/chunk_wind_field_sample.d.ts.map +1 -0
  1669. package/src/shade/renderer/wind/chunk_wind_field_sample.js +26 -0
  1670. package/src/shade/renderer/wind/chunk_wind_field_sample_cascades.d.ts +40 -0
  1671. package/src/shade/renderer/wind/chunk_wind_field_sample_cascades.d.ts.map +1 -0
  1672. package/src/shade/renderer/wind/chunk_wind_field_sample_cascades.js +92 -0
  1673. package/src/shade/renderer/wind/chunk_wind_field_sample_uniform.d.ts +12 -0
  1674. package/src/shade/renderer/wind/chunk_wind_field_sample_uniform.d.ts.map +1 -0
  1675. package/src/shade/renderer/wind/chunk_wind_field_sample_uniform.js +22 -0
  1676. package/src/shade/renderer/wind/wind_field_add_resources.d.ts +15 -0
  1677. package/src/shade/renderer/wind/wind_field_add_resources.d.ts.map +1 -0
  1678. package/src/shade/renderer/wind/wind_field_add_resources.js +22 -0
  1679. package/src/shade/wgsl/emulator/CPUBitmapData.d.ts +5 -2
  1680. package/src/shade/wgsl/emulator/CPUBitmapData.d.ts.map +1 -1
  1681. package/src/shade/wgsl/emulator/CPUBitmapData.js +5 -2
  1682. package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.d.ts +5 -1
  1683. package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.d.ts.map +1 -1
  1684. package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.js +118 -31
  1685. package/src/shade/wgsl/emulator/WGSLLanguageCore.d.ts.map +1 -1
  1686. package/src/shade/wgsl/emulator/WGSLLanguageCore.js +90 -22
  1687. package/src/engine/network/transport/Channel.d.ts +0 -85
  1688. package/src/engine/network/transport/Channel.d.ts.map +0 -1
  1689. package/src/engine/network/transport/ReliableCommandPipeline.d.ts +0 -155
  1690. package/src/engine/network/transport/ReliableCommandPipeline.d.ts.map +0 -1
  1691. package/src/engine/network/transport/fragments/FragmentAssembler.d.ts +0 -105
  1692. package/src/engine/network/transport/fragments/FragmentAssembler.d.ts.map +0 -1
  1693. package/src/engine/network/transport/fragments/FragmentRetention.d.ts +0 -103
  1694. package/src/engine/network/transport/fragments/FragmentRetention.d.ts.map +0 -1
  1695. package/src/engine/network/transport/fragments/fragment_send.d.ts +0 -61
  1696. package/src/engine/network/transport/fragments/fragment_send.d.ts.map +0 -1
  1697. package/src/engine/network/transport/fragments/packet_size.d.ts +0 -99
  1698. package/src/engine/network/transport/fragments/packet_size.d.ts.map +0 -1
  1699. package/src/engine/physics/cloth/wind/ClothAmbientWind.d.ts +0 -87
  1700. package/src/engine/physics/cloth/wind/ClothAmbientWind.d.ts.map +0 -1
  1701. package/src/engine/physics/cloth/wind/ClothAmbientWind.js +0 -185
  1702. package/src/shade/renderer/geometry/sdf/chunk_sdf_slot_index_to_texture_offset.d.ts +0 -7
  1703. package/src/shade/renderer/geometry/sdf/chunk_sdf_slot_index_to_texture_offset.d.ts.map +0 -1
  1704. package/src/shade/renderer/geometry/sdf/chunk_sdf_slot_index_to_texture_offset.js +0 -25
  1705. package/src/shade/renderer/global_illumination/clipmap/GPUClipMap3D.d.ts +0 -43
  1706. package/src/shade/renderer/global_illumination/clipmap/GPUClipMap3D.d.ts.map +0 -1
  1707. package/src/shade/renderer/global_illumination/clipmap/GPUClipMap3D.js +0 -207
  1708. package/src/shade/renderer/global_illumination/clipmap/RadianceField.d.ts +0 -21
  1709. package/src/shade/renderer/global_illumination/clipmap/RadianceField.d.ts.map +0 -1
  1710. package/src/shade/renderer/global_illumination/clipmap/RadianceField.js +0 -40
  1711. package/src/shade/renderer/global_illumination/clipmap/chunk_clip_cascade_wrap_coord.d.ts +0 -13
  1712. package/src/shade/renderer/global_illumination/clipmap/chunk_clip_cascade_wrap_coord.d.ts.map +0 -1
  1713. package/src/shade/renderer/global_illumination/clipmap/chunk_clip_cascade_wrap_coord.js +0 -47
  1714. package/src/shade/renderer/global_illumination/clipmap/shader_update_clipmap_cascade.d.ts +0 -7
  1715. package/src/shade/renderer/global_illumination/clipmap/shader_update_clipmap_cascade.d.ts.map +0 -1
  1716. package/src/shade/renderer/global_illumination/clipmap/shader_update_clipmap_cascade.js +0 -115
  1717. package/src/shade/renderer/light/cluster/LIGHT_CLUSTER_LOCAL_LIGHT_LIMIT.d.ts +0 -7
  1718. package/src/shade/renderer/light/cluster/LIGHT_CLUSTER_LOCAL_LIGHT_LIMIT.d.ts.map +0 -1
  1719. package/src/shade/renderer/light/cluster/LIGHT_CLUSTER_LOCAL_LIGHT_LIMIT.js +0 -6
  1720. package/src/shade/renderer/light/cluster/chunk_cluster_keep_smallest.d.ts +0 -21
  1721. package/src/shade/renderer/light/cluster/chunk_cluster_keep_smallest.d.ts.map +0 -1
  1722. package/src/shade/renderer/light/cluster/chunk_cluster_keep_smallest.js +0 -47
  1723. package/src/shade/renderer/postprocess/ssr/resolve/build_ssr_resolve_shader.d.ts +0 -21
  1724. package/src/shade/renderer/postprocess/ssr/resolve/build_ssr_resolve_shader.d.ts.map +0 -1
  1725. package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_Brick4.d.ts +0 -2
  1726. package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_Brick4.d.ts.map +0 -1
  1727. package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_Brick4.js +0 -24
  1728. package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_IBL.d.ts +0 -2
  1729. package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_IBL.d.ts.map +0 -1
  1730. package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_IBL.js +0 -21
  1731. package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_LPV.d.ts +0 -2
  1732. package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_LPV.d.ts.map +0 -1
  1733. package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_LPV.js +0 -34
  1734. package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment_brick4.d.ts +0 -3
  1735. package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment_brick4.d.ts.map +0 -1
  1736. package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment_ibl.d.ts +0 -7
  1737. package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment_ibl.d.ts.map +0 -1
  1738. package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment_ibl.js +0 -178
  1739. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_brick4.d.ts +0 -9
  1740. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_brick4.d.ts.map +0 -1
  1741. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_ibl.d.ts +0 -9
  1742. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_ibl.d.ts.map +0 -1
  1743. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_ibl.js +0 -110
  1744. package/src/shade/renderer/rasterize/native/oit/shader_oit_resolve_moments_ibl.d.ts +0 -9
  1745. package/src/shade/renderer/rasterize/native/oit/shader_oit_resolve_moments_ibl.d.ts.map +0 -1
  1746. package/src/shade/renderer/rasterize/native/oit/shader_oit_resolve_moments_ibl.js +0 -110
  1747. package/src/shade/renderer/shader/chunk/brdf/fresnel/chunk_F_Hauber.d.ts +0 -9
  1748. package/src/shade/renderer/shader/chunk/brdf/fresnel/chunk_F_Hauber.d.ts.map +0 -1
  1749. package/src/shade/renderer/shader/chunk/brdf/fresnel/chunk_F_Hauber.js +0 -22
  1750. package/src/shade/renderer/shader/chunk/color/sRGB/chunk_RRTAndODTFit.d.ts +0 -6
  1751. package/src/shade/renderer/shader/chunk/color/sRGB/chunk_RRTAndODTFit.d.ts.map +0 -1
  1752. package/src/shade/renderer/shader/chunk/color/sRGB/chunk_RRTAndODTFit.js +0 -16
  1753. package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_aces.d.ts +0 -7
  1754. package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_aces.d.ts.map +0 -1
  1755. package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_aces.js +0 -46
  1756. package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_agx.d.ts +0 -10
  1757. package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_agx.d.ts.map +0 -1
  1758. package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_agx.js +0 -127
  1759. package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_pbr_neutral.d.ts +0 -7
  1760. package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_pbr_neutral.d.ts.map +0 -1
  1761. package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_pbr_neutral.js +0 -39
  1762. package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_brick4.d.ts +0 -10
  1763. package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_brick4.d.ts.map +0 -1
  1764. package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_brick4.js +0 -55
  1765. package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_ibl.d.ts +0 -10
  1766. package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_ibl.d.ts.map +0 -1
  1767. package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_ibl.js +0 -47
  1768. package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_lpv.d.ts +0 -10
  1769. package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_lpv.d.ts.map +0 -1
  1770. package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_lpv.js +0 -63
@@ -5,7 +5,7 @@ import { chunk_taa_decode_color } from "../../../postprocess/taa/chunk_taa_decod
5
5
  import { chunk_taa_encode_color } from "../../../postprocess/taa/chunk_taa_encode_color.js";
6
6
  import { chunk_BRDF_GGX } from "../../../shader/chunk/brdf/chunk_BRDF_GGX.js";
7
7
  import { chunk_oren_nayar_compensated_diffuse } from "../../../shader/chunk/brdf/diffuse/EON.js";
8
- import { chunk_F_Hauber } from "../../../shader/chunk/brdf/fresnel/chunk_F_Hauber.js";
8
+ import { chunk_F_Schlick } from "../../../shader/chunk/brdf/fresnel/chunk_F_Schlick.js";
9
9
  import { chunk_rgbe9995_decode } from "../../../shader/chunk/color/rgbe9995/chunk_rgbe9995_decode.js";
10
10
  import { chunk_rgbe9995_encode } from "../../../shader/chunk/color/rgbe9995/chunk_rgbe9995_encode.js";
11
11
  import {
@@ -122,7 +122,7 @@ fn lpv_shade_light_record(
122
122
 
123
123
  let light_irradiance = light_record.emission * NoL;
124
124
 
125
- let F = F_Hauber(specularF0, specularF90, VoH);
125
+ let F = F_Schlick(specularF0, specularF90, VoH);
126
126
  let kD = (vec3(1.0) - F);
127
127
 
128
128
  let irradiance_diffuse = light_irradiance * diffuse_color * kD;
@@ -320,7 +320,7 @@ fn main(
320
320
  chunk_uv_octahedral_unit_encode,
321
321
  chunk_uv_to_texel_coordinate,
322
322
  chunk_v2_bilinear_weight,
323
- chunk_F_Hauber,
323
+ chunk_F_Schlick,
324
324
  ]
325
325
  );
326
326
 
@@ -1 +1 @@
1
- {"version":3,"file":"graph_sample_light_probes.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/global_illumination/probe/octahedral/graph_sample_light_probes.js"],"names":[],"mappings":"AA6MA;;;;;;;;;;;;;GAaG;AACH,0OA4CC"}
1
+ {"version":3,"file":"graph_sample_light_probes.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/global_illumination/probe/octahedral/graph_sample_light_probes.js"],"names":[],"mappings":"AAiNA;;;;;;;;;;;;;GAaG;AACH,0OA4CC"}
@@ -17,6 +17,7 @@ import {
17
17
  import {
18
18
  chunk_lpv_mask_weights_by_visibility
19
19
  } from "../../../shader/chunk/light/lpv/depth/chunk_lpv_mask_weights_by_visibility.js";
20
+ import { chunk_MIN_DIELECTRICS_F0 } from "../../../shader/chunk/brdf/chunk_MIN_DIELECTRICS_F0.js";
20
21
  import { chunk_compute_indirect_specular } from "../../../shader/chunk/material/chunk_compute_indirect_specular.js";
21
22
  import { chunk_metalness_to_specular_color } from "../../../shader/chunk/material/chunk_metalness_to_specular_color.js";
22
23
  import { chunk_v3_is_nan } from "../../../shader/chunk/math/chunk_is_nan.js";
@@ -155,6 +156,8 @@ fn main(
155
156
  view_direction,
156
157
  diffuse,
157
158
  specularF0,
159
+ vec3(MIN_DIELECTRICS_F0),
160
+ albedo,
158
161
  specularF90,
159
162
  roughness
160
163
  );
@@ -176,6 +179,7 @@ fn main(
176
179
  RAY_STRUCT.declaration_chunk,
177
180
  LPV_SAMPLE_COORDINATES.declaration_chunk,
178
181
  chunk_metalness_to_specular_color,
182
+ chunk_MIN_DIELECTRICS_F0,
179
183
  chunk_grid2d_to_index,
180
184
  chunk_lpv_mesh_lookup_nearest_cell,
181
185
  chunk_lpv_sample_light,
@@ -1 +1 @@
1
- {"version":3,"file":"chunk_lpv_radiance_sample_reflection.d.ts","sourceRoot":"","sources":["../../../../../../../../src/shade/renderer/global_illumination/probe/octahedral/sample/chunk_lpv_radiance_sample_reflection.js"],"names":[],"mappings":"AAQA;;;GAGG;AACH,mDAFU,SAAS,CA+ClB;0BAxDyB,0CAA0C"}
1
+ {"version":3,"file":"chunk_lpv_radiance_sample_reflection.d.ts","sourceRoot":"","sources":["../../../../../../../../src/shade/renderer/global_illumination/probe/octahedral/sample/chunk_lpv_radiance_sample_reflection.js"],"names":[],"mappings":"AASA;;;GAGG;AACH,mDAFU,SAAS,CA+ClB;0BAzDyB,0CAA0C"}
@@ -4,6 +4,7 @@ import { chunk_lpv_atlas_sample_probe_radiance } from "./chunk_lpv_atlas_sample_
4
4
  import {
5
5
  chunk_parallax_correct_spherical_probe_iterative
6
6
  } from "./chunk_parallax_correct_spherical_probe_iterative.js";
7
+ import { LPV_PROBES_RESOURCE } from "../LPV_SHADER_RESOURCE_GROUP.js";
7
8
 
8
9
 
9
10
  /**
@@ -56,3 +57,5 @@ fn lpv_radiance_sample_reflection(
56
57
  chunk_f32_array_as_vec3,
57
58
  ]
58
59
  )
60
+
61
+ chunk_lpv_radiance_sample_reflection.requireResource(LPV_PROBES_RESOURCE);
@@ -1 +1 @@
1
- {"version":3,"file":"shader_resolve_indirect_lighting.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/global_illumination/shader_resolve_indirect_lighting.js"],"names":[],"mappings":"AA8GA,2DAyBE;4BA3H0B,0BAA0B"}
1
+ {"version":3,"file":"shader_resolve_indirect_lighting.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/global_illumination/shader_resolve_indirect_lighting.js"],"names":[],"mappings":"AAkHA,2DAyBE;4BA9H0B,0BAA0B"}
@@ -2,6 +2,7 @@ import { CAMERA_UNIFORM_STRUCT } from "../camera/CAMERA_UNIFORM_STRUCT.js";
2
2
  import { DEPTH_STENCIL_FOREGROUND_ONLY } from "../depth/DEPTH_STENCIL_FOREGROUND_ONLY.js";
3
3
  import { BSDF_ROUGHNESS_MINIMUM } from "../light/environment/DEFINES.js";
4
4
  import { chunk_compute_specular_occlusion_bn } from "../shader/chunk/brdf/chunk_compute_specular_occlusion_bn.js";
5
+ import { chunk_MIN_DIELECTRICS_F0 } from "../shader/chunk/brdf/chunk_MIN_DIELECTRICS_F0.js";
5
6
  import { chunk_project_position_from_depth } from "../shader/chunk/camera/chunk_project_position_from_depth.js";
6
7
  import { chunk_mat4_extract_position } from "../shader/chunk/geometry/mat4/chunk_mat4_extract_position.js";
7
8
  import { chunk_decode_g_buffer_normal } from "../shader/chunk/geometry/normal/chunk_decode_g_buffer_normal.js";
@@ -82,6 +83,8 @@ fn main(
82
83
  view_direction,
83
84
  material_color_diffuse,
84
85
  material_specularF0,
86
+ vec3(MIN_DIELECTRICS_F0),
87
+ albedo,
85
88
  material_specularF90,
86
89
  roughness,
87
90
  );
@@ -104,6 +107,7 @@ fn main(
104
107
  chunk_decode_g_buffer_metalness,
105
108
  chunk_decode_g_buffer_roughness,
106
109
  chunk_metalness_to_specular_color,
110
+ chunk_MIN_DIELECTRICS_F0,
107
111
  chunk_compute_specular_occlusion_bn,
108
112
  ]
109
113
  );
@@ -0,0 +1,10 @@
1
+ /**
2
+ * {@link BVH_REFIT_DEFERRED_LAYOUT} as WGSL constants: the seed a bound word holds until it is
3
+ * fitted, and the deferred list's layout. One declaration shared by the climb, the repair and the
4
+ * kernels that seed, for the reason {@link BVH_NODE_LAYOUT_DEFINITION} is one.
5
+ *
6
+ * @type {CodeChunk}
7
+ */
8
+ export const BVH_REFIT_DEFERRED_DEFINITION: CodeChunk;
9
+ import { CodeChunk } from "../../shader/compiler/CodeChunk.js";
10
+ //# sourceMappingURL=BVH_REFIT_DEFERRED_DEFINITION.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BVH_REFIT_DEFERRED_DEFINITION.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/gpu_primitive/bvh/BVH_REFIT_DEFERRED_DEFINITION.js"],"names":[],"mappings":"AASA;;;;;;GAMG;AACH,4CAFU,SAAS,CAUhB;0BAxBuB,oCAAoC"}
@@ -0,0 +1,25 @@
1
+ import { CodeChunk } from "../../shader/compiler/CodeChunk.js";
2
+ import {
3
+ BVH_REFIT_DEFERRED_COUNT_WORD,
4
+ BVH_REFIT_DEFERRED_ENTRIES_WORD,
5
+ BVH_REFIT_DEFERRED_ENTRY_WORDS,
6
+ BVH_REFIT_REPAIR_WORKGROUP_SIZE,
7
+ BVH_UNFITTED
8
+ } from "./BVH_REFIT_DEFERRED_LAYOUT.js";
9
+
10
+ /**
11
+ * {@link BVH_REFIT_DEFERRED_LAYOUT} as WGSL constants: the seed a bound word holds until it is
12
+ * fitted, and the deferred list's layout. One declaration shared by the climb, the repair and the
13
+ * kernels that seed, for the reason {@link BVH_NODE_LAYOUT_DEFINITION} is one.
14
+ *
15
+ * @type {CodeChunk}
16
+ */
17
+ export const BVH_REFIT_DEFERRED_DEFINITION = CodeChunk.from(
18
+ //language=WGSL
19
+ `
20
+ const BVH_UNFITTED = ${BVH_UNFITTED}u;
21
+ const BVH_REFIT_DEFERRED_COUNT = ${BVH_REFIT_DEFERRED_COUNT_WORD}u;
22
+ const BVH_REFIT_DEFERRED_ENTRIES = ${BVH_REFIT_DEFERRED_ENTRIES_WORD}u;
23
+ const BVH_REFIT_DEFERRED_ENTRY_WORDS = ${BVH_REFIT_DEFERRED_ENTRY_WORDS}u;
24
+ const BVH_REFIT_REPAIR_WORKGROUP_SIZE = ${BVH_REFIT_REPAIR_WORKGROUP_SIZE}u;
25
+ `);
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Bytes a deferred list needs for climbs over `internal_node_count` internal nodes. A node is
3
+ * deferred at most once — only its second arrival reads its children — so that many entries is
4
+ * the most there can be. Memory, not work: the repair dispatches over the count the climb wrote.
5
+ *
6
+ * @param {number} internal_node_count
7
+ * @returns {number}
8
+ */
9
+ export function bvh_refit_deferred_byte_size(internal_node_count: number): number;
10
+ /**
11
+ * The bit pattern a node's bound words hold between being seeded and being fitted: a quiet NaN that
12
+ * no union of real bounds produces.
13
+ *
14
+ * Whatever runs a refit climb ({@link chunk_bvh_refit_climb}) seeds every bound word the climb will
15
+ * read with this, in an earlier dispatch. The climb hands boxes between invocations through relaxed
16
+ * atomics, and a store need not have reached the invocation that reads it. A read of a seeded word
17
+ * then returns either the store or the seed — never a box from before the seed, because the seeding
18
+ * dispatch ended first. So a box that has not arrived is a box the climb can see is missing.
19
+ *
20
+ * @type {number}
21
+ */
22
+ export const BVH_UNFITTED: number;
23
+ /**
24
+ * Where a node the climb deferred goes: `[command x, y, z, count, entries...]`, one buffer.
25
+ *
26
+ * The first three words are the repair's indirect dispatch command, folded as the engine's command
27
+ * builders fold one (x filled to the per-dimension limit before y grows), written by the climb as it
28
+ * defers. Word 3 counts the entries. Each entry is three words: the tree's `node_word_offset`, its
29
+ * `parents_offset`, and the node — so one repair serves trees that own their buffers and trees that
30
+ * are tenants in an arena.
31
+ *
32
+ * The header must be zero when the climb starts; the entries need not be anything.
33
+ */
34
+ export const BVH_REFIT_DEFERRED_COUNT_WORD: 3;
35
+ /**
36
+ * @see BVH_REFIT_DEFERRED_COUNT_WORD
37
+ */
38
+ export const BVH_REFIT_DEFERRED_ENTRIES_WORD: 4;
39
+ /**
40
+ * @see BVH_REFIT_DEFERRED_COUNT_WORD
41
+ */
42
+ export const BVH_REFIT_DEFERRED_ENTRY_WORDS: 3;
43
+ /**
44
+ * The header, which is all that needs clearing before a climb.
45
+ *
46
+ * @type {number}
47
+ */
48
+ export const BVH_REFIT_DEFERRED_HEADER_BYTES: number;
49
+ /**
50
+ * Threads per workgroup of the repair, and so entries per workgroup the climb counts into the command.
51
+ *
52
+ * @type {number}
53
+ */
54
+ export const BVH_REFIT_REPAIR_WORKGROUP_SIZE: number;
55
+ //# sourceMappingURL=BVH_REFIT_DEFERRED_LAYOUT.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BVH_REFIT_DEFERRED_LAYOUT.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/gpu_primitive/bvh/BVH_REFIT_DEFERRED_LAYOUT.js"],"names":[],"mappings":"AAmDA;;;;;;;GAOG;AACH,kEAHW,MAAM,GACJ,MAAM,CAKlB;AA9DD;;;;;;;;;;;GAWG;AACH,2BAFU,MAAM,CAEuB;AAEvC;;;;;;;;;;GAUG;AACH,8CAA+C;AAE/C;;GAEG;AACH,gDAAiD;AAEjD;;GAEG;AACH,+CAAgD;AAEhD;;;;GAIG;AACH,8CAFU,MAAM,CAE+F;AAE/G;;;;GAIG;AACH,8CAFU,MAAM,CAEkC"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * The bit pattern a node's bound words hold between being seeded and being fitted: a quiet NaN that
3
+ * no union of real bounds produces.
4
+ *
5
+ * Whatever runs a refit climb ({@link chunk_bvh_refit_climb}) seeds every bound word the climb will
6
+ * read with this, in an earlier dispatch. The climb hands boxes between invocations through relaxed
7
+ * atomics, and a store need not have reached the invocation that reads it. A read of a seeded word
8
+ * then returns either the store or the seed — never a box from before the seed, because the seeding
9
+ * dispatch ended first. So a box that has not arrived is a box the climb can see is missing.
10
+ *
11
+ * @type {number}
12
+ */
13
+ export const BVH_UNFITTED = 0x7FC0FFEE;
14
+
15
+ /**
16
+ * Where a node the climb deferred goes: `[command x, y, z, count, entries...]`, one buffer.
17
+ *
18
+ * The first three words are the repair's indirect dispatch command, folded as the engine's command
19
+ * builders fold one (x filled to the per-dimension limit before y grows), written by the climb as it
20
+ * defers. Word 3 counts the entries. Each entry is three words: the tree's `node_word_offset`, its
21
+ * `parents_offset`, and the node — so one repair serves trees that own their buffers and trees that
22
+ * are tenants in an arena.
23
+ *
24
+ * The header must be zero when the climb starts; the entries need not be anything.
25
+ */
26
+ export const BVH_REFIT_DEFERRED_COUNT_WORD = 3;
27
+
28
+ /**
29
+ * @see BVH_REFIT_DEFERRED_COUNT_WORD
30
+ */
31
+ export const BVH_REFIT_DEFERRED_ENTRIES_WORD = 4;
32
+
33
+ /**
34
+ * @see BVH_REFIT_DEFERRED_COUNT_WORD
35
+ */
36
+ export const BVH_REFIT_DEFERRED_ENTRY_WORDS = 3;
37
+
38
+ /**
39
+ * The header, which is all that needs clearing before a climb.
40
+ *
41
+ * @type {number}
42
+ */
43
+ export const BVH_REFIT_DEFERRED_HEADER_BYTES = BVH_REFIT_DEFERRED_ENTRIES_WORD * Uint32Array.BYTES_PER_ELEMENT;
44
+
45
+ /**
46
+ * Threads per workgroup of the repair, and so entries per workgroup the climb counts into the command.
47
+ *
48
+ * @type {number}
49
+ */
50
+ export const BVH_REFIT_REPAIR_WORKGROUP_SIZE = 64;
51
+
52
+ /**
53
+ * Bytes a deferred list needs for climbs over `internal_node_count` internal nodes. A node is
54
+ * deferred at most once — only its second arrival reads its children — so that many entries is
55
+ * the most there can be. Memory, not work: the repair dispatches over the count the climb wrote.
56
+ *
57
+ * @param {number} internal_node_count
58
+ * @returns {number}
59
+ */
60
+ export function bvh_refit_deferred_byte_size(internal_node_count) {
61
+ return (BVH_REFIT_DEFERRED_ENTRIES_WORD + internal_node_count * BVH_REFIT_DEFERRED_ENTRY_WORDS)
62
+ * Uint32Array.BYTES_PER_ELEMENT;
63
+ }
@@ -554,6 +554,9 @@ bounds from the CPU tree, whose copy for a GPU-authority row can be arbitrarily
554
554
  reason this build reads the `meshes` table. The one thing `N == 1` actually needed was a counters
555
555
  buffer WebGPU will accept, so it is sized `max(1, N-1)`.
556
556
 
557
+ **[addition, 2026-10-16]** Up to one sort tile of leaves (1,024), these passes are one
558
+ dispatch of one workgroup, with the same output word for word. See §4.7.
559
+
557
560
  ### 4.2.1 The sort — `gpu_primitive/sort/`, rebuilt around CSDLDF
558
561
 
559
562
  Commit `b6049214c` cleared the ground; this project re-founds the directory with one blessed
@@ -766,6 +769,246 @@ toward it.
766
769
  - Known, documented, temporary quality dip vs the treelet-optimised CPU tree (raw LBVH SAH cost is
767
770
  worse; phase 2 exists to close exactly this). The flag stays available until phase 2's gate.
768
771
 
772
+ ### 4.7 The single-workgroup path for small builds — landed 2026-10-16
773
+
774
+ **Why.** Over a few hundred leaves every one of the 19 dispatches is nearly empty, so a rebuild
775
+ costs 19 times a dispatch's fixed overhead. On the RTX 4090 that is ~73 µs at any count up to a
776
+ tile (below). A consumer that rebuilds per spawn or despawn pays it every time. The GPU fluid
777
+ (`GPU_FLUID_CASCADES_PROPOSAL_2026_10_16.md` §10/§14) rebuilds a tree over effector and obstacle
778
+ boxes every frame. The TLAS gets the path automatically for small scenes. The engine has no
779
+ "typical" scene, but most scenes have few elements. So this is a fast path keyed on the runtime
780
+ count, and the multi-pass build stays first-class above it.
781
+
782
+ **What.** `graph_bvh_build_lbvh` records one dispatch of one workgroup,
783
+ `shader_bvh_build_single_workgroup`, when `element_count <= SORT_TILE_SIZE` (256 × 4 = 1,024,
784
+ `sort/defs.js`). Above that, the multi-pass recording is unchanged. The shader runs the four phases
785
+ inside one workgroup, fenced by barriers:
786
+
787
+ 1. **Morton.** Each of the 256 threads takes four leaves, striped. Each leaf's code goes into
788
+ workgroup `keys` and its index into `values`.
789
+ 2. **Sort.** A bitonic network in workgroup memory, `chunk_sort_bitonic_workgroup`, ordered by
790
+ (code, leaf index). Seeding each value with its leaf index makes that a stable sort by code,
791
+ which is exactly the radix sort's order, so the permutation matches it word for word. The
792
+ network spans the next power of two of `n`, padded with the largest pair. It is
793
+ `log2(P)(log2(P)+1)/2` steps of one barrier each: 10 at 16 leaves, 55 at 1,024. The scatter's
794
+ own in-tile sort (stable binary splits, `chunk_sort_rank`) would fit in the memory too, but a
795
+ 30-bit key is 30 rounds of a ~15-barrier workgroup scan at any count, about 450 barriers.
796
+ 3. **Emission**, as `shader_bvh_emit_hierarchy` does it. The sorted keys and leaf order are
797
+ published to the same transients the multi-pass build returns. Node words are stored
798
+ atomically, because the refit reads them atomically.
799
+ 4. **Refit** with the multi-pass climb, `chunk_bvh_refit_climb`, unchanged. Counters and node
800
+ words stay storage atomics, as there. The arrival counters are a transient the shader zeroes
801
+ itself, so the descriptor needs no clear. They are not workgroup atomics: a first arrival's
802
+ bounds go out as storage stores, and nothing would order those against a shared-memory
803
+ counter.
804
+
805
+ Workgroup memory is `keys` + `values` + `parents` (2N−1) = 16,380 bytes, inside the default
806
+ 16 KiB with four to spare. The parents are there rather than in storage because the climb reads
807
+ them once per step. Every per-thread loop is bounded by the tile constants. Nothing waits on
808
+ another workgroup, because there is none. No subgroups, and default limits only.
809
+
810
+ **Reuse map.** Nothing is copied:
811
+
812
+ | piece | from | how |
813
+ |---|---|---|
814
+ | `chunk_bvh_morton_code` | the body of `shader_bvh_morton` | extracted; `shader_bvh_morton` now calls it |
815
+ | `chunk_bvh_internal_children` | range, split and child selects inline in `shader_bvh_emit_hierarchy` | extracted; emission now calls it |
816
+ | `bvh_delta` / `bvh_determine_range` / `bvh_find_split` | as they were | read `keys` by name instead of through `ptr<storage, array<u32>>` |
817
+ | `chunk_bvh_refit_climb` | as it was | reused unchanged; `parents` resolves to workgroup memory here |
818
+ | `chunk_sort_bitonic_comparator`, `chunk_sort_bitonic_workgroup` | new, in `sort/` | pure index maths split from the barrier loop, as `chunk_sort_rank` is from the scatter |
819
+
820
+ The by-name change follows the precedent the climb chunk set with `parents`, `counters` and
821
+ `nodes`. A WGSL pointer type carries its address space and access mode. So one function taking
822
+ `ptr<storage, array<u32>>` cannot be handed a workgroup array, nor a storage array its own shader
823
+ writes. Emission's sorted codes are a read-only storage binding in one kernel and workgroup
824
+ memory in the other.
825
+
826
+ The brick4 bake's `chunk_sort_f32_array_32` is a bitonic network over a private 32-element array.
827
+ It is per-thread and not reusable here.
828
+
829
+ **Tests.**
830
+
831
+ - **Tier 1:** the new shader assembles clean (`bvh_lbvh.spec.js`).
832
+ - **Tier 2:** `chunk_bvh_morton_code.spec.js` checks the chunk against `v3_morton_encode_bounded`.
833
+ `chunk_sort_bitonic_comparator.spec.js` checks the comparator maths. Every step is a perfect
834
+ matching a stride apart inside one block, the last block ascends, and the network run through
835
+ the chunk gives the stable order on duplicate-heavy keys. A direction mutant, a tiebreak mutant
836
+ and a size mutant each turn it red.
837
+ - **Tier 3:** `graph_bvh_build_lbvh.spec.js` checks the encoded dispatches. n = 1, 2, 1,023 and
838
+ 1,024 give exactly one one-workgroup dispatch, red before the change, when 1 gave 3 and the rest
839
+ 19. 1,025 gives 19. The TLAS spec now expects the single dispatch for small scenes and keeps the
840
+ multi-pass expectations above a tile.
841
+
842
+ **Device, RTX 4090 only (D3D12, headless Chrome 155), 2026-10-16.** All one-offs from the
843
+ session scratchpad; nothing device-backed went into the repo.
844
+
845
+ - **Equivalence: 300/300 cases bit-identical** to the multi-pass build. The single-workgroup
846
+ path's node buffer, guard words around the tree included, its sorted keys and its leaf order all
847
+ match the multi-pass build's output from the same input. Counts were 1–5, 7–9, 15–17, 31–33,
848
+ 63–65, 127–129, 255–257, 511–513, 777, 1,000, 1,023 and 1,024. Shapes were scattered (two
849
+ seeds), coincident (one Morton code for all), clustered (long duplicate runs), degenerate
850
+ (zero-volume), mixed (half at the origin) and lattice (centroids on exact quantisation halves).
851
+ Each ran in the TLAS layout, and scattered and coincident also in a headerless arena layout
852
+ (node 0 at word 97, `BVH_NO_ROOT_WORD`). `check_bvh_structure` found nothing on any
853
+ single-workgroup tree. Negative controls show the comparison is live: one leaf's payload +1, or
854
+ one bound moved by 1e-3, is reported in every one of six cases.
855
+ - **Harnesses:** `verify_radix_sort`, `verify_gpu_bvh_build` and `verify_gpu_tlas_build` through
856
+ `playground/bvh_repro` give 118 PASS lines per run, with every builder case at n ≤ 1,024 now on
857
+ the new path. The topology matches the CPU oracle node for node.
858
+ - **Cost per build.** Medians over 48 blocks of 16 back-to-back builds, ABBA/BAAB across 24
859
+ submissions. A constant ~85 µs ballast dispatch ran each round as the clock check, and it read
860
+ 84–85 µs throughout:
861
+
862
+ | n | single workgroup | multi-pass (19 dispatches) | multi-pass ÷ single |
863
+ |---|---|---|---|
864
+ | 16 | 7.3 µs | 73.5 µs | 10.0× |
865
+ | 128 | 13.2 µs | 77.5 µs | 5.9× |
866
+ | 1,024 | 53.2 µs | 83.8 µs | 1.6× |
867
+
868
+ CPU-side recording and encoding was ~6 µs a build against ~60–100 µs. That figure is indicative
869
+ only, read from a 100 µs timer over blocks of 16.
870
+ - **Where the single workgroup's time goes.** Medians per build from deleted-workload twin
871
+ pipelines swapped at `setPipeline`; nothing in the engine was edited:
872
+
873
+ | n | dispatch + Morton | + sort | + emission | + refit = full |
874
+ |---|---|---|---|---|
875
+ | 128 | 1.7 µs | 4.8 µs | 8.2 µs | 13.2 µs |
876
+ | 1,024 | 2.4 µs | 12.0 µs | 26.4 µs | 53.0 µs |
877
+
878
+ At 1,024 the refit climb is half and emission a quarter. Emission's node stores are 2.4 µs of
879
+ that; the rest is the range and split search. The kernel is latency-bound by construction:
880
+ 256 threads are eight warps on one SM, each thread walks four leaves in turn, and the default
881
+ limits fix both numbers. It still wins at the tile boundary, so the threshold stands as derived.
882
+
883
+ **Observed during this work: R1 once, in the multi-pass path.** In one of 30 harness runs on this
884
+ tree, `verify_gpu_tlas_build` failed `scattered 20000 after movement`: internal node 8195 did not
885
+ contain child 8192. The parent's x-max was exactly 3.0 below the child's, and the movement grows
886
+ every box by 3. So the parent was fitted from that child's bounds left by the previous build. That
887
+ is a stale read in the cross-workgroup climb, the hazard R1 names. 20,000 leaves takes the
888
+ multi-pass path, whose recording and kernels this change leaves as they were. None of these
889
+ reproduced it:
890
+
891
+ - the other 29 runs on this tree;
892
+ - 28 runs on its base commit `b2fe0c44f`, alternated with them;
893
+ - 1,000 forced rebuilds per tree at 20,000 leaves over reused node buffers, alternating two
894
+ far-apart leaf sets, 200 of them one per submission and 800 eight per submission.
895
+
896
+ It was reproduced and attributed the same day, and the climb now handles it: §4.8.
897
+
898
+ ### 4.8 R1 measured, and the refit's repair — landed 2026-10-16
899
+
900
+ **What happens.** The climb's second arrival at a node sometimes reads its sibling's box before the
901
+ sibling's stores have reached it. It is not rare enough to ignore. A refit-only probe, which builds a
902
+ tree once and then re-runs only the refit, 64 a submission, alternating two leaf sets of one
903
+ topology, measured it. Each refit's internal bounds were compared word for word with the CPU's exact
904
+ tree:
905
+
906
+ | configuration, RTX 4090, 20,000 leaves | refits | stale |
907
+ |---|---|---|
908
+ | refit only, nothing else on the GPU | 32,000 | 14 |
909
+ | refit only, a second device hammering the GPU | 16,000 | 9 |
910
+ | harness-shaped full builds, nothing else | 1,000 builds | 0 |
911
+ | harness-shaped full builds, second device | 1,000 builds | 2 |
912
+
913
+ That is about one refit in 2,000. It accounts for the harness's single failure, and for the 1,000
914
+ rebuilds that showed nothing. The node pair the harness reported, 8195 and 8192, recurs in the
915
+ refit-only probe at the same seed.
916
+
917
+ **What it is, and what it is not.** The pooled arrival counters were read back after every build and
918
+ every refit, and every internal node read exactly 2, so the protocol ran as designed and no counter
919
+ was stale. The stale node is always the union of its fresh child and its other child's previous
920
+ value, with 1 to 4 of the 6 words stale, and the stale child is always internal: leaves come from
921
+ emission, a dispatch earlier. A copy of the climb that records the thread of each arrival found the
922
+ same in 17 of 17 events: the stale child's writer was the parent's first arrival, which then exits,
923
+ and the reader, the second arrival, was always in a different workgroup, always an adjacent one. It
924
+ is cross-workgroup visibility of the bound stores after the counter, exactly as AR3 named it.
925
+
926
+ **Why no ordering fix.** WGSL has no device-scope fence. Its atomics are relaxed, and
927
+ `storageBarrier` is workgroup-scoped and needs uniform control flow. Inside one dispatch the only
928
+ formally coherent channel between workgroups is a single word's read-modify-write, and a box is six
929
+ words. So the fix is the CSDLDF one: make the read that went wrong detectable, and finish the job
930
+ where a dispatch boundary guarantees visibility.
931
+
932
+ **The fix.**
933
+
934
+ 1. Emission seeds every internal node's six bound words with `BVH_UNFITTED`, a quiet NaN no union
935
+ produces (`BVH_REFIT_DEFERRED_LAYOUT.js`). Emission's dispatch ends before the refit's begins, so
936
+ a refit read returns the store or the seed, never the previous build's box.
937
+ 2. The climb's second arrival reads both children through a check (`chunk_bvh_refit_climb`). A seed
938
+ word counts as the empty box's word (±inf, made at runtime from the seed, because WGSL will not
939
+ fold an infinity), the node is fitted from what can be seen and the climb goes on, and the node is
940
+ appended to a deferred list with its tree's node and parents offsets. The list's first three words
941
+ are the repair's dispatch command, folded as the engine's builders fold one, and raised with
942
+ `atomicMax` as entries are taken, so no prepare pass is needed.
943
+ 3. `shader_bvh_refit_repair`, the build's 20th dispatch, is indirect over that command, so it is
944
+ empty unless something was deferred. For each listed node it takes the union of the children,
945
+ now visible, and grows the node and every ancestor with `atomic_min/max_f32_storage`
946
+ (`chunk_bvh_refit_repair`).
947
+
948
+ Why that is exact. Everything the climb fitted holds no more than the true box, because an
949
+ unarrived word reads as empty. Every repair contribution holds no more than the true box either.
950
+ For any leaf under a node, the lowest node on the path between them that fails to hold it must
951
+ have read a seed for its path child, so it was listed, and its repair grows the whole path with a
952
+ box that holds the leaf. Growth is a per-word min or max, which commute, so repairs that meet need no
953
+ order.
954
+
955
+ The single-workgroup build takes the same climb with the same seed. It repairs in-workgroup after one
956
+ more barrier, which gives one workgroup what a dispatch boundary gives the multi-pass build. The
957
+ per-frame skinned BLAS refit (`GPUBLASRefitBatch`) takes it too, with a seeding dispatch of its own
958
+ (`shader_blas_refit_batch_seed`, one lane per node slot) and the same repair over every tree in the
959
+ batch. The batch writes its leaf boxes in the same dispatch too, so the seed covers leaves as
960
+ well. On the device every stale read classified so far was of an internal child, 6 of 6
961
+ (`BLAS_REFIT_BATCH_PLAN.md` §3.7).
962
+
963
+ The refit-only update of a built tree (`graph_bvh_refit_lbvh`, the GPU fluid's forcing tree above a
964
+ sort tile) has no emission ahead of its climb, so its prepare pass (`shader_bvh_refit_prepare`), the
965
+ dispatch before the climb, seeds each internal node as it rebuilds that node's children's parents. It
966
+ binds a deferred list and records the same indirect repair: three dispatches. On the RTX 4090 at
967
+ 20,000 leaves, refits alternating with a pre-R1 twin (no seed, no repair) in every submission: 0
968
+ stale in 96,000 against the twin's 92 in 96,000, with the repair firing in 129. The seed moved the
969
+ prepare from 2.99 to 3.62 µs (mean, 1 µs timer), the empty repair costs 2.64 µs, and the sum of
970
+ passes went from 19.5 to 22.7 µs.
971
+
972
+ R1's per-level-dispatch fallback was not built. It needs a dispatch per tree level. The 100,000-leaf
973
+ tree is 22 levels deep, and the recorder would have to record the worst case, about 64, because the
974
+ depth is only known on the device. At the measured 3.1 µs for an empty indirect dispatch that is
975
+ 70–200 µs, against the ~8 µs below.
976
+
977
+ **Measured, RTX 4090, on the device:**
978
+
979
+ - **Stale rate, refit only, the real kernels before and after:** 23 stale refits in 48,000
980
+ before, 0 in 48,000 after. The fallback fired 62 times in those 48,000, and every refit came out
981
+ exact.
982
+ - **The skinned batch, before and after:** eight UV spheres, about 45,000 leaves, two poses
983
+ alternated over the meshlet data. Before, 11 stale refits in 48,000, at least 9 of them real
984
+ holes, a child escaping its parent; one genuine stale node per bad tree. In the 32,000 that were
985
+ classified, all 6 stale children were internal and none a leaf. After, 0 in 48,000. At that
986
+ size the batch's own refit pass is unchanged (p10 about 38 µs either way); the seeding pass adds
987
+ 10.2 µs at p10 (16–19 µs median) and the empty repair 3.1 µs.
988
+ - **Equivalence:** the fix's trees equal the old recorder's, word for word, at 1, 2, 16, 1,000,
989
+ 1,024, 1,025, 4,096, 20,000 and 100,000 leaves.
990
+ - **Harness:** `bvh_repro` "Run all", three times: 118 PASS, 0 FAIL.
991
+ - **Cost:** per-pass timestamps, medians of 320 builds per arm, builds alternating between the old
992
+ recorder and the new in one page, with other sessions holding the GPU at about 50%:
993
+
994
+ | | before | after |
995
+ |---|---|---|
996
+ | 100,000 leaves, sum of passes | 140.3 µs | 148.5 µs (+8.2, +5.8%) |
997
+ | … emission | 25.6 µs | 27.7 µs |
998
+ | … refit | 41.0 µs | 43.0 µs |
999
+ | … repair, empty | — | 3.1 µs |
1000
+ | 1,024 leaves, one workgroup | 50.2 µs | 54.3 µs (+4.1) |
1001
+ | 128 leaves, one workgroup | 12.3 µs | 13.3 µs (+1.0) |
1002
+
1003
+ The gaps between passes are not inside these spans; the extra pass adds one.
1004
+
1005
+ **Specs.** `bvh_refit_late_stores.spec.js` runs emission, the refit and the repair on the emulator
1006
+ with node cells whose stores reach other invocations only when the dispatch ends — a visibility the
1007
+ memory model allows, and the one the device showed. It holds the tree exact for one late store, the
1008
+ harness's case, and for none landing before the end. `shader_blas_refit_batch.spec.js` does the same
1009
+ for a batch frame. On the old kernels the harness's case leaves the parent exactly 3.0 short, and the
1010
+ batch leaves children outside their parents.
1011
+
769
1012
  ---
770
1013
 
771
1014
  ## 5. Phases 2–4
@@ -957,7 +1200,10 @@ through `array<atomic<u32>>` accesses only, never plain loads/stores gated by an
957
1200
  strictest formulation available in WGSL; (d) the browser verify harness asserts structural
958
1201
  validity per platform, and a formally-clean fallback (iterative per-level dispatches —
959
1202
  inter-dispatch ordering is guaranteed by WebGPU) is sketched and cheap to add if a platform ever
960
- misbehaves. Not hand-waved: named, bounded, fallback designed.
1203
+ misbehaves. Not hand-waved: named, bounded, fallback designed. **Update, 2026-10-16:** the RTX 4090
1204
+ does misbehave, about one refit in 2,000, and (c) alone does not prevent it. The landed answer is
1205
+ not the per-level fallback: emission seeds the bounds, the climb defers what it cannot see, and a
1206
+ repair dispatch grows it (§4.8).
961
1207
 
962
1208
  **AR4 — "The 32-slot traversal stack is shared TLAS+BLAS and your LBVH can exceed the depth the
963
1209
  current balanced trees keep. Silent geometry drop-out is the failure mode."** The sharpest finding
@@ -1032,7 +1278,7 @@ toward AR2's alternative rather than against it.
1032
1278
 
1033
1279
  | # | risk | mitigation |
1034
1280
  |---|---|---|
1035
- | R1 | WGSL relaxed-atomic cross-workgroup visibility (refit/treelet climbs) is beyond formal guarantees | All-atomic access discipline; no unbounded waiting anywhere (arrival-counter losers exit); per-platform structural verification in the harness; per-level-dispatch fallback designed (inter-dispatch ordering is spec-guaranteed); precedent: csdldf ships on the same visibility assumption. See AR3. |
1281
+ | R1 | WGSL relaxed-atomic cross-workgroup visibility (refit/treelet climbs) is beyond formal guarantees | **Realised and closed for the refit, 2026-10-16** (§4.8): about one refit in 2,000 at 20,000 leaves on the RTX 4090 read a sibling's box before it arrived, always across workgroups. Emission seeds the bounds with `BVH_UNFITTED`, the climb defers a node it cannot see whole, and an indirect repair grows it after the dispatch boundary. This is exact, with no waits, and costs +8 µs at 100,000 leaves. The same climb serves the single-workgroup build and the skinned BLAS batch, which seed and repair too. Treelet climbs, when they come, inherit the discipline: a read across an in-dispatch handoff must be able to see that it read too early. |
1036
1282
  | R2 | The sort is new engineering on phase 1's critical path (the fallback-less port was removed; nothing shippable exists today) | v1 deliberately assembled from proven parts — `graph_prefix_scan_csdldf` reused as-is for the spine, ranking/scatter machinery adapted from the deleted port in history, interface kept; ships and verifies before the builder consumes it; single-pass v2 deferred behind a measurement. See AR7, §4.2.1. |
1037
1283
  | R3 | ~~Phase-1 quality dip (raw LBVH vs treelet-optimised dynamic tree)~~ | **Retired.** Measured (§4.6): a dip at ~100 instances that does not reach the frame, and an improvement on every axis at 20k. See AR1. |
1038
1284
  | R4 | Tree depth vs the shared 32-slot traversal stack; occlusion path truncates silently | Depth histogram in verify harness + phase gates; treelets shorten chains; `BVH_TRAVERSAL_STACK_SIZE` bump is a measured last resort. Pre-existing cliff, now instrumented — and **measured**: 22/32 at 100k scattered instances, 20/32 at 20k (§4.6). Not a hypothetical any more. See AR4. |
@@ -11,6 +11,13 @@
11
11
  * which is a tree the traversal cannot walk. `countLeadingZeros` is the exact counterpart of the
12
12
  * oracle's `Math.clz32`, zero included (both answer 32).
13
13
  *
14
+ * The sorted codes are the module-scope array `keys`, read by name — the way
15
+ * {@link chunk_bvh_refit_climb} assumes `parents`, `counters` and `nodes`. That is a storage binding
16
+ * in {@link shader_bvh_emit_hierarchy} and workgroup memory in
17
+ * {@link shader_bvh_build_single_workgroup}, and no one parameter could take both: a WGSL pointer
18
+ * type carries its address space and access mode, so a function taking `ptr<storage, array<u32>>`
19
+ * cannot be handed a workgroup array, nor a storage array the same shader also writes.
20
+ *
14
21
  * @type {CodeChunk}
15
22
  */
16
23
  export const chunk_bvh_delta: CodeChunk;
@@ -1 +1 @@
1
- {"version":3,"file":"chunk_bvh_delta.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/gpu_primitive/bvh/chunk_bvh_delta.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AACH,8BAFU,SAAS,CAsBhB;0BArCuB,oCAAoC"}
1
+ {"version":3,"file":"chunk_bvh_delta.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/gpu_primitive/bvh/chunk_bvh_delta.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,8BAFU,SAAS,CAsBhB;0BA5CuB,oCAAoC"}