@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,4 +1,6 @@
1
1
  import { assert } from "../../../../core/assert.js";
2
+ import { BufferResourceDescriptor } from "../../../device/graph/BufferResourceDescriptor.js";
3
+ import { STRUCT_DISPATCH_COMPUTE_COMMAND } from "../../gpu_primitive/indirect/STRUCT_DISPATCH_COMPUTE_COMMAND.js";
2
4
  import { STRUCT_UNINDEXED_DRAW_COMMAND } from "../../gpu_primitive/indirect/STRUCT_UNINDEXED_DRAW_COMMAND.js";
3
5
  import { BindGroupDescriptor } from "../../binding/BindGroupDescriptor.js";
4
6
  import { ShadeDrawMode } from "../../material/ShadeDrawMode.js";
@@ -20,6 +22,11 @@ import {
20
22
  RASTERIZATION_SHADER_BIND_GROUP_SCENE,
21
23
  RASTERIZATION_SHADER_BIND_GROUP_VIEW
22
24
  } from "./alpha_tested_pass_resources.js";
25
+ import {
26
+ shader_visible_meshlets_copy_array,
27
+ shader_visible_meshlets_offset_commands,
28
+ shader_visible_meshlets_reserve
29
+ } from "../visibility/shader_visible_meshlets_append.js";
23
30
 
24
31
  const DRAW_COMMAND_BYTE_SIZE = STRUCT_UNINDEXED_DRAW_COMMAND.aligned_size;
25
32
 
@@ -38,7 +45,10 @@ const DRAW_COMMAND_BYTE_SIZE = STRUCT_UNINDEXED_DRAW_COMMAND.aligned_size;
38
45
  * @param {GPUCollectionLimits} options.limits
39
46
  * @param {number[]} [options.viewport] [x,y, width, height] -1 width/height indicates that we need to disable viewport setup
40
47
  * @param {TemplatePassDescriptor} options.render_pass_descriptor the pass, with a pipeline per material template
41
- * @returns {{executed:boolean, depth:number, color_targets:number[]}} whether a pass was recorded, along with the depth and colour handles to carry forward. When no pass is recorded the input handles are returned unchanged.
48
+ * @param {number} [options.visible_meshlets] the frame's visible-meshlet table, when the pass writes its slots
49
+ * ({@link RenderPassDescriptor#visible_meshlet_slots}) and only then: the meshlets are appended to it and drawn
50
+ * from there
51
+ * @returns {{executed:boolean, depth:number, color_targets:number[], visible_meshlets:number}} whether a pass was recorded, along with the depth, colour and table handles to carry forward. When no pass is recorded the input handles are returned unchanged.
42
52
  */
43
53
  export function graph_rasterize_meshes_alpha_tested({
44
54
  graph,
@@ -52,7 +62,8 @@ export function graph_rasterize_meshes_alpha_tested({
52
62
  raster_color_targets,
53
63
  limits,
54
64
  viewport = [0, 0, -1, -1],
55
- render_pass_descriptor
65
+ render_pass_descriptor,
66
+ visible_meshlets = -1,
56
67
  }) {
57
68
 
58
69
  assert.isNonNegativeInteger(buckets, 'buckets');
@@ -63,6 +74,7 @@ export function graph_rasterize_meshes_alpha_tested({
63
74
  assert.isBoolean(clear_target, 'clear_target');
64
75
 
65
76
  assert.equal(render_pass_descriptor.isTemplatePassDescriptor, true, 'render_pass_descriptor.isTemplatePassDescriptor !== true');
77
+ assert.equal(visible_meshlets !== -1, render_pass_descriptor.visible_meshlet_slots, 'a pipeline that writes visible-meshlet slots draws from the table, and only it does');
66
78
 
67
79
  const scene_ctx = view_ctx.scene;
68
80
 
@@ -91,6 +103,7 @@ export function graph_rasterize_meshes_alpha_tested({
91
103
  executed: false,
92
104
  depth,
93
105
  color_targets: raster_color_targets,
106
+ visible_meshlets,
94
107
  };
95
108
  }
96
109
 
@@ -112,11 +125,47 @@ export function graph_rasterize_meshes_alpha_tested({
112
125
 
113
126
 
114
127
  const command_buffer_draw = resources.get(data.command_buffer_draw);
115
- const meshlet_buffer = resources.get(data.meshlet_buffer);
128
+
129
+ /**
130
+ * What the draws take their meshlets from
131
+ * @type {GPUBuffer}
132
+ */
133
+ let meshlet_buffer = resources.get(data.meshlet_buffer);
116
134
 
117
135
  // first prepare dispatch command for filtering
118
136
  const encoder = context.encoder;
119
137
 
138
+ if (data.visible_meshlets !== undefined) {
139
+ // the sorted meshlets go into the table, and every material's command onto their copy there
140
+ const table = resources.get(data.visible_meshlets);
141
+ const append_draw = resources.get(data.append_draw);
142
+ const copy_command = resources.get(data.copy_command);
143
+
144
+ shader_visible_meshlets_reserve.dispatch({
145
+ encoder,
146
+ bindings: {
147
+ input: resources.get(data.meshlet_collection),
148
+ visible_meshlets: table,
149
+ draw: append_draw,
150
+ copy: copy_command
151
+ },
152
+ });
153
+
154
+ shader_visible_meshlets_copy_array.dispatchIndirect({
155
+ encoder,
156
+ command: copy_command,
157
+ bindings: { draw: append_draw, input: meshlet_buffer, visible_meshlets: table },
158
+ });
159
+
160
+ shader_visible_meshlets_offset_commands.dispatchThreads({
161
+ encoder,
162
+ thread_count_x: material_count,
163
+ bindings: { draw: append_draw, commands: command_buffer_draw },
164
+ });
165
+
166
+ meshlet_buffer = table;
167
+ }
168
+
120
169
  const depth_texture = resources.get(data.depth);
121
170
 
122
171
  /**
@@ -140,8 +189,8 @@ export function graph_rasterize_meshes_alpha_tested({
140
189
  const partial_clear_needed = !is_viewport_unrestricted && clear_target;
141
190
 
142
191
  if (partial_clear_needed) {
143
- for (let i = 0; i < color_targets.length; i++) {
144
- texture_fill_rectangle(encoder, color_targets[i], viewport, render_pass_descriptor.colorAttachments[i].clearValue);
192
+ for (let i = 0; i < color_targets.length; i++) {
193
+ texture_fill_rectangle(encoder, color_targets[i], viewport, render_pass_descriptor.colorAttachments[i].clearValue);
145
194
  }
146
195
  texture_fill_rectangle(encoder, depth_texture, viewport, [render_pass_descriptor.depthStencilAttachment.depthClearValue]);
147
196
  }
@@ -250,7 +299,7 @@ export function graph_rasterize_meshes_alpha_tested({
250
299
 
251
300
  const gr_camera = graph_import_buffer(graph, view_ctx.camera.buffer.buffer);
252
301
 
253
- const { meshlets, draw_commands } = graph_prepare_meshlet_draw_commands_by_material({
302
+ const { meshlets, draw_commands, meshlet_collection } = graph_prepare_meshlet_draw_commands_by_material({
254
303
  graph,
255
304
  materials: relevant_materials,
256
305
  bucket_id: alpha_tested_bucket_index,
@@ -269,11 +318,25 @@ export function graph_rasterize_meshes_alpha_tested({
269
318
  const pass_data = {};
270
319
  const pass = graph.add("rasterize alpha tested meshes", pass_data, execute);
271
320
 
272
- // reserve buffer for indirect draw commands
273
- pass_data.command_buffer_draw = pass.read(draw_commands);
274
-
275
321
  pass_data.meshlet_buffer = pass.read(meshlets);
276
322
 
323
+ if (visible_meshlets === -1) {
324
+ pass_data.command_buffer_draw = pass.read(draw_commands);
325
+ } else {
326
+ // the commands are moved onto the table's slots in place
327
+ pass_data.command_buffer_draw = pass.write(draw_commands);
328
+ pass_data.meshlet_collection = pass.read(meshlet_collection);
329
+ pass_data.visible_meshlets = pass.write(visible_meshlets);
330
+ pass_data.append_draw = pass.create("visible meshlets append", BufferResourceDescriptor.from(
331
+ STRUCT_UNINDEXED_DRAW_COMMAND.size,
332
+ GPUBufferUsage.STORAGE
333
+ ));
334
+ pass_data.copy_command = pass.create("visible meshlets copy command", BufferResourceDescriptor.from(
335
+ STRUCT_DISPATCH_COMPUTE_COMMAND.size,
336
+ GPUBufferUsage.STORAGE | GPUBufferUsage.INDIRECT
337
+ ));
338
+ }
339
+
277
340
  // TODO move texture resource import outside
278
341
  let viz_depth = depth;
279
342
 
@@ -286,5 +349,6 @@ export function graph_rasterize_meshes_alpha_tested({
286
349
  executed: true,
287
350
  depth: pass_data.depth,
288
351
  color_targets: pass_data.out_color_targets,
352
+ visible_meshlets: pass_data.visible_meshlets ?? -1,
289
353
  };
290
354
  }
@@ -4,14 +4,14 @@ import { ShaderDescriptor } from "../../../shader/ShaderDescriptor.js";
4
4
  import { MESH_TRIANGLE_REFERENCE_STRUCT } from "../../../geometry/meshlet/MESH_TRIANGLE_REFERENCE_STRUCT.js";
5
5
  import { chunk_rasterize_triangle } from "../chunk_rasterize_triangle.js";
6
6
  import { rasterization_shader_resources } from "../rasterization_shader_resources.js";
7
+ import { VISIBILITY_TRIANGLE_BITS } from "../../visibility/VISIBILITY_BUFFER.js";
7
8
 
8
9
  const body = CodeChunk.from(
9
10
  //language=WGSL
10
11
  `
11
12
  struct VertexOutput{
12
13
  @builtin(position) position: vec4f,
13
- @location(0) @interpolate(flat) m_mesh:u32,
14
- @location(1) @interpolate(flat) m_triangle:u32,
14
+ @location(0) @interpolate(flat) m_visibility: u32,
15
15
  }
16
16
 
17
17
  @vertex
@@ -35,8 +35,8 @@ fn main(
35
35
 
36
36
  output.position = projected_vertex;
37
37
 
38
- output.m_mesh = triangle_def.mesh;
39
- output.m_triangle = triangle_def.index ;
38
+ // the draw takes its meshlets from the frame's visible-meshlet table, so the instance is the slot
39
+ output.m_visibility = (meshlet_index << ${VISIBILITY_TRIANGLE_BITS}u) | (triangle_def.index & ${2 ** VISIBILITY_TRIANGLE_BITS - 1}u);
40
40
 
41
41
  return output;
42
42
 
@@ -1 +1 @@
1
- {"version":3,"file":"viz_rasterization_alpha_tested_pass_descriptor.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/rasterize/native/viz/viz_rasterization_alpha_tested_pass_descriptor.js"],"names":[],"mappings":"AA0LA;;;;GAIG;AACH,6DAFU,sBAAsB,CAqC7B;uCA5LoC,iCAAiC"}
1
+ {"version":3,"file":"viz_rasterization_alpha_tested_pass_descriptor.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/rasterize/native/viz/viz_rasterization_alpha_tested_pass_descriptor.js"],"names":[],"mappings":"AAiLA;;;;GAIG;AACH,6DAFU,sBAAsB,CAiC7B;uCAlLoC,iCAAiC"}
@@ -11,9 +11,6 @@ import {
11
11
  chunk_triangle_list_reverse_winding
12
12
  } from "../../../shader/chunk/geometry/triangle/chunk_triangle_list_reverse_winding.js";
13
13
  import { chunk_view_mip_bias } from "../../../view/chunk_view_mip_bias.js";
14
- import {
15
- chunk_encode_meshlet_element
16
- } from "../../../shader/chunk/geometry/meshlet/chunk_encode_meshlet_element.js";
17
14
  import {
18
15
  chunk_read_meshlet_attribute_u32
19
16
  } from "../../../shader/chunk/geometry/meshlet/chunk_read_meshlet_attribute_u32.js";
@@ -38,7 +35,12 @@ import {
38
35
  } from "../alpha_tested_pass_resources.js";
39
36
  import { TemplatePassDescriptor } from "../../TemplatePassDescriptor.js";
40
37
  import { rasterization_primitive_state } from "../rasterization_primitive_state.js";
41
- import { VIZ_BUFFER_INVALID_MESH_VALUE } from "./VIZ_BUFFER_INVALID_MESH_VALUE.js";
38
+ import {
39
+ VISIBILITY_FORMAT,
40
+ VISIBILITY_NONE,
41
+ VISIBILITY_TRIANGLE_BITS,
42
+ VISIBLE_MESHLETS_ARRAY_OFFSET
43
+ } from "../../visibility/VISIBILITY_BUFFER.js";
42
44
 
43
45
  /**
44
46
  * The harness around a template's `material_opacity`: the hashed threshold and the noise that feeds
@@ -52,19 +54,14 @@ import { VIZ_BUFFER_INVALID_MESH_VALUE } from "./VIZ_BUFFER_INVALID_MESH_VALUE.j
52
54
  const fragment_body = CodeChunk.from(
53
55
  //language=WGSL
54
56
  `
55
- struct VizBufferOutput{
56
- @location(0) m_triangle : u32,
57
- @location(1) m_mesh : u32,
58
- }
59
57
 
60
58
  @fragment
61
59
  fn main(
62
60
  @builtin(position) coord : vec4<f32>,
63
- @location(0) @interpolate(flat) m_mesh:u32,
64
- @location(1) @interpolate(flat) m_triangle:u32,
65
- @location(2) uv_jittered:vec2<f32>,
66
- @location(3) position_world: vec3<f32>,
67
- ) -> VizBufferOutput {
61
+ @location(0) @interpolate(flat) m_visibility: u32,
62
+ @location(1) uv_jittered:vec2<f32>,
63
+ @location(2) position_world: vec3<f32>,
64
+ ) -> @location(0) u32 {
68
65
 
69
66
  // Note that we use jittered UVs directly, the compensation happens inside TAAU itself.
70
67
  let uv = uv_jittered;
@@ -94,18 +91,12 @@ fn main(
94
91
  discard;
95
92
  }
96
93
 
97
- var result:VizBufferOutput;
98
-
99
- //decode meshlet payload
100
- result.m_triangle = m_triangle ;
101
- result.m_mesh = m_mesh ;
102
-
103
- return result;
94
+ return m_visibility;
104
95
  }
105
96
  `, [
106
97
  chunk_material_opacity_contract,
107
98
  chunk_transparency_hashed_alpha_threshold,
108
- chunk_spatio_temporal_noise_r2_64,
99
+ chunk_spatio_temporal_noise_r2_64,
109
100
  chunk_view_mip_bias,
110
101
  ]
111
102
  );
@@ -117,10 +108,9 @@ const shader_vertex = ShaderDescriptor.from({
117
108
  `
118
109
  struct VertexOutput{
119
110
  @builtin(position) position: vec4f,
120
- @location(0) @interpolate(flat) m_mesh: u32,
121
- @location(1) @interpolate(flat) m_triangle: u32,
122
- @location(2) uv: vec2f,
123
- @location(3) position_world: vec3f,
111
+ @location(0) @interpolate(flat) m_visibility: u32,
112
+ @location(1) uv: vec2f,
113
+ @location(2) position_world: vec3f,
124
114
  }
125
115
 
126
116
  @vertex
@@ -142,7 +132,6 @@ fn main(
142
132
  return VertexOutput(); // discard vertex outside of meshlet bounds
143
133
  }
144
134
 
145
- let triangle_index = encode_meshlet_element(meshlet_id, vertex_draw_index / 3u);
146
135
 
147
136
  let mesh = scene_read_mesh(&scene_database, mesh_id);
148
137
  let node = scene_read_node(&scene_database, mesh.node);
@@ -164,8 +153,11 @@ fn main(
164
153
  output.position_world = position_world.xyz / position_world.w;
165
154
  output.position = camera.view_projection_matrix * position_world;
166
155
 
167
- output.m_mesh = mesh_id;
168
- output.m_triangle = triangle_index;
156
+ // the draws bind the frame's visible-meshlet table as a bare array of definitions, where slot s is
157
+ // at s + VISIBLE_MESHLETS_ARRAY_OFFSET
158
+ let slot = input_index - ${VISIBLE_MESHLETS_ARRAY_OFFSET}u;
159
+
160
+ output.m_visibility = (slot << ${VISIBILITY_TRIANGLE_BITS}u) | (vertex_draw_index / 3u);
169
161
  output.uv = meshlet_vertex.uv;
170
162
 
171
163
  return output;
@@ -173,7 +165,6 @@ fn main(
173
165
  `, [
174
166
  chunk_read_meshlet_vertex,
175
167
  chunk_read_meshlet_attribute_u32,
176
- chunk_encode_meshlet_element,
177
168
  chunk_read_meshlet_vertex_by_draw_index,
178
169
  chunk_scene_database_access,
179
170
  chunk_triangle_winding_is_reversed,
@@ -213,11 +204,7 @@ export const viz_rasterization_alpha_tested_pass_descriptor = new TemplatePassDe
213
204
  },
214
205
  targets: [
215
206
  {
216
- // triangle ID
217
- format: "r32uint",
218
- }, {
219
- // Mesh ID
220
- format: "r32uint",
207
+ format: VISIBILITY_FORMAT,
221
208
  }
222
209
  ]
223
210
  },
@@ -227,15 +214,11 @@ export const viz_rasterization_alpha_tested_pass_descriptor = new TemplatePassDe
227
214
  });
228
215
 
229
216
  viz_rasterization_alpha_tested_pass_descriptor.colorAttachments = [
230
- // TRIANGLE ID
231
217
  RenderPassColorAttachmentDescriptor.from({
232
- clearValue: [0, 0, 0, 0],
218
+ clearValue: [VISIBILITY_NONE, 0, 0, 0],
233
219
  }),
234
- // MESH ID
235
- RenderPassColorAttachmentDescriptor.from({
236
- clearValue: [VIZ_BUFFER_INVALID_MESH_VALUE, 1, 1, 1],
237
- })
238
220
  ];
221
+ viz_rasterization_alpha_tested_pass_descriptor.visible_meshlet_slots = true;
239
222
 
240
223
  /**
241
224
  * Clear depth to 0 for reverse Z technique
@@ -1 +1 @@
1
- {"version":3,"file":"viz_rasterization_opaque_pass_descriptor.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/rasterize/native/viz/viz_rasterization_opaque_pass_descriptor.js"],"names":[],"mappings":"AA2DA,4EAAmF;qCAxD9C,8CAA8C"}
1
+ {"version":3,"file":"viz_rasterization_opaque_pass_descriptor.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/rasterize/native/viz/viz_rasterization_opaque_pass_descriptor.js"],"names":[],"mappings":"AA0CA,4EAAmF;qCAvC9C,8CAA8C"}
@@ -1,77 +1,56 @@
1
- import { RenderPipelineDescriptor } from "../../../../descriptor/pipeline/render/RenderPipelineDescriptor.js";
2
- import { DEPTH_BACKGROUND_VALUE } from "../../../depth/DEPTH_BACKGROUND_VALUE.js";
3
- import { RenderPassColorAttachmentDescriptor } from "../../../shader/pass/RenderPassColorAttachmentDescriptor.js";
4
- import { RenderPassDescriptor } from "../../../shader/pass/RenderPassDescriptor.js";
5
- import { DEPTH_STENCIL_STATE_STANDARD } from "../../DEPTH_STENCIL_STATE_STANDARD.js";
6
- import { rasterization_primitive_state } from "../rasterization_primitive_state.js";
7
- import { rasterization_shader_resources } from "../rasterization_shader_resources.js";
8
- import { shader_vertex } from "./shader_vertex.js";
9
- import { VIZ_BUFFER_INVALID_MESH_VALUE } from "./VIZ_BUFFER_INVALID_MESH_VALUE.js";
10
-
11
- //language=WGSL
12
- const shader_fragment_visibility_buffer = `
13
- struct VizBufferOutput{
14
- @location(0) m_triangle : u32,
15
- @location(1) m_mesh : u32,
16
- }
17
-
18
- @fragment
19
- fn main(
20
- @builtin(position) coord : vec4<f32>,
21
- @location(0) @interpolate(flat) m_mesh:u32,
22
- @location(1) @interpolate(flat) m_triangle:u32,
23
- ) -> VizBufferOutput {
24
- var result:VizBufferOutput;
25
-
26
- //decode meshlet payload
27
- result.m_triangle = m_triangle ;
28
- result.m_mesh = m_mesh ;
29
-
30
- return result;
31
- }
32
- `;
33
-
34
- const gpu_rasterization_render_pipeline_descriptor = RenderPipelineDescriptor.from({
35
- label: "Rasterize to Visibility Buffer / opaque",
36
- layout: rasterization_shader_resources.generatePipelineLayout(GPUShaderStage.VERTEX),
37
- vertex: {
38
- module: {
39
- code: shader_vertex.source
40
- }
41
- },
42
- fragment: {
43
- module: {
44
- code: shader_fragment_visibility_buffer
45
- },
46
- targets: [
47
- {
48
- // triangle ID
49
- format: "r32uint",
50
- }, {
51
- // Mesh ID
52
- format: "r32uint",
53
- }
54
- ]
55
- },
56
- depthStencil: DEPTH_STENCIL_STATE_STANDARD,
57
- primitive: rasterization_primitive_state
58
- });
59
-
60
- export const viz_rasterization_opaque_pass_descriptor = new RenderPassDescriptor();
61
- viz_rasterization_opaque_pass_descriptor.pipeline = gpu_rasterization_render_pipeline_descriptor;
62
- viz_rasterization_opaque_pass_descriptor.resources = rasterization_shader_resources;
63
- viz_rasterization_opaque_pass_descriptor.colorAttachments = [
64
- // TRIANGLE ID
65
- RenderPassColorAttachmentDescriptor.from({
66
- clearValue: [0, 0, 0, 0],
67
- }),
68
- // MESH ID
69
- RenderPassColorAttachmentDescriptor.from({
70
- clearValue: [VIZ_BUFFER_INVALID_MESH_VALUE, 1, 1, 1],
71
- })
72
- ];
73
-
74
- /**
75
- * Clear depth to 0 for reverse Z technique
76
- */
1
+ import { RenderPipelineDescriptor } from "../../../../descriptor/pipeline/render/RenderPipelineDescriptor.js";
2
+ import { DEPTH_BACKGROUND_VALUE } from "../../../depth/DEPTH_BACKGROUND_VALUE.js";
3
+ import { RenderPassColorAttachmentDescriptor } from "../../../shader/pass/RenderPassColorAttachmentDescriptor.js";
4
+ import { RenderPassDescriptor } from "../../../shader/pass/RenderPassDescriptor.js";
5
+ import { DEPTH_STENCIL_STATE_STANDARD } from "../../DEPTH_STENCIL_STATE_STANDARD.js";
6
+ import { rasterization_primitive_state } from "../rasterization_primitive_state.js";
7
+ import { rasterization_shader_resources } from "../rasterization_shader_resources.js";
8
+ import { shader_vertex } from "./shader_vertex.js";
9
+ import { VISIBILITY_FORMAT, VISIBILITY_NONE } from "../../visibility/VISIBILITY_BUFFER.js";
10
+
11
+ //language=WGSL
12
+ const shader_fragment_visibility_buffer = `
13
+ @fragment
14
+ fn main(
15
+ @location(0) @interpolate(flat) m_visibility: u32,
16
+ ) -> @location(0) u32 {
17
+ return m_visibility;
18
+ }
19
+ `;
20
+
21
+ const gpu_rasterization_render_pipeline_descriptor = RenderPipelineDescriptor.from({
22
+ label: "Rasterize to Visibility Buffer / opaque",
23
+ layout: rasterization_shader_resources.generatePipelineLayout(GPUShaderStage.VERTEX),
24
+ vertex: {
25
+ module: {
26
+ code: shader_vertex.source
27
+ }
28
+ },
29
+ fragment: {
30
+ module: {
31
+ code: shader_fragment_visibility_buffer
32
+ },
33
+ targets: [
34
+ {
35
+ format: VISIBILITY_FORMAT,
36
+ }
37
+ ]
38
+ },
39
+ depthStencil: DEPTH_STENCIL_STATE_STANDARD,
40
+ primitive: rasterization_primitive_state
41
+ });
42
+
43
+ export const viz_rasterization_opaque_pass_descriptor = new RenderPassDescriptor();
44
+ viz_rasterization_opaque_pass_descriptor.pipeline = gpu_rasterization_render_pipeline_descriptor;
45
+ viz_rasterization_opaque_pass_descriptor.resources = rasterization_shader_resources;
46
+ viz_rasterization_opaque_pass_descriptor.colorAttachments = [
47
+ RenderPassColorAttachmentDescriptor.from({
48
+ clearValue: [VISIBILITY_NONE, 0, 0, 0],
49
+ }),
50
+ ];
51
+ viz_rasterization_opaque_pass_descriptor.visible_meshlet_slots = true;
52
+
53
+ /**
54
+ * Clear depth to 0 for reverse Z technique
55
+ */
77
56
  viz_rasterization_opaque_pass_descriptor.depthStencilAttachment.depthClearValue = DEPTH_BACKGROUND_VALUE;
@@ -25,13 +25,15 @@ export function enquire_rasterize_partial_opaque_pipelines(enquiry: PipelineEnqu
25
25
  * @param {Set<number>} active_buckets IDs of buckets that have any materials that are active.
26
26
  * @param {number[]} [viewport] optional viewport definition, if not provided, will use the entire render target. Useful for drawing multiple views into the same render target.
27
27
  * @param {Readonly<Record<number, GPUCullMode>>} [cull_policy] side→cullMode mapping; defaults to {@link CullPolicy.Standard}
28
- * @returns {{instances_maybe:number, meshlets_maybe:number, depth:number, color_targets:number[]}} the "maybe visible" sets, and the depth and colour handles produced by the rasterization — cleared whether or not any bucket drew
28
+ * @param {number} [visible_meshlets] the frame's visible-meshlet table, when the pass writes its slots
29
+ * @returns {{instances_maybe:number, meshlets_maybe:number, depth:number, color_targets:number[], visible_meshlets:number}} the "maybe visible" sets, the depth and colour handles produced by the rasterization — cleared whether or not any bucket drew — and the table after it (-1 without one)
29
30
  */
30
- export function graph_rasterize_partial_opaque({ graph, buckets, view, render_pass_descriptor, limits, depth, raster_color_targets, hzb, viewport, active_buckets, cull_policy, }: FrameGraph): {
31
+ export function graph_rasterize_partial_opaque({ graph, buckets, view, render_pass_descriptor, limits, depth, raster_color_targets, hzb, viewport, active_buckets, cull_policy, visible_meshlets, }: FrameGraph): {
31
32
  instances_maybe: number;
32
33
  meshlets_maybe: number;
33
34
  depth: number;
34
35
  color_targets: number[];
36
+ visible_meshlets: number;
35
37
  };
36
38
  export type PipelineEnquiry = import("../../../device/pipeline/PipelineEnquiry.js").PipelineEnquiry;
37
39
  export type RenderPassDescriptor = import("../../shader/pass/RenderPassDescriptor.js").RenderPassDescriptor;
@@ -1 +1 @@
1
- {"version":3,"file":"graph_rasterize_partial_opaque.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.js"],"names":[],"mappings":"AA8BA;;;GAGG;AAEH;;;;;;;GAOG;AACH,oEAJW,eAAe,0BACf,oBAAoB,eACpB,SAAS,OAAO,MAAM,cAAc,CAAC,QAY/C;AAED;;;;;;;;;;;;;;;GAeG;AACH,gMAFa;IAAC,eAAe,EAAC,MAAM,CAAC;IAAC,cAAc,EAAC,MAAM,CAAC;IAAC,KAAK,EAAC,MAAM,CAAC;IAAC,aAAa,EAAC,MAAM,EAAE,CAAA;CAAC,CA0NjG;8BAhQY,OAAO,6CAA6C,EAAE,eAAe;mCACrE,OAAO,2CAA2C,EAAE,oBAAoB"}
1
+ {"version":3,"file":"graph_rasterize_partial_opaque.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.js"],"names":[],"mappings":"AA8BA;;;GAGG;AAEH;;;;;;;GAOG;AACH,oEAJW,eAAe,0BACf,oBAAoB,eACpB,SAAS,OAAO,MAAM,cAAc,CAAC,QAY/C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,kNAFa;IAAC,eAAe,EAAC,MAAM,CAAC;IAAC,cAAc,EAAC,MAAM,CAAC;IAAC,KAAK,EAAC,MAAM,CAAC;IAAC,aAAa,EAAC,MAAM,EAAE,CAAC;IAAC,gBAAgB,EAAC,MAAM,CAAA;CAAC,CA6N1H;8BApQY,OAAO,6CAA6C,EAAE,eAAe;mCACrE,OAAO,2CAA2C,EAAE,oBAAoB"}
@@ -67,7 +67,8 @@ export function enquire_rasterize_partial_opaque_pipelines(enquiry, render_pass_
67
67
  * @param {Set<number>} active_buckets IDs of buckets that have any materials that are active.
68
68
  * @param {number[]} [viewport] optional viewport definition, if not provided, will use the entire render target. Useful for drawing multiple views into the same render target.
69
69
  * @param {Readonly<Record<number, GPUCullMode>>} [cull_policy] side→cullMode mapping; defaults to {@link CullPolicy.Standard}
70
- * @returns {{instances_maybe:number, meshlets_maybe:number, depth:number, color_targets:number[]}} the "maybe visible" sets, and the depth and colour handles produced by the rasterization — cleared whether or not any bucket drew
70
+ * @param {number} [visible_meshlets] the frame's visible-meshlet table, when the pass writes its slots
71
+ * @returns {{instances_maybe:number, meshlets_maybe:number, depth:number, color_targets:number[], visible_meshlets:number}} the "maybe visible" sets, the depth and colour handles produced by the rasterization — cleared whether or not any bucket drew — and the table after it (-1 without one)
71
72
  */
72
73
  export function graph_rasterize_partial_opaque({
73
74
  graph,
@@ -81,6 +82,7 @@ export function graph_rasterize_partial_opaque({
81
82
  viewport,
82
83
  active_buckets,
83
84
  cull_policy = CullPolicy.Standard,
85
+ visible_meshlets = -1,
84
86
  }) {
85
87
 
86
88
  assert.defined(graph, 'graph');
@@ -240,7 +242,7 @@ export function graph_rasterize_partial_opaque({
240
242
  gr_meshlets_maybe = pass_data_meshlets_1.out_meshlets_maybe = pass_meshlets_1.write(gr_meshlets_maybe);
241
243
 
242
244
  // ----------
243
- [viz_depth, raster_color_targets] = graph_meshlets_rasterize_by_bucket({
245
+ [viz_depth, raster_color_targets, visible_meshlets] = graph_meshlets_rasterize_by_bucket({
244
246
  graph,
245
247
  view,
246
248
  input_meshlets: pass_data_meshlets_1.out_meshlets_positive,
@@ -252,6 +254,7 @@ export function graph_rasterize_partial_opaque({
252
254
  cull_policy,
253
255
  viewport,
254
256
  limits,
257
+ visible_meshlets,
255
258
  });
256
259
 
257
260
  is_first_draw = false;
@@ -284,5 +287,6 @@ export function graph_rasterize_partial_opaque({
284
287
  meshlets_maybe: gr_meshlets_maybe,
285
288
  depth: viz_depth,
286
289
  color_targets: raster_color_targets,
290
+ visible_meshlets,
287
291
  };
288
292
  }
@@ -26,11 +26,13 @@ export function enquire_rasterize_remaining_opaque_pipelines(enquiry: PipelineEn
26
26
  * @param {RenderPassDescriptor} render_pass_descriptor
27
27
  * @param {number[]} [viewport] optional viewport definition
28
28
  * @param {Readonly<Record<number, GPUCullMode>>} [cull_policy] side→cullMode mapping; defaults to {@link CullPolicy.Standard}
29
- * @returns {{depth:number, color_targets:number[]}} the depth and colour handles produced by the rasterization
29
+ * @param {number} [visible_meshlets] the frame's visible-meshlet table, when the pass writes its slots
30
+ * @returns {{depth:number, color_targets:number[], visible_meshlets:number}} the depth and colour handles produced by the rasterization, and the table after it (-1 without one)
30
31
  */
31
- export function graph_rasterize_remaining_opaque({ graph, limits, instances_maybe, meshlets_maybe, active_buckets, camera, view, depth, raster_color_targets, hzb, render_pass_descriptor, viewport, cull_policy, }: FrameGraph): {
32
+ export function graph_rasterize_remaining_opaque({ graph, limits, instances_maybe, meshlets_maybe, active_buckets, camera, view, depth, raster_color_targets, hzb, render_pass_descriptor, viewport, cull_policy, visible_meshlets, }: FrameGraph): {
32
33
  depth: number;
33
34
  color_targets: number[];
35
+ visible_meshlets: number;
34
36
  };
35
37
  export type PipelineEnquiry = import("../../../device/pipeline/PipelineEnquiry.js").PipelineEnquiry;
36
38
  export type RenderPassDescriptor = import("../../shader/pass/RenderPassDescriptor.js").RenderPassDescriptor;
@@ -1 +1 @@
1
- {"version":3,"file":"graph_rasterize_remaining_opaque.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.js"],"names":[],"mappings":"AAmBA;;;GAGG;AAEH;;;;;;GAMG;AACH,sEAJW,eAAe,0BACf,oBAAoB,eACpB,SAAS,OAAO,MAAM,cAAc,CAAC,QAO/C;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,kOAFa;IAAC,KAAK,EAAC,MAAM,CAAC;IAAC,aAAa,EAAC,MAAM,EAAE,CAAA;CAAC,CAqFlD;8BAvHY,OAAO,6CAA6C,EAAE,eAAe;mCACrE,OAAO,2CAA2C,EAAE,oBAAoB"}
1
+ {"version":3,"file":"graph_rasterize_remaining_opaque.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.js"],"names":[],"mappings":"AAmBA;;;GAGG;AAEH;;;;;;GAMG;AACH,sEAJW,eAAe,0BACf,oBAAoB,eACpB,SAAS,OAAO,MAAM,cAAc,CAAC,QAO/C;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,oPAFa;IAAC,KAAK,EAAC,MAAM,CAAC;IAAC,aAAa,EAAC,MAAM,EAAE,CAAC;IAAC,gBAAgB,EAAC,MAAM,CAAA;CAAC,CAwF3E;8BA3HY,OAAO,6CAA6C,EAAE,eAAe;mCACrE,OAAO,2CAA2C,EAAE,oBAAoB"}
@@ -52,7 +52,8 @@ export function enquire_rasterize_remaining_opaque_pipelines(enquiry, render_pas
52
52
  * @param {RenderPassDescriptor} render_pass_descriptor
53
53
  * @param {number[]} [viewport] optional viewport definition
54
54
  * @param {Readonly<Record<number, GPUCullMode>>} [cull_policy] side→cullMode mapping; defaults to {@link CullPolicy.Standard}
55
- * @returns {{depth:number, color_targets:number[]}} the depth and colour handles produced by the rasterization
55
+ * @param {number} [visible_meshlets] the frame's visible-meshlet table, when the pass writes its slots
56
+ * @returns {{depth:number, color_targets:number[], visible_meshlets:number}} the depth and colour handles produced by the rasterization, and the table after it (-1 without one)
56
57
  */
57
58
  export function graph_rasterize_remaining_opaque({
58
59
  graph,
@@ -68,6 +69,7 @@ export function graph_rasterize_remaining_opaque({
68
69
  render_pass_descriptor,
69
70
  viewport,
70
71
  cull_policy = CullPolicy.Standard,
72
+ visible_meshlets = -1,
71
73
  }) {
72
74
 
73
75
  let gr_depth_texture = depth;
@@ -118,7 +120,7 @@ export function graph_rasterize_remaining_opaque({
118
120
  const opaque = Array.from(rasterization_opaque_buckets(active_buckets));
119
121
 
120
122
  if (opaque.length > 0) {
121
- [gr_depth_texture, raster_color_targets] = graph_meshlets_rasterize_by_bucket({
123
+ [gr_depth_texture, raster_color_targets, visible_meshlets] = graph_meshlets_rasterize_by_bucket({
122
124
  graph,
123
125
  view,
124
126
  input_meshlets: gr_live_meshlets,
@@ -130,11 +132,13 @@ export function graph_rasterize_remaining_opaque({
130
132
  cull_policy,
131
133
  viewport,
132
134
  limits,
135
+ visible_meshlets,
133
136
  });
134
137
  }
135
138
 
136
139
  return {
137
140
  depth: gr_depth_texture,
138
141
  color_targets: raster_color_targets,
142
+ visible_meshlets,
139
143
  }
140
144
  }
@@ -22,8 +22,10 @@ export function enquire_rasterize_scene_pipelines(enquiry: PipelineEnquiry, opaq
22
22
  * @param {FrameGraph} options.graph
23
23
  * @param {RasterizationJob} options.job
24
24
  * @param {GPUCollectionLimits} options.limits
25
- * @returns {{buckets: number, depth: number, color_targets: number[]}} the render buckets buffer,
26
- * and the depth and colour targets as this pipeline left them
25
+ * @returns {{buckets: number, depth: number, color_targets: number[], visible_meshlets: number}} the render
26
+ * buckets buffer, the depth and colour targets as this pipeline left them, and — when the job's passes write
27
+ * visible-meshlet slots, as the visibility raster's do — the frame's visible-meshlet table, which resolves
28
+ * them (-1 otherwise)
27
29
  */
28
30
  export function graph_rasterize_scene({ graph, job, limits, }: {
29
31
  graph: FrameGraph;
@@ -33,6 +35,7 @@ export function graph_rasterize_scene({ graph, job, limits, }: {
33
35
  buckets: number;
34
36
  depth: number;
35
37
  color_targets: number[];
38
+ visible_meshlets: number;
36
39
  };
37
40
  export type PipelineEnquiry = import("../../../device/pipeline/PipelineEnquiry.js").PipelineEnquiry;
38
41
  export type RenderPassDescriptor = import("../../shader/pass/RenderPassDescriptor.js").RenderPassDescriptor;
@@ -1 +1 @@
1
- {"version":3,"file":"graph_rasterize_scene.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/rasterize/standard/graph_rasterize_scene.js"],"names":[],"mappings":"AAqBA;;;GAGG;AAEH;;;;;;;;;GASG;AACH,2DAJW,eAAe,eACf,oBAAoB,eACpB,SAAS,OAAO,MAAM,cAAc,CAAC,QAQ/C;AAED;;;;;;;;;;;GAWG;AACH;IAN+B,KAAK;IACC,GAAG;IACA,MAAM;IACjC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAA;CAAC,CAmNrE;8BAlPY,OAAO,6CAA6C,EAAE,eAAe;mCACrE,OAAO,2CAA2C,EAAE,oBAAoB"}
1
+ {"version":3,"file":"graph_rasterize_scene.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/rasterize/standard/graph_rasterize_scene.js"],"names":[],"mappings":"AAuBA;;;GAGG;AAEH;;;;;;;;;GASG;AACH,2DAJW,eAAe,eACf,oBAAoB,eACpB,SAAS,OAAO,MAAM,cAAc,CAAC,QAQ/C;AAED;;;;;;;;;;;;;GAaG;AACH;IAR+B,KAAK;IACC,GAAG;IACA,MAAM;IACjC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAC,CA0P/F;8BAzRY,OAAO,6CAA6C,EAAE,eAAe;mCACrE,OAAO,2CAA2C,EAAE,oBAAoB"}