@woosh/meep-engine 3.61.1 → 3.61.3

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 (474) hide show
  1. package/CHANGELOG.md +111 -0
  2. package/package.json +1 -1
  3. package/src/engine/network/sim/SimActionExecutor.d.ts +4 -0
  4. package/src/engine/network/sim/SimActionExecutor.d.ts.map +1 -1
  5. package/src/engine/network/sim/SimActionExecutor.js +4 -0
  6. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
  7. package/src/generation/foliage/material/foliage_atlas_cutout.d.ts.map +1 -1
  8. package/src/generation/foliage/material/foliage_atlas_cutout.js +21 -5
  9. package/src/generation/foliage/mesh/tree_cluster_representatives.d.ts +8 -0
  10. package/src/generation/foliage/mesh/tree_cluster_representatives.d.ts.map +1 -1
  11. package/src/generation/foliage/mesh/tree_cluster_representatives.js +178 -78
  12. package/src/generation/foliage/mesh/tree_mesh_build_bark.d.ts.map +1 -1
  13. package/src/generation/foliage/mesh/tree_mesh_build_bark.js +178 -97
  14. package/src/generation/foliage/skeleton/ShootLightField.d.ts +1 -0
  15. package/src/generation/foliage/skeleton/ShootLightField.d.ts.map +1 -1
  16. package/src/generation/foliage/skeleton/ShootLightField.js +88 -17
  17. package/src/generation/foliage/skeleton/ShootWoodHash.d.ts +5 -2
  18. package/src/generation/foliage/skeleton/ShootWoodHash.d.ts.map +1 -1
  19. package/src/generation/foliage/skeleton/ShootWoodHash.js +191 -25
  20. package/src/shade/playground/probe_clipmap/README.md +3 -4
  21. package/src/shade/playground/probe_clipmap/index.html +5 -13
  22. package/src/shade/playground/probe_clipmap/main.d.ts.map +1 -1
  23. package/src/shade/playground/probe_clipmap/main.js +4 -5
  24. package/src/shade/playground/probe_clipmap_box/README.md +55 -0
  25. package/src/shade/playground/probe_clipmap_box/index.html +185 -0
  26. package/src/shade/playground/probe_clipmap_box/main.d.ts +8 -0
  27. package/src/shade/playground/probe_clipmap_box/main.d.ts.map +1 -0
  28. package/src/shade/playground/probe_clipmap_box/main.js +323 -0
  29. package/src/shade/playground/probe_clipmap_box/scene.d.ts +93 -0
  30. package/src/shade/playground/probe_clipmap_box/scene.d.ts.map +1 -0
  31. package/src/shade/playground/probe_clipmap_box/scene.js +256 -0
  32. package/src/shade/renderer/Renderer.d.ts.map +1 -1
  33. package/src/shade/renderer/Renderer.js +56 -12
  34. package/src/shade/renderer/fluid/GPUFluidCascade.d.ts +3 -3
  35. package/src/shade/renderer/fluid/GPUFluidCascadeStack.d.ts +1 -1
  36. package/src/shade/renderer/fluid/forcing/GPUFluidForcing.d.ts +6 -6
  37. package/src/shade/renderer/fluid/pressure/GPUFluidPressureSolve.d.ts +1 -1
  38. package/src/shade/renderer/fluid/query/GPUFluidQueries.d.ts +1 -1
  39. package/src/shade/renderer/geometry/meshlet/meshlet_batch_colored.d.ts +10 -0
  40. package/src/shade/renderer/geometry/meshlet/meshlet_batch_colored.d.ts.map +1 -0
  41. package/src/shade/renderer/geometry/meshlet/meshlet_batch_colored.js +54 -0
  42. package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.d.ts +85 -36
  43. package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.d.ts.map +1 -1
  44. package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.js +813 -412
  45. package/src/shade/renderer/geometry/sdf/MESH_SDF.d.ts +7 -0
  46. package/src/shade/renderer/geometry/sdf/MESH_SDF.d.ts.map +1 -1
  47. package/src/shade/renderer/geometry/sdf/MESH_SDF.js +8 -0
  48. package/src/shade/renderer/geometry/sdf/MESH_SDF_BRICK_KEY.d.ts +14 -0
  49. package/src/shade/renderer/geometry/sdf/MESH_SDF_BRICK_KEY.d.ts.map +1 -0
  50. package/src/shade/renderer/geometry/sdf/MESH_SDF_BRICK_KEY.js +35 -0
  51. package/src/shade/renderer/geometry/sdf/MESH_SDF_STRUCT.d.ts.map +1 -1
  52. package/src/shade/renderer/geometry/sdf/MESH_SDF_STRUCT.js +0 -4
  53. package/src/shade/renderer/geometry/sdf/bake/MESH_SDF_BAKE.d.ts +55 -10
  54. package/src/shade/renderer/geometry/sdf/bake/MESH_SDF_BAKE.d.ts.map +1 -1
  55. package/src/shade/renderer/geometry/sdf/bake/MESH_SDF_BAKE.js +86 -16
  56. package/src/shade/renderer/geometry/sdf/bake/chunk_mesh_sdf_bake.d.ts +2 -2
  57. package/src/shade/renderer/geometry/sdf/bake/chunk_mesh_sdf_bake.d.ts.map +1 -1
  58. package/src/shade/renderer/geometry/sdf/bake/chunk_mesh_sdf_bake.js +28 -2
  59. package/src/shade/renderer/geometry/sdf/bake/chunk_mesh_sdf_contents.d.ts +54 -0
  60. package/src/shade/renderer/geometry/sdf/bake/chunk_mesh_sdf_contents.d.ts.map +1 -0
  61. package/src/shade/renderer/geometry/sdf/bake/chunk_mesh_sdf_contents.js +146 -0
  62. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_classify.d.ts +1 -1
  63. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_classify.d.ts.map +1 -1
  64. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_classify.js +2 -1
  65. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_content_rehash.d.ts +18 -0
  66. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_content_rehash.d.ts.map +1 -0
  67. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_content_rehash.js +66 -0
  68. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_count.d.ts +17 -0
  69. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_count.d.ts.map +1 -0
  70. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_count.js +66 -0
  71. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_evaluate.d.ts +5 -3
  72. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_evaluate.d.ts.map +1 -1
  73. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_evaluate.js +15 -14
  74. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_free.d.ts +2 -1
  75. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_free.d.ts.map +1 -1
  76. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_free.js +12 -3
  77. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_key.d.ts +21 -0
  78. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_key.d.ts.map +1 -0
  79. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_key.js +84 -0
  80. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_resolve.d.ts +53 -0
  81. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_resolve.d.ts.map +1 -0
  82. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_resolve.js +343 -0
  83. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_store.d.ts +3 -3
  84. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_store.d.ts.map +1 -1
  85. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_store.js +9 -5
  86. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_take.d.ts +2 -2
  87. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_take.d.ts.map +1 -1
  88. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_take.js +3 -2
  89. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_upload.d.ts +69 -0
  90. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_upload.d.ts.map +1 -0
  91. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_upload.js +294 -0
  92. package/src/shade/renderer/geometry/sdf/bundle/MODEL_CACHE_BUNDLE.d.ts +16 -0
  93. package/src/shade/renderer/geometry/sdf/bundle/MODEL_CACHE_BUNDLE.d.ts.map +1 -0
  94. package/src/shade/renderer/geometry/sdf/bundle/MODEL_CACHE_BUNDLE.js +36 -0
  95. package/src/shade/renderer/geometry/sdf/bundle/ModelCacheBundle.d.ts +126 -0
  96. package/src/shade/renderer/geometry/sdf/bundle/ModelCacheBundle.d.ts.map +1 -0
  97. package/src/shade/renderer/geometry/sdf/bundle/ModelCacheBundle.js +148 -0
  98. package/src/shade/renderer/geometry/sdf/bundle/model_cache_bundle_read.d.ts +10 -0
  99. package/src/shade/renderer/geometry/sdf/bundle/model_cache_bundle_read.d.ts.map +1 -0
  100. package/src/shade/renderer/geometry/sdf/bundle/model_cache_bundle_read.js +140 -0
  101. package/src/shade/renderer/geometry/sdf/bundle/model_cache_bundle_write.d.ts +8 -0
  102. package/src/shade/renderer/geometry/sdf/bundle/model_cache_bundle_write.d.ts.map +1 -0
  103. package/src/shade/renderer/geometry/sdf/bundle/model_cache_bundle_write.js +76 -0
  104. package/src/shade/renderer/geometry/sdf/chunk_mesh_sdf.d.ts +9 -0
  105. package/src/shade/renderer/geometry/sdf/chunk_mesh_sdf.d.ts.map +1 -1
  106. package/src/shade/renderer/geometry/sdf/chunk_mesh_sdf.js +23 -0
  107. package/src/shade/renderer/geometry/sdf/chunk_mesh_sdf_brick_key.d.ts +13 -0
  108. package/src/shade/renderer/geometry/sdf/chunk_mesh_sdf_brick_key.d.ts.map +1 -0
  109. package/src/shade/renderer/geometry/sdf/chunk_mesh_sdf_brick_key.js +23 -0
  110. package/src/shade/renderer/geometry/sdf/surface/GPUMeshSurfaceCaches.d.ts +262 -0
  111. package/src/shade/renderer/geometry/sdf/surface/GPUMeshSurfaceCaches.d.ts.map +1 -0
  112. package/src/shade/renderer/geometry/sdf/surface/GPUMeshSurfaceCaches.js +1819 -0
  113. package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_BAKE.d.ts +118 -0
  114. package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_BAKE.d.ts.map +1 -0
  115. package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_BAKE.js +204 -0
  116. package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_BLOCK.d.ts +66 -0
  117. package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_BLOCK.d.ts.map +1 -0
  118. package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_BLOCK.js +103 -0
  119. package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_RESOURCES.d.ts +19 -0
  120. package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_RESOURCES.d.ts.map +1 -0
  121. package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_RESOURCES.js +23 -0
  122. package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_STRUCT.d.ts +15 -0
  123. package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_STRUCT.d.ts.map +1 -0
  124. package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_STRUCT.js +70 -0
  125. package/src/shade/renderer/geometry/sdf/surface/SURFACE_MATERIAL.d.ts +13 -0
  126. package/src/shade/renderer/geometry/sdf/surface/SURFACE_MATERIAL.d.ts.map +1 -0
  127. package/src/shade/renderer/geometry/sdf/surface/SURFACE_MATERIAL.js +35 -0
  128. package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_block.d.ts +32 -0
  129. package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_block.d.ts.map +1 -0
  130. package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_block.js +111 -0
  131. package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_listed.d.ts +17 -0
  132. package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_listed.d.ts.map +1 -0
  133. package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_listed.js +49 -0
  134. package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_run_find.d.ts +13 -0
  135. package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_run_find.d.ts.map +1 -0
  136. package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_run_find.js +35 -0
  137. package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_sample.d.ts +24 -0
  138. package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_sample.d.ts.map +1 -0
  139. package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_sample.js +169 -0
  140. package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_texel_ray.d.ts +19 -0
  141. package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_texel_ray.d.ts.map +1 -0
  142. package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_texel_ray.js +49 -0
  143. package/src/shade/renderer/geometry/sdf/surface/chunk_surface_material_fit.d.ts +19 -0
  144. package/src/shade/renderer/geometry/sdf/surface/chunk_surface_material_fit.d.ts.map +1 -0
  145. package/src/shade/renderer/geometry/sdf/surface/chunk_surface_material_fit.js +67 -0
  146. package/src/shade/renderer/geometry/sdf/surface/chunk_surface_material_read.d.ts +78 -0
  147. package/src/shade/renderer/geometry/sdf/surface/chunk_surface_material_read.d.ts.map +1 -0
  148. package/src/shade/renderer/geometry/sdf/surface/chunk_surface_material_read.js +320 -0
  149. package/src/shade/renderer/geometry/sdf/surface/chunk_surface_material_store.d.ts +15 -0
  150. package/src/shade/renderer/geometry/sdf/surface/chunk_surface_material_store.d.ts.map +1 -0
  151. package/src/shade/renderer/geometry/sdf/surface/chunk_surface_material_store.js +48 -0
  152. package/src/shade/renderer/geometry/sdf/surface/mesh_surface_channels.d.ts +51 -0
  153. package/src/shade/renderer/geometry/sdf/surface/mesh_surface_channels.d.ts.map +1 -0
  154. package/src/shade/renderer/geometry/sdf/surface/mesh_surface_channels.js +109 -0
  155. package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_command.d.ts +11 -0
  156. package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_command.d.ts.map +1 -0
  157. package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_command.js +51 -0
  158. package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_encode.d.ts +26 -0
  159. package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_encode.d.ts.map +1 -0
  160. package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_encode.js +453 -0
  161. package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_list.d.ts +12 -0
  162. package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_list.d.ts.map +1 -0
  163. package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_list.js +99 -0
  164. package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_survey.d.ts +22 -0
  165. package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_survey.d.ts.map +1 -0
  166. package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_survey.js +140 -0
  167. package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_trace.d.ts +32 -0
  168. package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_trace.d.ts.map +1 -0
  169. package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_trace.js +261 -0
  170. package/src/shade/renderer/geometry/virtual/runtime/VirtualGeometry.d.ts +2 -2
  171. package/src/shade/renderer/geometry/virtual/runtime/VirtualGeometry.js +2 -2
  172. package/src/shade/renderer/geometry/virtual/sdf/VGeoSDFProxies.d.ts +6 -6
  173. package/src/shade/renderer/geometry/virtual/sdf/VGeoSDFProxies.js +7 -7
  174. package/src/shade/renderer/global_illumination/brick4/gpu/encoding/v2/chunk_brick4_sh3_color_decode.d.ts +12 -0
  175. package/src/shade/renderer/global_illumination/brick4/gpu/encoding/v2/chunk_brick4_sh3_color_decode.d.ts.map +1 -1
  176. package/src/shade/renderer/global_illumination/brick4/gpu/encoding/v2/chunk_brick4_sh3_color_decode.js +49 -24
  177. package/src/shade/renderer/global_illumination/brick4/gpu/encoding/v2/chunk_brick4_sh3_color_encode.d.ts +12 -0
  178. package/src/shade/renderer/global_illumination/brick4/gpu/encoding/v2/chunk_brick4_sh3_color_encode.d.ts.map +1 -1
  179. package/src/shade/renderer/global_illumination/brick4/gpu/encoding/v2/chunk_brick4_sh3_color_encode.js +50 -19
  180. package/src/shade/renderer/global_illumination/brick4/gpu/encoding/v2/chunk_sh3_compress.d.ts.map +1 -1
  181. package/src/shade/renderer/global_illumination/brick4/gpu/encoding/v2/chunk_sh3_compress.js +6 -2
  182. package/src/shade/renderer/global_illumination/probe_clipmap/GPUProbeClipmapGI.d.ts +20 -8
  183. package/src/shade/renderer/global_illumination/probe_clipmap/GPUProbeClipmapGI.d.ts.map +1 -1
  184. package/src/shade/renderer/global_illumination/probe_clipmap/GPUProbeClipmapGI.js +89 -20
  185. package/src/shade/renderer/global_illumination/probe_clipmap/ProbeClipmapSceneHolds.d.ts +26 -19
  186. package/src/shade/renderer/global_illumination/probe_clipmap/ProbeClipmapSceneHolds.d.ts.map +1 -1
  187. package/src/shade/renderer/global_illumination/probe_clipmap/ProbeClipmapSceneHolds.js +226 -148
  188. package/src/shade/renderer/global_illumination/probe_clipmap/ProbeClipmapSettings.d.ts +25 -52
  189. package/src/shade/renderer/global_illumination/probe_clipmap/ProbeClipmapSettings.d.ts.map +1 -1
  190. package/src/shade/renderer/global_illumination/probe_clipmap/ProbeClipmapSettings.js +29 -69
  191. package/src/shade/renderer/global_illumination/probe_clipmap/brick/BRICK_CLIPMAP.d.ts +19 -16
  192. package/src/shade/renderer/global_illumination/probe_clipmap/brick/BRICK_CLIPMAP.d.ts.map +1 -1
  193. package/src/shade/renderer/global_illumination/probe_clipmap/brick/BRICK_CLIPMAP.js +24 -21
  194. package/src/shade/renderer/global_illumination/probe_clipmap/brick/GPUBrickClipmap.d.ts +46 -22
  195. package/src/shade/renderer/global_illumination/probe_clipmap/brick/GPUBrickClipmap.d.ts.map +1 -1
  196. package/src/shade/renderer/global_illumination/probe_clipmap/brick/GPUBrickClipmap.js +49 -36
  197. package/src/shade/renderer/global_illumination/probe_clipmap/brick/chunk_brick_clipmap.d.ts +3 -2
  198. package/src/shade/renderer/global_illumination/probe_clipmap/brick/chunk_brick_clipmap.d.ts.map +1 -1
  199. package/src/shade/renderer/global_illumination/probe_clipmap/brick/chunk_brick_clipmap.js +7 -6
  200. package/src/shade/renderer/global_illumination/probe_clipmap/brick/chunk_brick_clipmap_trace.d.ts +8 -22
  201. package/src/shade/renderer/global_illumination/probe_clipmap/brick/chunk_brick_clipmap_trace.d.ts.map +1 -1
  202. package/src/shade/renderer/global_illumination/probe_clipmap/brick/chunk_brick_clipmap_trace.js +15 -51
  203. package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/MESH_BRICK.d.ts +1 -6
  204. package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/MESH_BRICK.d.ts.map +1 -1
  205. package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/MESH_BRICK.js +6 -13
  206. package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/chunk_mesh_brick_walk.d.ts.map +1 -1
  207. package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/chunk_mesh_brick_walk.js +0 -2
  208. package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/shader_mesh_brick_batch.d.ts +4 -4
  209. package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/shader_mesh_brick_batch.d.ts.map +1 -1
  210. package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/shader_mesh_brick_batch.js +9 -34
  211. package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/shader_mesh_brick_resolve.d.ts +4 -6
  212. package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/shader_mesh_brick_resolve.d.ts.map +1 -1
  213. package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/shader_mesh_brick_resolve.js +15 -39
  214. package/src/shade/renderer/global_illumination/probe_clipmap/brick/shader_brick_clipmap_clear.d.ts +1 -1
  215. package/src/shade/renderer/global_illumination/probe_clipmap/brick/shader_brick_clipmap_clear.js +1 -1
  216. package/src/shade/renderer/global_illumination/probe_clipmap/brick/shader_brick_clipmap_store.d.ts +1 -2
  217. package/src/shade/renderer/global_illumination/probe_clipmap/brick/shader_brick_clipmap_store.d.ts.map +1 -1
  218. package/src/shade/renderer/global_illumination/probe_clipmap/brick/shader_brick_clipmap_store.js +2 -6
  219. package/src/shade/renderer/global_illumination/probe_clipmap/brick/shader_brick_clipmap_take.d.ts +2 -2
  220. package/src/shade/renderer/global_illumination/probe_clipmap/brick/shader_brick_clipmap_take.d.ts.map +1 -1
  221. package/src/shade/renderer/global_illumination/probe_clipmap/brick/shader_brick_clipmap_take.js +5 -2
  222. package/src/shade/renderer/global_illumination/probe_clipmap/debug/ProbeClipmapDebugView.d.ts +5 -1
  223. package/src/shade/renderer/global_illumination/probe_clipmap/debug/ProbeClipmapDebugView.js +16 -2
  224. package/src/shade/renderer/global_illumination/probe_clipmap/debug/graph_probe_clipmap_debug_brick_material.d.ts +45 -0
  225. package/src/shade/renderer/global_illumination/probe_clipmap/debug/graph_probe_clipmap_debug_brick_material.d.ts.map +1 -0
  226. package/src/shade/renderer/global_illumination/probe_clipmap/debug/graph_probe_clipmap_debug_brick_material.js +208 -0
  227. package/src/shade/renderer/global_illumination/probe_clipmap/debug/graph_probe_clipmap_debug_indirect.d.ts +24 -0
  228. package/src/shade/renderer/global_illumination/probe_clipmap/debug/graph_probe_clipmap_debug_indirect.d.ts.map +1 -0
  229. package/src/shade/renderer/global_illumination/probe_clipmap/debug/graph_probe_clipmap_debug_indirect.js +40 -0
  230. package/src/shade/renderer/global_illumination/probe_clipmap/debug/graph_probe_clipmap_debug_mesh_surfaces.d.ts +34 -0
  231. package/src/shade/renderer/global_illumination/probe_clipmap/debug/graph_probe_clipmap_debug_mesh_surfaces.d.ts.map +1 -0
  232. package/src/shade/renderer/global_illumination/probe_clipmap/debug/{graph_probe_clipmap_debug_mesh_cards.js → graph_probe_clipmap_debug_mesh_surfaces.js} +38 -57
  233. package/src/shade/renderer/global_illumination/probe_clipmap/material/GPUBrickMaterial.d.ts +61 -0
  234. package/src/shade/renderer/global_illumination/probe_clipmap/material/GPUBrickMaterial.d.ts.map +1 -0
  235. package/src/shade/renderer/global_illumination/probe_clipmap/material/GPUBrickMaterial.js +193 -0
  236. package/src/shade/renderer/global_illumination/probe_clipmap/material/chunk_brick_material.d.ts +67 -0
  237. package/src/shade/renderer/global_illumination/probe_clipmap/material/chunk_brick_material.d.ts.map +1 -0
  238. package/src/shade/renderer/global_illumination/probe_clipmap/material/chunk_brick_material.js +142 -0
  239. package/src/shade/renderer/global_illumination/probe_clipmap/material/chunk_brick_material_cell.d.ts +32 -0
  240. package/src/shade/renderer/global_illumination/probe_clipmap/material/chunk_brick_material_cell.d.ts.map +1 -0
  241. package/src/shade/renderer/global_illumination/probe_clipmap/material/chunk_brick_material_cell.js +70 -0
  242. package/src/shade/renderer/global_illumination/probe_clipmap/material/chunk_brick_material_store.d.ts +30 -0
  243. package/src/shade/renderer/global_illumination/probe_clipmap/material/chunk_brick_material_store.d.ts.map +1 -0
  244. package/src/shade/renderer/global_illumination/probe_clipmap/material/chunk_brick_material_store.js +71 -0
  245. package/src/shade/renderer/global_illumination/probe_clipmap/material/shader_brick_material_gather.d.ts +26 -0
  246. package/src/shade/renderer/global_illumination/probe_clipmap/material/shader_brick_material_gather.d.ts.map +1 -0
  247. package/src/shade/renderer/global_illumination/probe_clipmap/material/shader_brick_material_gather.js +176 -0
  248. package/src/shade/renderer/global_illumination/probe_clipmap/probe/GPUProbeClipmap.d.ts +23 -12
  249. package/src/shade/renderer/global_illumination/probe_clipmap/probe/GPUProbeClipmap.d.ts.map +1 -1
  250. package/src/shade/renderer/global_illumination/probe_clipmap/probe/GPUProbeClipmap.js +72 -52
  251. package/src/shade/renderer/global_illumination/probe_clipmap/probe/PROBE_CLIPMAP.d.ts +32 -0
  252. package/src/shade/renderer/global_illumination/probe_clipmap/probe/PROBE_CLIPMAP.d.ts.map +1 -1
  253. package/src/shade/renderer/global_illumination/probe_clipmap/probe/PROBE_CLIPMAP.js +37 -0
  254. package/src/shade/renderer/global_illumination/probe_clipmap/probe/PROBE_CLIPMAP_INDIRECT_LOBE.d.ts +10 -0
  255. package/src/shade/renderer/global_illumination/probe_clipmap/probe/PROBE_CLIPMAP_INDIRECT_LOBE.d.ts.map +1 -0
  256. package/src/shade/renderer/global_illumination/probe_clipmap/probe/PROBE_CLIPMAP_INDIRECT_LOBE.js +11 -0
  257. package/src/shade/renderer/global_illumination/probe_clipmap/probe/ProbeClipmapIndirectLobe.d.ts +11 -0
  258. package/src/shade/renderer/global_illumination/probe_clipmap/probe/ProbeClipmapIndirectLobe.d.ts.map +1 -0
  259. package/src/shade/renderer/global_illumination/probe_clipmap/probe/ProbeClipmapIndirectLobe.js +15 -0
  260. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap.d.ts +55 -23
  261. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap.d.ts.map +1 -1
  262. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap.js +134 -69
  263. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_hit_material.d.ts +43 -0
  264. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_hit_material.d.ts.map +1 -0
  265. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_hit_material.js +138 -0
  266. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_indirect_lobe.d.ts +21 -0
  267. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_indirect_lobe.d.ts.map +1 -0
  268. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_indirect_lobe.js +49 -0
  269. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_pick.d.ts +4 -3
  270. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_pick.d.ts.map +1 -1
  271. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_pick.js +19 -24
  272. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_sample_radiance.d.ts +2 -2
  273. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_sample_radiance.d.ts.map +1 -1
  274. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_sample_radiance.js +14 -19
  275. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_select.d.ts +22 -0
  276. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_select.d.ts.map +1 -0
  277. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_select.js +50 -0
  278. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_want.d.ts +4 -4
  279. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_want.d.ts.map +1 -1
  280. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_want.js +8 -8
  281. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_accumulate.d.ts +1 -1
  282. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_accumulate.d.ts.map +1 -1
  283. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_accumulate.js +8 -4
  284. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_admit.js +1 -1
  285. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_bounce.d.ts +5 -4
  286. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_bounce.d.ts.map +1 -1
  287. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_bounce.js +18 -23
  288. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_candidate.d.ts +1 -1
  289. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_candidate.d.ts.map +1 -1
  290. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_candidate.js +4 -2
  291. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_diffuse.d.ts.map +1 -1
  292. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_diffuse.js +4 -6
  293. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_indirect_lighting.d.ts +2 -0
  294. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_indirect_lighting.d.ts.map +1 -1
  295. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_indirect_lighting.js +9 -8
  296. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_light.d.ts +1 -1
  297. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_light.js +2 -2
  298. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_project.d.ts +4 -3
  299. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_project.d.ts.map +1 -1
  300. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_project.js +14 -13
  301. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_shade.d.ts +7 -4
  302. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_shade.d.ts.map +1 -1
  303. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_shade.js +30 -26
  304. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_trace.d.ts +6 -6
  305. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_trace.d.ts.map +1 -1
  306. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_trace.js +19 -21
  307. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_want.d.ts.map +1 -1
  308. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_want.js +6 -2
  309. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_want_hits.d.ts +2 -2
  310. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_want_hits.js +6 -6
  311. package/src/shade/renderer/gpu_primitive/hash_table/chunk_generate_next_linear_congruential_index.d.ts +14 -0
  312. package/src/shade/renderer/gpu_primitive/hash_table/chunk_generate_next_linear_congruential_index.d.ts.map +1 -0
  313. package/src/shade/renderer/gpu_primitive/hash_table/chunk_generate_next_linear_congruential_index.js +22 -0
  314. package/src/shade/renderer/gpu_primitive/hash_table/chunk_hash_table_atomic.d.ts +37 -0
  315. package/src/shade/renderer/gpu_primitive/hash_table/chunk_hash_table_atomic.d.ts.map +1 -0
  316. package/src/shade/renderer/gpu_primitive/hash_table/chunk_hash_table_atomic.js +122 -0
  317. package/src/shade/renderer/gpu_primitive/hash_table/chunk_hash_table_get.d.ts.map +1 -1
  318. package/src/shade/renderer/gpu_primitive/hash_table/chunk_hash_table_get.js +1 -11
  319. package/src/shade/renderer/gpu_primitive/hash_table/cpu_build_hash_table.d.ts +8 -0
  320. package/src/shade/renderer/gpu_primitive/hash_table/cpu_build_hash_table.d.ts.map +1 -1
  321. package/src/shade/renderer/gpu_primitive/hash_table/cpu_build_hash_table.js +6 -4
  322. package/src/shade/renderer/light/environment/shader_downsample_environment_map.d.ts.map +1 -1
  323. package/src/shade/renderer/light/environment/shader_downsample_environment_map.js +5 -1
  324. package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
  325. package/src/shade/renderer/material/resident/GPUResidentMaterialContext.d.ts +1 -1
  326. package/src/shade/renderer/material/resident/GPUResidentMaterialContext.d.ts.map +1 -1
  327. package/src/shade/renderer/material/resident/GPUResidentMaterialContext.js +2 -18
  328. package/src/shade/renderer/material/resident/NEUTRAL_SURFACE.d.ts +17 -0
  329. package/src/shade/renderer/material/resident/NEUTRAL_SURFACE.d.ts.map +1 -0
  330. package/src/shade/renderer/material/resident/NEUTRAL_SURFACE.js +16 -0
  331. package/src/shade/renderer/path_tracer/shader/INDIRECT_TEXTURE_FILTER.d.ts +1 -1
  332. package/src/shade/renderer/path_tracer/shader/INDIRECT_TEXTURE_FILTER.js +1 -1
  333. package/src/shade/renderer/path_tracer/shader/IndirectTextureFilter.js +1 -1
  334. package/src/shade/renderer/path_tracer/shader/chunk_beam_texture_level.d.ts +20 -0
  335. package/src/shade/renderer/path_tracer/shader/chunk_beam_texture_level.d.ts.map +1 -0
  336. package/src/shade/renderer/path_tracer/shader/chunk_beam_texture_level.js +65 -0
  337. package/src/shade/renderer/postprocess/eye/GPUCameraExposureManager.d.ts +26 -8
  338. package/src/shade/renderer/postprocess/eye/GPUCameraExposureManager.d.ts.map +1 -1
  339. package/src/shade/renderer/postprocess/eye/GPUCameraExposureManager.js +170 -142
  340. package/src/shade/renderer/postprocess/nss/NSS.d.ts +1 -1
  341. package/src/shade/renderer/rasterize/forward/chunk_forward_sample_indirect_probe_clipmap.d.ts +1 -1
  342. package/src/shade/renderer/rasterize/forward/chunk_forward_sample_indirect_probe_clipmap.d.ts.map +1 -1
  343. package/src/shade/renderer/rasterize/forward/chunk_forward_sample_indirect_probe_clipmap.js +5 -8
  344. package/src/shade/renderer/scene/GPUSceneContext.d.ts +1 -1
  345. package/src/shade/renderer/scene/GPUSceneContext.js +1 -1
  346. package/src/shade/renderer/shader/chunk/filter/chunk_multiscale_mean.d.ts +15 -4
  347. package/src/shade/renderer/shader/chunk/filter/chunk_multiscale_mean.d.ts.map +1 -1
  348. package/src/shade/renderer/shader/chunk/filter/chunk_multiscale_mean.js +33 -7
  349. package/src/shade/renderer/shader/chunk/material/albedo_compress.d.ts +12 -0
  350. package/src/shade/renderer/shader/chunk/material/albedo_compress.d.ts.map +1 -0
  351. package/src/shade/renderer/shader/chunk/material/albedo_compress.js +26 -0
  352. package/src/shade/renderer/shader/chunk/material/chunk_albedo_compress.d.ts +16 -0
  353. package/src/shade/renderer/shader/chunk/material/chunk_albedo_compress.d.ts.map +1 -0
  354. package/src/shade/renderer/shader/chunk/material/chunk_albedo_compress.js +22 -0
  355. package/src/shade/renderer/shader/chunk/material/chunk_albedo_uncompress.d.ts +15 -0
  356. package/src/shade/renderer/shader/chunk/material/chunk_albedo_uncompress.d.ts.map +1 -0
  357. package/src/shade/renderer/shader/chunk/material/chunk_albedo_uncompress.js +23 -0
  358. package/src/shade/renderer/shader/chunk/material/chunk_metal_rough_compress.d.ts +16 -0
  359. package/src/shade/renderer/shader/chunk/material/chunk_metal_rough_compress.d.ts.map +1 -0
  360. package/src/shade/renderer/shader/chunk/material/chunk_metal_rough_compress.js +25 -0
  361. package/src/shade/renderer/shader/chunk/material/chunk_metal_rough_uncompress.d.ts +25 -0
  362. package/src/shade/renderer/shader/chunk/material/chunk_metal_rough_uncompress.d.ts.map +1 -0
  363. package/src/shade/renderer/shader/chunk/material/chunk_metal_rough_uncompress.js +36 -0
  364. package/src/shade/renderer/shader/chunk/material/metal_rough_compress.d.ts +11 -0
  365. package/src/shade/renderer/shader/chunk/material/metal_rough_compress.d.ts.map +1 -0
  366. package/src/shade/renderer/shader/chunk/material/metal_rough_compress.js +38 -0
  367. package/src/shade/renderer/shader/chunk/noise/chunk_sobol_sample_vec2.d.ts +40 -0
  368. package/src/shade/renderer/shader/chunk/noise/chunk_sobol_sample_vec2.d.ts.map +1 -0
  369. package/src/shade/renderer/shader/chunk/noise/chunk_sobol_sample_vec2.js +75 -0
  370. package/src/shade/renderer/shader/chunk/noise/chunk_vdc_radical_inverse.d.ts.map +1 -1
  371. package/src/shade/renderer/shader/chunk/noise/chunk_vdc_radical_inverse.js +3 -1
  372. package/src/shade/renderer/shader/chunk/random/chunk_hash_lk.d.ts +28 -0
  373. package/src/shade/renderer/shader/chunk/random/chunk_hash_lk.d.ts.map +1 -0
  374. package/src/shade/renderer/shader/chunk/random/chunk_hash_lk.js +41 -0
  375. package/src/shade/renderer/shader/chunk/spherical_harmonics/chunk_sh3_color_add_scaled.d.ts +12 -0
  376. package/src/shade/renderer/shader/chunk/spherical_harmonics/chunk_sh3_color_add_scaled.d.ts.map +1 -0
  377. package/src/shade/renderer/shader/chunk/spherical_harmonics/chunk_sh3_color_add_scaled.js +24 -0
  378. package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot.d.ts +20 -0
  379. package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot.d.ts.map +1 -0
  380. package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot.js +35 -0
  381. package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot_compress.d.ts +28 -0
  382. package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot_compress.d.ts.map +1 -0
  383. package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot_compress.js +79 -0
  384. package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot_fit.d.ts +25 -0
  385. package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot_fit.d.ts.map +1 -0
  386. package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot_fit.js +89 -0
  387. package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot_uncompress.d.ts +31 -0
  388. package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot_uncompress.d.ts.map +1 -0
  389. package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot_uncompress.js +66 -0
  390. package/src/shade/renderer/shader/chunk/subgroup/chunk_subgroup_atomic_add.d.ts.map +1 -1
  391. package/src/shade/renderer/shader/chunk/subgroup/chunk_subgroup_atomic_add.js +2 -0
  392. package/src/shade/renderer/shader/chunk/subgroup/chunk_subgroup_atomic_load.d.ts +17 -0
  393. package/src/shade/renderer/shader/chunk/subgroup/chunk_subgroup_atomic_load.d.ts.map +1 -0
  394. package/src/shade/renderer/shader/chunk/subgroup/chunk_subgroup_atomic_load.js +34 -0
  395. package/src/shade/renderer/volumetrics/chunk_frustum_unit_box_coverage_multisample.d.ts +18 -0
  396. package/src/shade/renderer/volumetrics/chunk_frustum_unit_box_coverage_multisample.d.ts.map +1 -1
  397. package/src/shade/renderer/volumetrics/chunk_frustum_unit_box_coverage_multisample.js +31 -23
  398. package/src/shade/renderer/volumetrics/irradiance_clipmap/GPUIrradianceClipmap.d.ts +3 -2
  399. package/src/shade/renderer/volumetrics/irradiance_clipmap/GPUIrradianceClipmap.d.ts.map +1 -1
  400. package/src/shade/renderer/volumetrics/irradiance_clipmap/GPUIrradianceClipmap.js +4 -0
  401. package/src/shade/renderer/volumetrics/irradiance_clipmap/chunk_irradiance_clipmap_gi_sample.d.ts +2 -5
  402. package/src/shade/renderer/volumetrics/irradiance_clipmap/chunk_irradiance_clipmap_gi_sample.d.ts.map +1 -1
  403. package/src/shade/renderer/volumetrics/irradiance_clipmap/chunk_irradiance_clipmap_gi_sample.js +3 -20
  404. package/src/shade/renderer/volumetrics/shader_volumetrics_build_participating_media.d.ts.map +1 -1
  405. package/src/shade/renderer/volumetrics/shader_volumetrics_build_participating_media.js +5 -6
  406. package/src/shade/renderer/water/chunk_water_gi.d.ts +1 -1
  407. package/src/shade/renderer/water/chunk_water_gi.d.ts.map +1 -1
  408. package/src/shade/renderer/water/chunk_water_gi.js +6 -8
  409. package/src/shade/renderer/water/query/GPUWaterQueries.d.ts +1 -1
  410. package/src/shade/renderer/wind/GPUSceneWind.d.ts +1 -1
  411. package/src/shade/wgsl/emulator/WGSLLanguageCore.d.ts.map +1 -1
  412. package/src/shade/wgsl/emulator/WGSLLanguageCore.js +76 -32
  413. package/src/core/math/hash/squirrel3.d.ts +0 -17
  414. package/src/core/math/hash/squirrel3.d.ts.map +0 -1
  415. package/src/core/math/hash/squirrel3.js +0 -30
  416. package/src/shade/renderer/geometry/sdf/cards/GPUMeshCardSets.d.ts +0 -213
  417. package/src/shade/renderer/geometry/sdf/cards/GPUMeshCardSets.d.ts.map +0 -1
  418. package/src/shade/renderer/geometry/sdf/cards/GPUMeshCardSets.js +0 -1468
  419. package/src/shade/renderer/geometry/sdf/cards/MESH_CARDS.d.ts +0 -82
  420. package/src/shade/renderer/geometry/sdf/cards/MESH_CARDS.d.ts.map +0 -1
  421. package/src/shade/renderer/geometry/sdf/cards/MESH_CARDS.js +0 -127
  422. package/src/shade/renderer/geometry/sdf/cards/MESH_CARD_RESOURCES.d.ts +0 -24
  423. package/src/shade/renderer/geometry/sdf/cards/MESH_CARD_RESOURCES.d.ts.map +0 -1
  424. package/src/shade/renderer/geometry/sdf/cards/MESH_CARD_RESOURCES.js +0 -29
  425. package/src/shade/renderer/geometry/sdf/cards/MESH_CARD_SET_STRUCT.d.ts +0 -12
  426. package/src/shade/renderer/geometry/sdf/cards/MESH_CARD_SET_STRUCT.d.ts.map +0 -1
  427. package/src/shade/renderer/geometry/sdf/cards/MESH_CARD_SET_STRUCT.js +0 -31
  428. package/src/shade/renderer/geometry/sdf/cards/MeshCardCaptureMode.d.ts +0 -11
  429. package/src/shade/renderer/geometry/sdf/cards/MeshCardCaptureMode.d.ts.map +0 -1
  430. package/src/shade/renderer/geometry/sdf/cards/MeshCardCaptureMode.js +0 -21
  431. package/src/shade/renderer/geometry/sdf/cards/chunk_mesh_card_surface.d.ts +0 -29
  432. package/src/shade/renderer/geometry/sdf/cards/chunk_mesh_card_surface.d.ts.map +0 -1
  433. package/src/shade/renderer/geometry/sdf/cards/chunk_mesh_card_surface.js +0 -179
  434. package/src/shade/renderer/geometry/sdf/cards/chunk_mesh_cards.d.ts +0 -17
  435. package/src/shade/renderer/geometry/sdf/cards/chunk_mesh_cards.d.ts.map +0 -1
  436. package/src/shade/renderer/geometry/sdf/cards/chunk_mesh_cards.js +0 -107
  437. package/src/shade/renderer/geometry/sdf/cards/mesh_cards_raster_pass_descriptor.d.ts +0 -65
  438. package/src/shade/renderer/geometry/sdf/cards/mesh_cards_raster_pass_descriptor.d.ts.map +0 -1
  439. package/src/shade/renderer/geometry/sdf/cards/mesh_cards_raster_pass_descriptor.js +0 -376
  440. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_capture.d.ts +0 -40
  441. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_capture.d.ts.map +0 -1
  442. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_capture.js +0 -301
  443. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_compact.d.ts +0 -19
  444. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_compact.d.ts.map +0 -1
  445. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_compact.js +0 -61
  446. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_histogram.d.ts +0 -18
  447. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_histogram.d.ts.map +0 -1
  448. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_histogram.js +0 -102
  449. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_log.d.ts +0 -15
  450. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_log.d.ts.map +0 -1
  451. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_log.js +0 -65
  452. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_merge.d.ts +0 -22
  453. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_merge.d.ts.map +0 -1
  454. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_merge.js +0 -136
  455. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_pages.d.ts +0 -20
  456. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_pages.d.ts.map +0 -1
  457. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_pages.js +0 -104
  458. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_raster_args.d.ts +0 -20
  459. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_raster_args.d.ts.map +0 -1
  460. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_raster_args.js +0 -80
  461. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_raster_scatter.d.ts +0 -18
  462. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_raster_scatter.d.ts.map +0 -1
  463. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_raster_scatter.js +0 -113
  464. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_split.d.ts +0 -30
  465. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_split.d.ts.map +0 -1
  466. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_split.js +0 -146
  467. package/src/shade/renderer/global_illumination/probe_clipmap/debug/graph_probe_clipmap_debug_mesh_cards.d.ts +0 -34
  468. package/src/shade/renderer/global_illumination/probe_clipmap/debug/graph_probe_clipmap_debug_mesh_cards.d.ts.map +0 -1
  469. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_hit_surface.d.ts +0 -31
  470. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_hit_surface.d.ts.map +0 -1
  471. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_hit_surface.js +0 -82
  472. package/src/shade/renderer/shader/chunk/random/chunk_hash_squirrel3.d.ts +0 -12
  473. package/src/shade/renderer/shader/chunk/random/chunk_hash_squirrel3.d.ts.map +0 -1
  474. package/src/shade/renderer/shader/chunk/random/chunk_hash_squirrel3.js +0 -30
@@ -1,301 +0,0 @@
1
- import { INDIRECT_MATERIAL_ARRAY_TYPE } from "../../../material/resident/INDIRECT_MATERIAL_ARRAY_TYPE.js";
2
- import {
3
- RESIDENT_MATERIAL_TEXTURE_LEVEL_COUNT,
4
- RESIDENT_MATERIAL_TEXTURE_RESOLUTION
5
- } from "../../../material/resident/RESIDENT_MATERIAL_TEXTURE_LAYOUT.js";
6
- import { chunk_sample_material_alpha, chunk_sample_material_data } from "../../../path_tracer/shader/chunk_sample_material_data.js";
7
- import { INDIRECT_TEXTURE_FILTER } from "../../../path_tracer/shader/INDIRECT_TEXTURE_FILTER.js";
8
- import { IndirectTextureFilter } from "../../../path_tracer/shader/IndirectTextureFilter.js";
9
- import { BVH_TRAVERSAL_STACK_SIZE } from "../../../shader/chunk/bvh/BVH_TRAVERSAL_STACK_SIZE.js";
10
- import { chunk_geometry_read_triangle_vertices } from "../../../shader/chunk/geometry/format/chunk_geometry_read_triangle_vertices.js";
11
- import { MAT4_IDENTITY_DEFINITION } from "../../../shader/chunk/geometry/mat4/MAT4_IDENTITY_DEFINITION.js";
12
- import { chunk_ray_query_blas_nearest } from "../../../shader/chunk/geometry/ray/chunk_ray_query_blas_nearest.js";
13
- import { RAY_STRUCT } from "../../../shader/chunk/geometry/ray/RAY_STRUCT.js";
14
- import { chunk_index_to_grid2d } from "../../../shader/chunk/grid/chunk_index_to_grid2d.js";
15
- import { chunk_random } from "../../../shader/chunk/random/chunk_random.js";
16
- import { chunk_random_initialize } from "../../../shader/chunk/random/chunk_random_initialize.js";
17
- import { TRIANGLE_VERTICES_STRUCT } from "../../../shader/chunk/geometry/triangle/TRIANGLE_VERTICES_STRUCT.js";
18
- import { CodeChunk } from "../../../shader/compiler/CodeChunk.js";
19
- import { ShaderSwitchSet } from "../../../shader/compiler/ShaderSwitchSet.js";
20
- import { ComputeShader } from "../../../shader/ComputeShader.js";
21
- import { ShaderResourceSetDescriptor } from "../../../shader/resource/ShaderResourceSetDescriptor.js";
22
- import { u32, vec4u } 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 { mesh_sdf_add_blas_resources } from "../bake/shader_mesh_sdf_classify.js";
26
- import { MESH_SDF_BAKE_WORKGROUP_SIZE } from "../bake/MESH_SDF_BAKE.js";
27
- import { MESH_SDF_HEADERS_RESOURCE, MESH_SDF_INDIRECTION_RESOURCE } from "../MESH_SDF_RESOURCES.js";
28
- import { chunk_mesh_cards } from "./chunk_mesh_cards.js";
29
- import { MESH_CARD_SET_STRUCT } from "./MESH_CARD_SET_STRUCT.js";
30
-
31
- /**
32
- * Transparent hits a capture ray steps past, at most, before the texel is empty.
33
- * @type {number}
34
- */
35
- export const MESH_CARD_ALPHA_CONTINUATIONS = 4;
36
-
37
- /**
38
- * @type {WebGPUStruct}
39
- */
40
- export const MESH_CARDS_CAPTURE_SETTINGS = WebGPUStruct.from({
41
- /** runs in `mesh_card_runs`, a stretch of one card set's pages each */
42
- run_count: u32,
43
- /** texels over every run: the threads that do work */
44
- thread_count: u32,
45
- /** workgroups along x, the rest folded into y */
46
- groups_x: u32,
47
- }, "MeshCardsCaptureSettings");
48
-
49
- const resources = new ShaderResourceSetDescriptor();
50
-
51
- resources.setImmediate("settings", MESH_CARDS_CAPTURE_SETTINGS);
52
-
53
- resources.createGroup()
54
- .add(MESH_SDF_HEADERS_RESOURCE)
55
- .add(MESH_SDF_INDIRECTION_RESOURCE)
56
- .addStorageBuffer("mesh_card_sets", WebGPUArray.from(MESH_CARD_SET_STRUCT))
57
- // (first thread, card set, first page, 0)
58
- .addStorageBuffer("mesh_card_runs", WebGPUArray.from(vec4u))
59
- .addStorageTexture("mesh_card_albedo", "rgba8unorm", "2d", "write-only")
60
- .addStorageTexture("mesh_card_emissive", "rgba8unorm", "2d", "write-only");
61
-
62
- resources.createGroup({ label: "materials" })
63
- .addUniform("materials", INDIRECT_MATERIAL_ARRAY_TYPE)
64
- .addTexture("textures", "unfilterable-float", "2d-array", false);
65
-
66
- mesh_sdf_add_blas_resources(resources.createGroup());
67
-
68
- /**
69
- * Card capture (PROBE_CLIPMAP_PROPOSAL_2026_10_27.md §6.5): a thread a texel of each page captured
70
- * this frame, the frame's pages being stretches of card sets, a run each in `mesh_card_runs`.
71
- *
72
- * 1. A ray in the geometry's local space starts on the card's near face, at the texel — the corner
73
- * lattice of the bricks' faces, as a brick's texels sit on its voxels — and runs along the card's
74
- * direction through its slab, t ≤ the slab's depth, by `ray_query_blas_nearest`.
75
- * 2. A hit is opaque with probability its opacity (`sample_material_alpha`), as the path tracer takes
76
- * alpha. A transparent draw steps the ray past the hit, MESH_CARD_ALPHA_CONTINUATIONS times at
77
- * most; past that the texel is empty.
78
- * 3. At the opaque hit, `sample_material_data` with the material's resident row and an identity
79
- * transform, the card being in local space.
80
- *
81
- * Both read the material's textures at the texel's footprint (`mesh_card_texture_level`), filtered
82
- * exactly ({@link IndirectTextureFilter.Exact}): nothing averages a card texel after it is stored, so a
83
- * single tap would be kept as the texel, and a tap landing on a thin feature of the texture would put
84
- * it in one row of texels and not the next.
85
- *
86
- * The random state is seeded from the card set and the texel, which fixes every draw: the alpha's and
87
- * the material's dither. A recapture of an unchanged material therefore writes the same bytes.
88
- *
89
- * The albedo plane holds √(albedo × (1 − metalness)), Lumen's diffuse colour as UE stores it, and
90
- * the hit's depth through the slab mapped onto [1/255, 1]. The emissive plane holds emissive / s_e.
91
- * A texel whose ray found nothing stores 0 throughout.
92
- *
93
- * @type {ComputeShader}
94
- */
95
- export const shader_mesh_cards_capture = ComputeShader.from({
96
- label: "Mesh Cards Capture",
97
- resources,
98
- body: CodeChunk.from(
99
- //language=WGSL
100
- `
101
- // The texture level a card texel reads a triangle's material at: its footprint, the card's texel steps
102
- // carried along the card's direction onto the triangle's plane and through the triangle's uv per
103
- // position, in texels of a slot's level 0. For a step s, direction d and normal n that is
104
- // s - d (n·s)/(n·d) on the plane, taken here times n·d, so a triangle turning edge-on, whose footprint
105
- // grows without bound, reaches the last level with nothing divided by 0, as a raster's would.
106
- fn mesh_card_texture_level(
107
- triangle: ${TRIANGLE_VERTICES_STRUCT.wgsl_ref},
108
- along: vec3<f32>,
109
- step_u: vec3<f32>,
110
- step_v: vec3<f32>,
111
- ) -> f32 {
112
- let edge_1 = triangle.b.position - triangle.a.position;
113
- let edge_2 = triangle.c.position - triangle.a.position;
114
- let normal = cross(edge_1, edge_2);
115
-
116
- // an offset in the plane is a·edge_1 + b·edge_2, a and b its dots with these
117
- let dual_1 = cross(edge_2, normal) / dot(normal, normal);
118
- let dual_2 = cross(normal, edge_1) / dot(normal, normal);
119
-
120
- let uv_1 = triangle.b.uv - triangle.a.uv;
121
- let uv_2 = triangle.c.uv - triangle.a.uv;
122
-
123
- let facing = dot(normal, along);
124
-
125
- let on_plane_u = facing * step_u - along * dot(normal, step_u);
126
- let on_plane_v = facing * step_v - along * dot(normal, step_v);
127
-
128
- let uv_step_u = dot(on_plane_u, dual_1) * uv_1 + dot(on_plane_u, dual_2) * uv_2;
129
- let uv_step_v = dot(on_plane_v, dual_1) * uv_1 + dot(on_plane_v, dual_2) * uv_2;
130
-
131
- let span = ${RESIDENT_MATERIAL_TEXTURE_RESOLUTION}.0 * max(length(uv_step_u), length(uv_step_v));
132
- let reach = abs(facing);
133
-
134
- // a footprint of a slot or more, edge-on included, is the last level
135
- return select(
136
- ${RESIDENT_MATERIAL_TEXTURE_LEVEL_COUNT - 1}.0,
137
- log2(max(span, reach) / reach),
138
- span < ${RESIDENT_MATERIAL_TEXTURE_RESOLUTION}.0 * reach
139
- );
140
- }
141
-
142
- @compute @workgroup_size(${MESH_SDF_BAKE_WORKGROUP_SIZE})
143
- fn main(
144
- @builtin(workgroup_id) workgroup_id: vec3<u32>,
145
- @builtin(local_invocation_index) lane: u32,
146
- ) {
147
- let thread = (workgroup_id.y * settings.groups_x + workgroup_id.x) * ${MESH_SDF_BAKE_WORKGROUP_SIZE}u + lane;
148
-
149
- if (thread >= settings.thread_count) {
150
- return;
151
- }
152
-
153
- // the run the thread falls in: the last whose first thread is at or below it
154
- var low = 0u;
155
- var high = settings.run_count;
156
-
157
- while (high - low > 1u) {
158
- let middle = (low + high) / 2u;
159
-
160
- if (mesh_card_runs[middle].x <= thread) {
161
- low = middle;
162
- } else {
163
- high = middle;
164
- }
165
- }
166
-
167
- let run = mesh_card_runs[low];
168
- let card_set = mesh_card_sets[run.y];
169
-
170
- let page_texels = MESH_CARD_PAGE_TEXELS * MESH_CARD_PAGE_TEXELS;
171
- let within = thread - run.x;
172
- let page = run.z + within / page_texels;
173
- let texel = vec2<u32>(within % MESH_CARD_PAGE_TEXELS, (within / MESH_CARD_PAGE_TEXELS) % MESH_CARD_PAGE_TEXELS);
174
-
175
- let geometry = card_set.geometry;
176
- let header = mesh_sdf_headers[geometry];
177
- let columns = mesh_sdf_indirection[header.cards + MESH_CARD_LAYOUT_COLUMN_COUNT];
178
-
179
- // the page list follows the tables
180
- let listed = mesh_sdf_indirection[header.cards + MESH_CARD_LAYOUT_TABLES + columns + page];
181
- let card = listed >> 16u;
182
- let column = vec2<u32>(listed & 0xffu, (listed >> 8u) & 0xffu);
183
-
184
- let record = header.cards + MESH_CARD_LAYOUT_RECORDS + card * MESH_CARD_RECORD_WORDS;
185
- let direction = mesh_sdf_indirection[record + MESH_CARD_RECORD_DIRECTION];
186
- let near = mesh_sdf_indirection[record + MESH_CARD_RECORD_NEAR];
187
- let far = mesh_sdf_indirection[record + MESH_CARD_RECORD_FAR];
188
-
189
- let axes = mesh_card_axes(direction);
190
- let toward_plus = (direction & 1u) == 0u;
191
- let brick_span = f32(MESH_SDF_BRICK_VOXELS) * header.voxel;
192
-
193
- // the texel on the card's near face: layer 'near' counts from the grid's +axis end for an odd direction
194
- var start = header.origin;
195
-
196
- start[axes.y] += f32(column.x * MESH_SDF_BRICK_VOXELS + texel.x) * header.voxel;
197
- start[axes.z] += f32(column.y * MESH_SDF_BRICK_VOXELS + texel.y) * header.voxel;
198
- start[axes.x] += select(f32(header.bricks[axes.x] - near), f32(near), toward_plus) * brick_span;
199
-
200
- var along = vec3<f32>(0.0);
201
-
202
- along[axes.x] = select(-1.0, 1.0, toward_plus);
203
-
204
- // the card's texel steps, a voxel each
205
- var step_u = vec3<f32>(0.0);
206
- var step_v = vec3<f32>(0.0);
207
-
208
- step_u[axes.y] = header.voxel;
209
- step_v[axes.z] = header.voxel;
210
-
211
- let depth = f32(far - near) * brick_span;
212
-
213
- random_initialize(vec3<u32>(page, texel), vec3<u32>(run.y, geometry, 0u));
214
-
215
- var ray: ${RAY_STRUCT.wgsl_ref};
216
-
217
- ray.origin = start;
218
- ray.direction = along;
219
- ray.tmax = depth;
220
-
221
- let material = materials[card_set.material];
222
-
223
- var stack: array<u32, ${BVH_TRAVERSAL_STACK_SIZE}>;
224
-
225
- var found = false;
226
- var travelled = 0.0;
227
- var hit_t = 0.0;
228
- var lambda = vec3<f32>(0.0);
229
- var triangle_index = 0u;
230
- var texture_level = 0.0;
231
-
232
- for (var step = 0u; step <= ${MESH_CARD_ALPHA_CONTINUATIONS}u; step++) {
233
- let hit = ray_query_blas_nearest(ray, geometry, &stack, 0u);
234
-
235
- if (hit.t < 0.0) {
236
- break;
237
- }
238
-
239
- let triangle = geometry_read_triangle_vertices(geometries[geometry], hit.triangle);
240
- let at = vec3<f32>(1.0 - hit.barycentrics.x - hit.barycentrics.y, hit.barycentrics.x, hit.barycentrics.y);
241
- let level = mesh_card_texture_level(triangle, along, step_u, step_v);
242
- let surface = sample_material_alpha(material, triangle, at, MAT4_IDENTITY, ray.direction, level);
243
-
244
- if (random() < surface.opacity) {
245
- found = true;
246
- hit_t = travelled + hit.t;
247
- lambda = at;
248
- triangle_index = hit.triangle;
249
- texture_level = level;
250
- break;
251
- }
252
-
253
- // past the transparent hit, by a sliver of a voxel
254
- let skip = hit.t + 1e-3 * header.voxel;
255
-
256
- ray.origin += ray.direction * skip;
257
- ray.tmax -= skip;
258
- travelled += skip;
259
-
260
- if (ray.tmax <= 0.0) {
261
- break;
262
- }
263
- }
264
-
265
- var albedo_plane = vec4<f32>(0.0);
266
- var emissive_plane = vec4<f32>(0.0);
267
-
268
- if (found) {
269
- let triangle = geometry_read_triangle_vertices(geometries[geometry], triangle_index);
270
- let data = sample_material_data(ray, material, triangle, lambda, MAT4_IDENTITY, texture_level);
271
-
272
- let diffuse = data.albedo * (1.0 - data.metalness);
273
-
274
- albedo_plane = vec4<f32>(sqrt(max(diffuse, vec3<f32>(0.0))), (1.0 + 254.0 * saturate(hit_t / depth)) / 255.0);
275
-
276
- if (card_set.emissive_scale > 0.0) {
277
- emissive_plane = vec4<f32>(data.emissive / card_set.emissive_scale, 0.0);
278
- }
279
- }
280
-
281
- let tiles_per_row = textureDimensions(mesh_card_albedo).x / MESH_CARD_PAGE_TEXELS;
282
- let origin = index_to_grid2d(card_set.page_base + page, tiles_per_row) * MESH_CARD_PAGE_TEXELS + texel;
283
-
284
- textureStore(mesh_card_albedo, origin, albedo_plane);
285
- textureStore(mesh_card_emissive, origin, emissive_plane);
286
- }
287
- `, [
288
- MAT4_IDENTITY_DEFINITION,
289
- RAY_STRUCT.declaration_chunk,
290
- TRIANGLE_VERTICES_STRUCT.declaration_chunk,
291
- MESH_CARD_SET_STRUCT.declaration_chunk,
292
- chunk_mesh_cards,
293
- chunk_index_to_grid2d,
294
- chunk_random,
295
- chunk_random_initialize,
296
- chunk_ray_query_blas_nearest,
297
- chunk_geometry_read_triangle_vertices,
298
- chunk_sample_material_alpha,
299
- chunk_sample_material_data,
300
- ]),
301
- }).variant(ShaderSwitchSet.EMPTY.with(INDIRECT_TEXTURE_FILTER, IndirectTextureFilter.Exact));
@@ -1,19 +0,0 @@
1
- /**
2
- * @type {WebGPUStruct}
3
- */
4
- export const MESH_CARDS_COMPACT_SETTINGS: WebGPUStruct;
5
- /**
6
- * A placed card layout moved into the range that fits it (PROBE_CLIPMAP_PROPOSAL_2026_10_27.md
7
- * §6.5), a thread a word.
8
- *
9
- * Placement runs in a range sized for what any layout of the geometry's grid could be; only once its
10
- * log record is read back does the host know the columns and pages it took, and give the geometry a
11
- * range of that size. The two ranges never overlap: the source is held until the frame after this
12
- * pass runs.
13
- *
14
- * @type {ComputeShader}
15
- */
16
- export const shader_mesh_cards_compact: ComputeShader;
17
- import { WebGPUStruct } from "../../../shader/type/WebGPUStruct.js";
18
- import { ComputeShader } from "../../../shader/ComputeShader.js";
19
- //# sourceMappingURL=shader_mesh_cards_compact.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shader_mesh_cards_compact.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_compact.js"],"names":[],"mappings":"AAQA;;GAEG;AACH,0CAFU,YAAY,CAWS;AAS/B;;;;;;;;;;GAUG;AACH,wCAFU,aAAa,CAsBpB;6BAxD0B,sCAAsC;8BAHrC,kCAAkC"}
@@ -1,61 +0,0 @@
1
- import { CodeChunk } from "../../../shader/compiler/CodeChunk.js";
2
- import { ComputeShader } from "../../../shader/ComputeShader.js";
3
- import { ShaderResourceSetDescriptor } from "../../../shader/resource/ShaderResourceSetDescriptor.js";
4
- import { u32 } from "../../../shader/type/WEBGPU_WGSL_PRIMITIVE_TYPES.js";
5
- import { WebGPUStruct } from "../../../shader/type/WebGPUStruct.js";
6
- import { MESH_SDF_BAKE_WORKGROUP_SIZE } from "../bake/MESH_SDF_BAKE.js";
7
- import { MESH_SDF_ARENA_RESOURCE } from "../bake/chunk_mesh_sdf_bake.js";
8
-
9
- /**
10
- * @type {WebGPUStruct}
11
- */
12
- export const MESH_CARDS_COMPACT_SETTINGS = WebGPUStruct.from({
13
- /** the placed layout's first word, in the range placement had */
14
- source: u32,
15
- /** its first word in the range it keeps */
16
- destination: u32,
17
- /** its words: the header, the records, the column tables and the page list */
18
- count: u32,
19
- /** workgroups along x, the rest folded into y */
20
- groups_x: u32,
21
- }, "MeshCardsCompactSettings");
22
-
23
- const resources = new ShaderResourceSetDescriptor();
24
-
25
- resources.setImmediate("settings", MESH_CARDS_COMPACT_SETTINGS);
26
-
27
- resources.createGroup()
28
- .add(MESH_SDF_ARENA_RESOURCE);
29
-
30
- /**
31
- * A placed card layout moved into the range that fits it (PROBE_CLIPMAP_PROPOSAL_2026_10_27.md
32
- * §6.5), a thread a word.
33
- *
34
- * Placement runs in a range sized for what any layout of the geometry's grid could be; only once its
35
- * log record is read back does the host know the columns and pages it took, and give the geometry a
36
- * range of that size. The two ranges never overlap: the source is held until the frame after this
37
- * pass runs.
38
- *
39
- * @type {ComputeShader}
40
- */
41
- export const shader_mesh_cards_compact = ComputeShader.from({
42
- label: "Mesh Cards Compact",
43
- resources,
44
- body: CodeChunk.from(
45
- //language=WGSL
46
- `
47
- @compute @workgroup_size(${MESH_SDF_BAKE_WORKGROUP_SIZE})
48
- fn main(
49
- @builtin(workgroup_id) workgroup_id: vec3<u32>,
50
- @builtin(local_invocation_index) lane: u32,
51
- ) {
52
- let word = (workgroup_id.y * settings.groups_x + workgroup_id.x) * ${MESH_SDF_BAKE_WORKGROUP_SIZE}u + lane;
53
-
54
- if (word >= settings.count) {
55
- return;
56
- }
57
-
58
- atomicStore(&mesh_sdf_indirection[settings.destination + word], atomicLoad(&mesh_sdf_indirection[settings.source + word]));
59
- }
60
- `),
61
- });
@@ -1,18 +0,0 @@
1
- /**
2
- * @type {WebGPUStruct}
3
- */
4
- export const MESH_CARDS_HISTOGRAM_SETTINGS: WebGPUStruct;
5
- /**
6
- * Card placement, step 1 (PROBE_CLIPMAP_PROPOSAL_2026_10_27.md §6.5): a thread a column of each of the
7
- * six directions, over a resident geometry's level-0 occupancy — a brick is occupied when its entry
8
- * holds a slot. Walking its column along the direction, a thread finds every run start: an occupied
9
- * brick at layer z whose predecessor is empty or outside the grid. A run start's m is the layer after
10
- * the previous run's end, or 0 for the first. The thread counts each run start into
11
- * its direction's histogram by (m, z), which the layout's scratch holds cleared.
12
- *
13
- * @type {ComputeShader}
14
- */
15
- export const shader_mesh_cards_histogram: ComputeShader;
16
- import { WebGPUStruct } from "../../../shader/type/WebGPUStruct.js";
17
- import { ComputeShader } from "../../../shader/ComputeShader.js";
18
- //# sourceMappingURL=shader_mesh_cards_histogram.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shader_mesh_cards_histogram.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_histogram.js"],"names":[],"mappings":"AAUA;;GAEG;AACH,4CAFU,YAAY,CAOW;AAUjC;;;;;;;;;GASG;AACH,0CAFU,aAAa,CAiEpB;6BAjG0B,sCAAsC;8BAHrC,kCAAkC"}
@@ -1,102 +0,0 @@
1
- import { CodeChunk } from "../../../shader/compiler/CodeChunk.js";
2
- import { ComputeShader } from "../../../shader/ComputeShader.js";
3
- import { ShaderResourceSetDescriptor } from "../../../shader/resource/ShaderResourceSetDescriptor.js";
4
- import { u32 } from "../../../shader/type/WEBGPU_WGSL_PRIMITIVE_TYPES.js";
5
- import { WebGPUStruct } from "../../../shader/type/WebGPUStruct.js";
6
- import { chunk_mesh_sdf_bake, MESH_SDF_ARENA_RESOURCE } from "../bake/chunk_mesh_sdf_bake.js";
7
- import { MESH_SDF_BAKE_WORKGROUP_SIZE } from "../bake/MESH_SDF_BAKE.js";
8
- import { MESH_SDF_HEADERS_RESOURCE } from "../MESH_SDF_RESOURCES.js";
9
- import { chunk_mesh_cards } from "./chunk_mesh_cards.js";
10
-
11
- /**
12
- * @type {WebGPUStruct}
13
- */
14
- export const MESH_CARDS_HISTOGRAM_SETTINGS = WebGPUStruct.from({
15
- /** the geometry whose cards are placed */
16
- geometry: u32,
17
- /** columns over the six directions: the threads that do work */
18
- columns: u32,
19
- }, "MeshCardsHistogramSettings");
20
-
21
- const resources = new ShaderResourceSetDescriptor();
22
-
23
- resources.setImmediate("settings", MESH_CARDS_HISTOGRAM_SETTINGS);
24
-
25
- resources.createGroup()
26
- .add(MESH_SDF_HEADERS_RESOURCE)
27
- .add(MESH_SDF_ARENA_RESOURCE);
28
-
29
- /**
30
- * Card placement, step 1 (PROBE_CLIPMAP_PROPOSAL_2026_10_27.md §6.5): a thread a column of each of the
31
- * six directions, over a resident geometry's level-0 occupancy — a brick is occupied when its entry
32
- * holds a slot. Walking its column along the direction, a thread finds every run start: an occupied
33
- * brick at layer z whose predecessor is empty or outside the grid. A run start's m is the layer after
34
- * the previous run's end, or 0 for the first. The thread counts each run start into
35
- * its direction's histogram by (m, z), which the layout's scratch holds cleared.
36
- *
37
- * @type {ComputeShader}
38
- */
39
- export const shader_mesh_cards_histogram = ComputeShader.from({
40
- label: "Mesh Cards Histogram",
41
- resources,
42
- body: CodeChunk.from(
43
- //language=WGSL
44
- `
45
- @compute @workgroup_size(${MESH_SDF_BAKE_WORKGROUP_SIZE})
46
- fn main(@builtin(global_invocation_id) id: vec3<u32>) {
47
- let thread = id.x;
48
-
49
- if (thread >= settings.columns) {
50
- return;
51
- }
52
-
53
- let header = mesh_sdf_headers[settings.geometry];
54
- let bricks = header.bricks;
55
- let parts = mesh_card_placement_of(bricks);
56
-
57
- // the direction whose columns the thread is among: six runs, a direction's columns each
58
- var direction = 0u;
59
- var first = 0u;
60
-
61
- for (; direction + 1u < MESH_CARD_DIRECTIONS; direction++) {
62
- let extent = mesh_card_extent(bricks, direction);
63
- let count = extent.y * extent.z;
64
-
65
- if (thread < first + count) {
66
- break;
67
- }
68
-
69
- first += count;
70
- }
71
-
72
- let extent = mesh_card_extent(bricks, direction);
73
- let index = thread - first;
74
- let column = vec2<u32>(index % extent.y, index / extent.y);
75
-
76
- let histogram = header.cards + parts.histograms + direction * parts.layers * parts.layers;
77
-
78
- var run_from = 0u;
79
- var inside = false;
80
-
81
- for (var layer = 0u; layer < extent.x; layer++) {
82
- let brick = mesh_card_brick(bricks, direction, column, layer);
83
- let entry = atomicLoad(&mesh_sdf_indirection[header.indirection + brick.x + bricks.x * (brick.y + bricks.y * brick.z)]);
84
- let occupied = mesh_sdf_entry_holds_slot(entry);
85
-
86
- if (occupied && !inside) {
87
- atomicAdd(&mesh_sdf_indirection[histogram + run_from * parts.layers + layer], 1u);
88
- }
89
-
90
- if (!occupied && inside) {
91
- // the next run's m: the layer after this one's end
92
- run_from = layer;
93
- }
94
-
95
- inside = occupied;
96
- }
97
- }
98
- `, [
99
- chunk_mesh_sdf_bake,
100
- chunk_mesh_cards,
101
- ]),
102
- });
@@ -1,15 +0,0 @@
1
- /**
2
- * @type {WebGPUStruct}
3
- */
4
- export const MESH_CARDS_LOG_SETTINGS: WebGPUStruct;
5
- /**
6
- * Card placement, step 5: one thread, a dispatch after the pages, so every page the threads took is
7
- * counted. Logs the geometry placed, as `(geometry | MESH_SDF_LOG_PLACED, generation, columns, pages)`,
8
- * for the host, which gives the layout a range of that size and its pairs' pages by that count.
9
- *
10
- * @type {ComputeShader}
11
- */
12
- export const shader_mesh_cards_log: ComputeShader;
13
- import { WebGPUStruct } from "../../../shader/type/WebGPUStruct.js";
14
- import { ComputeShader } from "../../../shader/ComputeShader.js";
15
- //# sourceMappingURL=shader_mesh_cards_log.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shader_mesh_cards_log.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_log.js"],"names":[],"mappings":"AAUA;;GAEG;AACH,sCAFU,YAAY,CASK;AAU3B;;;;;;GAMG;AACH,oCAFU,aAAa,CA6BpB;6BA5D0B,sCAAsC;8BAHrC,kCAAkC"}
@@ -1,65 +0,0 @@
1
- import { CodeChunk } from "../../../shader/compiler/CodeChunk.js";
2
- import { ComputeShader } from "../../../shader/ComputeShader.js";
3
- import { ShaderResourceSetDescriptor } from "../../../shader/resource/ShaderResourceSetDescriptor.js";
4
- import { u32 } from "../../../shader/type/WEBGPU_WGSL_PRIMITIVE_TYPES.js";
5
- import { WebGPUStruct } from "../../../shader/type/WebGPUStruct.js";
6
- import { chunk_mesh_sdf_bake, MESH_SDF_ARENA_RESOURCE } from "../bake/chunk_mesh_sdf_bake.js";
7
- import { MESH_SDF_LOG_PLACED } from "../bake/MESH_SDF_BAKE.js";
8
- import { MESH_SDF_HEADERS_RESOURCE } from "../MESH_SDF_RESOURCES.js";
9
- import { chunk_mesh_cards } from "./chunk_mesh_cards.js";
10
-
11
- /**
12
- * @type {WebGPUStruct}
13
- */
14
- export const MESH_CARDS_LOG_SETTINGS = WebGPUStruct.from({
15
- /** the geometry whose cards were placed */
16
- geometry: u32,
17
- /** where the frame's log starts in the arena */
18
- log_offset: u32,
19
- /** records the log holds */
20
- log_capacity: u32,
21
- }, "MeshCardsLogSettings");
22
-
23
- const resources = new ShaderResourceSetDescriptor();
24
-
25
- resources.setImmediate("settings", MESH_CARDS_LOG_SETTINGS);
26
-
27
- resources.createGroup()
28
- .add(MESH_SDF_HEADERS_RESOURCE)
29
- .add(MESH_SDF_ARENA_RESOURCE);
30
-
31
- /**
32
- * Card placement, step 5: one thread, a dispatch after the pages, so every page the threads took is
33
- * counted. Logs the geometry placed, as `(geometry | MESH_SDF_LOG_PLACED, generation, columns, pages)`,
34
- * for the host, which gives the layout a range of that size and its pairs' pages by that count.
35
- *
36
- * @type {ComputeShader}
37
- */
38
- export const shader_mesh_cards_log = ComputeShader.from({
39
- label: "Mesh Cards Log",
40
- resources,
41
- body: CodeChunk.from(
42
- //language=WGSL
43
- `
44
- @compute @workgroup_size(1)
45
- fn main() {
46
- let header = mesh_sdf_headers[settings.geometry];
47
-
48
- let record = atomicAdd(&mesh_sdf_indirection[settings.log_offset + MESH_SDF_LOG_COMPLETIONS], 1u);
49
-
50
- if (record >= settings.log_capacity) {
51
- return;
52
- }
53
-
54
- let word = settings.log_offset + MESH_SDF_LOG_HEADER_WORDS + record * MESH_SDF_LOG_RECORD_WORDS;
55
-
56
- atomicStore(&mesh_sdf_indirection[word], settings.geometry | ${MESH_SDF_LOG_PLACED}u);
57
- atomicStore(&mesh_sdf_indirection[word + 1u], header.generation);
58
- atomicStore(&mesh_sdf_indirection[word + 2u], atomicLoad(&mesh_sdf_indirection[header.cards + MESH_CARD_LAYOUT_COLUMN_COUNT]));
59
- atomicStore(&mesh_sdf_indirection[word + 3u], atomicLoad(&mesh_sdf_indirection[header.cards + MESH_CARD_LAYOUT_PAGE_COUNT]));
60
- }
61
- `, [
62
- chunk_mesh_sdf_bake,
63
- chunk_mesh_cards,
64
- ]),
65
- });
@@ -1,22 +0,0 @@
1
- /**
2
- * @type {WebGPUStruct}
3
- */
4
- export const MESH_CARDS_MERGE_SETTINGS: WebGPUStruct;
5
- /**
6
- * Card placement, step 3 (PROBE_CLIPMAP_PROPOSAL_2026_10_27.md §6.5): one thread. The six directions'
7
- * splits are taken in order of gain, as the greedy search over all six would take them, until the
8
- * gains run out or the geometry has MESH_CARD_MAX cards. Every run start is then covered, or the
9
- * ceiling has left some uncovered, which read the material mean.
10
- *
11
- * The cards are written direction by direction, each direction's cards by their near layer. Each
12
- * card records its direction, its slab, and where its column table starts: a word for each column of
13
- * its direction, laid out card after card. The layout's header gets the card count, each direction's
14
- * first card, and the columns over every card. The page pass's dispatch goes to `mesh_sdf_take`: a
15
- * thread a column.
16
- *
17
- * @type {ComputeShader}
18
- */
19
- export const shader_mesh_cards_merge: ComputeShader;
20
- import { WebGPUStruct } from "../../../shader/type/WebGPUStruct.js";
21
- import { ComputeShader } from "../../../shader/ComputeShader.js";
22
- //# sourceMappingURL=shader_mesh_cards_merge.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shader_mesh_cards_merge.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_merge.js"],"names":[],"mappings":"AAYA;;GAEG;AACH,wCAFU,YAAY,CAOO;AAW7B;;;;;;;;;;;;;GAaG;AACH,sCAFU,aAAa,CA4FpB;6BAlI0B,sCAAsC;8BAJrC,kCAAkC"}