@woosh/meep-engine 3.52.0 → 3.54.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 (515) hide show
  1. package/package.json +1 -1
  2. package/src/core/math/noise/worley_noise_2d.d.ts +14 -0
  3. package/src/core/math/noise/worley_noise_2d.d.ts.map +1 -0
  4. package/src/core/math/noise/worley_noise_2d.js +74 -0
  5. package/src/engine/ecs/animation/Animation.d.ts +4 -25
  6. package/src/engine/ecs/animation/Animation.d.ts.map +1 -1
  7. package/src/engine/ecs/animation/Animation.js +9 -41
  8. package/src/engine/ecs/ik/IKGoalSystem.d.ts +4 -5
  9. package/src/engine/ecs/ik/IKGoalSystem.d.ts.map +1 -1
  10. package/src/engine/ecs/ik/IKGoalSystem.js +4 -6
  11. package/src/engine/graphics/ecs/mesh/assetTypeByPath.js +1 -1
  12. package/src/engine/graphics/texture/atlas/CachingTextureAtlas.d.ts +6 -1
  13. package/src/engine/graphics/texture/atlas/CachingTextureAtlas.d.ts.map +1 -1
  14. package/src/engine/graphics/texture/atlas/CachingTextureAtlas.js +363 -325
  15. package/src/engine/graphics/texture/atlas/ManagedTextureAtlas.d.ts +93 -14
  16. package/src/engine/graphics/texture/atlas/ManagedTextureAtlas.d.ts.map +1 -1
  17. package/src/engine/graphics/texture/atlas/ManagedTextureAtlas.js +322 -183
  18. package/src/engine/graphics/texture/atlas/ReferencedTextureAtlas.d.ts +9 -0
  19. package/src/engine/graphics/texture/atlas/ReferencedTextureAtlas.d.ts.map +1 -1
  20. package/src/engine/graphics/texture/atlas/ReferencedTextureAtlas.js +110 -83
  21. package/src/engine/graphics/texture/atlas/SpriteAtlas.d.ts +42 -0
  22. package/src/engine/graphics/texture/atlas/SpriteAtlas.d.ts.map +1 -0
  23. package/src/engine/{graphics3/decal/DecalAtlas.js → graphics/texture/atlas/SpriteAtlas.js} +202 -194
  24. package/src/engine/graphics/texture/atlas/SpriteAtlasFill.d.ts +12 -0
  25. package/src/engine/graphics/texture/atlas/SpriteAtlasFill.d.ts.map +1 -0
  26. package/src/engine/graphics/texture/atlas/SpriteAtlasFill.js +30 -0
  27. package/src/engine/graphics/texture/atlas/TextureAtlas.d.ts +7 -0
  28. package/src/engine/graphics/texture/atlas/TextureAtlas.d.ts.map +1 -1
  29. package/src/engine/graphics/texture/atlas/TextureAtlas.js +11 -1
  30. package/src/engine/graphics/texture/atlas/sprite_atlas_border.d.ts +52 -0
  31. package/src/engine/graphics/texture/atlas/sprite_atlas_border.d.ts.map +1 -0
  32. package/src/engine/{graphics3/decal/decal_atlas_border.js → graphics/texture/atlas/sprite_atlas_border.js} +69 -69
  33. package/src/engine/graphics3/AnimationGraphSystem.d.ts +9 -22
  34. package/src/engine/graphics3/AnimationGraphSystem.d.ts.map +1 -1
  35. package/src/engine/graphics3/AnimationGraphSystem.js +58 -203
  36. package/src/engine/graphics3/AnimationSystem.d.ts +7 -18
  37. package/src/engine/graphics3/AnimationSystem.d.ts.map +1 -1
  38. package/src/engine/graphics3/AnimationSystem.js +62 -243
  39. package/src/engine/graphics3/DecalSystem.d.ts.map +1 -1
  40. package/src/engine/graphics3/DecalSystem.js +447 -450
  41. package/src/engine/graphics3/FoliageWindSystem.d.ts +67 -0
  42. package/src/engine/graphics3/FoliageWindSystem.d.ts.map +1 -0
  43. package/src/engine/graphics3/FoliageWindSystem.js +257 -0
  44. package/src/engine/graphics3/GPUFluidSystem.d.ts +7 -0
  45. package/src/engine/graphics3/GPUFluidSystem.d.ts.map +1 -1
  46. package/src/engine/graphics3/GPUFluidSystem.js +39 -1
  47. package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts +9 -23
  48. package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts.map +1 -1
  49. package/src/engine/graphics3/GPUParticleEmitterSystem.js +904 -949
  50. package/src/engine/graphics3/animation/AnimationClips.d.ts +107 -13
  51. package/src/engine/graphics3/animation/AnimationClips.d.ts.map +1 -1
  52. package/src/engine/graphics3/animation/AnimationClips.js +207 -10
  53. package/src/engine/graphics3/animation/AnimationClipsSink.d.ts +89 -0
  54. package/src/engine/graphics3/animation/AnimationClipsSink.d.ts.map +1 -0
  55. package/src/engine/graphics3/animation/AnimationClipsSink.js +205 -0
  56. package/src/engine/graphics3/animation/FoliageWindRigs.d.ts +43 -0
  57. package/src/engine/graphics3/animation/FoliageWindRigs.d.ts.map +1 -0
  58. package/src/engine/graphics3/animation/FoliageWindRigs.js +69 -0
  59. package/src/engine/graphics3/animation/write_clip_playback.d.ts +17 -11
  60. package/src/engine/graphics3/animation/write_clip_playback.d.ts.map +1 -1
  61. package/src/engine/graphics3/animation/write_clip_playback.js +36 -27
  62. package/src/engine/graphics3/decal/GPUDecalRenderer.d.ts.map +1 -1
  63. package/src/engine/graphics3/decal/GPUDecalRenderer.js +8 -6
  64. package/src/engine/graphics3/decal/shader_decal_composite.d.ts.map +1 -1
  65. package/src/engine/graphics3/decal/shader_decal_composite.js +11 -5
  66. package/src/engine/graphics3/pose/collect_entity_playbacks.d.ts +7 -7
  67. package/src/engine/graphics3/pose/collect_entity_playbacks.d.ts.map +1 -1
  68. package/src/engine/graphics3/pose/collect_entity_playbacks.js +14 -15
  69. package/src/engine/graphics3/prefab/Prefab.d.ts +6 -0
  70. package/src/engine/graphics3/prefab/Prefab.d.ts.map +1 -1
  71. package/src/engine/graphics3/prefab/Prefab.js +169 -162
  72. package/src/engine/graphics3/prefab/prefab_compile.d.ts.map +1 -1
  73. package/src/engine/graphics3/prefab/prefab_compile.js +369 -334
  74. package/src/engine/graphics3/prefab/prefab_instantiate.d.ts.map +1 -1
  75. package/src/engine/graphics3/prefab/prefab_instantiate.js +43 -2
  76. package/src/engine/graphics3/terrain/chunk_terrain_material_surface.js +2 -2
  77. package/src/engine/physics/ecs/ContactProbeSystem.d.ts +2 -3
  78. package/src/engine/physics/ecs/ContactProbeSystem.d.ts.map +1 -1
  79. package/src/engine/physics/ecs/ContactProbeSystem.js +2 -4
  80. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
  81. package/src/engine/sound/simulation/PROBE_PLACEMENT.md +4 -4
  82. package/src/engine/sound/simulation/README.md +1 -1
  83. package/src/engine/sound/simulation/probe/bakeProbeField.d.ts +22 -8
  84. package/src/engine/sound/simulation/probe/bakeProbeField.d.ts.map +1 -1
  85. package/src/engine/sound/simulation/probe/bakeProbeField.js +60 -15
  86. package/src/engine/sound/simulation/probe/bakeProbeReflectors.d.ts.map +1 -1
  87. package/src/engine/sound/simulation/probe/bakeProbeReflectors.js +19 -23
  88. package/src/engine/sound/simulation/probe/probe_sdf_grid.d.ts +63 -17
  89. package/src/engine/sound/simulation/probe/probe_sdf_grid.d.ts.map +1 -1
  90. package/src/engine/sound/simulation/probe/probe_sdf_grid.js +67 -17
  91. package/src/generation/foliage/FOLIAGE_DESIGN.md +319 -0
  92. package/src/generation/foliage/FOLIAGE_PLAN.md +198 -0
  93. package/src/generation/foliage/animation/build_tree_wind_rig.d.ts +20 -0
  94. package/src/generation/foliage/animation/build_tree_wind_rig.d.ts.map +1 -0
  95. package/src/generation/foliage/animation/build_tree_wind_rig.js +108 -0
  96. package/src/generation/foliage/asset/TreeAsset.d.ts +86 -0
  97. package/src/generation/foliage/asset/TreeAsset.d.ts.map +1 -0
  98. package/src/generation/foliage/asset/TreeAsset.js +111 -0
  99. package/src/generation/foliage/asset/TreeLODAsset.d.ts +115 -0
  100. package/src/generation/foliage/asset/TreeLODAsset.d.ts.map +1 -0
  101. package/src/generation/foliage/asset/TreeLODAsset.js +346 -0
  102. package/src/generation/foliage/asset/generate_tree.d.ts +15 -0
  103. package/src/generation/foliage/asset/generate_tree.d.ts.map +1 -0
  104. package/src/generation/foliage/asset/generate_tree.js +93 -0
  105. package/src/generation/foliage/asset/place_tree.d.ts +82 -0
  106. package/src/generation/foliage/asset/place_tree.d.ts.map +1 -0
  107. package/src/generation/foliage/asset/place_tree.js +194 -0
  108. package/src/generation/foliage/config/BarkMaterialConfig.d.ts +121 -0
  109. package/src/generation/foliage/config/BarkMaterialConfig.d.ts.map +1 -0
  110. package/src/generation/foliage/config/BarkMaterialConfig.js +250 -0
  111. package/src/generation/foliage/config/BranchLevelConfig.d.ts +288 -0
  112. package/src/generation/foliage/config/BranchLevelConfig.d.ts.map +1 -0
  113. package/src/generation/foliage/config/BranchLevelConfig.js +536 -0
  114. package/src/generation/foliage/config/CrownConfig.d.ts +100 -0
  115. package/src/generation/foliage/config/CrownConfig.d.ts.map +1 -0
  116. package/src/generation/foliage/config/CrownConfig.js +186 -0
  117. package/src/generation/foliage/config/CrownEnvelopeType.d.ts +16 -0
  118. package/src/generation/foliage/config/CrownEnvelopeType.d.ts.map +1 -0
  119. package/src/generation/foliage/config/CrownEnvelopeType.js +17 -0
  120. package/src/generation/foliage/config/FoliageBarkType.d.ts +11 -0
  121. package/src/generation/foliage/config/FoliageBarkType.d.ts.map +1 -0
  122. package/src/generation/foliage/config/FoliageBarkType.js +16 -0
  123. package/src/generation/foliage/config/FoliageCardType.d.ts +12 -0
  124. package/src/generation/foliage/config/FoliageCardType.d.ts.map +1 -0
  125. package/src/generation/foliage/config/FoliageCardType.js +18 -0
  126. package/src/generation/foliage/config/FoliageConfig.d.ts +151 -0
  127. package/src/generation/foliage/config/FoliageConfig.d.ts.map +1 -0
  128. package/src/generation/foliage/config/FoliageConfig.js +283 -0
  129. package/src/generation/foliage/config/FoliageMaterialConfig.d.ts +143 -0
  130. package/src/generation/foliage/config/FoliageMaterialConfig.d.ts.map +1 -0
  131. package/src/generation/foliage/config/FoliageMaterialConfig.js +279 -0
  132. package/src/generation/foliage/config/PhyllotaxisMode.d.ts +13 -0
  133. package/src/generation/foliage/config/PhyllotaxisMode.d.ts.map +1 -0
  134. package/src/generation/foliage/config/PhyllotaxisMode.js +20 -0
  135. package/src/generation/foliage/config/TreeLODConfig.d.ts +87 -0
  136. package/src/generation/foliage/config/TreeLODConfig.d.ts.map +1 -0
  137. package/src/generation/foliage/config/TreeLODConfig.js +211 -0
  138. package/src/generation/foliage/config/TreePreset.d.ts +16 -0
  139. package/src/generation/foliage/config/TreePreset.d.ts.map +1 -0
  140. package/src/generation/foliage/config/TreePreset.js +17 -0
  141. package/src/generation/foliage/config/TreeSpeciesConfig.d.ts +109 -0
  142. package/src/generation/foliage/config/TreeSpeciesConfig.d.ts.map +1 -0
  143. package/src/generation/foliage/config/TreeSpeciesConfig.js +400 -0
  144. package/src/generation/foliage/config/TreeWindConfig.d.ts +84 -0
  145. package/src/generation/foliage/config/TreeWindConfig.d.ts.map +1 -0
  146. package/src/generation/foliage/config/TreeWindConfig.js +157 -0
  147. package/src/generation/foliage/index.d.ts +39 -0
  148. package/src/generation/foliage/index.d.ts.map +1 -0
  149. package/src/generation/foliage/index.js +44 -0
  150. package/src/generation/foliage/material/make_bark_material.d.ts +37 -0
  151. package/src/generation/foliage/material/make_bark_material.d.ts.map +1 -0
  152. package/src/generation/foliage/material/make_bark_material.js +730 -0
  153. package/src/generation/foliage/material/make_foliage_material.d.ts +40 -0
  154. package/src/generation/foliage/material/make_foliage_material.d.ts.map +1 -0
  155. package/src/generation/foliage/material/make_foliage_material.js +605 -0
  156. package/src/generation/foliage/mesh/branch_collar_project.d.ts +42 -0
  157. package/src/generation/foliage/mesh/branch_collar_project.d.ts.map +1 -0
  158. package/src/generation/foliage/mesh/branch_collar_project.js +205 -0
  159. package/src/generation/foliage/mesh/branch_ring_triangulate.d.ts +35 -0
  160. package/src/generation/foliage/mesh/branch_ring_triangulate.d.ts.map +1 -0
  161. package/src/generation/foliage/mesh/branch_ring_triangulate.js +72 -0
  162. package/src/generation/foliage/mesh/foliage_collect_attachments.d.ts +95 -0
  163. package/src/generation/foliage/mesh/foliage_collect_attachments.d.ts.map +1 -0
  164. package/src/generation/foliage/mesh/foliage_collect_attachments.js +569 -0
  165. package/src/generation/foliage/mesh/tree_mesh_apply_canopy_ao.d.ts +19 -0
  166. package/src/generation/foliage/mesh/tree_mesh_apply_canopy_ao.d.ts.map +1 -0
  167. package/src/generation/foliage/mesh/tree_mesh_apply_canopy_ao.js +150 -0
  168. package/src/generation/foliage/mesh/tree_mesh_build_bark.d.ts +55 -0
  169. package/src/generation/foliage/mesh/tree_mesh_build_bark.d.ts.map +1 -0
  170. package/src/generation/foliage/mesh/tree_mesh_build_bark.js +1049 -0
  171. package/src/generation/foliage/mesh/tree_mesh_build_foliage.d.ts +22 -0
  172. package/src/generation/foliage/mesh/tree_mesh_build_foliage.d.ts.map +1 -0
  173. package/src/generation/foliage/mesh/tree_mesh_build_foliage.js +454 -0
  174. package/src/generation/foliage/presets/make_tree_species_preset.d.ts +13 -0
  175. package/src/generation/foliage/presets/make_tree_species_preset.d.ts.map +1 -0
  176. package/src/generation/foliage/presets/make_tree_species_preset.js +870 -0
  177. package/src/generation/foliage/skeleton/TreeSkeleton.d.ts +443 -0
  178. package/src/generation/foliage/skeleton/TreeSkeleton.d.ts.map +1 -0
  179. package/src/generation/foliage/skeleton/TreeSkeleton.js +1100 -0
  180. package/src/generation/foliage/skeleton/crown_envelope_evaluate.d.ts +27 -0
  181. package/src/generation/foliage/skeleton/crown_envelope_evaluate.d.ts.map +1 -0
  182. package/src/generation/foliage/skeleton/crown_envelope_evaluate.js +121 -0
  183. package/src/generation/foliage/skeleton/spine_frame_double_reflection.d.ts +32 -0
  184. package/src/generation/foliage/skeleton/spine_frame_double_reflection.d.ts.map +1 -0
  185. package/src/generation/foliage/skeleton/spine_frame_double_reflection.js +87 -0
  186. package/src/generation/foliage/skeleton/tree_skeleton_assign_skin_joints.d.ts +33 -0
  187. package/src/generation/foliage/skeleton/tree_skeleton_assign_skin_joints.d.ts.map +1 -0
  188. package/src/generation/foliage/skeleton/tree_skeleton_assign_skin_joints.js +205 -0
  189. package/src/generation/foliage/skeleton/tree_skeleton_compute_pipe_radii.d.ts +17 -0
  190. package/src/generation/foliage/skeleton/tree_skeleton_compute_pipe_radii.d.ts.map +1 -0
  191. package/src/generation/foliage/skeleton/tree_skeleton_compute_pipe_radii.js +206 -0
  192. package/src/generation/foliage/skeleton/tree_skeleton_grow.d.ts +18 -0
  193. package/src/generation/foliage/skeleton/tree_skeleton_grow.d.ts.map +1 -0
  194. package/src/generation/foliage/skeleton/tree_skeleton_grow.js +1871 -0
  195. package/src/shade/playground/additive_blending/index.html +197 -0
  196. package/src/shade/playground/additive_blending/main.d.ts +2 -0
  197. package/src/shade/playground/additive_blending/main.d.ts.map +1 -0
  198. package/src/shade/playground/additive_blending/main.js +529 -0
  199. package/src/shade/playground/foliage_wind/README.md +18 -0
  200. package/src/shade/playground/foliage_wind/foliage_world.d.ts +133 -0
  201. package/src/shade/playground/foliage_wind/foliage_world.d.ts.map +1 -0
  202. package/src/shade/playground/foliage_wind/foliage_world.js +602 -0
  203. package/src/shade/playground/foliage_wind/index.html +260 -0
  204. package/src/shade/playground/foliage_wind/main.d.ts +2 -0
  205. package/src/shade/playground/foliage_wind/main.d.ts.map +1 -0
  206. package/src/shade/playground/foliage_wind/main.js +275 -0
  207. package/src/shade/renderer/Renderer.d.ts.map +1 -1
  208. package/src/shade/renderer/Renderer.js +45 -16
  209. package/src/shade/renderer/animation/ADDITIVE_BLENDING_PLAN.md +145 -0
  210. package/src/shade/renderer/animation/ANIMATION_DATABASE_SPEC.d.ts +9 -1
  211. package/src/shade/renderer/animation/ANIMATION_DATABASE_SPEC.d.ts.map +1 -1
  212. package/src/shade/renderer/animation/ANIMATION_DATABASE_SPEC.js +53 -1
  213. package/src/shade/renderer/animation/ANIMATION_FOLIAGE_JOINT_STRUCT.d.ts +8 -0
  214. package/src/shade/renderer/animation/ANIMATION_FOLIAGE_JOINT_STRUCT.d.ts.map +1 -0
  215. package/src/shade/renderer/animation/ANIMATION_FOLIAGE_JOINT_STRUCT.js +71 -0
  216. package/src/shade/renderer/animation/ANIMATION_FOLIAGE_RIG_STRUCT.d.ts +11 -0
  217. package/src/shade/renderer/animation/ANIMATION_FOLIAGE_RIG_STRUCT.d.ts.map +1 -0
  218. package/src/shade/renderer/animation/ANIMATION_FOLIAGE_RIG_STRUCT.js +32 -0
  219. package/src/shade/renderer/animation/GPUAnimationManager.d.ts +30 -3
  220. package/src/shade/renderer/animation/GPUAnimationManager.d.ts.map +1 -1
  221. package/src/shade/renderer/animation/GPUAnimationManager.js +532 -79
  222. package/src/shade/renderer/animation/POSE_ACCUMULATOR_LAYOUT.d.ts +19 -12
  223. package/src/shade/renderer/animation/POSE_ACCUMULATOR_LAYOUT.d.ts.map +1 -1
  224. package/src/shade/renderer/animation/POSE_ACCUMULATOR_LAYOUT.js +20 -13
  225. package/src/shade/renderer/animation/ShadeAnimationClip.d.ts +35 -8
  226. package/src/shade/renderer/animation/ShadeAnimationClip.d.ts.map +1 -1
  227. package/src/shade/renderer/animation/ShadeAnimationClip.js +433 -2
  228. package/src/shade/renderer/animation/chunk_pose_accumulator.d.ts.map +1 -1
  229. package/src/shade/renderer/animation/chunk_pose_accumulator.js +40 -32
  230. package/src/shade/renderer/animation/foliage/FoliageWindJoint.d.ts +97 -0
  231. package/src/shade/renderer/animation/foliage/FoliageWindJoint.d.ts.map +1 -0
  232. package/src/shade/renderer/animation/foliage/FoliageWindJoint.js +161 -0
  233. package/src/shade/renderer/animation/foliage/FoliageWindRig.d.ts +65 -0
  234. package/src/shade/renderer/animation/foliage/FoliageWindRig.d.ts.map +1 -0
  235. package/src/shade/renderer/animation/foliage/FoliageWindRig.js +89 -0
  236. package/src/shade/renderer/animation/foliage/chunk_foliage_wind_step.d.ts +19 -0
  237. package/src/shade/renderer/animation/foliage/chunk_foliage_wind_step.d.ts.map +1 -0
  238. package/src/shade/renderer/animation/foliage/chunk_foliage_wind_step.js +143 -0
  239. package/src/shade/renderer/animation/foliage/shader_foliage_wind_apply.d.ts +14 -0
  240. package/src/shade/renderer/animation/foliage/shader_foliage_wind_apply.d.ts.map +1 -0
  241. package/src/shade/renderer/animation/foliage/shader_foliage_wind_apply.js +116 -0
  242. package/src/shade/renderer/animation/pose/pose_evaluate_local.d.ts.map +1 -1
  243. package/src/shade/renderer/animation/pose/pose_evaluate_local.js +39 -29
  244. package/src/shade/renderer/animation/shader_animation_pose_resolve.js +37 -37
  245. package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.js +2 -2
  246. package/src/shade/renderer/extension/RenderExtension.d.ts +7 -0
  247. package/src/shade/renderer/extension/RenderExtension.d.ts.map +1 -1
  248. package/src/shade/renderer/extension/RenderExtension.js +9 -0
  249. package/src/shade/renderer/extension/RenderExtensionRegistry.d.ts +6 -0
  250. package/src/shade/renderer/extension/RenderExtensionRegistry.d.ts.map +1 -1
  251. package/src/shade/renderer/extension/RenderExtensionRegistry.js +15 -0
  252. package/src/shade/renderer/fluid/GPUFluidCascade.d.ts +10 -3
  253. package/src/shade/renderer/fluid/GPUFluidCascade.d.ts.map +1 -1
  254. package/src/shade/renderer/fluid/GPUFluidCascade.js +15 -0
  255. package/src/shade/renderer/fluid/GPUFluidCascadeStack.d.ts +8 -1
  256. package/src/shade/renderer/fluid/GPUFluidCascadeStack.d.ts.map +1 -1
  257. package/src/shade/renderer/fluid/GPUFluidCascadeStack.js +11 -0
  258. package/src/shade/renderer/fluid/coupling/chunk_fluid_cascade_parent.d.ts.map +1 -1
  259. package/src/shade/renderer/fluid/coupling/chunk_fluid_cascade_parent.js +51 -48
  260. package/src/shade/renderer/fluid/forcing/GPUFluidForcing.d.ts +6 -6
  261. package/src/shade/renderer/fluid/mac/FluidMacPasses.d.ts +6 -0
  262. package/src/shade/renderer/fluid/mac/FluidMacPasses.d.ts.map +1 -1
  263. package/src/shade/renderer/fluid/mac/FluidMacPasses.js +16 -0
  264. package/src/shade/renderer/fluid/mac/chunk_fluid_mac_seams.d.ts.map +1 -1
  265. package/src/shade/renderer/fluid/mac/chunk_fluid_mac_seams.js +15 -3
  266. package/src/shade/renderer/fluid/mac/chunk_v3_mac_lattice_corners.d.ts.map +1 -1
  267. package/src/shade/renderer/fluid/mac/chunk_v3_mac_lattice_corners.js +102 -96
  268. package/src/shade/renderer/fluid/mac/shader_fluid_mac_advect_correct.js +12 -12
  269. package/src/shade/renderer/fluid/mac/shader_fluid_mac_advect_predict.js +12 -12
  270. package/src/shade/renderer/fluid/pressure/GPUFluidPressureSolve.d.ts +8 -1
  271. package/src/shade/renderer/fluid/pressure/GPUFluidPressureSolve.d.ts.map +1 -1
  272. package/src/shade/renderer/fluid/pressure/GPUFluidPressureSolve.js +16 -0
  273. package/src/shade/renderer/fluid/publish/FluidWindPublish.d.ts +7 -0
  274. package/src/shade/renderer/fluid/publish/FluidWindPublish.d.ts.map +1 -1
  275. package/src/shade/renderer/fluid/publish/FluidWindPublish.js +10 -0
  276. package/src/shade/renderer/fluid/query/GPUFluidQueries.d.ts +1 -1
  277. package/src/shade/renderer/geometry/bvh/GPUBLASRefitBatch.js +2 -2
  278. package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.js +1 -1
  279. package/src/shade/renderer/hiz/HierarchicalZBuffer.d.ts +3 -3
  280. package/src/shade/renderer/hiz/HierarchicalZBuffer.d.ts.map +1 -1
  281. package/src/shade/renderer/hiz/HierarchicalZBuffer.js +350 -294
  282. package/src/shade/renderer/hiz/generate_downsampler_code.d.ts +0 -2
  283. package/src/shade/renderer/hiz/generate_downsampler_code.d.ts.map +1 -1
  284. package/src/shade/renderer/hiz/generate_downsampler_code.js +99 -100
  285. package/src/shade/renderer/hiz/hzb_pick_alignment.d.ts +15 -0
  286. package/src/shade/renderer/hiz/hzb_pick_alignment.d.ts.map +1 -0
  287. package/src/shade/renderer/hiz/hzb_pick_alignment.js +148 -0
  288. package/src/shade/renderer/hiz/hzb_plan_reduction_steps.d.ts +28 -0
  289. package/src/shade/renderer/hiz/hzb_plan_reduction_steps.d.ts.map +1 -0
  290. package/src/shade/renderer/hiz/hzb_plan_reduction_steps.js +58 -0
  291. package/src/shade/renderer/hiz/shader_hzb_reduce_any.d.ts +5 -5
  292. package/src/shade/renderer/hiz/shader_hzb_reduce_any.d.ts.map +1 -1
  293. package/src/shade/renderer/hiz/shader_hzb_reduce_any.js +57 -67
  294. package/src/shade/renderer/hiz/shader_hzb_reduce_mip0_clip.d.ts +3 -3
  295. package/src/shade/renderer/hiz/shader_hzb_reduce_mip0_clip.d.ts.map +1 -1
  296. package/src/shade/renderer/hiz/shader_hzb_reduce_mip0_clip.js +111 -112
  297. package/src/shade/renderer/hiz/shader_hzb_spd.d.ts +5 -0
  298. package/src/shade/renderer/hiz/shader_hzb_spd.d.ts.map +1 -0
  299. package/src/shade/renderer/hiz/shader_hzb_spd.js +160 -0
  300. package/src/shade/renderer/light/GPULightCollection.d.ts +8 -0
  301. package/src/shade/renderer/light/GPULightCollection.d.ts.map +1 -1
  302. package/src/shade/renderer/light/GPULightCollection.js +67 -0
  303. package/src/shade/renderer/light/environment/FAR_FIELD_IRRADIANCE_SH_RESOURCE.d.ts +7 -0
  304. package/src/shade/renderer/light/environment/FAR_FIELD_IRRADIANCE_SH_RESOURCE.d.ts.map +1 -0
  305. package/src/shade/renderer/light/environment/FAR_FIELD_IRRADIANCE_SH_RESOURCE.js +13 -0
  306. package/src/shade/renderer/light/environment/shader_project_far_field_irradiance_sh.d.ts +10 -0
  307. package/src/shade/renderer/light/environment/shader_project_far_field_irradiance_sh.d.ts.map +1 -0
  308. package/src/shade/renderer/light/environment/shader_project_far_field_irradiance_sh.js +72 -0
  309. package/src/shade/renderer/light/world_cluster/WORLD_LIGHT_CLUSTER.d.ts +39 -0
  310. package/src/shade/renderer/light/world_cluster/WORLD_LIGHT_CLUSTER.d.ts.map +1 -0
  311. package/src/shade/renderer/light/world_cluster/WORLD_LIGHT_CLUSTER.js +90 -0
  312. package/src/shade/renderer/light/world_cluster/chunk_world_light_cluster_lookup.d.ts +12 -0
  313. package/src/shade/renderer/light/world_cluster/chunk_world_light_cluster_lookup.d.ts.map +1 -0
  314. package/src/shade/renderer/light/world_cluster/chunk_world_light_cluster_lookup.js +56 -0
  315. package/src/shade/renderer/light/world_cluster/graph_build_world_light_clusters.d.ts +31 -0
  316. package/src/shade/renderer/light/world_cluster/graph_build_world_light_clusters.d.ts.map +1 -0
  317. package/src/shade/renderer/light/world_cluster/graph_build_world_light_clusters.js +196 -0
  318. package/src/shade/renderer/light/world_cluster/shader_world_cluster_assign_lights.d.ts +10 -0
  319. package/src/shade/renderer/light/world_cluster/shader_world_cluster_assign_lights.d.ts.map +1 -0
  320. package/src/shade/renderer/light/world_cluster/shader_world_cluster_assign_lights.js +163 -0
  321. package/src/shade/renderer/light/world_cluster/shader_world_cluster_cull_lights.d.ts +4 -0
  322. package/src/shade/renderer/light/world_cluster/shader_world_cluster_cull_lights.d.ts.map +1 -0
  323. package/src/shade/renderer/light/world_cluster/shader_world_cluster_cull_lights.js +137 -0
  324. package/src/shade/renderer/loader/SceneBundle.d.ts +7 -0
  325. package/src/shade/renderer/loader/SceneBundle.d.ts.map +1 -1
  326. package/src/shade/renderer/loader/SceneBundle.js +119 -111
  327. package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
  328. package/src/shade/renderer/material/standard/fragment_gbuffer.d.ts +4 -0
  329. package/src/shade/renderer/material/standard/fragment_gbuffer.d.ts.map +1 -1
  330. package/src/shade/renderer/material/standard/fragment_gbuffer.js +6 -5
  331. package/src/shade/renderer/object_property/chunk_write_object_property_node3d.d.ts +8 -7
  332. package/src/shade/renderer/object_property/chunk_write_object_property_node3d.d.ts.map +1 -1
  333. package/src/shade/renderer/object_property/chunk_write_object_property_node3d.js +9 -8
  334. package/src/shade/renderer/particles/GPUParticleSystem.d.ts.map +1 -1
  335. package/src/shade/renderer/particles/GPUParticleSystem.js +4 -1
  336. package/src/shade/renderer/particles/graph_particles_avboit.d.ts +4 -3
  337. package/src/shade/renderer/particles/graph_particles_avboit.d.ts.map +1 -1
  338. package/src/shade/renderer/particles/graph_particles_avboit.js +28 -11
  339. package/src/shade/renderer/particles/shaders/chunk_particle_lighting.d.ts +9 -13
  340. package/src/shade/renderer/particles/shaders/chunk_particle_lighting.d.ts.map +1 -1
  341. package/src/shade/renderer/particles/shaders/chunk_particle_lighting.js +25 -20
  342. package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.d.ts.map +1 -1
  343. package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.js +22 -34
  344. package/src/shade/renderer/postprocess/nss/NSS.d.ts +1 -1
  345. package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader.d.ts.map +1 -1
  346. package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader.js +9 -7
  347. package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment.d.ts.map +1 -1
  348. package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment.js +15 -7
  349. package/src/shade/renderer/rasterize/native/avboit/avboit_draw_fragment_body.d.ts.map +1 -1
  350. package/src/shade/renderer/rasterize/native/avboit/avboit_draw_fragment_body.js +6 -4
  351. package/src/shade/renderer/rasterize/native/oit/oit_resolve_fragment_body.js +3 -3
  352. package/src/shade/renderer/rasterize/native/oit/shader_oit_generate_moments.d.ts.map +1 -1
  353. package/src/shade/renderer/rasterize/native/oit/shader_oit_generate_moments.js +8 -5
  354. package/src/shade/renderer/rasterize/native/viz/viz_rasterization_alpha_tested_pass_descriptor.d.ts.map +1 -1
  355. package/src/shade/renderer/rasterize/native/viz/viz_rasterization_alpha_tested_pass_descriptor.js +4 -3
  356. package/src/shade/renderer/shader/chunk/depth/chunk_query_depth_from_screen_space_bb.d.ts.map +1 -1
  357. package/src/shade/renderer/shader/chunk/depth/chunk_query_depth_from_screen_space_bb.js +62 -62
  358. package/src/shade/renderer/shader/chunk/random/lowbias/chunk_hash_lowbias32_vec2u.d.ts +6 -0
  359. package/src/shade/renderer/shader/chunk/random/lowbias/chunk_hash_lowbias32_vec2u.d.ts.map +1 -0
  360. package/src/shade/renderer/shader/chunk/random/lowbias/chunk_hash_lowbias32_vec2u.js +19 -0
  361. package/src/shade/renderer/shader/chunk/screen_space/chunk_ffx_sssr_get_mip_resolution.d.ts.map +1 -1
  362. package/src/shade/renderer/shader/chunk/screen_space/chunk_ffx_sssr_get_mip_resolution.js +16 -10
  363. package/src/shade/renderer/shader/chunk/screen_space/chunk_ffx_sssr_hierarchical_raymarch.d.ts.map +1 -1
  364. package/src/shade/renderer/shader/chunk/screen_space/chunk_ffx_sssr_hierarchical_raymarch.js +118 -117
  365. package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.js +1 -1
  366. package/src/shade/renderer/texture/SAMPLER_ANISOTROPIC_CLAMP.d.ts +9 -0
  367. package/src/shade/renderer/texture/SAMPLER_ANISOTROPIC_CLAMP.d.ts.map +1 -0
  368. package/src/shade/renderer/texture/SAMPLER_ANISOTROPIC_CLAMP.js +17 -0
  369. package/src/shade/renderer/texture/SAMPLER_LINEAR_UPSCALE.d.ts +8 -0
  370. package/src/shade/renderer/texture/SAMPLER_LINEAR_UPSCALE.d.ts.map +1 -1
  371. package/src/shade/renderer/texture/SAMPLER_LINEAR_UPSCALE.js +28 -20
  372. package/src/shade/renderer/texture/SAMPLER_TRILINEAR_CLAMP.d.ts +8 -0
  373. package/src/shade/renderer/texture/SAMPLER_TRILINEAR_CLAMP.d.ts.map +1 -0
  374. package/src/shade/renderer/texture/SAMPLER_TRILINEAR_CLAMP.js +15 -0
  375. package/src/shade/renderer/texture/atlas/GPUTileAtlas3D.d.ts +41 -7
  376. package/src/shade/renderer/texture/atlas/GPUTileAtlas3D.d.ts.map +1 -1
  377. package/src/shade/renderer/texture/atlas/GPUTileAtlas3D.js +162 -58
  378. package/src/shade/renderer/view/chunk_view_mip_bias.d.ts +21 -0
  379. package/src/shade/renderer/view/chunk_view_mip_bias.d.ts.map +1 -0
  380. package/src/shade/renderer/view/chunk_view_mip_bias.js +44 -0
  381. package/src/shade/renderer/volumetrics/GPUSceneVolumetrics.js +1 -1
  382. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts +10 -12
  383. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts.map +1 -1
  384. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.js +583 -606
  385. package/src/shade/renderer/volumetrics/chunk_volumetrics_froxel_sample.d.ts +24 -0
  386. package/src/shade/renderer/volumetrics/chunk_volumetrics_froxel_sample.d.ts.map +1 -0
  387. package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_gi_sample.d.ts.map +1 -1
  388. package/src/shade/renderer/volumetrics/graph_build_volumetrics.d.ts +1 -1
  389. package/src/shade/renderer/volumetrics/graph_build_volumetrics.js +640 -640
  390. package/src/shade/renderer/volumetrics/irradiance_clipmap/GPUIrradianceClipmap.d.ts +113 -0
  391. package/src/shade/renderer/volumetrics/irradiance_clipmap/GPUIrradianceClipmap.d.ts.map +1 -0
  392. package/src/shade/renderer/volumetrics/irradiance_clipmap/GPUIrradianceClipmap.js +484 -0
  393. package/src/shade/renderer/volumetrics/irradiance_clipmap/IRRADIANCE_CLIPMAP.d.ts +50 -0
  394. package/src/shade/renderer/volumetrics/irradiance_clipmap/IRRADIANCE_CLIPMAP.d.ts.map +1 -0
  395. package/src/shade/renderer/volumetrics/irradiance_clipmap/IRRADIANCE_CLIPMAP.js +60 -0
  396. package/src/shade/renderer/volumetrics/irradiance_clipmap/IRRADIANCE_CLIPMAP_STRUCT.d.ts +25 -0
  397. package/src/shade/renderer/volumetrics/irradiance_clipmap/IRRADIANCE_CLIPMAP_STRUCT.d.ts.map +1 -0
  398. package/src/shade/renderer/volumetrics/irradiance_clipmap/IRRADIANCE_CLIPMAP_STRUCT.js +47 -0
  399. package/src/shade/renderer/volumetrics/irradiance_clipmap/IrradianceCascadePlacement.d.ts +74 -0
  400. package/src/shade/renderer/volumetrics/irradiance_clipmap/IrradianceCascadePlacement.d.ts.map +1 -0
  401. package/src/shade/renderer/volumetrics/irradiance_clipmap/IrradianceCascadePlacement.js +173 -0
  402. package/src/shade/renderer/volumetrics/irradiance_clipmap/chunk_irradiance_clipmap_gi_sample.d.ts +26 -0
  403. package/src/shade/renderer/volumetrics/irradiance_clipmap/chunk_irradiance_clipmap_gi_sample.d.ts.map +1 -0
  404. package/src/shade/renderer/volumetrics/irradiance_clipmap/chunk_irradiance_clipmap_gi_sample.js +83 -0
  405. package/src/shade/renderer/volumetrics/irradiance_clipmap/chunk_irradiance_clipmap_local_light.d.ts +31 -0
  406. package/src/shade/renderer/volumetrics/irradiance_clipmap/chunk_irradiance_clipmap_local_light.d.ts.map +1 -0
  407. package/src/shade/renderer/volumetrics/irradiance_clipmap/chunk_irradiance_clipmap_local_light.js +113 -0
  408. package/src/shade/renderer/volumetrics/irradiance_clipmap/chunk_irradiance_clipmap_sample.d.ts +121 -0
  409. package/src/shade/renderer/volumetrics/irradiance_clipmap/chunk_irradiance_clipmap_sample.d.ts.map +1 -0
  410. package/src/shade/renderer/volumetrics/irradiance_clipmap/chunk_irradiance_clipmap_sample.js +356 -0
  411. package/src/shade/renderer/volumetrics/irradiance_clipmap/shader_irradiance_clipmap_build.d.ts +16 -0
  412. package/src/shade/renderer/volumetrics/irradiance_clipmap/shader_irradiance_clipmap_build.d.ts.map +1 -0
  413. package/src/shade/renderer/volumetrics/irradiance_clipmap/shader_irradiance_clipmap_build.js +191 -0
  414. package/src/shade/renderer/volumetrics/shader_volumetrics_classify_froxels.d.ts +16 -0
  415. package/src/shade/renderer/volumetrics/shader_volumetrics_classify_froxels.d.ts.map +1 -0
  416. package/src/shade/renderer/volumetrics/shader_volumetrics_lighting_regimes.d.ts +23 -0
  417. package/src/shade/renderer/volumetrics/shader_volumetrics_lighting_regimes.d.ts.map +1 -0
  418. package/src/shade/renderer/wind/GPUSceneWind.d.ts +1 -1
  419. package/src/shade/renderer/wind/GPUSceneWind.js +1 -1
  420. package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.js +1 -1
  421. package/src/shade/wgsl/emulator/WGSLLanguageCore.d.ts.map +1 -1
  422. package/src/shade/wgsl/emulator/WGSLLanguageCore.js +105 -26
  423. package/src/engine/graphics/composit/CompositingStages.d.ts +0 -6
  424. package/src/engine/graphics/composit/CompositingStages.d.ts.map +0 -1
  425. package/src/engine/graphics/composit/CompositingStages.js +0 -8
  426. package/src/engine/graphics/geometry/buffered/computeBufferAttributeHash.d.ts +0 -7
  427. package/src/engine/graphics/geometry/buffered/computeBufferAttributeHash.d.ts.map +0 -1
  428. package/src/engine/graphics/geometry/buffered/computeBufferAttributeHash.js +0 -24
  429. package/src/engine/graphics/geometry/buffered/computeGeometryBoundingSphereMiniball.d.ts +0 -8
  430. package/src/engine/graphics/geometry/buffered/computeGeometryBoundingSphereMiniball.d.ts.map +0 -1
  431. package/src/engine/graphics/geometry/buffered/computeGeometryBoundingSphereMiniball.js +0 -17
  432. package/src/engine/graphics/geometry/buffered/computeGeometryEquality.d.ts +0 -8
  433. package/src/engine/graphics/geometry/buffered/computeGeometryEquality.d.ts.map +0 -1
  434. package/src/engine/graphics/geometry/buffered/computeGeometryEquality.js +0 -60
  435. package/src/engine/graphics/geometry/buffered/computeGeometryHash.d.ts +0 -7
  436. package/src/engine/graphics/geometry/buffered/computeGeometryHash.d.ts.map +0 -1
  437. package/src/engine/graphics/geometry/buffered/computeGeometryHash.js +0 -26
  438. package/src/engine/graphics/geometry/buffered/compute_buffer_geometry_byte_size.d.ts +0 -7
  439. package/src/engine/graphics/geometry/buffered/compute_buffer_geometry_byte_size.d.ts.map +0 -1
  440. package/src/engine/graphics/geometry/buffered/compute_buffer_geometry_byte_size.js +0 -23
  441. package/src/engine/graphics/geometry/instancing/geometry_copy.d.ts +0 -7
  442. package/src/engine/graphics/geometry/instancing/geometry_copy.d.ts.map +0 -1
  443. package/src/engine/graphics/geometry/instancing/geometry_copy.js +0 -15
  444. package/src/engine/graphics/geometry/instancing/rewriteMaterial.d.ts +0 -2
  445. package/src/engine/graphics/geometry/instancing/rewriteMaterial.d.ts.map +0 -1
  446. package/src/engine/graphics/geometry/instancing/rewriteMaterial.js +0 -57
  447. package/src/engine/graphics/geometry/ribbon/Quad.d.ts +0 -96
  448. package/src/engine/graphics/geometry/ribbon/Quad.d.ts.map +0 -1
  449. package/src/engine/graphics/geometry/ribbon/Quad.js +0 -213
  450. package/src/engine/graphics/geometry/ribbon/copyAttributeV3.d.ts +0 -9
  451. package/src/engine/graphics/geometry/ribbon/copyAttributeV3.d.ts.map +0 -1
  452. package/src/engine/graphics/geometry/ribbon/copyAttributeV3.js +0 -12
  453. package/src/engine/graphics/geometry/ribbon/copyAttributeValue.d.ts +0 -10
  454. package/src/engine/graphics/geometry/ribbon/copyAttributeValue.d.ts.map +0 -1
  455. package/src/engine/graphics/geometry/ribbon/copyAttributeValue.js +0 -17
  456. package/src/engine/graphics/geometry/ribbon/equalAttributeV3.d.ts +0 -10
  457. package/src/engine/graphics/geometry/ribbon/equalAttributeV3.d.ts.map +0 -1
  458. package/src/engine/graphics/geometry/ribbon/equalAttributeV3.js +0 -13
  459. package/src/engine/graphics/geometry/ribbon/equalAttributeValue.d.ts +0 -11
  460. package/src/engine/graphics/geometry/ribbon/equalAttributeValue.d.ts.map +0 -1
  461. package/src/engine/graphics/geometry/ribbon/equalAttributeValue.js +0 -24
  462. package/src/engine/graphics/geometry/ribbon/rotateRibbon.d.ts +0 -6
  463. package/src/engine/graphics/geometry/ribbon/rotateRibbon.d.ts.map +0 -1
  464. package/src/engine/graphics/geometry/ribbon/rotateRibbon.js +0 -37
  465. package/src/engine/graphics/geometry/ribbon/updateTipPosition.d.ts +0 -9
  466. package/src/engine/graphics/geometry/ribbon/updateTipPosition.d.ts.map +0 -1
  467. package/src/engine/graphics/geometry/ribbon/updateTipPosition.js +0 -52
  468. package/src/engine/graphics/geometry/skining/computeSkinnedMeshVertices.d.ts +0 -8
  469. package/src/engine/graphics/geometry/skining/computeSkinnedMeshVertices.d.ts.map +0 -1
  470. package/src/engine/graphics/geometry/skining/computeSkinnedMeshVertices.js +0 -54
  471. package/src/engine/graphics/render/RenderPassType.d.ts +0 -6
  472. package/src/engine/graphics/render/RenderPassType.d.ts.map +0 -1
  473. package/src/engine/graphics/render/RenderPassType.js +0 -8
  474. package/src/engine/graphics/render/layers/RenderLayer.d.ts +0 -78
  475. package/src/engine/graphics/render/layers/RenderLayer.d.ts.map +0 -1
  476. package/src/engine/graphics/render/layers/RenderLayer.js +0 -95
  477. package/src/engine/graphics/render/layers/RenderLayerManager.d.ts +0 -72
  478. package/src/engine/graphics/render/layers/RenderLayerManager.d.ts.map +0 -1
  479. package/src/engine/graphics/render/layers/RenderLayerManager.js +0 -160
  480. package/src/engine/graphics/render/layers/RenderLayerManagerState.d.ts +0 -18
  481. package/src/engine/graphics/render/layers/RenderLayerManagerState.d.ts.map +0 -1
  482. package/src/engine/graphics/render/layers/RenderLayerManagerState.js +0 -48
  483. package/src/engine/graphics/render/layers/RenderLayerState.d.ts +0 -18
  484. package/src/engine/graphics/render/layers/RenderLayerState.d.ts.map +0 -1
  485. package/src/engine/graphics/render/layers/RenderLayerState.js +0 -27
  486. package/src/engine/graphics/render/layers/RenderLayerUtils.d.ts +0 -8
  487. package/src/engine/graphics/render/layers/RenderLayerUtils.d.ts.map +0 -1
  488. package/src/engine/graphics/render/layers/RenderLayerUtils.js +0 -103
  489. package/src/engine/graphics/render/make_bvh_visibility_builder.d.ts +0 -10
  490. package/src/engine/graphics/render/make_bvh_visibility_builder.d.ts.map +0 -1
  491. package/src/engine/graphics/render/make_bvh_visibility_builder.js +0 -64
  492. package/src/engine/graphics/render/view/CameraViewFlags.d.ts +0 -7
  493. package/src/engine/graphics/render/view/CameraViewFlags.d.ts.map +0 -1
  494. package/src/engine/graphics/render/view/CameraViewFlags.js +0 -9
  495. package/src/engine/graphics/render/visibility/IncrementalDeltaSet.d.ts +0 -143
  496. package/src/engine/graphics/render/visibility/IncrementalDeltaSet.d.ts.map +0 -1
  497. package/src/engine/graphics/render/visibility/IncrementalDeltaSet.js +0 -328
  498. package/src/engine/graphics/render/visibility/VisibilityComputer.d.ts +0 -39
  499. package/src/engine/graphics/render/visibility/VisibilityComputer.d.ts.map +0 -1
  500. package/src/engine/graphics/render/visibility/VisibilityComputer.js +0 -80
  501. package/src/engine/graphics/render/visibility/VisibilityFilter.d.ts +0 -29
  502. package/src/engine/graphics/render/visibility/VisibilityFilter.d.ts.map +0 -1
  503. package/src/engine/graphics/render/visibility/VisibilityFilter.js +0 -37
  504. package/src/engine/graphics3/animation/write_graph_playback.d.ts +0 -24
  505. package/src/engine/graphics3/animation/write_graph_playback.d.ts.map +0 -1
  506. package/src/engine/graphics3/animation/write_graph_playback.js +0 -48
  507. package/src/engine/graphics3/decal/DecalAtlasFill.js +0 -32
  508. package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_froxel_centre_ws.js +0 -49
  509. package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_gi.js +0 -50
  510. package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_gi_sample.js +0 -105
  511. package/src/shade/renderer/volumetrics/gi/graph_build_froxel_gi.js +0 -80
  512. package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi.js +0 -51
  513. package/src/shade/renderer/volumetrics/gi/volumetrics_gi_resources.js +0 -39
  514. package/src/shade/renderer/volumetrics/graph_build_froxel_irradiance.js +0 -121
  515. package/src/shade/renderer/volumetrics/shader_volumetrics_build_irradiance.js +0 -237
@@ -0,0 +1,191 @@
1
+ import { CAMERA_UNIFORM_STRUCT } from "../../camera/CAMERA_UNIFORM_STRUCT.js";
2
+ import { INDIRECT_LIGHT_INTENSITY } from "../../deferred/INDIRECT_LIGHT_INTENSITY.js";
3
+ import { BRICK4_DATA_STRUCT } from "../../global_illumination/brick4/gpu/BRICK4_DATA_STRUCT.js";
4
+ import { LPV_SHADER_RESOURCE_GROUP_WITH_DEFAULTS } from "../../global_illumination/probe/octahedral/LPV_SHADER_RESOURCE_GROUP.js";
5
+ import { chunk_light_cluster_counts } from "../../light/cluster/chunk_light_cluster_counts.js";
6
+ import { LIGHT_CLUSTER_LOOKUP_STRUCT } from "../../light/cluster/shader_cluster_assign_lights.js";
7
+ import { ENVIRONMENT_SH_TYPE } from "../../light/environment/shader_project_environment_sh.js";
8
+ import { chunk_world_light_cluster_lookup } from "../../light/world_cluster/chunk_world_light_cluster_lookup.js";
9
+ import { chunk_mat4_extract_position } from "../../shader/chunk/geometry/mat4/chunk_mat4_extract_position.js";
10
+ import {
11
+ chunk_directional_lights_iteration_mask
12
+ } from "../../shader/chunk/light/io/chunk_directional_lights_iteration_mask.js";
13
+ import {
14
+ chunk_get_directional_light_info_by_index
15
+ } from "../../shader/chunk/light/io/chunk_get_directional_light_info_by_index.js";
16
+ import {
17
+ METRO_L1_IRRADIANCE_STRUCT
18
+ } from "../../shader/chunk/spherical_harmonics/l1i/chunk_convert_to_irradiance_sh.js";
19
+ import { CodeChunk } from "../../shader/compiler/CodeChunk.js";
20
+ import { ComputeShader } from "../../shader/ComputeShader.js";
21
+ import { ShaderResourceSetDescriptor } from "../../shader/resource/ShaderResourceSetDescriptor.js";
22
+ import { f32, i32, u32, vec3i, vec3u } from "../../shader/type/WEBGPU_WGSL_PRIMITIVE_TYPES.js";
23
+ import { WebGPUArray } from "../../shader/type/WebGPUArray.js";
24
+ import { WebGPUStruct } from "../../shader/type/WebGPUStruct.js";
25
+ import { chunk_shadowmap_get_light_visibility } from "../../shadow/map/shader/chunk_shadowmap_get_light_visibility.js";
26
+ import { SHADOWMAP_COMPARE_SAMPLER_DESCRIPTOR } from "../../shadow/map/SHADOWMAP_COMPARE_SAMPLER_DESCRIPTOR.js";
27
+ import { chunk_volumetrics_irradiance_sh } from "../chunk_volumetrics_irradiance_sh.js";
28
+ import { chunk_volumetrics_local_light_shadow } from "../chunk_volumetrics_local_light_shadow.js";
29
+ import { chunk_irradiance_clipmap_gi_sample } from "./chunk_irradiance_clipmap_gi_sample.js";
30
+ import { chunk_irradiance_clipmap_local_light } from "./chunk_irradiance_clipmap_local_light.js";
31
+ import {
32
+ IRRADIANCE_CLIPMAP_LIGHT_BUDGET,
33
+ IRRADIANCE_CLIPMAP_TILE_FORMAT,
34
+ } from "./IRRADIANCE_CLIPMAP.js";
35
+
36
+ export const IRRADIANCE_CLIPMAP_BUILD_GROUP_SIZE = Object.freeze([4, 4, 4]);
37
+
38
+ export const IRRADIANCE_CLIPMAP_BUILD_STRUCT = WebGPUStruct.from({
39
+ tile_origin: vec3u,
40
+ cascade_index: u32,
41
+ corner: vec3i,
42
+ cell_size: f32,
43
+ tile_size: vec3u,
44
+ border: i32,
45
+ }, "IrradianceClipmapBuild");
46
+
47
+ const resources = new ShaderResourceSetDescriptor();
48
+
49
+ resources.createGroup()
50
+ .addUniform("build_settings", IRRADIANCE_CLIPMAP_BUILD_STRUCT)
51
+ .addUniform("camera", CAMERA_UNIFORM_STRUCT)
52
+ .addUniform("environment_sh", ENVIRONMENT_SH_TYPE)
53
+ .addStorageBuffer("brick4", BRICK4_DATA_STRUCT, false, true)
54
+ .addStorageBuffer("light_data", WebGPUArray.u32, false)
55
+ .addStorageBuffer("world_cluster_lookup", LIGHT_CLUSTER_LOOKUP_STRUCT, false)
56
+ .addStorageBuffer("world_cluster_data", WebGPUArray.u32, false)
57
+ .addTexture("shadowmapAtlas", "depth")
58
+ .addSampler("sCompareLinear", "comparison", SHADOWMAP_COMPARE_SAMPLER_DESCRIPTOR)
59
+ .addStorageTexture("atlas_y", IRRADIANCE_CLIPMAP_TILE_FORMAT, "3d", "write-only")
60
+ .addStorageTexture("atlas_cocg", IRRADIANCE_CLIPMAP_TILE_FORMAT, "3d", "write-only");
61
+
62
+ resources.addGroup(LPV_SHADER_RESOURCE_GROUP_WITH_DEFAULTS);
63
+
64
+ const body = CodeChunk.from(
65
+ //language=WGSL
66
+ `
67
+ @compute @workgroup_size(${IRRADIANCE_CLIPMAP_BUILD_GROUP_SIZE.join(", ")})
68
+ fn main(@builtin(global_invocation_id) local_texel: vec3<u32>) {
69
+ let tile_size = build_settings.tile_size;
70
+ if (any(local_texel >= tile_size)) {
71
+ return;
72
+ }
73
+
74
+ let local_cell = vec3<i32>(local_texel) - vec3<i32>(build_settings.border);
75
+ let world_cell = build_settings.corner + local_cell;
76
+ let position_ws = (vec3<f32>(world_cell) + vec3<f32>(0.5)) * build_settings.cell_size;
77
+
78
+ const INDIRECT_INTENSITY: f32 = ${INDIRECT_LIGHT_INTENSITY};
79
+ let gi_radiance = irradiance_clipmap_gi_sample(position_ws);
80
+ let scaled_gi = array<vec3<f32>, 4>(
81
+ gi_radiance[0] * INDIRECT_INTENSITY,
82
+ gi_radiance[1] * INDIRECT_INTENSITY,
83
+ gi_radiance[2] * INDIRECT_INTENSITY,
84
+ gi_radiance[3] * INDIRECT_INTENSITY,
85
+ );
86
+
87
+ var irradiance: ${METRO_L1_IRRADIANCE_STRUCT.wgsl_ref};
88
+ irradiance = volumetrics_irradiance_sh_add_radiance(irradiance, scaled_gi);
89
+
90
+ let to_camera = mat4_extract_position(camera.transform) - position_ws;
91
+ let to_camera_len = max(length(to_camera), 1e-5);
92
+ let toward_camera = to_camera / to_camera_len;
93
+
94
+ var directional_bits = directional_lights_iteration_mask(&light_data);
95
+ while (directional_bits != 0u) {
96
+ let directional_index = countTrailingZeros(directional_bits);
97
+ directional_bits &= ~(1u << directional_index);
98
+
99
+ let sun = get_directional_light_info_by_index(&light_data, directional_index);
100
+
101
+ let shadow_term = shadowmap_get_directional_light_visibility(
102
+ &light_data,
103
+ directional_index,
104
+ position_ws,
105
+ toward_camera,
106
+ sun.direction
107
+ );
108
+
109
+ irradiance = volumetrics_irradiance_sh_add(irradiance, shadow_term * sun.color, sun.direction);
110
+ }
111
+
112
+ let cluster_meta = world_light_cluster_metadata_by_texel(
113
+ build_settings.cascade_index,
114
+ local_texel,
115
+ tile_size
116
+ );
117
+
118
+ let cluster_offset = cluster_meta.offset;
119
+ let point_count = light_cluster_count_point(cluster_meta.counts);
120
+ let spot_count = light_cluster_count_spot(cluster_meta.counts);
121
+
122
+ for (var j = 0u; j < min(point_count, ${IRRADIANCE_CLIPMAP_LIGHT_BUDGET}u); j++) {
123
+ let light_index = world_cluster_data[cluster_offset + j];
124
+ let direct_light = irradiance_clipmap_get_point_light_info_by_index(
125
+ &light_data,
126
+ light_index,
127
+ position_ws,
128
+ build_settings.cell_size
129
+ );
130
+
131
+ if (all(direct_light.color == vec3<f32>(0.0))) {
132
+ continue;
133
+ }
134
+
135
+ let shadow_term = volumetrics_point_light_shadow(&light_data, light_index, position_ws);
136
+ irradiance = volumetrics_irradiance_sh_add(irradiance, shadow_term * direct_light.color, direct_light.direction);
137
+ }
138
+
139
+ for (var k = 0u; k < min(spot_count, ${IRRADIANCE_CLIPMAP_LIGHT_BUDGET}u); k++) {
140
+ let light_index = world_cluster_data[cluster_offset + point_count + k];
141
+ let direct_light = irradiance_clipmap_get_spot_light_info_by_index(
142
+ &light_data,
143
+ light_index,
144
+ position_ws,
145
+ build_settings.cell_size
146
+ );
147
+
148
+ if (all(direct_light.color == vec3<f32>(0.0))) {
149
+ continue;
150
+ }
151
+
152
+ let shadow_term = volumetrics_spot_light_shadow(&light_data, light_index, position_ws);
153
+ irradiance = volumetrics_irradiance_sh_add(irradiance, shadow_term * direct_light.color, direct_light.direction);
154
+ }
155
+
156
+ let stored = volumetrics_irradiance_sh_storable(irradiance);
157
+ let atlas_texel = build_settings.tile_origin + local_texel;
158
+
159
+ textureStore(atlas_y, atlas_texel, stored.Y);
160
+ textureStore(atlas_cocg, atlas_texel, vec4<f32>(stored.CoCg, 0.0, 0.0));
161
+ }
162
+ `, [
163
+ METRO_L1_IRRADIANCE_STRUCT.declaration_chunk,
164
+ chunk_mat4_extract_position,
165
+ chunk_irradiance_clipmap_gi_sample,
166
+ chunk_world_light_cluster_lookup,
167
+ chunk_light_cluster_counts,
168
+ chunk_directional_lights_iteration_mask,
169
+ chunk_get_directional_light_info_by_index,
170
+ chunk_irradiance_clipmap_local_light,
171
+ chunk_shadowmap_get_light_visibility,
172
+ chunk_volumetrics_local_light_shadow,
173
+ chunk_volumetrics_irradiance_sh,
174
+ ]
175
+ );
176
+
177
+ /**
178
+ * Populates one cascade's tile (including its 1-texel trilinear skirt) in the synchronized `Y` and
179
+ * `CoCg` 3D tile atlases of the world-space irradiance clipmap.
180
+ *
181
+ * Evaluates indirect lighting (`INDIRECT_LIGHTING`), directional lights (`SHADOW_DIRECTIONAL_TECHNIQUE`),
182
+ * and world-space clustered point and spot lights with shadow maps at deterministic world-space
183
+ * voxel centres.
184
+ *
185
+ * @type {ComputeShader}
186
+ */
187
+ export const shader_irradiance_clipmap_build = ComputeShader.from({
188
+ label: "Volumetrics / irradiance clipmap build",
189
+ resources,
190
+ body,
191
+ });
@@ -0,0 +1,16 @@
1
+ export const VOLUMETRICS_CLASSIFY_WORKGROUP_RESOLUTION: readonly number[];
2
+ /**
3
+ * Classifies every froxel of the volumetric grid into one of the three lighting regimes (Decision 4.2)
4
+ * using subgroup-coalesced appends ({@link chunk_collection_u32_append}):
5
+ *
6
+ * 1. `list_clipmap` — froxels fully inside the world-space irradiance clipmap (`c < count - 1`, or
7
+ * `c == count - 1` with `edge_weight == 0`).
8
+ * 2. `list_blended` — froxels in the outer transition band of the coarsest cascade (`c == count - 1`
9
+ * with `edge_weight > 0`), where clipmap irradiance blends into the far-field lighting.
10
+ * 3. `list_far_field` — froxels outside all cascades (`CLIPMAP_LEVEL_NONE`).
11
+ *
12
+ * @type {ComputeShader}
13
+ */
14
+ export const shader_volumetrics_classify_froxels: ComputeShader;
15
+ import { ComputeShader } from "../shader/ComputeShader.js";
16
+ //# sourceMappingURL=shader_volumetrics_classify_froxels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shader_volumetrics_classify_froxels.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/volumetrics/shader_volumetrics_classify_froxels.js"],"names":[],"mappings":"AAgBA,0EAAkF;AAyDlF;;;;;;;;;;;GAWG;AACH,kDAFU,aAAa,CAMpB;8BApF2B,4BAA4B"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Workgroup size (64 threads) used by each of the 3 volumetric lighting regime dispatches.
3
+ * @type {number}
4
+ */
5
+ export const VOLUMETRICS_REGIME_WORKGROUP_SIZE: number;
6
+ /**
7
+ * Evaluates far-field in-scattering at a froxel sample (`VolumetricsFroxelSample`) using the same
8
+ * full irradiance model as the world-space irradiance clipmap (environment GI + directional lights
9
+ * with atmospheric transmittance and multiple scattering, evaluated through
10
+ * `irradiance_clipmap_sh_multiscattering`).
11
+ *
12
+ * Shared as a first-class {@link CodeChunk} between `shader_volumetrics_lighting_blended` and
13
+ * `shader_volumetrics_lighting_far_field`.
14
+ *
15
+ * @type {CodeChunk}
16
+ */
17
+ export const chunk_volumetrics_far_field_directional: CodeChunk;
18
+ export const shader_volumetrics_lighting_clipmap: ComputeShader;
19
+ export const shader_volumetrics_lighting_blended: ComputeShader;
20
+ export const shader_volumetrics_lighting_far_field: ComputeShader;
21
+ import { CodeChunk } from "../shader/compiler/CodeChunk.js";
22
+ import { ComputeShader } from "../shader/ComputeShader.js";
23
+ //# sourceMappingURL=shader_volumetrics_lighting_regimes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shader_volumetrics_lighting_regimes.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/volumetrics/shader_volumetrics_lighting_regimes.js"],"names":[],"mappings":"AA+CA;;;GAGG;AACH,gDAFU,MAAM,CAEoC;AAEpD;;;;;;;;;;GAUG;AACH,sDAFU,SAAS,CA6FjB;AAwFF,gEAIG;AAuFH,gEAIG;AA2DH,kEAIG;0BAhYuB,iCAAiC;8BAC7B,4BAA4B"}
@@ -42,7 +42,7 @@ export class GPUSceneWind {
42
42
  * @param {number} capacity
43
43
  * @returns {GPUTileAtlas3D}
44
44
  */
45
- static "__#172@#make_atlas"(device: GPUDevice, content: ArrayLike<number>, capacity: number): GPUTileAtlas3D;
45
+ static "__#161@#make_atlas"(device: GPUDevice, content: ArrayLike<number>, capacity: number): GPUTileAtlas3D;
46
46
  /**
47
47
  * @param {GPUDevice} device
48
48
  */
@@ -126,7 +126,7 @@ export class GPUSceneWind {
126
126
 
127
127
  return new GPUTileAtlas3D({
128
128
  device,
129
- format: WIND_FIELD_TILE_FORMAT,
129
+ formats: [WIND_FIELD_TILE_FORMAT],
130
130
  // copied by the atlas; made only when the atlas is
131
131
  content_size: [content[0], content[1], content[2]],
132
132
  border: WIND_FIELD_TILE_BORDER,
@@ -2975,7 +2975,7 @@ function inferBuiltinReturnType(name, args) {
2975
2975
  // the two values; the third argument is the condition
2976
2976
  return commonArgumentType(args.slice(0, 2));
2977
2977
  }
2978
- if (name === 'textureLoad' || name === 'textureSampleLevel' || name === 'textureSample' || name === 'textureSampleGrad') {
2978
+ if (name === 'textureLoad' || name === 'textureSampleLevel' || name === 'textureSample' || name === 'textureSampleBias' || name === 'textureSampleGrad') {
2979
2979
  return { kind: 'vec', size: 4, scalar: 'f32' };
2980
2980
  }
2981
2981
  // Both gathers return the four texels of a 2x2 footprint. Saying so here matters more than
@@ -1 +1 @@
1
- {"version":3,"file":"WGSLLanguageCore.d.ts","sourceRoot":"","sources":["../../../../../src/shade/wgsl/emulator/WGSLLanguageCore.js"],"names":[],"mappings":";IA6jDA;;;;;;;;;;;;;;OAcG;IACH,+DAmDC"}
1
+ {"version":3,"file":"WGSLLanguageCore.d.ts","sourceRoot":"","sources":["../../../../../src/shade/wgsl/emulator/WGSLLanguageCore.js"],"names":[],"mappings":";IA4oDA;;;;;;;;;;;;;;OAcG;IACH,+DAmDC"}
@@ -1067,7 +1067,8 @@ export const WGSLLanguageCore = {
1067
1067
  },
1068
1068
 
1069
1069
  /**
1070
- * `textureSampleLevel(t, s, coords, level) -> vec4<T>`
1070
+ * `textureSampleLevel(t, s, coords, level[, offset]) -> vec4<T>` and the texture_2d_array form
1071
+ * `textureSampleLevel(t, s, coords, array_index, level[, offset])`.
1071
1072
  *
1072
1073
  * Filtered sample at normalised UV coords. Honours the sampler's
1073
1074
  * address modes and `magFilter`. `coords` length matches the texture
@@ -1076,33 +1077,59 @@ export const WGSLLanguageCore = {
1076
1077
  * @param {import("./CPUBitmapData.js").CPUBitmapData} t
1077
1078
  * @param {import("../../descriptor/texture/SamplerDescriptor.js").SamplerDescriptor | null} sampler
1078
1079
  * @param {Float32Array | number[] | number} coords
1079
- * @param {number} [_level]
1080
+ * @param {number} [p3] — `level`, or `array_index` in the array forms
1081
+ * @param {number | Int32Array | number[]} [p4] — `level` in the array forms, or `offset`
1082
+ * @param {Int32Array | number[]} [p5] — `offset` in the array form
1080
1083
  * @returns {Float32Array}
1081
1084
  */
1082
- textureSampleLevel(t, sampler, coords, _level_or_index = 0, _array_level = undefined) {
1085
+ textureSampleLevel(t, sampler, coords, p3 = 0, p4 = undefined, p5 = undefined) {
1083
1086
  assert.defined(t, 'texture');
1087
+
1088
+ let array_index = undefined;
1089
+ let offset = undefined;
1090
+
1091
+ if (p5 !== undefined) {
1092
+ // (t, s, coords, array_index, level, offset)
1093
+ array_index = p3;
1094
+ offset = p5;
1095
+ } else if (p4 === undefined) {
1096
+ // (t, s, coords, level)
1097
+ } else if (typeof p4 === 'number') {
1098
+ // (t, s, coords, array_index, level)
1099
+ array_index = p3;
1100
+ } else {
1101
+ // (t, s, coords, level, offset)
1102
+ offset = p4;
1103
+ }
1104
+
1084
1105
  const dim = t.dimensionality;
1085
1106
  // Convert UV (normalised) to texel-space coords expected by
1086
1107
  // cpu_texture_sample. coords for a 1D texture is a scalar in WGSL.
1087
1108
  const u = dim >= 1 ? (typeof coords === 'number' ? coords : coords[0]) : 0;
1088
1109
  const v = dim >= 2 ? coords[1] : 0;
1089
- const tx = u * t.size[0];
1090
- const ty = v * t.size[1];
1110
+ const ox = offset !== undefined ? (offset[0] | 0) : 0;
1111
+ const oy = offset !== undefined && offset.length >= 2 ? (offset[1] | 0) : 0;
1112
+ const tx = u * t.size[0] + ox;
1113
+ const ty = v * t.size[1] + oy;
1091
1114
  /**
1092
1115
  * @type {number[]}
1093
1116
  */
1094
1117
  let texel_coord;
1095
- if (_array_level !== undefined) {
1118
+ if (array_index !== undefined) {
1096
1119
  /*
1097
- Five arguments is the texture_2d_array form — (t, s, uv, array_index, level) — where the
1098
- fourth argument selects a slice. A slice's texel-space centre sits at index + 0.5, which
1099
- lands the linear filter's z weight on exactly that slice: filtering happens in xy and
1100
- never crosses into a neighbour.
1120
+ The texture_2d_array form — (t, s, uv, array_index, level[, offset]) — where the
1121
+ fourth argument selects a slice. The array index is clamped to the layer count rather
1122
+ than wrapped by addressModeW, and a slice's texel-space centre sits at index + 0.5,
1123
+ which lands the linear filter's z weight on exactly that slice: filtering happens in
1124
+ xy and never crosses into a neighbour.
1101
1125
  */
1102
- texel_coord = [tx, ty, (_level_or_index | 0) + 0.5];
1126
+ const d = t.size[2];
1127
+ const z = d <= 0 ? 0 : Math.min(Math.max(array_index | 0, 0), d - 1);
1128
+ texel_coord = [tx, ty, z + 0.5];
1103
1129
  } else {
1104
1130
  const w = dim >= 3 ? coords[2] : 0;
1105
- const tz = w * t.size[2];
1131
+ const oz = offset !== undefined && offset.length >= 3 ? (offset[2] | 0) : 0;
1132
+ const tz = w * t.size[2] + oz;
1106
1133
  texel_coord = dim === 1 ? [tx] : (dim === 2 ? [tx, ty] : [tx, ty, tz]);
1107
1134
  }
1108
1135
  const result = new Float32Array(4);
@@ -1111,8 +1138,8 @@ export const WGSLLanguageCore = {
1111
1138
  },
1112
1139
 
1113
1140
  /**
1114
- * `textureSample(t, s, coords) -> vec4<T>` and the texture_2d_array form
1115
- * `textureSample(t, s, coords, array_index)`.
1141
+ * `textureSample(t, s, coords[, offset]) -> vec4<T>` and the texture_2d_array form
1142
+ * `textureSample(t, s, coords, array_index[, offset])`.
1116
1143
  *
1117
1144
  * Implicit-LOD sample. Without mipmaps, this is just
1118
1145
  * `textureSampleLevel` at level 0.
@@ -1120,37 +1147,89 @@ export const WGSLLanguageCore = {
1120
1147
  * @param {import("./CPUBitmapData.js").CPUBitmapData} t
1121
1148
  * @param {import("../../descriptor/texture/SamplerDescriptor.js").SamplerDescriptor | null} sampler
1122
1149
  * @param {Float32Array | number[] | number} coords
1123
- * @param {number} [array_index]
1150
+ * @param {number | Int32Array | number[]} [p3] — `array_index`, or `offset`
1151
+ * @param {Int32Array | number[]} [p4] — `offset` in the array form
1124
1152
  * @returns {Float32Array}
1125
1153
  */
1126
- textureSample(t, sampler, coords, array_index = undefined) {
1127
- if (array_index !== undefined) {
1128
- return WGSLLanguageCore.textureSampleLevel(t, sampler, coords, array_index, 0);
1154
+ textureSample(t, sampler, coords, p3 = undefined, p4 = undefined) {
1155
+ if (p4 !== undefined) {
1156
+ return WGSLLanguageCore.textureSampleLevel(t, sampler, coords, p3, 0, p4);
1157
+ }
1158
+
1159
+ if (typeof p3 === 'number') {
1160
+ return WGSLLanguageCore.textureSampleLevel(t, sampler, coords, p3, 0);
1161
+ }
1162
+
1163
+ if (p3 !== undefined) {
1164
+ return WGSLLanguageCore.textureSampleLevel(t, sampler, coords, 0, p3);
1129
1165
  }
1130
1166
 
1131
1167
  return WGSLLanguageCore.textureSampleLevel(t, sampler, coords, 0);
1132
1168
  },
1133
1169
 
1134
1170
  /**
1135
- * `textureSampleGrad(t, s, coords, ddx, ddy) -> vec4<T>` and the texture_2d_array form
1136
- * `textureSampleGrad(t, s, coords, array_index, ddx, ddy)`.
1171
+ * `textureSampleBias(t, s, coords, bias[, offset]) -> vec4<T>` and the texture_2d_array form
1172
+ * `textureSampleBias(t, s, coords, array_index, bias[, offset])`.
1137
1173
  *
1138
- * Explicit-gradient sample. Mipmaps are not modelled (see the header), so the gradients only
1139
- * disambiguate which call shape this is: six arguments carry an array index, five do not.
1174
+ * Implicit-LOD sample with a mip bias. Mipmaps are not modelled (see the header), so the bias
1175
+ * is ignored and this routes through `textureSampleLevel` at level 0. Overloads are told apart
1176
+ * by argument shape: a scalar fifth argument is the array form's `bias` (making the fourth the
1177
+ * `array_index`), while a vector is the const `offset`.
1140
1178
  *
1141
1179
  * @param {import("./CPUBitmapData.js").CPUBitmapData} t
1142
1180
  * @param {import("../../descriptor/texture/SamplerDescriptor.js").SamplerDescriptor | null} sampler
1143
1181
  * @param {Float32Array | number[] | number} coords
1144
- * @param {Float32Array | number[] | number} p3 gradient, or the array index
1145
- * @param {Float32Array | number[]} p4 gradient
1146
- * @param {Float32Array | number[]} [p5] gradient, in the array form
1182
+ * @param {number} p3 — `bias`, or `array_index` in the array forms
1183
+ * @param {number | Int32Array | number[]} [p4] — `bias` in the array forms, or `offset`
1184
+ * @param {Int32Array | number[]} [p5] — `offset` in the array form
1147
1185
  * @returns {Float32Array}
1148
1186
  */
1149
- textureSampleGrad(t, sampler, coords, p3, p4, p5 = undefined) {
1187
+ textureSampleBias(t, sampler, coords, p3, p4 = undefined, p5 = undefined) {
1150
1188
  if (p5 !== undefined) {
1189
+ return WGSLLanguageCore.textureSampleLevel(t, sampler, coords, p3, 0, p5);
1190
+ }
1191
+
1192
+ if (p4 === undefined) {
1193
+ return WGSLLanguageCore.textureSampleLevel(t, sampler, coords, 0);
1194
+ }
1195
+
1196
+ if (typeof p4 === 'number') {
1151
1197
  return WGSLLanguageCore.textureSampleLevel(t, sampler, coords, p3, 0);
1152
1198
  }
1153
1199
 
1200
+ return WGSLLanguageCore.textureSampleLevel(t, sampler, coords, 0, p4);
1201
+ },
1202
+
1203
+ /**
1204
+ * `textureSampleGrad(t, s, coords, ddx, ddy[, offset]) -> vec4<T>` and the texture_2d_array form
1205
+ * `textureSampleGrad(t, s, coords, array_index, ddx, ddy[, offset])`.
1206
+ *
1207
+ * Explicit-gradient sample. Mipmaps are not modelled (see the header), so the gradients are
1208
+ * ignored and this routes through `textureSampleLevel` at level 0. A scalar fourth argument is
1209
+ * the array form's `array_index`; a vector is `ddx`.
1210
+ *
1211
+ * @param {import("./CPUBitmapData.js").CPUBitmapData} t
1212
+ * @param {import("../../descriptor/texture/SamplerDescriptor.js").SamplerDescriptor | null} sampler
1213
+ * @param {Float32Array | number[] | number} coords
1214
+ * @param {Float32Array | number[] | number} p3 gradient `ddx`, or the `array_index`
1215
+ * @param {Float32Array | number[]} p4 gradient (`ddy`, or `ddx` in the array form)
1216
+ * @param {Float32Array | Int32Array | number[]} [p5] `ddy` in the array form, or `offset`
1217
+ * @param {Int32Array | number[]} [p6] `offset` in the array form
1218
+ * @returns {Float32Array}
1219
+ */
1220
+ textureSampleGrad(t, sampler, coords, p3, p4, p5 = undefined, p6 = undefined) {
1221
+ if (typeof p3 === 'number') {
1222
+ if (p6 !== undefined) {
1223
+ return WGSLLanguageCore.textureSampleLevel(t, sampler, coords, p3, 0, p6);
1224
+ }
1225
+
1226
+ return WGSLLanguageCore.textureSampleLevel(t, sampler, coords, p3, 0);
1227
+ }
1228
+
1229
+ if (p5 !== undefined) {
1230
+ return WGSLLanguageCore.textureSampleLevel(t, sampler, coords, 0, p5);
1231
+ }
1232
+
1154
1233
  return WGSLLanguageCore.textureSampleLevel(t, sampler, coords, 0);
1155
1234
  },
1156
1235
 
@@ -1,6 +0,0 @@
1
- export type CompositingStages = number;
2
- export namespace CompositingStages {
3
- let POST_OPAQUE: number;
4
- let POST_TRANSPARENT: number;
5
- }
6
- //# sourceMappingURL=CompositingStages.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CompositingStages.d.ts","sourceRoot":"","sources":["../../../../../src/engine/graphics/composit/CompositingStages.js"],"names":[],"mappings":"gCAEU,MAAM"}
@@ -1,8 +0,0 @@
1
- /**
2
- * @readonly
3
- * @enum {number}
4
- */
5
- export const CompositingStages = {
6
- POST_OPAQUE: 1,
7
- POST_TRANSPARENT: 0
8
- }
@@ -1,7 +0,0 @@
1
- /**
2
- *
3
- * @param {*} attribute
4
- * @returns {number}
5
- */
6
- export function computeBufferAttributeHash(attribute: any): number;
7
- //# sourceMappingURL=computeBufferAttributeHash.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"computeBufferAttributeHash.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/geometry/buffered/computeBufferAttributeHash.js"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,4DAFa,MAAM,CAgBlB"}
@@ -1,24 +0,0 @@
1
- import { sparse_typed_array_hash } from "../../../../core/collection/array/typed/sparse_typed_array_hash.js";
2
-
3
- /**
4
- *
5
- * @param {*} attribute
6
- * @returns {number}
7
- */
8
- export function computeBufferAttributeHash(attribute) {
9
- let result = 0;
10
-
11
- if (attribute !== null) {
12
- const data = attribute.array;
13
- const data_size = data.length;
14
-
15
- result += data_size;
16
-
17
- result ^= sparse_typed_array_hash(data, 0, data_size);
18
-
19
- }
20
-
21
- return result;
22
- }
23
-
24
-
@@ -1,8 +0,0 @@
1
- /**
2
- *
3
- * @param {BufferGeometry} geometry
4
- * @returns {Vector4} x,y,z are sphere center and w is radius
5
- */
6
- export function computeGeometryBoundingSphereMiniball(geometry: BufferGeometry): Vector4;
7
- import Vector4 from "../../../../core/geom/Vector4.js";
8
- //# sourceMappingURL=computeGeometryBoundingSphereMiniball.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"computeGeometryBoundingSphereMiniball.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/geometry/buffered/computeGeometryBoundingSphereMiniball.js"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,iFAFa,OAAO,CAUnB;oBAhBmB,kCAAkC"}
@@ -1,17 +0,0 @@
1
- import Vector4 from "../../../../core/geom/Vector4.js";
2
- import { computeBoundingSphereFromVertexData } from "../computeBoundingSphereFromVertexData.js";
3
-
4
- /**
5
- *
6
- * @param {BufferGeometry} geometry
7
- * @returns {Vector4} x,y,z are sphere center and w is radius
8
- */
9
- export function computeGeometryBoundingSphereMiniball(geometry) {
10
- const vertexData = geometry.attributes.position.array;
11
-
12
-
13
- const result = new Vector4();
14
- computeBoundingSphereFromVertexData(vertexData, result);
15
-
16
- return result;
17
- }
@@ -1,8 +0,0 @@
1
- /**
2
- *
3
- * @param {*} a
4
- * @param {*} b
5
- * @returns {boolean}
6
- */
7
- export function computeGeometryEquality(a: any, b: any): boolean;
8
- //# sourceMappingURL=computeGeometryEquality.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"computeGeometryEquality.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/geometry/buffered/computeGeometryEquality.js"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,yDAFa,OAAO,CAmDnB"}
@@ -1,60 +0,0 @@
1
- import { isArrayEqualStrict } from "../../../../core/collection/array/isArrayEqualStrict.js";
2
- import { is_typed_array_equals } from "../../../../core/collection/array/typed/is_typed_array_equals.js";
3
-
4
-
5
- /**
6
- *
7
- * @param {*} a
8
- * @param {*} b
9
- * @returns {boolean}
10
- */
11
- export function computeGeometryEquality(a, b) {
12
- if (a === b) {
13
- // identity shortcut
14
- return true;
15
- }
16
-
17
- const a_index = a.getIndex();
18
- const b_index = b.getIndex();
19
-
20
- if (a_index !== b_index) {
21
- if (a_index === null || b_index === null) {
22
- return false;
23
- }
24
-
25
- if (!is_typed_array_equals(a_index.array, b_index.array)) {
26
- return false;
27
- }
28
- }
29
-
30
- const a_attribute_keys = Object.keys(a.attributes);
31
- const b_attribute_keys = Object.keys(b.attributes);
32
-
33
- const attribute_count = a_attribute_keys.length;
34
- if (attribute_count !== b_attribute_keys.length) {
35
- return false;
36
- }
37
-
38
- // sorting keys ensures that order is not relevant
39
- a_attribute_keys.sort();
40
- b_attribute_keys.sort();
41
-
42
-
43
- if (!isArrayEqualStrict(a_attribute_keys, b_attribute_keys)) {
44
- return false;
45
- }
46
-
47
- // compare individual attributes
48
- for (let i = 0; i < attribute_count; i++) {
49
- const key = a_attribute_keys[i];
50
-
51
- const a_attribute = a.attributes[key];
52
- const b_attribute = b.attributes[key];
53
-
54
- if (!is_typed_array_equals(a_attribute.array, b_attribute.array)) {
55
- return false;
56
- }
57
- }
58
-
59
- return true;
60
- }
@@ -1,7 +0,0 @@
1
- /**
2
- *
3
- * @param {*} geometry
4
- * @returns {number}
5
- */
6
- export function computeGeometryHash(geometry: any): number;
7
- //# sourceMappingURL=computeGeometryHash.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"computeGeometryHash.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/geometry/buffered/computeGeometryHash.js"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,oDAFa,MAAM,CAmBlB"}