@woosh/meep-engine 3.61.2 → 3.62.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 (645) hide show
  1. package/CHANGELOG.md +111 -0
  2. package/package.json +1 -1
  3. package/src/engine/graphics3/PickingSystem.d.ts.map +1 -1
  4. package/src/engine/graphics3/PickingSystem.js +415 -413
  5. package/src/engine/graphics3/decal/GPUDecalRenderer.d.ts.map +1 -1
  6. package/src/engine/graphics3/decal/GPUDecalRenderer.js +2 -1
  7. package/src/engine/graphics3/decal/shader_decal_composite.d.ts.map +1 -1
  8. package/src/engine/graphics3/decal/shader_decal_composite.js +26 -16
  9. package/src/engine/graphics3/decal/shader_decal_tile_copy.d.ts.map +1 -1
  10. package/src/engine/graphics3/decal/shader_decal_tile_copy.js +6 -11
  11. package/src/engine/graphics3/highlight/GPUHighlightRenderer.d.ts.map +1 -1
  12. package/src/engine/graphics3/highlight/GPUHighlightRenderer.js +6 -2
  13. package/src/engine/graphics3/highlight/shader_highlight_outline.d.ts.map +1 -1
  14. package/src/engine/graphics3/highlight/shader_highlight_outline.js +167 -150
  15. package/src/engine/graphics3/shader_picking_gather.d.ts.map +1 -1
  16. package/src/engine/graphics3/shader_picking_gather.js +133 -120
  17. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
  18. package/src/shade/device/mock/SoftwareGPUTexture.d.ts.map +1 -1
  19. package/src/shade/device/mock/SoftwareGPUTexture.js +11 -0
  20. package/src/shade/device/pipeline/rp_validate_and_rewrite_for_color_attachments.js +1 -1
  21. package/src/shade/playground/contact_shadows/ContactShadowLab.js +6 -6
  22. package/src/shade/playground/contact_shadows/shader_contact_lab_composite.d.ts.map +1 -1
  23. package/src/shade/playground/contact_shadows/shader_contact_lab_composite.js +6 -4
  24. package/src/shade/playground/contact_shadows/shader_contact_lab_reference.d.ts.map +1 -1
  25. package/src/shade/playground/contact_shadows/shader_contact_lab_reference.js +6 -4
  26. package/src/shade/playground/contact_shadows/shader_contact_shadow_march.d.ts.map +1 -1
  27. package/src/shade/playground/contact_shadows/shader_contact_shadow_march.js +6 -4
  28. package/src/shade/playground/probe_clipmap/README.md +3 -4
  29. package/src/shade/playground/probe_clipmap/index.html +5 -13
  30. package/src/shade/playground/probe_clipmap/main.d.ts.map +1 -1
  31. package/src/shade/playground/probe_clipmap/main.js +0 -5
  32. package/src/shade/playground/probe_clipmap_box/README.md +1 -1
  33. package/src/shade/playground/probe_clipmap_box/index.html +1 -1
  34. package/src/shade/playground/ssr_reprojection/SpatialFilterProbe.js +1 -1
  35. package/src/shade/playground/ssr_variance/capture.js +1 -1
  36. package/src/shade/renderer/Renderer.d.ts +2 -2
  37. package/src/shade/renderer/Renderer.d.ts.map +1 -1
  38. package/src/shade/renderer/Renderer.js +90 -64
  39. package/src/shade/renderer/deferred/chunk_read_gBuffer_material.d.ts.map +1 -1
  40. package/src/shade/renderer/deferred/chunk_read_gBuffer_material.js +3 -1
  41. package/src/shade/renderer/deferred/chunk_ss_trace_contact_shadow_soft.d.ts.map +1 -1
  42. package/src/shade/renderer/deferred/chunk_ss_trace_contact_shadow_soft.js +5 -4
  43. package/src/shade/renderer/deferred/shader_deferred_main.d.ts.map +1 -1
  44. package/src/shade/renderer/deferred/shader_deferred_main.js +6 -4
  45. package/src/shade/renderer/extension/GBufferTextures.d.ts +5 -1
  46. package/src/shade/renderer/extension/GBufferTextures.d.ts.map +1 -1
  47. package/src/shade/renderer/extension/GBufferTextures.js +5 -1
  48. package/src/shade/renderer/extension/ViewTextures.d.ts +11 -7
  49. package/src/shade/renderer/extension/ViewTextures.d.ts.map +1 -1
  50. package/src/shade/renderer/extension/ViewTextures.js +17 -13
  51. package/src/shade/renderer/fluid/GPUFluidCascade.d.ts +3 -3
  52. package/src/shade/renderer/fluid/GPUFluidCascadeStack.d.ts +1 -1
  53. package/src/shade/renderer/fluid/forcing/GPUFluidForcing.d.ts +6 -6
  54. package/src/shade/renderer/fluid/pressure/GPUFluidPressureSolve.d.ts +1 -1
  55. package/src/shade/renderer/fluid/query/GPUFluidQueries.d.ts +1 -1
  56. package/src/shade/renderer/gbuffer/G_BUFFER_ALBEDO_FORMAT.d.ts +2 -0
  57. package/src/shade/renderer/gbuffer/G_BUFFER_ALBEDO_FORMAT.d.ts.map +1 -1
  58. package/src/shade/renderer/gbuffer/G_BUFFER_ALBEDO_FORMAT.js +2 -0
  59. package/src/shade/renderer/gbuffer/G_BUFFER_COLOR_TARGETS.d.ts.map +1 -1
  60. package/src/shade/renderer/gbuffer/G_BUFFER_COLOR_TARGETS.js +8 -5
  61. package/src/shade/renderer/geometry/meshlet/meshlet_batch_colored.d.ts +10 -0
  62. package/src/shade/renderer/geometry/meshlet/meshlet_batch_colored.d.ts.map +1 -0
  63. package/src/shade/renderer/geometry/meshlet/meshlet_batch_colored.js +54 -0
  64. package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.d.ts +85 -36
  65. package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.d.ts.map +1 -1
  66. package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.js +813 -412
  67. package/src/shade/renderer/geometry/sdf/MESH_SDF.d.ts +7 -0
  68. package/src/shade/renderer/geometry/sdf/MESH_SDF.d.ts.map +1 -1
  69. package/src/shade/renderer/geometry/sdf/MESH_SDF.js +8 -0
  70. package/src/shade/renderer/geometry/sdf/MESH_SDF_BRICK_KEY.d.ts +14 -0
  71. package/src/shade/renderer/geometry/sdf/MESH_SDF_BRICK_KEY.d.ts.map +1 -0
  72. package/src/shade/renderer/geometry/sdf/MESH_SDF_BRICK_KEY.js +35 -0
  73. package/src/shade/renderer/geometry/sdf/MESH_SDF_STRUCT.d.ts.map +1 -1
  74. package/src/shade/renderer/geometry/sdf/MESH_SDF_STRUCT.js +0 -4
  75. package/src/shade/renderer/geometry/sdf/bake/MESH_SDF_BAKE.d.ts +55 -10
  76. package/src/shade/renderer/geometry/sdf/bake/MESH_SDF_BAKE.d.ts.map +1 -1
  77. package/src/shade/renderer/geometry/sdf/bake/MESH_SDF_BAKE.js +86 -16
  78. package/src/shade/renderer/geometry/sdf/bake/chunk_mesh_sdf_bake.d.ts +2 -2
  79. package/src/shade/renderer/geometry/sdf/bake/chunk_mesh_sdf_bake.d.ts.map +1 -1
  80. package/src/shade/renderer/geometry/sdf/bake/chunk_mesh_sdf_bake.js +28 -2
  81. package/src/shade/renderer/geometry/sdf/bake/chunk_mesh_sdf_contents.d.ts +54 -0
  82. package/src/shade/renderer/geometry/sdf/bake/chunk_mesh_sdf_contents.d.ts.map +1 -0
  83. package/src/shade/renderer/geometry/sdf/bake/chunk_mesh_sdf_contents.js +146 -0
  84. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_classify.d.ts +1 -1
  85. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_classify.d.ts.map +1 -1
  86. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_classify.js +2 -1
  87. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_content_rehash.d.ts +18 -0
  88. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_content_rehash.d.ts.map +1 -0
  89. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_content_rehash.js +66 -0
  90. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_count.d.ts +17 -0
  91. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_count.d.ts.map +1 -0
  92. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_count.js +66 -0
  93. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_evaluate.d.ts +5 -3
  94. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_evaluate.d.ts.map +1 -1
  95. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_evaluate.js +15 -14
  96. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_free.d.ts +2 -1
  97. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_free.d.ts.map +1 -1
  98. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_free.js +12 -3
  99. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_key.d.ts +21 -0
  100. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_key.d.ts.map +1 -0
  101. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_key.js +84 -0
  102. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_resolve.d.ts +53 -0
  103. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_resolve.d.ts.map +1 -0
  104. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_resolve.js +343 -0
  105. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_store.d.ts +3 -3
  106. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_store.d.ts.map +1 -1
  107. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_store.js +9 -5
  108. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_take.d.ts +2 -2
  109. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_take.d.ts.map +1 -1
  110. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_take.js +3 -2
  111. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_upload.d.ts +69 -0
  112. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_upload.d.ts.map +1 -0
  113. package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_upload.js +294 -0
  114. package/src/shade/renderer/geometry/sdf/bundle/MODEL_CACHE_BUNDLE.d.ts +16 -0
  115. package/src/shade/renderer/geometry/sdf/bundle/MODEL_CACHE_BUNDLE.d.ts.map +1 -0
  116. package/src/shade/renderer/geometry/sdf/bundle/MODEL_CACHE_BUNDLE.js +36 -0
  117. package/src/shade/renderer/geometry/sdf/bundle/ModelCacheBundle.d.ts +126 -0
  118. package/src/shade/renderer/geometry/sdf/bundle/ModelCacheBundle.d.ts.map +1 -0
  119. package/src/shade/renderer/geometry/sdf/bundle/ModelCacheBundle.js +148 -0
  120. package/src/shade/renderer/geometry/sdf/bundle/model_cache_bundle_read.d.ts +10 -0
  121. package/src/shade/renderer/geometry/sdf/bundle/model_cache_bundle_read.d.ts.map +1 -0
  122. package/src/shade/renderer/geometry/sdf/bundle/model_cache_bundle_read.js +140 -0
  123. package/src/shade/renderer/geometry/sdf/bundle/model_cache_bundle_write.d.ts +8 -0
  124. package/src/shade/renderer/geometry/sdf/bundle/model_cache_bundle_write.d.ts.map +1 -0
  125. package/src/shade/renderer/geometry/sdf/bundle/model_cache_bundle_write.js +76 -0
  126. package/src/shade/renderer/geometry/sdf/chunk_mesh_sdf.d.ts +9 -0
  127. package/src/shade/renderer/geometry/sdf/chunk_mesh_sdf.d.ts.map +1 -1
  128. package/src/shade/renderer/geometry/sdf/chunk_mesh_sdf.js +23 -0
  129. package/src/shade/renderer/geometry/sdf/chunk_mesh_sdf_brick_key.d.ts +13 -0
  130. package/src/shade/renderer/geometry/sdf/chunk_mesh_sdf_brick_key.d.ts.map +1 -0
  131. package/src/shade/renderer/geometry/sdf/chunk_mesh_sdf_brick_key.js +23 -0
  132. package/src/shade/renderer/geometry/sdf/shader_sdf_visualize.d.ts +7 -5
  133. package/src/shade/renderer/geometry/sdf/shader_sdf_visualize.d.ts.map +1 -1
  134. package/src/shade/renderer/geometry/sdf/shader_sdf_visualize.js +29 -16
  135. package/src/shade/renderer/geometry/sdf/surface/GPUMeshSurfaceCaches.d.ts +262 -0
  136. package/src/shade/renderer/geometry/sdf/surface/GPUMeshSurfaceCaches.d.ts.map +1 -0
  137. package/src/shade/renderer/geometry/sdf/surface/GPUMeshSurfaceCaches.js +1819 -0
  138. package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_BAKE.d.ts +118 -0
  139. package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_BAKE.d.ts.map +1 -0
  140. package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_BAKE.js +204 -0
  141. package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_BLOCK.d.ts +66 -0
  142. package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_BLOCK.d.ts.map +1 -0
  143. package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_BLOCK.js +103 -0
  144. package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_RESOURCES.d.ts +19 -0
  145. package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_RESOURCES.d.ts.map +1 -0
  146. package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_RESOURCES.js +23 -0
  147. package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_STRUCT.d.ts +15 -0
  148. package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_STRUCT.d.ts.map +1 -0
  149. package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_STRUCT.js +70 -0
  150. package/src/shade/renderer/geometry/sdf/surface/SURFACE_MATERIAL.d.ts +13 -0
  151. package/src/shade/renderer/geometry/sdf/surface/SURFACE_MATERIAL.d.ts.map +1 -0
  152. package/src/shade/renderer/geometry/sdf/surface/SURFACE_MATERIAL.js +35 -0
  153. package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_block.d.ts +32 -0
  154. package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_block.d.ts.map +1 -0
  155. package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_block.js +111 -0
  156. package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_listed.d.ts +17 -0
  157. package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_listed.d.ts.map +1 -0
  158. package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_listed.js +49 -0
  159. package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_run_find.d.ts +13 -0
  160. package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_run_find.d.ts.map +1 -0
  161. package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_run_find.js +35 -0
  162. package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_sample.d.ts +24 -0
  163. package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_sample.d.ts.map +1 -0
  164. package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_sample.js +169 -0
  165. package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_texel_ray.d.ts +19 -0
  166. package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_texel_ray.d.ts.map +1 -0
  167. package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_texel_ray.js +49 -0
  168. package/src/shade/renderer/geometry/sdf/surface/chunk_surface_material_fit.d.ts +19 -0
  169. package/src/shade/renderer/geometry/sdf/surface/chunk_surface_material_fit.d.ts.map +1 -0
  170. package/src/shade/renderer/geometry/sdf/surface/chunk_surface_material_fit.js +67 -0
  171. package/src/shade/renderer/geometry/sdf/surface/chunk_surface_material_read.d.ts +78 -0
  172. package/src/shade/renderer/geometry/sdf/surface/chunk_surface_material_read.d.ts.map +1 -0
  173. package/src/shade/renderer/geometry/sdf/surface/chunk_surface_material_read.js +320 -0
  174. package/src/shade/renderer/geometry/sdf/surface/chunk_surface_material_store.d.ts +15 -0
  175. package/src/shade/renderer/geometry/sdf/surface/chunk_surface_material_store.d.ts.map +1 -0
  176. package/src/shade/renderer/geometry/sdf/surface/chunk_surface_material_store.js +48 -0
  177. package/src/shade/renderer/geometry/sdf/surface/mesh_surface_channels.d.ts +51 -0
  178. package/src/shade/renderer/geometry/sdf/surface/mesh_surface_channels.d.ts.map +1 -0
  179. package/src/shade/renderer/geometry/sdf/surface/mesh_surface_channels.js +109 -0
  180. package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_command.d.ts +11 -0
  181. package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_command.d.ts.map +1 -0
  182. package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_command.js +51 -0
  183. package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_encode.d.ts +26 -0
  184. package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_encode.d.ts.map +1 -0
  185. package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_encode.js +453 -0
  186. package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_list.d.ts +12 -0
  187. package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_list.d.ts.map +1 -0
  188. package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_list.js +99 -0
  189. package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_survey.d.ts +22 -0
  190. package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_survey.d.ts.map +1 -0
  191. package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_survey.js +140 -0
  192. package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_trace.d.ts +32 -0
  193. package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_trace.d.ts.map +1 -0
  194. package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_trace.js +261 -0
  195. package/src/shade/renderer/geometry/virtual/runtime/VirtualGeometry.d.ts +2 -2
  196. package/src/shade/renderer/geometry/virtual/runtime/VirtualGeometry.js +2 -2
  197. package/src/shade/renderer/geometry/virtual/runtime/cut/chunk_vgeo_cut_instance.d.ts +9 -3
  198. package/src/shade/renderer/geometry/virtual/runtime/cut/chunk_vgeo_cut_instance.d.ts.map +1 -1
  199. package/src/shade/renderer/geometry/virtual/runtime/cut/chunk_vgeo_cut_instance.js +40 -32
  200. package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_collect.d.ts.map +1 -1
  201. package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_collect.js +14 -15
  202. package/src/shade/renderer/geometry/virtual/sdf/VGeoSDFProxies.d.ts +6 -6
  203. package/src/shade/renderer/geometry/virtual/sdf/VGeoSDFProxies.js +7 -7
  204. package/src/shade/renderer/global_illumination/brick4/gpu/draw/shader_brick4_debug_draw.d.ts.map +1 -1
  205. package/src/shade/renderer/global_illumination/brick4/gpu/draw/shader_brick4_debug_draw.js +7 -3
  206. package/src/shade/renderer/global_illumination/brick4/gpu/draw/shader_brick4_diffuse.js +1 -1
  207. package/src/shade/renderer/global_illumination/brick4/gpu/draw/shader_brick4_indirect_lighting.d.ts.map +1 -1
  208. package/src/shade/renderer/global_illumination/brick4/gpu/draw/shader_brick4_indirect_lighting.js +5 -3
  209. package/src/shade/renderer/global_illumination/brick4/gpu/draw/shader_brick4_specular.d.ts.map +1 -1
  210. package/src/shade/renderer/global_illumination/brick4/gpu/draw/shader_brick4_specular.js +1 -3
  211. package/src/shade/renderer/global_illumination/ibl/shader_diffuse_IBL.js +1 -1
  212. package/src/shade/renderer/global_illumination/ibl/shader_specular_IBL.js +2 -2
  213. package/src/shade/renderer/global_illumination/lpv/shader_diffuse_LPV.js +1 -1
  214. package/src/shade/renderer/global_illumination/probe_clipmap/GPUProbeClipmapGI.d.ts +15 -7
  215. package/src/shade/renderer/global_illumination/probe_clipmap/GPUProbeClipmapGI.d.ts.map +1 -1
  216. package/src/shade/renderer/global_illumination/probe_clipmap/GPUProbeClipmapGI.js +82 -17
  217. package/src/shade/renderer/global_illumination/probe_clipmap/ProbeClipmapSceneHolds.d.ts +26 -19
  218. package/src/shade/renderer/global_illumination/probe_clipmap/ProbeClipmapSceneHolds.d.ts.map +1 -1
  219. package/src/shade/renderer/global_illumination/probe_clipmap/ProbeClipmapSceneHolds.js +226 -148
  220. package/src/shade/renderer/global_illumination/probe_clipmap/ProbeClipmapSettings.d.ts +25 -52
  221. package/src/shade/renderer/global_illumination/probe_clipmap/ProbeClipmapSettings.d.ts.map +1 -1
  222. package/src/shade/renderer/global_illumination/probe_clipmap/ProbeClipmapSettings.js +29 -69
  223. package/src/shade/renderer/global_illumination/probe_clipmap/brick/BRICK_CLIPMAP.d.ts +19 -16
  224. package/src/shade/renderer/global_illumination/probe_clipmap/brick/BRICK_CLIPMAP.d.ts.map +1 -1
  225. package/src/shade/renderer/global_illumination/probe_clipmap/brick/BRICK_CLIPMAP.js +24 -21
  226. package/src/shade/renderer/global_illumination/probe_clipmap/brick/GPUBrickClipmap.d.ts +46 -22
  227. package/src/shade/renderer/global_illumination/probe_clipmap/brick/GPUBrickClipmap.d.ts.map +1 -1
  228. package/src/shade/renderer/global_illumination/probe_clipmap/brick/GPUBrickClipmap.js +63 -37
  229. package/src/shade/renderer/global_illumination/probe_clipmap/brick/chunk_brick_clipmap.d.ts +3 -2
  230. package/src/shade/renderer/global_illumination/probe_clipmap/brick/chunk_brick_clipmap.d.ts.map +1 -1
  231. package/src/shade/renderer/global_illumination/probe_clipmap/brick/chunk_brick_clipmap.js +7 -6
  232. package/src/shade/renderer/global_illumination/probe_clipmap/brick/chunk_brick_clipmap_trace.d.ts +8 -22
  233. package/src/shade/renderer/global_illumination/probe_clipmap/brick/chunk_brick_clipmap_trace.d.ts.map +1 -1
  234. package/src/shade/renderer/global_illumination/probe_clipmap/brick/chunk_brick_clipmap_trace.js +15 -51
  235. package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/MESH_BRICK.d.ts +1 -6
  236. package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/MESH_BRICK.d.ts.map +1 -1
  237. package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/MESH_BRICK.js +6 -13
  238. package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/chunk_mesh_brick_walk.d.ts.map +1 -1
  239. package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/chunk_mesh_brick_walk.js +0 -2
  240. package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/shader_mesh_brick_batch.d.ts +4 -4
  241. package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/shader_mesh_brick_batch.d.ts.map +1 -1
  242. package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/shader_mesh_brick_batch.js +9 -34
  243. package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/shader_mesh_brick_resolve.d.ts +4 -6
  244. package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/shader_mesh_brick_resolve.d.ts.map +1 -1
  245. package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/shader_mesh_brick_resolve.js +15 -39
  246. package/src/shade/renderer/global_illumination/probe_clipmap/brick/shader_brick_clipmap_clear.d.ts +1 -1
  247. package/src/shade/renderer/global_illumination/probe_clipmap/brick/shader_brick_clipmap_clear.js +1 -1
  248. package/src/shade/renderer/global_illumination/probe_clipmap/brick/shader_brick_clipmap_store.d.ts +1 -2
  249. package/src/shade/renderer/global_illumination/probe_clipmap/brick/shader_brick_clipmap_store.d.ts.map +1 -1
  250. package/src/shade/renderer/global_illumination/probe_clipmap/brick/shader_brick_clipmap_store.js +2 -6
  251. package/src/shade/renderer/global_illumination/probe_clipmap/brick/shader_brick_clipmap_take.d.ts +2 -2
  252. package/src/shade/renderer/global_illumination/probe_clipmap/brick/shader_brick_clipmap_take.d.ts.map +1 -1
  253. package/src/shade/renderer/global_illumination/probe_clipmap/brick/shader_brick_clipmap_take.js +5 -2
  254. package/src/shade/renderer/global_illumination/probe_clipmap/debug/ProbeClipmapDebugView.d.ts +5 -1
  255. package/src/shade/renderer/global_illumination/probe_clipmap/debug/ProbeClipmapDebugView.js +16 -2
  256. package/src/shade/renderer/global_illumination/probe_clipmap/debug/graph_probe_clipmap_debug_brick_material.d.ts +45 -0
  257. package/src/shade/renderer/global_illumination/probe_clipmap/debug/graph_probe_clipmap_debug_brick_material.d.ts.map +1 -0
  258. package/src/shade/renderer/global_illumination/probe_clipmap/debug/graph_probe_clipmap_debug_brick_material.js +208 -0
  259. package/src/shade/renderer/global_illumination/probe_clipmap/debug/graph_probe_clipmap_debug_indirect.d.ts +24 -0
  260. package/src/shade/renderer/global_illumination/probe_clipmap/debug/graph_probe_clipmap_debug_indirect.d.ts.map +1 -0
  261. package/src/shade/renderer/global_illumination/probe_clipmap/debug/graph_probe_clipmap_debug_indirect.js +40 -0
  262. package/src/shade/renderer/global_illumination/probe_clipmap/debug/graph_probe_clipmap_debug_mesh_surfaces.d.ts +34 -0
  263. package/src/shade/renderer/global_illumination/probe_clipmap/debug/graph_probe_clipmap_debug_mesh_surfaces.d.ts.map +1 -0
  264. 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
  265. package/src/shade/renderer/global_illumination/probe_clipmap/material/GPUBrickMaterial.d.ts +61 -0
  266. package/src/shade/renderer/global_illumination/probe_clipmap/material/GPUBrickMaterial.d.ts.map +1 -0
  267. package/src/shade/renderer/global_illumination/probe_clipmap/material/GPUBrickMaterial.js +193 -0
  268. package/src/shade/renderer/global_illumination/probe_clipmap/material/chunk_brick_material.d.ts +67 -0
  269. package/src/shade/renderer/global_illumination/probe_clipmap/material/chunk_brick_material.d.ts.map +1 -0
  270. package/src/shade/renderer/global_illumination/probe_clipmap/material/chunk_brick_material.js +142 -0
  271. package/src/shade/renderer/global_illumination/probe_clipmap/material/chunk_brick_material_cell.d.ts +32 -0
  272. package/src/shade/renderer/global_illumination/probe_clipmap/material/chunk_brick_material_cell.d.ts.map +1 -0
  273. package/src/shade/renderer/global_illumination/probe_clipmap/material/chunk_brick_material_cell.js +70 -0
  274. package/src/shade/renderer/global_illumination/probe_clipmap/material/chunk_brick_material_store.d.ts +30 -0
  275. package/src/shade/renderer/global_illumination/probe_clipmap/material/chunk_brick_material_store.d.ts.map +1 -0
  276. package/src/shade/renderer/global_illumination/probe_clipmap/material/chunk_brick_material_store.js +71 -0
  277. package/src/shade/renderer/global_illumination/probe_clipmap/material/shader_brick_material_gather.d.ts +26 -0
  278. package/src/shade/renderer/global_illumination/probe_clipmap/material/shader_brick_material_gather.d.ts.map +1 -0
  279. package/src/shade/renderer/global_illumination/probe_clipmap/material/shader_brick_material_gather.js +176 -0
  280. package/src/shade/renderer/global_illumination/probe_clipmap/probe/GPUProbeClipmap.d.ts +18 -9
  281. package/src/shade/renderer/global_illumination/probe_clipmap/probe/GPUProbeClipmap.d.ts.map +1 -1
  282. package/src/shade/renderer/global_illumination/probe_clipmap/probe/GPUProbeClipmap.js +73 -45
  283. package/src/shade/renderer/global_illumination/probe_clipmap/probe/PROBE_CLIPMAP.d.ts +21 -1
  284. package/src/shade/renderer/global_illumination/probe_clipmap/probe/PROBE_CLIPMAP.d.ts.map +1 -1
  285. package/src/shade/renderer/global_illumination/probe_clipmap/probe/PROBE_CLIPMAP.js +24 -1
  286. package/src/shade/renderer/global_illumination/probe_clipmap/probe/PROBE_CLIPMAP_INDIRECT_LOBE.d.ts +10 -0
  287. package/src/shade/renderer/global_illumination/probe_clipmap/probe/PROBE_CLIPMAP_INDIRECT_LOBE.d.ts.map +1 -0
  288. package/src/shade/renderer/global_illumination/probe_clipmap/probe/PROBE_CLIPMAP_INDIRECT_LOBE.js +11 -0
  289. package/src/shade/renderer/global_illumination/probe_clipmap/probe/ProbeClipmapIndirectLobe.d.ts +11 -0
  290. package/src/shade/renderer/global_illumination/probe_clipmap/probe/ProbeClipmapIndirectLobe.d.ts.map +1 -0
  291. package/src/shade/renderer/global_illumination/probe_clipmap/probe/ProbeClipmapIndirectLobe.js +15 -0
  292. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap.d.ts +44 -7
  293. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap.d.ts.map +1 -1
  294. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap.js +88 -11
  295. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_hit_material.d.ts +43 -0
  296. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_hit_material.d.ts.map +1 -0
  297. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_hit_material.js +138 -0
  298. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_indirect_lobe.d.ts +21 -0
  299. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_indirect_lobe.d.ts.map +1 -0
  300. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_indirect_lobe.js +49 -0
  301. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_pick.d.ts +2 -0
  302. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_pick.d.ts.map +1 -1
  303. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_pick.js +10 -4
  304. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_select.d.ts +22 -0
  305. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_select.d.ts.map +1 -0
  306. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_select.js +50 -0
  307. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_want.d.ts +4 -4
  308. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_want.d.ts.map +1 -1
  309. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_want.js +8 -8
  310. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_bounce.d.ts +3 -3
  311. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_bounce.js +5 -5
  312. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_diffuse.js +2 -2
  313. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_indirect_lighting.d.ts +2 -0
  314. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_indirect_lighting.d.ts.map +1 -1
  315. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_indirect_lighting.js +10 -4
  316. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_light.d.ts +1 -1
  317. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_light.js +2 -2
  318. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_shade.d.ts +7 -4
  319. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_shade.d.ts.map +1 -1
  320. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_shade.js +30 -26
  321. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_trace.d.ts +6 -5
  322. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_trace.d.ts.map +1 -1
  323. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_trace.js +22 -16
  324. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_want.d.ts.map +1 -1
  325. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_want.js +7 -3
  326. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_want_hits.d.ts +2 -2
  327. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_want_hits.js +6 -6
  328. package/src/shade/renderer/global_illumination/shader_resolve_indirect_lighting.d.ts.map +1 -1
  329. package/src/shade/renderer/global_illumination/shader_resolve_indirect_lighting.js +5 -3
  330. package/src/shade/renderer/global_illumination/sharc/shader/debug/shader_colored_hash.js +1 -1
  331. package/src/shade/renderer/global_illumination/sharc/shader/debug/shader_sharc_debug_radiance.js +1 -1
  332. package/src/shade/renderer/global_illumination/sharc/shader/shader_sharc_update.js +1 -1
  333. package/src/shade/renderer/gpu_primitive/hash_table/chunk_generate_next_linear_congruential_index.d.ts +14 -0
  334. package/src/shade/renderer/gpu_primitive/hash_table/chunk_generate_next_linear_congruential_index.d.ts.map +1 -0
  335. package/src/shade/renderer/gpu_primitive/hash_table/chunk_generate_next_linear_congruential_index.js +22 -0
  336. package/src/shade/renderer/gpu_primitive/hash_table/chunk_hash_table_atomic.d.ts +37 -0
  337. package/src/shade/renderer/gpu_primitive/hash_table/chunk_hash_table_atomic.d.ts.map +1 -0
  338. package/src/shade/renderer/gpu_primitive/hash_table/chunk_hash_table_atomic.js +122 -0
  339. package/src/shade/renderer/gpu_primitive/hash_table/chunk_hash_table_get.d.ts.map +1 -1
  340. package/src/shade/renderer/gpu_primitive/hash_table/chunk_hash_table_get.js +1 -11
  341. package/src/shade/renderer/gpu_primitive/hash_table/cpu_build_hash_table.d.ts +8 -0
  342. package/src/shade/renderer/gpu_primitive/hash_table/cpu_build_hash_table.d.ts.map +1 -1
  343. package/src/shade/renderer/gpu_primitive/hash_table/cpu_build_hash_table.js +6 -4
  344. package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
  345. package/src/shade/renderer/material/GPUMaterialManager.d.ts +22 -9
  346. package/src/shade/renderer/material/GPUMaterialManager.d.ts.map +1 -1
  347. package/src/shade/renderer/material/GPUMaterialManager.js +159 -65
  348. package/src/shade/renderer/material/MATERIAL_MASK.d.ts +19 -0
  349. package/src/shade/renderer/material/MATERIAL_MASK.d.ts.map +1 -0
  350. package/src/shade/renderer/material/MATERIAL_MASK.js +19 -0
  351. package/src/shade/renderer/material/dispatch/GPUMaterialComputeDispatch.d.ts +8 -8
  352. package/src/shade/renderer/material/dispatch/GPUMaterialComputeDispatch.d.ts.map +1 -1
  353. package/src/shade/renderer/material/dispatch/GPUMaterialComputeDispatch.js +11 -92
  354. package/src/shade/renderer/material/dispatch/chunk_material_quad_keys.d.ts.map +1 -1
  355. package/src/shade/renderer/material/dispatch/chunk_material_quad_keys.js +10 -2
  356. package/src/shade/renderer/material/dispatch/gbuffer_compute.js +2 -2
  357. package/src/shade/renderer/material/dispatch/graph_material_dispatch_compute.d.ts +7 -7
  358. package/src/shade/renderer/material/dispatch/graph_material_dispatch_compute.d.ts.map +1 -1
  359. package/src/shade/renderer/material/dispatch/graph_material_dispatch_compute.js +20 -16
  360. package/src/shade/renderer/material/dispatch/shader_material_pixel_count.d.ts.map +1 -1
  361. package/src/shade/renderer/material/dispatch/shader_material_pixel_count.js +3 -1
  362. package/src/shade/renderer/material/dispatch/shader_material_pixel_scatter.d.ts.map +1 -1
  363. package/src/shade/renderer/material/dispatch/shader_material_pixel_scatter.js +3 -1
  364. package/src/shade/renderer/material/resident/GPUResidentMaterialContext.d.ts +1 -1
  365. package/src/shade/renderer/material/resident/GPUResidentMaterialContext.d.ts.map +1 -1
  366. package/src/shade/renderer/material/resident/GPUResidentMaterialContext.js +2 -18
  367. package/src/shade/renderer/material/resident/NEUTRAL_SURFACE.d.ts +17 -0
  368. package/src/shade/renderer/material/resident/NEUTRAL_SURFACE.d.ts.map +1 -0
  369. package/src/shade/renderer/material/resident/NEUTRAL_SURFACE.js +16 -0
  370. package/src/shade/renderer/material/standard/fragment_gbuffer.d.ts.map +1 -1
  371. package/src/shade/renderer/material/standard/fragment_gbuffer.js +26 -25
  372. package/src/shade/renderer/material/standard/material_gbuffer_vertex.d.ts +10 -8
  373. package/src/shade/renderer/material/standard/material_gbuffer_vertex.d.ts.map +1 -1
  374. package/src/shade/renderer/material/standard/material_gbuffer_vertex.js +16 -13
  375. package/src/shade/renderer/material/template/ShadeMaterialTemplate.d.ts +1 -1
  376. package/src/shade/renderer/material/template/ShadeMaterialTemplate.js +1 -1
  377. package/src/shade/renderer/path_tracer/shader/INDIRECT_TEXTURE_FILTER.d.ts +1 -1
  378. package/src/shade/renderer/path_tracer/shader/INDIRECT_TEXTURE_FILTER.js +1 -1
  379. package/src/shade/renderer/path_tracer/shader/IndirectTextureFilter.js +1 -1
  380. package/src/shade/renderer/path_tracer/shader/chunk_beam_texture_level.d.ts +20 -0
  381. package/src/shade/renderer/path_tracer/shader/chunk_beam_texture_level.d.ts.map +1 -0
  382. package/src/shade/renderer/path_tracer/shader/chunk_beam_texture_level.js +65 -0
  383. package/src/shade/renderer/postprocess/denoise/LigmaDenoiser.d.ts +5 -2
  384. package/src/shade/renderer/postprocess/denoise/LigmaDenoiser.d.ts.map +1 -1
  385. package/src/shade/renderer/postprocess/denoise/LigmaDenoiser.js +7 -4
  386. package/src/shade/renderer/postprocess/denoise/debug/graph_pass_debug_reprojection.d.ts +3 -3
  387. package/src/shade/renderer/postprocess/denoise/debug/graph_pass_debug_reprojection.d.ts.map +1 -1
  388. package/src/shade/renderer/postprocess/denoise/debug/graph_pass_debug_reprojection.js +12 -10
  389. package/src/shade/renderer/postprocess/denoise/fragment_shader_denoise_ao.js +2 -2
  390. package/src/shade/renderer/postprocess/denoise/shader_temporal_reprojection_luma.d.ts.map +1 -1
  391. package/src/shade/renderer/postprocess/denoise/shader_temporal_reprojection_luma.js +6 -4
  392. package/src/shade/renderer/postprocess/gtao/GTAO.d.ts +9 -7
  393. package/src/shade/renderer/postprocess/gtao/GTAO.d.ts.map +1 -1
  394. package/src/shade/renderer/postprocess/gtao/GTAO.js +11 -8
  395. package/src/shade/renderer/postprocess/gtao/ao_reproject_shader.d.ts +3 -3
  396. package/src/shade/renderer/postprocess/gtao/ao_reproject_shader.d.ts.map +1 -1
  397. package/src/shade/renderer/postprocess/gtao/ao_reproject_shader.js +17 -12
  398. package/src/shade/renderer/postprocess/gtao/chunk_integrate_lighting_sample.js +1 -1
  399. package/src/shade/renderer/postprocess/gtao/fragment_shader_gtao.js +1 -1
  400. package/src/shade/renderer/postprocess/gtao/fragment_shader_gtao_with_irradiance.js +4 -4
  401. package/src/shade/renderer/postprocess/gtao/shader_gtao_spatial_denoise.js +2 -2
  402. package/src/shade/renderer/postprocess/nss/NSS.d.ts +1 -1
  403. package/src/shade/renderer/postprocess/ssr/chunk_ssr_spatial_variance.js +41 -41
  404. package/src/shade/renderer/postprocess/ssr/prefilter/chunk_load_neighbourhood_sample.js +1 -1
  405. package/src/shade/renderer/postprocess/ssr/reproject/chunk_ssr_temporal_accumulate.js +3 -3
  406. package/src/shade/renderer/postprocess/ssr/resolve/chunk_ssr_add_hit_irradiance.d.ts.map +1 -1
  407. package/src/shade/renderer/postprocess/ssr/resolve/chunk_ssr_add_hit_irradiance.js +5 -2
  408. package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader.js +4 -4
  409. package/src/shade/renderer/postprocess/ssr/ssr_combine_shader.d.ts.map +1 -1
  410. package/src/shade/renderer/postprocess/ssr/ssr_combine_shader.js +4 -2
  411. package/src/shade/renderer/postprocess/ssr/ssr_graph_prefilter_color.d.ts +2 -1
  412. package/src/shade/renderer/postprocess/ssr/ssr_graph_prefilter_color.d.ts.map +1 -1
  413. package/src/shade/renderer/postprocess/ssr/ssr_graph_prefilter_color.js +10 -2
  414. package/src/shade/renderer/postprocess/ssr/ssr_reproject_shader.js +1 -1
  415. package/src/shade/renderer/postprocess/ssr/ssr_spatial_denoise_shader.js +4 -4
  416. package/src/shade/renderer/postprocess/taa/shader_reprojection_map.d.ts.map +1 -1
  417. package/src/shade/renderer/postprocess/taa/shader_reprojection_map.js +6 -4
  418. package/src/shade/renderer/postprocess/velocity/graph_add_per_object_velocity.d.ts +6 -8
  419. package/src/shade/renderer/postprocess/velocity/graph_add_per_object_velocity.d.ts.map +1 -1
  420. package/src/shade/renderer/postprocess/velocity/graph_add_per_object_velocity.js +29 -33
  421. package/src/shade/renderer/rasterize/TemplatePassDescriptor.d.ts.map +1 -1
  422. package/src/shade/renderer/rasterize/TemplatePassDescriptor.js +1 -0
  423. package/src/shade/renderer/rasterize/bucket/graph_meshlets_rasterize_by_bucket.d.ts +6 -3
  424. package/src/shade/renderer/rasterize/bucket/graph_meshlets_rasterize_by_bucket.d.ts.map +1 -1
  425. package/src/shade/renderer/rasterize/bucket/graph_meshlets_rasterize_by_bucket.js +8 -3
  426. package/src/shade/renderer/rasterize/expand/GPUCollectionLimits.d.ts.map +1 -1
  427. package/src/shade/renderer/rasterize/expand/GPUCollectionLimits.js +3 -0
  428. package/src/shade/renderer/rasterize/expand/RasterizationCollectionType.d.ts +1 -0
  429. package/src/shade/renderer/rasterize/expand/RasterizationCollectionType.js +5 -0
  430. package/src/shade/renderer/rasterize/expand/graph_meshlets_rasterize.d.ts +8 -3
  431. package/src/shade/renderer/rasterize/expand/graph_meshlets_rasterize.d.ts.map +1 -1
  432. package/src/shade/renderer/rasterize/expand/graph_meshlets_rasterize.js +54 -5
  433. package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts +1 -0
  434. package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts.map +1 -1
  435. package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.js +1 -1
  436. package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.d.ts +1 -1
  437. package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.d.ts.map +1 -1
  438. package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.js +2 -1
  439. package/src/shade/renderer/rasterize/native/graph_rasterize_meshes_alpha_tested.d.ts +7 -2
  440. package/src/shade/renderer/rasterize/native/graph_rasterize_meshes_alpha_tested.d.ts.map +1 -1
  441. package/src/shade/renderer/rasterize/native/graph_rasterize_meshes_alpha_tested.js +73 -9
  442. package/src/shade/renderer/rasterize/native/viz/shader_vertex.js +4 -4
  443. package/src/shade/renderer/rasterize/native/viz/viz_rasterization_alpha_tested_pass_descriptor.d.ts.map +1 -1
  444. package/src/shade/renderer/rasterize/native/viz/viz_rasterization_alpha_tested_pass_descriptor.js +23 -40
  445. package/src/shade/renderer/rasterize/native/viz/viz_rasterization_opaque_pass_descriptor.d.ts.map +1 -1
  446. package/src/shade/renderer/rasterize/native/viz/viz_rasterization_opaque_pass_descriptor.js +55 -76
  447. package/src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.d.ts +4 -2
  448. package/src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.d.ts.map +1 -1
  449. package/src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.js +6 -2
  450. package/src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.d.ts +4 -2
  451. package/src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.d.ts.map +1 -1
  452. package/src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.js +6 -2
  453. package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.d.ts +5 -2
  454. package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.d.ts.map +1 -1
  455. package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.js +43 -2
  456. package/src/shade/renderer/rasterize/visibility/VISIBILITY_BUFFER.d.ts +39 -0
  457. package/src/shade/renderer/rasterize/visibility/VISIBILITY_BUFFER.d.ts.map +1 -0
  458. package/src/shade/renderer/rasterize/visibility/VISIBILITY_BUFFER.js +45 -0
  459. package/src/shade/renderer/rasterize/visibility/chunk_visibility_decode.d.ts +26 -0
  460. package/src/shade/renderer/rasterize/visibility/chunk_visibility_decode.d.ts.map +1 -0
  461. package/src/shade/renderer/rasterize/visibility/chunk_visibility_decode.js +48 -0
  462. package/src/shade/renderer/rasterize/visibility/shader_visible_meshlets_append.d.ts +40 -0
  463. package/src/shade/renderer/rasterize/visibility/shader_visible_meshlets_append.d.ts.map +1 -0
  464. package/src/shade/renderer/rasterize/visibility/shader_visible_meshlets_append.js +172 -0
  465. package/src/shade/renderer/restir/di/chunk_restir_reconstruct_surface.d.ts.map +1 -1
  466. package/src/shade/renderer/restir/di/chunk_restir_reconstruct_surface.js +6 -4
  467. package/src/shade/renderer/restir/di/chunk_restir_spatial_reuse.js +1 -1
  468. package/src/shade/renderer/restir/di/shader_restir_di_denoise.js +2 -2
  469. package/src/shade/renderer/scene/GPUSceneContext.d.ts +1 -1
  470. package/src/shade/renderer/scene/GPUSceneContext.js +1 -1
  471. package/src/shade/renderer/shader/chunk/color/sRGB/chunk_sRGBTransferEOTF.d.ts +9 -0
  472. package/src/shade/renderer/shader/chunk/color/sRGB/chunk_sRGBTransferEOTF.d.ts.map +1 -0
  473. package/src/shade/renderer/shader/chunk/color/sRGB/chunk_sRGBTransferEOTF.js +18 -0
  474. package/src/shade/renderer/shader/chunk/geometry/mat3/chunk_mat3_determinant.d.ts +20 -0
  475. package/src/shade/renderer/shader/chunk/geometry/mat3/chunk_mat3_determinant.d.ts.map +1 -0
  476. package/src/shade/renderer/shader/chunk/geometry/mat3/chunk_mat3_determinant.js +26 -0
  477. package/src/shade/renderer/shader/chunk/geometry/mat3/chunk_mat3_singular_values.d.ts +60 -18
  478. package/src/shade/renderer/shader/chunk/geometry/mat3/chunk_mat3_singular_values.d.ts.map +1 -1
  479. package/src/shade/renderer/shader/chunk/geometry/mat3/chunk_mat3_singular_values.js +163 -45
  480. package/src/shade/renderer/shader/chunk/geometry/mat4/chunk_mat4_linear_determinant.d.ts.map +1 -1
  481. package/src/shade/renderer/shader/chunk/geometry/mat4/chunk_mat4_linear_determinant.js +19 -18
  482. package/src/shade/renderer/shader/chunk/geometry/normal/chunk_decode_g_buffer_face_normal.d.ts +13 -0
  483. package/src/shade/renderer/shader/chunk/geometry/normal/chunk_decode_g_buffer_face_normal.d.ts.map +1 -0
  484. package/src/shade/renderer/shader/chunk/geometry/normal/chunk_decode_g_buffer_face_normal.js +22 -0
  485. package/src/shade/renderer/shader/chunk/geometry/normal/chunk_decode_g_buffer_normal.d.ts +8 -1
  486. package/src/shade/renderer/shader/chunk/geometry/normal/chunk_decode_g_buffer_normal.d.ts.map +1 -1
  487. package/src/shade/renderer/shader/chunk/geometry/normal/chunk_decode_g_buffer_normal.js +10 -8
  488. package/src/shade/renderer/shader/chunk/geometry/normal/chunk_encode_g_buffer_face_normal.d.ts +22 -0
  489. package/src/shade/renderer/shader/chunk/geometry/normal/chunk_encode_g_buffer_face_normal.d.ts.map +1 -0
  490. package/src/shade/renderer/shader/chunk/geometry/normal/chunk_encode_g_buffer_face_normal.js +32 -0
  491. package/src/shade/renderer/shader/chunk/geometry/normal/chunk_encode_g_buffer_normal.d.ts +11 -1
  492. package/src/shade/renderer/shader/chunk/geometry/normal/chunk_encode_g_buffer_normal.d.ts.map +1 -1
  493. package/src/shade/renderer/shader/chunk/geometry/normal/chunk_encode_g_buffer_normal.js +14 -6
  494. package/src/shade/renderer/shader/chunk/material/albedo_compress.d.ts +12 -0
  495. package/src/shade/renderer/shader/chunk/material/albedo_compress.d.ts.map +1 -0
  496. package/src/shade/renderer/shader/chunk/material/albedo_compress.js +26 -0
  497. package/src/shade/renderer/shader/chunk/material/chunk_albedo_compress.d.ts +16 -0
  498. package/src/shade/renderer/shader/chunk/material/chunk_albedo_compress.d.ts.map +1 -0
  499. package/src/shade/renderer/shader/chunk/material/chunk_albedo_compress.js +22 -0
  500. package/src/shade/renderer/shader/chunk/material/chunk_albedo_uncompress.d.ts +15 -0
  501. package/src/shade/renderer/shader/chunk/material/chunk_albedo_uncompress.d.ts.map +1 -0
  502. package/src/shade/renderer/shader/chunk/material/chunk_albedo_uncompress.js +23 -0
  503. package/src/shade/renderer/shader/chunk/material/chunk_decode_g_buffer_albedo.d.ts +14 -0
  504. package/src/shade/renderer/shader/chunk/material/chunk_decode_g_buffer_albedo.d.ts.map +1 -0
  505. package/src/shade/renderer/shader/chunk/material/chunk_decode_g_buffer_albedo.js +24 -0
  506. package/src/shade/renderer/shader/chunk/material/chunk_encode_g_buffer_albedo.d.ts +17 -0
  507. package/src/shade/renderer/shader/chunk/material/chunk_encode_g_buffer_albedo.d.ts.map +1 -0
  508. package/src/shade/renderer/shader/chunk/material/chunk_encode_g_buffer_albedo.js +27 -0
  509. package/src/shade/renderer/shader/chunk/material/chunk_metal_rough_compress.d.ts +16 -0
  510. package/src/shade/renderer/shader/chunk/material/chunk_metal_rough_compress.d.ts.map +1 -0
  511. package/src/shade/renderer/shader/chunk/material/chunk_metal_rough_compress.js +25 -0
  512. package/src/shade/renderer/shader/chunk/material/chunk_metal_rough_uncompress.d.ts +25 -0
  513. package/src/shade/renderer/shader/chunk/material/chunk_metal_rough_uncompress.d.ts.map +1 -0
  514. package/src/shade/renderer/shader/chunk/material/chunk_metal_rough_uncompress.js +36 -0
  515. package/src/shade/renderer/shader/chunk/material/metal_rough_compress.d.ts +11 -0
  516. package/src/shade/renderer/shader/chunk/material/metal_rough_compress.d.ts.map +1 -0
  517. package/src/shade/renderer/shader/chunk/material/metal_rough_compress.js +38 -0
  518. package/src/shade/renderer/shader/chunk/screen_space/SCREEN_SPACE_RESOURCES.d.ts +7 -1
  519. package/src/shade/renderer/shader/chunk/screen_space/SCREEN_SPACE_RESOURCES.d.ts.map +1 -1
  520. package/src/shade/renderer/shader/chunk/screen_space/SCREEN_SPACE_RESOURCES.js +8 -1
  521. package/src/shade/renderer/shader/chunk/screen_space/chunk_ffx_sssr_load_world_space_normal.js +1 -1
  522. package/src/shade/renderer/shader/chunk/screen_space/chunk_screen_space_newton_ray.js +10 -10
  523. package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot.d.ts +20 -0
  524. package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot.d.ts.map +1 -0
  525. package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot.js +35 -0
  526. package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot_compress.d.ts +28 -0
  527. package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot_compress.d.ts.map +1 -0
  528. package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot_compress.js +79 -0
  529. package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot_fit.d.ts +25 -0
  530. package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot_fit.d.ts.map +1 -0
  531. package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot_fit.js +89 -0
  532. package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot_uncompress.d.ts +31 -0
  533. package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot_uncompress.d.ts.map +1 -0
  534. package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot_uncompress.js +66 -0
  535. package/src/shade/renderer/shader/chunk/subgroup/chunk_subgroup_atomic_add.d.ts.map +1 -1
  536. package/src/shade/renderer/shader/chunk/subgroup/chunk_subgroup_atomic_add.js +2 -0
  537. package/src/shade/renderer/shader/chunk/subgroup/chunk_subgroup_atomic_load.d.ts +17 -0
  538. package/src/shade/renderer/shader/chunk/subgroup/chunk_subgroup_atomic_load.d.ts.map +1 -0
  539. package/src/shade/renderer/shader/chunk/subgroup/chunk_subgroup_atomic_load.js +34 -0
  540. package/src/shade/renderer/shader/pass/RenderPassDescriptor.d.ts +8 -0
  541. package/src/shade/renderer/shader/pass/RenderPassDescriptor.d.ts.map +1 -1
  542. package/src/shade/renderer/shader/pass/RenderPassDescriptor.js +9 -0
  543. package/src/shade/renderer/shader/util/shader_decode_octahedral_normal.js +1 -1
  544. package/src/shade/renderer/shadow/contact/graph_contact_shadow_linear.d.ts +3 -3
  545. package/src/shade/renderer/shadow/contact/graph_contact_shadow_linear.d.ts.map +1 -1
  546. package/src/shade/renderer/shadow/contact/graph_contact_shadow_linear.js +3 -3
  547. package/src/shade/renderer/shadow/contact/shader_contact_shadow_linear.d.ts.map +1 -1
  548. package/src/shade/renderer/shadow/contact/shader_contact_shadow_linear.js +6 -4
  549. package/src/shade/renderer/shadow/ray/RTXShadows.d.ts +6 -4
  550. package/src/shade/renderer/shadow/ray/RTXShadows.d.ts.map +1 -1
  551. package/src/shade/renderer/shadow/ray/RTXShadows.js +16 -5
  552. package/src/shade/renderer/shadow/ray/shader_ray_shadow_code.d.ts.map +1 -1
  553. package/src/shade/renderer/shadow/ray/shader_ray_shadow_code.js +7 -7
  554. package/src/shade/renderer/shadow/ray/shader_shadow_upscale.js +2 -2
  555. package/src/shade/renderer/shadow/ray/staged/gen/graph_gen_rays.d.ts +4 -2
  556. package/src/shade/renderer/shadow/ray/staged/gen/graph_gen_rays.d.ts.map +1 -1
  557. package/src/shade/renderer/shadow/ray/staged/gen/graph_gen_rays.js +79 -74
  558. package/src/shade/renderer/shadow/ray/staged/gen/shader_generate_rays.d.ts.map +1 -1
  559. package/src/shade/renderer/shadow/ray/staged/gen/shader_generate_rays.js +7 -7
  560. package/src/shade/renderer/shadow/sdf/cascade/shader_scene_sdf_soft_shadows.d.ts.map +1 -1
  561. package/src/shade/renderer/shadow/sdf/cascade/shader_scene_sdf_soft_shadows.js +7 -3
  562. package/src/shade/renderer/shadow/sdf/graph_draw_sdf_shadows.d.ts +7 -5
  563. package/src/shade/renderer/shadow/sdf/graph_draw_sdf_shadows.d.ts.map +1 -1
  564. package/src/shade/renderer/shadow/sdf/graph_draw_sdf_shadows.js +29 -16
  565. package/src/shade/renderer/texture/virtual/VirtualTextureManager.d.ts +5 -5
  566. package/src/shade/renderer/texture/virtual/VirtualTextureManager.d.ts.map +1 -1
  567. package/src/shade/renderer/texture/virtual/VirtualTextureManager.js +8 -8
  568. package/src/shade/renderer/texture/virtual/build_shader_vt_feedback.d.ts.map +1 -1
  569. package/src/shade/renderer/texture/virtual/build_shader_vt_feedback.js +13 -14
  570. package/src/shade/renderer/volumetrics/chunk_frustum_unit_box_coverage_multisample.d.ts +18 -0
  571. package/src/shade/renderer/volumetrics/chunk_frustum_unit_box_coverage_multisample.d.ts.map +1 -1
  572. package/src/shade/renderer/volumetrics/chunk_frustum_unit_box_coverage_multisample.js +31 -23
  573. package/src/shade/renderer/volumetrics/shader_volumetrics_build_participating_media.d.ts.map +1 -1
  574. package/src/shade/renderer/volumetrics/shader_volumetrics_build_participating_media.js +5 -6
  575. package/src/shade/renderer/water/GPUWaterRenderer.d.ts +2 -1
  576. package/src/shade/renderer/water/GPUWaterRenderer.d.ts.map +1 -1
  577. package/src/shade/renderer/water/GPUWaterRenderer.js +6 -4
  578. package/src/shade/renderer/water/chunk_water_transport.d.ts.map +1 -1
  579. package/src/shade/renderer/water/chunk_water_transport.js +11 -9
  580. package/src/shade/renderer/water/query/GPUWaterQueries.d.ts +1 -1
  581. package/src/shade/renderer/water/shader_water.d.ts.map +1 -1
  582. package/src/shade/renderer/water/shader_water.js +13 -11
  583. package/src/shade/renderer/wind/GPUSceneWind.d.ts +1 -1
  584. package/src/shade/renderer/gbuffer/G_BUFFER_MIP_LEVELS.d.ts +0 -7
  585. package/src/shade/renderer/gbuffer/G_BUFFER_MIP_LEVELS.d.ts.map +0 -1
  586. package/src/shade/renderer/gbuffer/G_BUFFER_MIP_LEVELS.js +0 -6
  587. package/src/shade/renderer/geometry/sdf/cards/GPUMeshCardSets.d.ts +0 -213
  588. package/src/shade/renderer/geometry/sdf/cards/GPUMeshCardSets.d.ts.map +0 -1
  589. package/src/shade/renderer/geometry/sdf/cards/GPUMeshCardSets.js +0 -1468
  590. package/src/shade/renderer/geometry/sdf/cards/MESH_CARDS.d.ts +0 -82
  591. package/src/shade/renderer/geometry/sdf/cards/MESH_CARDS.d.ts.map +0 -1
  592. package/src/shade/renderer/geometry/sdf/cards/MESH_CARDS.js +0 -127
  593. package/src/shade/renderer/geometry/sdf/cards/MESH_CARD_RESOURCES.d.ts +0 -24
  594. package/src/shade/renderer/geometry/sdf/cards/MESH_CARD_RESOURCES.d.ts.map +0 -1
  595. package/src/shade/renderer/geometry/sdf/cards/MESH_CARD_RESOURCES.js +0 -29
  596. package/src/shade/renderer/geometry/sdf/cards/MESH_CARD_SET_STRUCT.d.ts +0 -12
  597. package/src/shade/renderer/geometry/sdf/cards/MESH_CARD_SET_STRUCT.d.ts.map +0 -1
  598. package/src/shade/renderer/geometry/sdf/cards/MESH_CARD_SET_STRUCT.js +0 -31
  599. package/src/shade/renderer/geometry/sdf/cards/MeshCardCaptureMode.d.ts +0 -11
  600. package/src/shade/renderer/geometry/sdf/cards/MeshCardCaptureMode.d.ts.map +0 -1
  601. package/src/shade/renderer/geometry/sdf/cards/MeshCardCaptureMode.js +0 -21
  602. package/src/shade/renderer/geometry/sdf/cards/chunk_mesh_card_surface.d.ts +0 -29
  603. package/src/shade/renderer/geometry/sdf/cards/chunk_mesh_card_surface.d.ts.map +0 -1
  604. package/src/shade/renderer/geometry/sdf/cards/chunk_mesh_card_surface.js +0 -179
  605. package/src/shade/renderer/geometry/sdf/cards/chunk_mesh_cards.d.ts +0 -17
  606. package/src/shade/renderer/geometry/sdf/cards/chunk_mesh_cards.d.ts.map +0 -1
  607. package/src/shade/renderer/geometry/sdf/cards/chunk_mesh_cards.js +0 -107
  608. package/src/shade/renderer/geometry/sdf/cards/mesh_cards_raster_pass_descriptor.d.ts +0 -65
  609. package/src/shade/renderer/geometry/sdf/cards/mesh_cards_raster_pass_descriptor.d.ts.map +0 -1
  610. package/src/shade/renderer/geometry/sdf/cards/mesh_cards_raster_pass_descriptor.js +0 -376
  611. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_capture.d.ts +0 -40
  612. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_capture.d.ts.map +0 -1
  613. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_capture.js +0 -301
  614. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_compact.d.ts +0 -19
  615. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_compact.d.ts.map +0 -1
  616. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_compact.js +0 -61
  617. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_histogram.d.ts +0 -18
  618. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_histogram.d.ts.map +0 -1
  619. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_histogram.js +0 -102
  620. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_log.d.ts +0 -15
  621. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_log.d.ts.map +0 -1
  622. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_log.js +0 -65
  623. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_merge.d.ts +0 -22
  624. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_merge.d.ts.map +0 -1
  625. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_merge.js +0 -136
  626. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_pages.d.ts +0 -20
  627. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_pages.d.ts.map +0 -1
  628. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_pages.js +0 -104
  629. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_raster_args.d.ts +0 -20
  630. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_raster_args.d.ts.map +0 -1
  631. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_raster_args.js +0 -80
  632. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_raster_scatter.d.ts +0 -18
  633. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_raster_scatter.d.ts.map +0 -1
  634. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_raster_scatter.js +0 -113
  635. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_split.d.ts +0 -30
  636. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_split.d.ts.map +0 -1
  637. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_split.js +0 -146
  638. package/src/shade/renderer/global_illumination/probe_clipmap/debug/graph_probe_clipmap_debug_mesh_cards.d.ts +0 -34
  639. package/src/shade/renderer/global_illumination/probe_clipmap/debug/graph_probe_clipmap_debug_mesh_cards.d.ts.map +0 -1
  640. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_hit_surface.d.ts +0 -31
  641. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_hit_surface.d.ts.map +0 -1
  642. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_hit_surface.js +0 -82
  643. package/src/shade/renderer/postprocess/ssr/shader_downsample_encoded_normal.d.ts +0 -3
  644. package/src/shade/renderer/postprocess/ssr/shader_downsample_encoded_normal.d.ts.map +0 -1
  645. package/src/shade/renderer/postprocess/ssr/shader_downsample_encoded_normal.js +0 -104
@@ -1,120 +1,133 @@
1
- import {
2
- VIZ_BUFFER_INVALID_MESH_VALUE
3
- } from "../../shade/renderer/rasterize/native/viz/VIZ_BUFFER_INVALID_MESH_VALUE.js";
4
- import { CodeChunk } from "../../shade/renderer/shader/compiler/CodeChunk.js";
5
- import { ComputeShader } from "../../shade/renderer/shader/ComputeShader.js";
6
- import {
7
- ShaderResourceSetDescriptor
8
- } from "../../shade/renderer/shader/resource/ShaderResourceSetDescriptor.js";
9
- import { u32 } from "../../shade/renderer/shader/type/WEBGPU_WGSL_PRIMITIVE_TYPES.js";
10
- import { WebGPUArray } from "../../shade/renderer/shader/type/WebGPUArray.js";
11
-
12
- /**
13
- * Words a query occupies, on the way in and on the way back: a pixel's x and y going in, the mesh
14
- * row and the depth's bit pattern coming out.
15
- *
16
- * @type {number}
17
- */
18
- export const PICKING_GATHER_STRIDE_WORDS = 2;
19
-
20
- /**
21
- * The `x` of a query whose point is not on the view at all.
22
- *
23
- * A pick names a fraction of the view and a caller is free to ask outside it, so a query carries
24
- * either a pixel or this. No pixel can collide with it: `maxTextureDimension2D` is nowhere near
25
- * 2^32 - 1 in any WebGPU profile, so there is no view this is a column of.
26
- *
27
- * @type {number}
28
- */
29
- export const PICKING_QUERY_OFF_VIEW = 0xFFFFFFFF;
30
-
31
- /**
32
- * @type {number}
33
- */
34
- export const PICKING_GATHER_WORKGROUP_SIZE = 64;
35
-
36
- const resources = new ShaderResourceSetDescriptor();
37
-
38
- // per-dispatch, four bytes, read-only: immediate data rather than a uniform buffer
39
- resources.setImmediate("query_count", u32);
40
-
41
- resources.createGroup()
42
- // The frame's visibility buffer — the `meshes` row the rasterizer wrote at each pixel — and the
43
- // depth it wrote with it. Both are read as *bindings*, which is the whole reason this pass is a
44
- // dispatch: see the note on {@link shader_picking_gather}.
45
- .addTexture("viz_mesh", "uint")
46
- .addTexture("viz_depth", "depth");
47
-
48
- resources.createGroup()
49
- // x, y per query; `PICKING_QUERY_OFF_VIEW` in x for a query that is off the view
50
- .addStorageBuffer("queries", WebGPUArray.u32)
51
- // mesh row, then the depth's bits, per query
52
- .addStorageBuffer("results", WebGPUArray.u32, true);
53
-
54
- const body = CodeChunk.from(
55
- //language=WGSL
56
- `
57
- const PICKING_STRIDE : u32 = ${PICKING_GATHER_STRIDE_WORDS}u;
58
- const PICKING_OFF_VIEW : u32 = ${PICKING_QUERY_OFF_VIEW}u;
59
- const PICKING_VIZ_INVALID : u32 = ${VIZ_BUFFER_INVALID_MESH_VALUE}u;
60
-
61
- @compute @workgroup_size(${PICKING_GATHER_WORKGROUP_SIZE},1,1)
62
- fn main(@builtin(global_invocation_id) gid : vec3<u32>) {
63
- let index = gid.x;
64
-
65
- /*
66
- The dispatch is sized to ceil(query_count / 64) workgroups, so the tail carries up to 63 idle
67
- threads. Guarded on the immediate rather than on arrayLength: both buffers come from the
68
- transient pool, which matches approximately, so their lengths are pool state rather than the
69
- number of queries — a thread past the end would read a previous tenant's pixel and write a row
70
- nobody asked for.
71
- */
72
- if index >= query_count {
73
- return;
74
- }
75
-
76
- let base = index * PICKING_STRIDE;
77
-
78
- let x = queries[base];
79
- let y = queries[base + 1u];
80
-
81
- /*
82
- Every slot is written, the off-view ones included. A pooled buffer arrives carrying whatever its
83
- last tenant left, and a query off the view has to read back as nothing rather than as that — so
84
- the pass defines the whole of its output instead of a clear being encoded ahead of it.
85
- */
86
- if x == PICKING_OFF_VIEW {
87
- results[base] = PICKING_VIZ_INVALID;
88
- results[base + 1u] = 0u;
89
-
90
- return;
91
- }
92
-
93
- let at = vec2<i32>(i32(x), i32(y));
94
-
95
- results[base] = textureLoad(viz_mesh, at, 0).r;
96
- results[base + 1u] = bitcast<u32>(textureLoad(viz_depth, at, 0));
97
- }
98
- `);
99
-
100
- /**
101
- * Reads the visibility buffer's mesh row and the frame's depth at a handful of pixels, into a
102
- * buffer small enough to read back on a click.
103
- *
104
- * **A dispatch rather than a copy, twice over.** The obvious shape for this is
105
- * `copyTextureToBuffer` of a 1x1 region per query, and it is not legal WebGPU for either texture.
106
- * The visibility buffer is a render attachment the renderer never gave `COPY_SRC` — and should not
107
- * have to, since the flag is for the whole frame and a pick happens on a click — while a depth
108
- * format may not be sub-region copied **at all**: "if the format is a depth-or-stencil format [...]
109
- * the subresource size is equal to size", so the only legal copy of a 1065x1668 depth buffer is all
110
- * 7 MB of it. Both textures are already `TEXTURE_BINDING`, because the frame shades from them, and
111
- * `textureLoad` has neither restriction.
112
- *
113
- * One thread per query. Nothing is sampled, filtered or interpolated: the answer has to be the row
114
- * the rasterizer wrote at that exact pixel, which is what makes a pick as precise as the frame.
115
- */
116
- export const shader_picking_gather = ComputeShader.from({
117
- label: "Picking/Gather",
118
- resources,
119
- body,
120
- });
1
+ import {
2
+ VIZ_BUFFER_INVALID_MESH_VALUE
3
+ } from "../../shade/renderer/rasterize/native/viz/VIZ_BUFFER_INVALID_MESH_VALUE.js";
4
+ import {
5
+ chunk_visibility_decode,
6
+ VISIBLE_MESHLETS_RESOURCE
7
+ } from "../../shade/renderer/rasterize/visibility/chunk_visibility_decode.js";
8
+ import { CodeChunk } from "../../shade/renderer/shader/compiler/CodeChunk.js";
9
+ import { ComputeShader } from "../../shade/renderer/shader/ComputeShader.js";
10
+ import {
11
+ ShaderResourceSetDescriptor
12
+ } from "../../shade/renderer/shader/resource/ShaderResourceSetDescriptor.js";
13
+ import { u32 } from "../../shade/renderer/shader/type/WEBGPU_WGSL_PRIMITIVE_TYPES.js";
14
+ import { WebGPUArray } from "../../shade/renderer/shader/type/WebGPUArray.js";
15
+
16
+ /**
17
+ * Words a query occupies, on the way in and on the way back: a pixel's x and y going in, the mesh
18
+ * row and the depth's bit pattern coming out.
19
+ *
20
+ * @type {number}
21
+ */
22
+ export const PICKING_GATHER_STRIDE_WORDS = 2;
23
+
24
+ /**
25
+ * The `x` of a query whose point is not on the view at all.
26
+ *
27
+ * A pick names a fraction of the view and a caller is free to ask outside it, so a query carries
28
+ * either a pixel or this. No pixel can collide with it: `maxTextureDimension2D` is nowhere near
29
+ * 2^32 - 1 in any WebGPU profile, so there is no view this is a column of.
30
+ *
31
+ * @type {number}
32
+ */
33
+ export const PICKING_QUERY_OFF_VIEW = 0xFFFFFFFF;
34
+
35
+ /**
36
+ * @type {number}
37
+ */
38
+ export const PICKING_GATHER_WORKGROUP_SIZE = 64;
39
+
40
+ const resources = new ShaderResourceSetDescriptor();
41
+
42
+ // per-dispatch, four bytes, read-only: immediate data rather than a uniform buffer
43
+ resources.setImmediate("query_count", u32);
44
+
45
+ resources.createGroup()
46
+ // The frame's visibility buffer, with the table that resolves each pixel to the `meshes` row it was
47
+ // drawn for, and the depth written with it. Read as *bindings*, which is the whole reason this pass
48
+ // is a dispatch: see the note on {@link shader_picking_gather}.
49
+ .addTexture("visibility", "uint")
50
+ .add(VISIBLE_MESHLETS_RESOURCE)
51
+ .addTexture("viz_depth", "depth");
52
+
53
+ resources.createGroup()
54
+ // x, y per query; `PICKING_QUERY_OFF_VIEW` in x for a query that is off the view
55
+ .addStorageBuffer("queries", WebGPUArray.u32)
56
+ // mesh row, then the depth's bits, per query
57
+ .addStorageBuffer("results", WebGPUArray.u32, true);
58
+
59
+ const body = CodeChunk.from(
60
+ //language=WGSL
61
+ `
62
+ const PICKING_STRIDE : u32 = ${PICKING_GATHER_STRIDE_WORDS}u;
63
+ const PICKING_OFF_VIEW : u32 = ${PICKING_QUERY_OFF_VIEW}u;
64
+ const PICKING_VIZ_INVALID : u32 = ${VIZ_BUFFER_INVALID_MESH_VALUE}u;
65
+
66
+ @compute @workgroup_size(${PICKING_GATHER_WORKGROUP_SIZE},1,1)
67
+ fn main(@builtin(global_invocation_id) gid : vec3<u32>) {
68
+ let index = gid.x;
69
+
70
+ /*
71
+ The dispatch is sized to ceil(query_count / 64) workgroups, so the tail carries up to 63 idle
72
+ threads. Guarded on the immediate rather than on arrayLength: both buffers come from the
73
+ transient pool, which matches approximately, so their lengths are pool state rather than the
74
+ number of queries — a thread past the end would read a previous tenant's pixel and write a row
75
+ nobody asked for.
76
+ */
77
+ if index >= query_count {
78
+ return;
79
+ }
80
+
81
+ let base = index * PICKING_STRIDE;
82
+
83
+ let x = queries[base];
84
+ let y = queries[base + 1u];
85
+
86
+ /*
87
+ Every slot is written, the off-view ones included. A pooled buffer arrives carrying whatever its
88
+ last tenant left, and a query off the view has to read back as nothing rather than as that — so
89
+ the pass defines the whole of its output instead of a clear being encoded ahead of it.
90
+ */
91
+ if x == PICKING_OFF_VIEW {
92
+ results[base] = PICKING_VIZ_INVALID;
93
+ results[base + 1u] = 0u;
94
+
95
+ return;
96
+ }
97
+
98
+ let at = vec2<i32>(i32(x), i32(y));
99
+
100
+ let word = textureLoad(visibility, at, 0).r;
101
+
102
+ var row = PICKING_VIZ_INVALID;
103
+
104
+ if word != VISIBILITY_NONE {
105
+ row = visibility_decode(word).mesh;
106
+ }
107
+
108
+ results[base] = row;
109
+ results[base + 1u] = bitcast<u32>(textureLoad(viz_depth, at, 0));
110
+ }
111
+ `, [chunk_visibility_decode]);
112
+
113
+ /**
114
+ * Reads the visibility buffer's mesh row and the frame's depth at a handful of pixels, into a
115
+ * buffer small enough to read back on a click.
116
+ *
117
+ * **A dispatch rather than a copy, twice over.** The obvious shape for this is
118
+ * `copyTextureToBuffer` of a 1x1 region per query, and it is not legal WebGPU for either texture.
119
+ * The visibility buffer is a render attachment the renderer never gave `COPY_SRC` — and should not
120
+ * have to, since the flag is for the whole frame and a pick happens on a click — while a depth
121
+ * format may not be sub-region copied **at all**: "if the format is a depth-or-stencil format [...]
122
+ * the subresource size is equal to size", so the only legal copy of a 1065x1668 depth buffer is all
123
+ * 7 MB of it. Both textures are already `TEXTURE_BINDING`, because the frame shades from them, and
124
+ * `textureLoad` has neither restriction.
125
+ *
126
+ * One thread per query. Nothing is sampled, filtered or interpolated: the answer has to be the row
127
+ * the rasterizer wrote at that exact pixel, which is what makes a pick as precise as the frame.
128
+ */
129
+ export const shader_picking_gather = ComputeShader.from({
130
+ label: "Picking/Gather",
131
+ resources,
132
+ body,
133
+ });
@@ -66,11 +66,11 @@ export class FluidObstacleSystem extends System<any> {
66
66
  /**
67
67
  * @param {FluidComponent} fluid
68
68
  */
69
- static "__#486@#refresh_masks"(fluid: FluidComponent): void;
69
+ static "__#488@#refresh_masks"(fluid: FluidComponent): void;
70
70
  /**
71
71
  * @param {FluidComponent} fluid
72
72
  */
73
- static "__#486@#clear_field"(fluid: FluidComponent): void;
73
+ static "__#488@#clear_field"(fluid: FluidComponent): void;
74
74
  /**
75
75
  * Mark every cell of `fluid` whose centre lies within `inflation` of the
76
76
  * posed shape as solid. Iteration is clipped to the shape's world AABB
@@ -82,7 +82,7 @@ export class FluidObstacleSystem extends System<any> {
82
82
  * @param {number} inflation world-units SDF threshold
83
83
  * @param {Float64Array} point length-3 scratch
84
84
  */
85
- static "__#486@#voxelize"(fluid: FluidComponent, posed: PosedShape3D, aabb: Float64Array, inflation: number, point: Float64Array): void;
85
+ static "__#488@#voxelize"(fluid: FluidComponent, posed: PosedShape3D, aabb: Float64Array, inflation: number, point: Float64Array): void;
86
86
  /**
87
87
  * Write the obstacle's translation velocity onto every face of every cell
88
88
  * it voxelized — the moving-wall boundary condition. Runs AFTER the mask
@@ -102,7 +102,7 @@ export class FluidObstacleSystem extends System<any> {
102
102
  * @param {number} wvy
103
103
  * @param {number} wvz
104
104
  */
105
- static "__#486@#stamp_wall_velocity"(fluid: FluidComponent, posed: PosedShape3D, aabb: Float64Array, inflation: number, point: Float64Array, wvx: number, wvy: number, wvz: number): void;
105
+ static "__#488@#stamp_wall_velocity"(fluid: FluidComponent, posed: PosedShape3D, aabb: Float64Array, inflation: number, point: Float64Array, wvx: number, wvy: number, wvz: number): void;
106
106
  constructor();
107
107
  dependencies: (typeof FluidObstacle)[];
108
108
  components_used: (ResourceAccessSpecification<typeof Transform64> | ResourceAccessSpecification<typeof FluidObstacle> | ResourceAccessSpecification<typeof Collider> | ResourceAccessSpecification<typeof RigidBody> | ResourceAccessSpecification<typeof FluidComponent>)[];
@@ -1 +1 @@
1
- {"version":3,"file":"SoftwareGPUTexture.d.ts","sourceRoot":"","sources":["../../../../../src/shade/device/mock/SoftwareGPUTexture.js"],"names":[],"mappings":"AAYA;;;;;;;;;GASG;AACH,yEAFgB,UAAU;IAkEtB;;;;;;OAMG;IACH,6EAFa,kBAAkB,CAI9B;IAnCD;;;;OAIG;IACH,iFAFW,OAAO,EAqBjB;IAzDD;;;;;;OAMG;IACH,uBAEC;IAuCG,WAAuC;IACvC,YAAyC;IACzC,wBAAiE;IAEjE,YAA+B;IAC/B,eAA6C;IAC7C,WAA6B;IAC7B,iBAA8C;IAC9C,mBAAkD;IActD;;OAEG;IACH,2BAEC;IAED;;;;OAIG;IACH,wCAEC;IAED;;;;;;;;;OASG;IACH,8BAUC;IAED;;;OAGG;IACH,eAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;OAGG;IACH,gBAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;;;;OAMG;IACH,gBAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;;;;OAMG;IACH,gBAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;;;OAKG;IACH,kBAHW,MAAM,GACJ,MAAM,CAKlB;IAED;;;;;;OAMG;IACH,mBAHW,MAAM,GACJ,WAAW,CAgBvB;IAED;;;;;;;;;;;;;OAaG;IACH,kEAUC;IAwCD;;;OAGG;IACH,gBAOC;IAGL;;;OAGG;IACH,+BAFU,OAAO,CAEgC;;CANhD;sCAlRqC,4BAA4B"}
1
+ {"version":3,"file":"SoftwareGPUTexture.d.ts","sourceRoot":"","sources":["../../../../../src/shade/device/mock/SoftwareGPUTexture.js"],"names":[],"mappings":"AAYA;;;;;;;;;GASG;AACH,yEAFgB,UAAU;IAkEtB;;;;;;OAMG;IACH,6EAFa,kBAAkB,CAI9B;IAnCD;;;;OAIG;IACH,iFAFW,OAAO,EAqBjB;IAzDD;;;;;;OAMG;IACH,uBAEC;IAuCG,WAAuC;IACvC,YAAyC;IACzC,wBAAiE;IAEjE,YAA+B;IAC/B,eAA6C;IAC7C,WAA6B;IAC7B,iBAA8C;IAC9C,mBAAkD;IActD;;OAEG;IACH,2BAEC;IAED;;;;OAIG;IACH,wCAEC;IAED;;;;;;;;;OASG;IACH,8BAUC;IAED;;;OAGG;IACH,eAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;OAGG;IACH,gBAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;;;;OAMG;IACH,gBAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;;;;OAMG;IACH,gBAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;;;OAKG;IACH,kBAHW,MAAM,GACJ,MAAM,CAKlB;IAED;;;;;;OAMG;IACH,mBAHW,MAAM,GACJ,WAAW,CAgBvB;IAED;;;;;;;;;;;;;OAaG;IACH,kEAUC;IAmDD;;;OAGG;IACH,gBAOC;IAGL;;;OAGG;IACH,+BAFU,OAAO,CAEgC;;CANhD;sCA7RqC,4BAA4B"}
@@ -266,6 +266,17 @@ export class SoftwareGPUTexture extends SoftwareGPUObjectBase {
266
266
  + ` nor one of its viewFormats (${this.#view_formats.join(', ') || 'none'})`;
267
267
  }
268
268
 
269
+ /*
270
+ The levels a view covers must be levels the texture has: at least one, all of them below its
271
+ mipLevelCount. An unset count is every level from the base on.
272
+ */
273
+ const base_mip_level = descriptor?.baseMipLevel ?? 0;
274
+ const mip_level_count = descriptor?.mipLevelCount ?? (this.mipLevelCount - base_mip_level);
275
+
276
+ if (mip_level_count < 1 || base_mip_level + mip_level_count > this.mipLevelCount) {
277
+ return `levels ${base_mip_level} to ${base_mip_level + mip_level_count - 1} of '${this.label}', which has ${this.mipLevelCount}`;
278
+ }
279
+
269
280
  return null;
270
281
  }
271
282
 
@@ -48,7 +48,7 @@ for (const tuple of compatible_tuples) {
48
48
  */
49
49
  function is_compatible(a, b) {
50
50
  // Identical formats are always compatible — including formats with no tuple entry (e.g. the
51
- // gbuffer's rgba16uint / r32uint), which the rewrite loop still checks when some OTHER target
51
+ // gbuffer's r32uint targets), which the rewrite loop still checks when some OTHER target
52
52
  // triggered a rewrite. Guard the lookup so an unlisted source is treated as incompatible and
53
53
  // reaches the descriptive error below, rather than throwing a raw TypeError.
54
54
  if (a === b) {
@@ -344,7 +344,7 @@ export class ContactShadowLab {
344
344
  step_count: this.march_steps,
345
345
  },
346
346
  gBufferDepth: depth,
347
- gBufferNormal: gbuffer.normal,
347
+ gBufferPBR: gbuffer.pbr,
348
348
  camera: view.camera.buffer,
349
349
  tContactShadow: TextureResourceDescriptor.from({
350
350
  resolution: [width, height],
@@ -363,7 +363,7 @@ export class ContactShadowLab {
363
363
  contact = graph_contact_shadow_linear({
364
364
  graph,
365
365
  depth,
366
- normal: gbuffer.normal,
366
+ pbr: gbuffer.pbr,
367
367
  camera: view.camera.buffer,
368
368
  resolution,
369
369
  settings,
@@ -372,7 +372,7 @@ export class ContactShadowLab {
372
372
 
373
373
  const traced = this.reference || this.measuring;
374
374
 
375
- const reference = traced ? this.#record_reference(graph, view, depth, gbuffer.normal, width, height) : -1;
375
+ const reference = traced ? this.#record_reference(graph, view, depth, gbuffer.pbr, width, height) : -1;
376
376
 
377
377
  let flags = 0;
378
378
 
@@ -427,7 +427,7 @@ export class ContactShadowLab {
427
427
  * One ray per pixel from its G-buffer position toward the sun, through the scene's BVH
428
428
  * ({@link shader_contact_lab_reference}): visibility, 1 lit and 0 shadowed.
429
429
  */
430
- #record_reference(graph, view, depth, normal, width, height) {
430
+ #record_reference(graph, view, depth, pbr, width, height) {
431
431
  const data = {};
432
432
  const pass = graph.add('Contact lab / ray-traced reference', data, (data, resources, context) => {
433
433
  const scene_ctx = view.scene;
@@ -444,7 +444,7 @@ export class ContactShadowLab {
444
444
  bindings: {
445
445
  settings: { normal_offset: this.reference_normal_offset },
446
446
  gBufferDepth: resources.get(data.depth).obtainView(MIP_0),
447
- gBufferNormal: resources.get(data.normal).obtainView(MIP_0),
447
+ gBufferPBR: resources.get(data.pbr).obtainView(MIP_0),
448
448
  camera: view.camera.buffer,
449
449
  view: view.uniform_buffer,
450
450
  tlas: scene_ctx.tlas.buffer,
@@ -463,7 +463,7 @@ export class ContactShadowLab {
463
463
  });
464
464
 
465
465
  data.depth = pass.read(depth);
466
- data.normal = pass.read(normal);
466
+ data.pbr = pass.read(pbr);
467
467
  data.output = pass.create('contact lab / reference', TextureResourceDescriptor.from({
468
468
  resolution: [width, height],
469
469
  format: 'r32float',
@@ -1 +1 @@
1
- {"version":3,"file":"shader_contact_lab_composite.d.ts","sourceRoot":"","sources":["../../../../../src/shade/playground/contact_shadows/shader_contact_lab_composite.js"],"names":[],"mappings":";;;6BA4BU,MAAM;;;;;;;;;oCAgBN,MAAM;;;;;AAwKhB;;;;;;;;;;;;;;;GAeG;AACH,2CAFU,WAAW,CAkBlB;4BArOyB,sCAAsC"}
1
+ {"version":3,"file":"shader_contact_lab_composite.d.ts","sourceRoot":"","sources":["../../../../../src/shade/playground/contact_shadows/shader_contact_lab_composite.js"],"names":[],"mappings":";;;6BA+BU,MAAM;;;;;;;;;oCAgBN,MAAM;;;;;AAuKhB;;;;;;;;;;;;;;;GAeG;AACH,2CAFU,WAAW,CAkBlB;4BApOyB,sCAAsC"}
@@ -4,6 +4,9 @@ import { chunk_project_position_from_depth } from "../../renderer/shader/chunk/c
4
4
  import { chunk_is_background } from "../../renderer/shader/chunk/depth/chunk_is_background.js";
5
5
  import { chunk_mat4_extract_position } from "../../renderer/shader/chunk/geometry/mat4/chunk_mat4_extract_position.js";
6
6
  import { chunk_decode_g_buffer_normal } from "../../renderer/shader/chunk/geometry/normal/chunk_decode_g_buffer_normal.js";
7
+ import {
8
+ chunk_decode_g_buffer_face_normal
9
+ } from "../../renderer/shader/chunk/geometry/normal/chunk_decode_g_buffer_face_normal.js";
7
10
  import { chunk_directional_lights_iteration_mask } from "../../renderer/shader/chunk/light/io/chunk_directional_lights_iteration_mask.js";
8
11
  import { chunk_get_directional_light_info_by_index } from "../../renderer/shader/chunk/light/io/chunk_get_directional_light_info_by_index.js";
9
12
  import { REFLECTED_LIGHT_STRUCT } from "../../renderer/shader/chunk/light/REFLECTED_LIGHT_STRUCT.js";
@@ -123,11 +126,9 @@ fn main(
123
126
  let position_ws = project_position_from_depth(uv, texel_depth, camera.view_projection_matrix_inverse);
124
127
  let view_direction = normalize(mat4_extract_position(camera.transform) - position_ws);
125
128
 
126
- let g_buffer_sample_normal = textureLoad(gBufferNormal, i_coord, 0);
127
-
128
129
  let geometry = ${GEOMETRIC_SHADING_INFO_STRUCT.wgsl_ref}(
129
- decode_g_buffer_normal(g_buffer_sample_normal.xy),
130
- decode_g_buffer_normal(g_buffer_sample_normal.zw),
130
+ decode_g_buffer_normal(textureLoad(gBufferNormal, i_coord, 0).x),
131
+ decode_g_buffer_face_normal(textureLoad(gBufferPBR, i_coord, 0)),
131
132
  position_ws,
132
133
  view_direction,
133
134
  );
@@ -201,6 +202,7 @@ fn main(
201
202
  chunk_project_position_from_depth,
202
203
  chunk_mat4_extract_position,
203
204
  chunk_decode_g_buffer_normal,
205
+ chunk_decode_g_buffer_face_normal,
204
206
  chunk_read_gBuffer_material,
205
207
  chunk_directional_lights_iteration_mask,
206
208
  chunk_get_directional_light_info_by_index,
@@ -1 +1 @@
1
- {"version":3,"file":"shader_contact_lab_reference.d.ts","sourceRoot":"","sources":["../../../../../src/shade/playground/contact_shadows/shader_contact_lab_reference.js"],"names":[],"mappings":"AAuGA;;;;;;;;;;;GAWG;AACH,2CAFU,aAAa,CAMpB;8BAxG2B,wCAAwC"}
1
+ {"version":3,"file":"shader_contact_lab_reference.d.ts","sourceRoot":"","sources":["../../../../../src/shade/playground/contact_shadows/shader_contact_lab_reference.js"],"names":[],"mappings":"AAyGA;;;;;;;;;;;GAWG;AACH,2CAFU,aAAa,CAMpB;8BAxG2B,wCAAwC"}
@@ -4,7 +4,9 @@ import { INDIRECT_MATERIAL_ARRAY_TYPE } from "../../renderer/material/resident/I
4
4
  import { chunk_ray_shaded_query_occluded } from "../../renderer/path_tracer/shader/chunk_ray_shaded_query_occluded.js";
5
5
  import { chunk_project_position_from_depth } from "../../renderer/shader/chunk/camera/chunk_project_position_from_depth.js";
6
6
  import { chunk_is_background } from "../../renderer/shader/chunk/depth/chunk_is_background.js";
7
- import { chunk_decode_g_buffer_normal } from "../../renderer/shader/chunk/geometry/normal/chunk_decode_g_buffer_normal.js";
7
+ import {
8
+ chunk_decode_g_buffer_face_normal
9
+ } from "../../renderer/shader/chunk/geometry/normal/chunk_decode_g_buffer_face_normal.js";
8
10
  import { chunk_offset_ray } from "../../renderer/shader/chunk/geometry/ray/chunk_offset_ray.js";
9
11
  import { RAY_STRUCT } from "../../renderer/shader/chunk/geometry/ray/RAY_STRUCT.js";
10
12
  import { chunk_directional_lights_iteration_mask } from "../../renderer/shader/chunk/light/io/chunk_directional_lights_iteration_mask.js";
@@ -38,7 +40,7 @@ resources.createGroup()
38
40
 
39
41
  resources.createGroup()
40
42
  .addTexture("gBufferDepth")
41
- .addTexture("gBufferNormal", "uint")
43
+ .addTexture("gBufferPBR")
42
44
  .addUniform("camera", CAMERA_UNIFORM_STRUCT)
43
45
  .addUniform("view", VIEW_UNIFORM_STRUCT)
44
46
  .addStorageTexture("tReference", "r32float", "2d", "write-only");
@@ -66,7 +68,7 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
66
68
  if (!is_background(depth) && directional_bits != 0u) {
67
69
  let uv = texel_coordinate_to_uv(vec2<f32>(id.xy), size);
68
70
  let position_ws = project_position_from_depth(uv, depth, camera.view_projection_matrix_inverse);
69
- let geometric_normal = decode_g_buffer_normal(textureLoad(gBufferNormal, id.xy, 0).zw);
71
+ let geometric_normal = decode_g_buffer_face_normal(textureLoad(gBufferPBR, id.xy, 0));
70
72
 
71
73
  let sun = get_directional_light_info_by_index(&light_data, countTrailingZeros(directional_bits));
72
74
 
@@ -93,7 +95,7 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
93
95
  chunk_is_background,
94
96
  chunk_texel_coordinate_to_uv,
95
97
  chunk_project_position_from_depth,
96
- chunk_decode_g_buffer_normal,
98
+ chunk_decode_g_buffer_face_normal,
97
99
  chunk_offset_ray,
98
100
  chunk_directional_lights_iteration_mask,
99
101
  chunk_get_directional_light_info_by_index,
@@ -1 +1 @@
1
- {"version":3,"file":"shader_contact_shadow_march.d.ts","sourceRoot":"","sources":["../../../../../src/shade/playground/contact_shadows/shader_contact_shadow_march.js"],"names":[],"mappings":"AA6EA;;;;;;;GAOG;AACH,0CAFU,aAAa,CAMpB;8BAjF2B,wCAAwC"}
1
+ {"version":3,"file":"shader_contact_shadow_march.d.ts","sourceRoot":"","sources":["../../../../../src/shade/playground/contact_shadows/shader_contact_shadow_march.js"],"names":[],"mappings":"AA+EA;;;;;;;GAOG;AACH,0CAFU,aAAa,CAMpB;8BAjF2B,wCAAwC"}
@@ -3,7 +3,9 @@ import { chunk_ss_trace_pixel_occlusion } from "../../renderer/deferred/chunk_ss
3
3
  import { chunk_project_position_from_depth } from "../../renderer/shader/chunk/camera/chunk_project_position_from_depth.js";
4
4
  import { chunk_get_view_space_depth } from "../../renderer/shader/chunk/depth/chunk_get_view_space_depth.js";
5
5
  import { chunk_is_background } from "../../renderer/shader/chunk/depth/chunk_is_background.js";
6
- import { chunk_decode_g_buffer_normal } from "../../renderer/shader/chunk/geometry/normal/chunk_decode_g_buffer_normal.js";
6
+ import {
7
+ chunk_decode_g_buffer_face_normal
8
+ } from "../../renderer/shader/chunk/geometry/normal/chunk_decode_g_buffer_face_normal.js";
7
9
  import { chunk_texel_coordinate_to_uv } from "../../renderer/shader/chunk/texture/chunk_texel_coordinate_to_uv.js";
8
10
  import { CodeChunk } from "../../renderer/shader/compiler/CodeChunk.js";
9
11
  import { ComputeShader } from "../../renderer/shader/ComputeShader.js";
@@ -23,7 +25,7 @@ resources.setImmediate("settings", SETTINGS);
23
25
 
24
26
  resources.createGroup()
25
27
  .addTexture("gBufferDepth")
26
- .addTexture("gBufferNormal", "uint")
28
+ .addTexture("gBufferPBR")
27
29
  .addUniform("camera", CAMERA_UNIFORM_STRUCT)
28
30
  .addStorageTexture("tContactShadow", "r32float", "2d", "write-only");
29
31
 
@@ -47,7 +49,7 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
47
49
 
48
50
  let uv = texel_coordinate_to_uv(vec2<f32>(id.xy), size);
49
51
  let position_ws = project_position_from_depth(uv, depth, camera.view_projection_matrix_inverse);
50
- let geometric_normal = decode_g_buffer_normal(textureLoad(gBufferNormal, id.xy, 0).zw);
52
+ let geometric_normal = decode_g_buffer_face_normal(textureLoad(gBufferPBR, id.xy, 0));
51
53
 
52
54
  // the same window as the wavefront pass: an occluder may sit up to 2 × thickness × its distance in front
53
55
  let thickness = 2.0 * settings.surface_thickness * get_view_space_depth(depth, camera);
@@ -70,7 +72,7 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
70
72
  chunk_texel_coordinate_to_uv,
71
73
  chunk_project_position_from_depth,
72
74
  chunk_get_view_space_depth,
73
- chunk_decode_g_buffer_normal,
75
+ chunk_decode_g_buffer_face_normal,
74
76
  chunk_ss_trace_pixel_occlusion,
75
77
  ]
76
78
  );
@@ -21,7 +21,7 @@ has the two lines that put it there. Another scene loads with `?scene=/some/othe
21
21
  | control | what it does |
22
22
  |---|---|
23
23
  | Indirect light | the probe clipmap, or IBL to compare against |
24
- | Debug view | the brick clipmap as the probes' rays see it; the geometry caches' mesh SDF; the hits' albedo from the cards |
24
+ | Debug view | the brick clipmap as the probes' rays see it; the geometry caches' mesh SDF; the hits' albedo from the meshes' surface caches; the brick material the probes' hits read; the light the probes' indirect diffuse (irradiance / π) or indirect specular (radiance) is made of, before the surface's albedo, metalness, reflectance and occlusion, through the frame's TAA and exposure |
25
25
  | Path tracer (P) | the accumulating path tracer's image in place of the rasterized one, as ground truth; TAA is off while it is on and comes back after |
26
26
  | History re-sampling (R) | each probe update pools its rays with what four of its neighbours have already seen, where their depth confirms it (`ProbeClipmapSettings.history_resampling`); off by default, and measured quieter but no faster to converge on Sponza (PROBE_CLIPMAP_PROPOSAL_2026_10_27.md §8.8) |
27
27
  | Ray re-sampling (T) | each probe update also takes every ray one neighbour traced the same frame, the neighbour drawn by its radiance and the probe's sight of it, each ray where the probe's depth confirms its hit or sky (`ProbeClipmapSettings.ray_resampling`); off by default (PROBE_RAY_REPROJECTION_SCOPE_2026_11_01.md) |
@@ -39,6 +39,5 @@ the camera, the sun or the point lights restarts it. It stops at three bounces.
39
39
 
40
40
  ## What to expect
41
41
 
42
- Specular light still comes from the environment, unoccluded, until the probes' specular lands (the
43
- proposal's S6). Indoors, where the probes' diffuse is rightly darker than IBL's, that sky reflection shows
44
- as a bluish sheen over cloth and stone.
42
+ Both lobes come from the probes (the proposal's §9). A pixel no probe weighs anything for takes the
43
+ environment's light for both, as IBL gives it.
@@ -99,7 +99,11 @@
99
99
  <option value="None" selected>None</option>
100
100
  <option value="BrickClipmap">Brick clipmap — what the rays see</option>
101
101
  <option value="MeshSDF">Mesh SDF — the geometry caches</option>
102
- <option value="MeshCards">Mesh cards — the hits' albedo</option>
102
+ <option value="MeshSurfaces">Mesh surfaces — each mesh's surface cache</option>
103
+ <option value="IndirectDiffuse">Indirect diffuse — the probes' irradiance / π, before the material</option>
104
+ <option value="IndirectSpecular">Indirect specular — the probes' radiance, before the material</option>
105
+ <option value="BrickMaterial">Brick material — the probes' hits' albedo</option>
106
+ <option value="BrickMetalRough">Brick material — the probes' hits' metal (R) and rough (G)</option>
103
107
  </select>
104
108
  </label>
105
109
 
@@ -153,18 +157,6 @@
153
157
  frame-time knob; this page starts higher so Sponza is whole in seconds, not minutes.
154
158
  </p>
155
159
 
156
- <label>
157
- <span>Card capture</span>
158
- <select id="card_capture_mode">
159
- <option value="Raster" selected>Raster — the material's own pass</option>
160
- <option value="Trace">Trace — a ray a texel</option>
161
- </select>
162
- </label>
163
- <p class="note">
164
- How the cards take their albedo. A change captures every card set again; the Mesh cards view
165
- shows what they hold.
166
- </p>
167
-
168
160
  <hr>
169
161
 
170
162
  <div id="status"></div>
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../../../src/shade/playground/probe_clipmap/main.js"],"names":[],"mappings":"AA0FA;;;;;GAKG;AACH,yBAFa,QAAQ,IAAI,CAAC,CA0SzB"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../../../src/shade/playground/probe_clipmap/main.js"],"names":[],"mappings":"AAyFA;;;;;GAKG;AACH,yBAFa,QAAQ,IAAI,CAAC,CAsSzB"}
@@ -11,7 +11,6 @@ import { camera_frame_sphere } from "../../renderer/camera/camera_frame_sphere.j
11
11
  import { OrbitalCameraController } from "../../renderer/camera/orbital/OrbitalCameraController.js";
12
12
  import { PerspectiveCamera } from "../../renderer/camera/PerspectiveCamera.js";
13
13
  import { create_frame_loop } from "../../renderer/create_frame_loop.js";
14
- import { MeshCardCaptureMode } from "../../renderer/geometry/sdf/cards/MeshCardCaptureMode.js";
15
14
  import { ProbeClipmapDebugView } from "../../renderer/global_illumination/probe_clipmap/debug/ProbeClipmapDebugView.js";
16
15
  import { make_sunlight } from "../../renderer/light/make_sunlight.js";
17
16
  import { PointLight } from "../../renderer/light/model/PointLight.js";
@@ -242,10 +241,6 @@ export async function start() {
242
241
  renderer.probe_clipmap.debug_view = ProbeClipmapDebugView[event.target.value];
243
242
  });
244
243
 
245
- element('card_capture_mode').addEventListener('change', event => {
246
- renderer.probe_clipmap.card_capture_mode = MeshCardCaptureMode[event.target.value];
247
- });
248
-
249
244
  const taa_toggle = element('taa');
250
245
  const path_tracing_toggle = element('path_tracing');
251
246
 
@@ -34,7 +34,7 @@ then open <http://localhost:5173/src/shade/playground/probe_clipmap_box/index.ht
34
34
  | Sun (1, 2, 3) | through the hole onto the red wall or the green wall, from 45°, or straight down onto the floor |
35
35
  | Hole open (H) | closed, a lid of the hole's size sits flush in the ceiling; it is placed into the scene and taken out again, so the bricks the rays march are rebuilt as a level's would be |
36
36
  | Indirect light | the probe clipmap, or IBL to compare against |
37
- | Debug view | the brick clipmap as the rays see it; the geometry caches' mesh SDF; the hits' albedo from the cards |
37
+ | Debug view | the brick clipmap as the rays see it; the geometry caches' mesh SDF; the hits' albedo from the meshes' surface caches |
38
38
  | Restart GI (K) | gives the clipmaps back and builds them again from nothing, the geometry caches kept: a cold start without a reload |
39
39
  | Path tracer (P) | the accumulating path tracer, three bounces, for context; TAA is off while it is on |
40
40
  | TAA | the resolve the probe pick's noise is meant for |
@@ -127,7 +127,7 @@
127
127
  <option value="None" selected>None</option>
128
128
  <option value="BrickClipmap">Brick clipmap — what the rays see</option>
129
129
  <option value="MeshSDF">Mesh SDF — the geometry caches</option>
130
- <option value="MeshCards">Mesh cards — the hits' albedo</option>
130
+ <option value="MeshSurfaces">Mesh surfaces — each mesh's surface cache</option>
131
131
  </select>
132
132
  </label>
133
133
 
@@ -16,7 +16,7 @@ const shader = new ImageShader({
16
16
  body:CodeChunk.from(/* language=WGSL */ `
17
17
  @fragment fn main(@builtin(position) coord:vec4f) -> @location(0) vec4f {
18
18
  let p = vec2i(coord.xy);
19
- if (decode_g_buffer_normal(textureLoad(tNormal,p,0).xy).y < 0.99) { return vec4f(-1.0); }
19
+ if (decode_g_buffer_normal(textureLoad(tNormal,p,0).x).y < 0.99) { return vec4f(-1.0); }
20
20
  let a = textureLoad(tBefore,p,0);
21
21
  let b = textureLoad(tAfter,p,0);
22
22
  let difference = abs(a.rgb-b.rgb);