@woosh/meep-engine 3.61.3 → 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 (266) hide show
  1. package/package.json +1 -1
  2. package/src/engine/graphics3/PickingSystem.d.ts.map +1 -1
  3. package/src/engine/graphics3/PickingSystem.js +415 -413
  4. package/src/engine/graphics3/decal/GPUDecalRenderer.d.ts.map +1 -1
  5. package/src/engine/graphics3/decal/GPUDecalRenderer.js +2 -1
  6. package/src/engine/graphics3/decal/shader_decal_composite.d.ts.map +1 -1
  7. package/src/engine/graphics3/decal/shader_decal_composite.js +26 -16
  8. package/src/engine/graphics3/decal/shader_decal_tile_copy.d.ts.map +1 -1
  9. package/src/engine/graphics3/decal/shader_decal_tile_copy.js +6 -11
  10. package/src/engine/graphics3/highlight/GPUHighlightRenderer.d.ts.map +1 -1
  11. package/src/engine/graphics3/highlight/GPUHighlightRenderer.js +6 -2
  12. package/src/engine/graphics3/highlight/shader_highlight_outline.d.ts.map +1 -1
  13. package/src/engine/graphics3/highlight/shader_highlight_outline.js +167 -150
  14. package/src/engine/graphics3/shader_picking_gather.d.ts.map +1 -1
  15. package/src/engine/graphics3/shader_picking_gather.js +133 -120
  16. package/src/shade/device/mock/SoftwareGPUTexture.d.ts.map +1 -1
  17. package/src/shade/device/mock/SoftwareGPUTexture.js +11 -0
  18. package/src/shade/device/pipeline/rp_validate_and_rewrite_for_color_attachments.js +1 -1
  19. package/src/shade/playground/contact_shadows/ContactShadowLab.js +6 -6
  20. package/src/shade/playground/contact_shadows/shader_contact_lab_composite.d.ts.map +1 -1
  21. package/src/shade/playground/contact_shadows/shader_contact_lab_composite.js +6 -4
  22. package/src/shade/playground/contact_shadows/shader_contact_lab_reference.d.ts.map +1 -1
  23. package/src/shade/playground/contact_shadows/shader_contact_lab_reference.js +6 -4
  24. package/src/shade/playground/contact_shadows/shader_contact_shadow_march.d.ts.map +1 -1
  25. package/src/shade/playground/contact_shadows/shader_contact_shadow_march.js +6 -4
  26. package/src/shade/playground/ssr_reprojection/SpatialFilterProbe.js +1 -1
  27. package/src/shade/playground/ssr_variance/capture.js +1 -1
  28. package/src/shade/renderer/Renderer.d.ts +2 -2
  29. package/src/shade/renderer/Renderer.d.ts.map +1 -1
  30. package/src/shade/renderer/Renderer.js +40 -53
  31. package/src/shade/renderer/deferred/chunk_read_gBuffer_material.d.ts.map +1 -1
  32. package/src/shade/renderer/deferred/chunk_read_gBuffer_material.js +3 -1
  33. package/src/shade/renderer/deferred/chunk_ss_trace_contact_shadow_soft.d.ts.map +1 -1
  34. package/src/shade/renderer/deferred/chunk_ss_trace_contact_shadow_soft.js +5 -4
  35. package/src/shade/renderer/deferred/shader_deferred_main.d.ts.map +1 -1
  36. package/src/shade/renderer/deferred/shader_deferred_main.js +6 -4
  37. package/src/shade/renderer/extension/GBufferTextures.d.ts +5 -1
  38. package/src/shade/renderer/extension/GBufferTextures.d.ts.map +1 -1
  39. package/src/shade/renderer/extension/GBufferTextures.js +5 -1
  40. package/src/shade/renderer/extension/ViewTextures.d.ts +11 -7
  41. package/src/shade/renderer/extension/ViewTextures.d.ts.map +1 -1
  42. package/src/shade/renderer/extension/ViewTextures.js +17 -13
  43. package/src/shade/renderer/gbuffer/G_BUFFER_ALBEDO_FORMAT.d.ts +2 -0
  44. package/src/shade/renderer/gbuffer/G_BUFFER_ALBEDO_FORMAT.d.ts.map +1 -1
  45. package/src/shade/renderer/gbuffer/G_BUFFER_ALBEDO_FORMAT.js +2 -0
  46. package/src/shade/renderer/gbuffer/G_BUFFER_COLOR_TARGETS.d.ts.map +1 -1
  47. package/src/shade/renderer/gbuffer/G_BUFFER_COLOR_TARGETS.js +8 -5
  48. package/src/shade/renderer/geometry/sdf/shader_sdf_visualize.d.ts +7 -5
  49. package/src/shade/renderer/geometry/sdf/shader_sdf_visualize.d.ts.map +1 -1
  50. package/src/shade/renderer/geometry/sdf/shader_sdf_visualize.js +29 -16
  51. package/src/shade/renderer/geometry/virtual/runtime/cut/chunk_vgeo_cut_instance.d.ts +9 -3
  52. package/src/shade/renderer/geometry/virtual/runtime/cut/chunk_vgeo_cut_instance.d.ts.map +1 -1
  53. package/src/shade/renderer/geometry/virtual/runtime/cut/chunk_vgeo_cut_instance.js +40 -32
  54. package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_collect.d.ts.map +1 -1
  55. package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_collect.js +14 -15
  56. package/src/shade/renderer/global_illumination/brick4/gpu/draw/shader_brick4_debug_draw.d.ts.map +1 -1
  57. package/src/shade/renderer/global_illumination/brick4/gpu/draw/shader_brick4_debug_draw.js +7 -3
  58. package/src/shade/renderer/global_illumination/brick4/gpu/draw/shader_brick4_diffuse.js +1 -1
  59. package/src/shade/renderer/global_illumination/brick4/gpu/draw/shader_brick4_indirect_lighting.d.ts.map +1 -1
  60. package/src/shade/renderer/global_illumination/brick4/gpu/draw/shader_brick4_indirect_lighting.js +5 -3
  61. package/src/shade/renderer/global_illumination/brick4/gpu/draw/shader_brick4_specular.d.ts.map +1 -1
  62. package/src/shade/renderer/global_illumination/brick4/gpu/draw/shader_brick4_specular.js +1 -3
  63. package/src/shade/renderer/global_illumination/ibl/shader_diffuse_IBL.js +1 -1
  64. package/src/shade/renderer/global_illumination/ibl/shader_specular_IBL.js +2 -2
  65. package/src/shade/renderer/global_illumination/lpv/shader_diffuse_LPV.js +1 -1
  66. package/src/shade/renderer/global_illumination/probe_clipmap/brick/GPUBrickClipmap.d.ts.map +1 -1
  67. package/src/shade/renderer/global_illumination/probe_clipmap/brick/GPUBrickClipmap.js +14 -1
  68. package/src/shade/renderer/global_illumination/probe_clipmap/probe/GPUProbeClipmap.d.ts.map +1 -1
  69. package/src/shade/renderer/global_illumination/probe_clipmap/probe/GPUProbeClipmap.js +10 -1
  70. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_diffuse.js +2 -2
  71. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_indirect_lighting.d.ts.map +1 -1
  72. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_indirect_lighting.js +5 -3
  73. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_want.js +1 -1
  74. package/src/shade/renderer/global_illumination/shader_resolve_indirect_lighting.d.ts.map +1 -1
  75. package/src/shade/renderer/global_illumination/shader_resolve_indirect_lighting.js +5 -3
  76. package/src/shade/renderer/global_illumination/sharc/shader/debug/shader_colored_hash.js +1 -1
  77. package/src/shade/renderer/global_illumination/sharc/shader/debug/shader_sharc_debug_radiance.js +1 -1
  78. package/src/shade/renderer/global_illumination/sharc/shader/shader_sharc_update.js +1 -1
  79. package/src/shade/renderer/material/GPUMaterialManager.d.ts +22 -9
  80. package/src/shade/renderer/material/GPUMaterialManager.d.ts.map +1 -1
  81. package/src/shade/renderer/material/GPUMaterialManager.js +159 -65
  82. package/src/shade/renderer/material/MATERIAL_MASK.d.ts +19 -0
  83. package/src/shade/renderer/material/MATERIAL_MASK.d.ts.map +1 -0
  84. package/src/shade/renderer/material/MATERIAL_MASK.js +19 -0
  85. package/src/shade/renderer/material/dispatch/GPUMaterialComputeDispatch.d.ts +8 -8
  86. package/src/shade/renderer/material/dispatch/GPUMaterialComputeDispatch.d.ts.map +1 -1
  87. package/src/shade/renderer/material/dispatch/GPUMaterialComputeDispatch.js +11 -92
  88. package/src/shade/renderer/material/dispatch/chunk_material_quad_keys.d.ts.map +1 -1
  89. package/src/shade/renderer/material/dispatch/chunk_material_quad_keys.js +10 -2
  90. package/src/shade/renderer/material/dispatch/gbuffer_compute.js +2 -2
  91. package/src/shade/renderer/material/dispatch/graph_material_dispatch_compute.d.ts +7 -7
  92. package/src/shade/renderer/material/dispatch/graph_material_dispatch_compute.d.ts.map +1 -1
  93. package/src/shade/renderer/material/dispatch/graph_material_dispatch_compute.js +20 -16
  94. package/src/shade/renderer/material/dispatch/shader_material_pixel_count.d.ts.map +1 -1
  95. package/src/shade/renderer/material/dispatch/shader_material_pixel_count.js +3 -1
  96. package/src/shade/renderer/material/dispatch/shader_material_pixel_scatter.d.ts.map +1 -1
  97. package/src/shade/renderer/material/dispatch/shader_material_pixel_scatter.js +3 -1
  98. package/src/shade/renderer/material/standard/fragment_gbuffer.d.ts.map +1 -1
  99. package/src/shade/renderer/material/standard/fragment_gbuffer.js +26 -25
  100. package/src/shade/renderer/material/standard/material_gbuffer_vertex.d.ts +10 -8
  101. package/src/shade/renderer/material/standard/material_gbuffer_vertex.d.ts.map +1 -1
  102. package/src/shade/renderer/material/standard/material_gbuffer_vertex.js +16 -13
  103. package/src/shade/renderer/material/template/ShadeMaterialTemplate.d.ts +1 -1
  104. package/src/shade/renderer/material/template/ShadeMaterialTemplate.js +1 -1
  105. package/src/shade/renderer/postprocess/denoise/LigmaDenoiser.d.ts +5 -2
  106. package/src/shade/renderer/postprocess/denoise/LigmaDenoiser.d.ts.map +1 -1
  107. package/src/shade/renderer/postprocess/denoise/LigmaDenoiser.js +7 -4
  108. package/src/shade/renderer/postprocess/denoise/debug/graph_pass_debug_reprojection.d.ts +3 -3
  109. package/src/shade/renderer/postprocess/denoise/debug/graph_pass_debug_reprojection.d.ts.map +1 -1
  110. package/src/shade/renderer/postprocess/denoise/debug/graph_pass_debug_reprojection.js +12 -10
  111. package/src/shade/renderer/postprocess/denoise/fragment_shader_denoise_ao.js +2 -2
  112. package/src/shade/renderer/postprocess/denoise/shader_temporal_reprojection_luma.d.ts.map +1 -1
  113. package/src/shade/renderer/postprocess/denoise/shader_temporal_reprojection_luma.js +6 -4
  114. package/src/shade/renderer/postprocess/gtao/GTAO.d.ts +9 -7
  115. package/src/shade/renderer/postprocess/gtao/GTAO.d.ts.map +1 -1
  116. package/src/shade/renderer/postprocess/gtao/GTAO.js +11 -8
  117. package/src/shade/renderer/postprocess/gtao/ao_reproject_shader.d.ts +3 -3
  118. package/src/shade/renderer/postprocess/gtao/ao_reproject_shader.d.ts.map +1 -1
  119. package/src/shade/renderer/postprocess/gtao/ao_reproject_shader.js +17 -12
  120. package/src/shade/renderer/postprocess/gtao/chunk_integrate_lighting_sample.js +1 -1
  121. package/src/shade/renderer/postprocess/gtao/fragment_shader_gtao.js +1 -1
  122. package/src/shade/renderer/postprocess/gtao/fragment_shader_gtao_with_irradiance.js +4 -4
  123. package/src/shade/renderer/postprocess/gtao/shader_gtao_spatial_denoise.js +2 -2
  124. package/src/shade/renderer/postprocess/ssr/chunk_ssr_spatial_variance.js +41 -41
  125. package/src/shade/renderer/postprocess/ssr/prefilter/chunk_load_neighbourhood_sample.js +1 -1
  126. package/src/shade/renderer/postprocess/ssr/reproject/chunk_ssr_temporal_accumulate.js +3 -3
  127. package/src/shade/renderer/postprocess/ssr/resolve/chunk_ssr_add_hit_irradiance.d.ts.map +1 -1
  128. package/src/shade/renderer/postprocess/ssr/resolve/chunk_ssr_add_hit_irradiance.js +5 -2
  129. package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader.js +4 -4
  130. package/src/shade/renderer/postprocess/ssr/ssr_combine_shader.d.ts.map +1 -1
  131. package/src/shade/renderer/postprocess/ssr/ssr_combine_shader.js +4 -2
  132. package/src/shade/renderer/postprocess/ssr/ssr_graph_prefilter_color.d.ts +2 -1
  133. package/src/shade/renderer/postprocess/ssr/ssr_graph_prefilter_color.d.ts.map +1 -1
  134. package/src/shade/renderer/postprocess/ssr/ssr_graph_prefilter_color.js +10 -2
  135. package/src/shade/renderer/postprocess/ssr/ssr_reproject_shader.js +1 -1
  136. package/src/shade/renderer/postprocess/ssr/ssr_spatial_denoise_shader.js +4 -4
  137. package/src/shade/renderer/postprocess/taa/shader_reprojection_map.d.ts.map +1 -1
  138. package/src/shade/renderer/postprocess/taa/shader_reprojection_map.js +6 -4
  139. package/src/shade/renderer/postprocess/velocity/graph_add_per_object_velocity.d.ts +6 -8
  140. package/src/shade/renderer/postprocess/velocity/graph_add_per_object_velocity.d.ts.map +1 -1
  141. package/src/shade/renderer/postprocess/velocity/graph_add_per_object_velocity.js +29 -33
  142. package/src/shade/renderer/rasterize/TemplatePassDescriptor.d.ts.map +1 -1
  143. package/src/shade/renderer/rasterize/TemplatePassDescriptor.js +1 -0
  144. package/src/shade/renderer/rasterize/bucket/graph_meshlets_rasterize_by_bucket.d.ts +6 -3
  145. package/src/shade/renderer/rasterize/bucket/graph_meshlets_rasterize_by_bucket.d.ts.map +1 -1
  146. package/src/shade/renderer/rasterize/bucket/graph_meshlets_rasterize_by_bucket.js +8 -3
  147. package/src/shade/renderer/rasterize/expand/GPUCollectionLimits.d.ts.map +1 -1
  148. package/src/shade/renderer/rasterize/expand/GPUCollectionLimits.js +3 -0
  149. package/src/shade/renderer/rasterize/expand/RasterizationCollectionType.d.ts +1 -0
  150. package/src/shade/renderer/rasterize/expand/RasterizationCollectionType.js +5 -0
  151. package/src/shade/renderer/rasterize/expand/graph_meshlets_rasterize.d.ts +8 -3
  152. package/src/shade/renderer/rasterize/expand/graph_meshlets_rasterize.d.ts.map +1 -1
  153. package/src/shade/renderer/rasterize/expand/graph_meshlets_rasterize.js +54 -5
  154. package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts +1 -0
  155. package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts.map +1 -1
  156. package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.js +1 -1
  157. package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.d.ts +1 -1
  158. package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.d.ts.map +1 -1
  159. package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.js +2 -1
  160. package/src/shade/renderer/rasterize/native/graph_rasterize_meshes_alpha_tested.d.ts +7 -2
  161. package/src/shade/renderer/rasterize/native/graph_rasterize_meshes_alpha_tested.d.ts.map +1 -1
  162. package/src/shade/renderer/rasterize/native/graph_rasterize_meshes_alpha_tested.js +73 -9
  163. package/src/shade/renderer/rasterize/native/viz/shader_vertex.js +4 -4
  164. package/src/shade/renderer/rasterize/native/viz/viz_rasterization_alpha_tested_pass_descriptor.d.ts.map +1 -1
  165. package/src/shade/renderer/rasterize/native/viz/viz_rasterization_alpha_tested_pass_descriptor.js +23 -40
  166. package/src/shade/renderer/rasterize/native/viz/viz_rasterization_opaque_pass_descriptor.d.ts.map +1 -1
  167. package/src/shade/renderer/rasterize/native/viz/viz_rasterization_opaque_pass_descriptor.js +55 -76
  168. package/src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.d.ts +4 -2
  169. package/src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.d.ts.map +1 -1
  170. package/src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.js +6 -2
  171. package/src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.d.ts +4 -2
  172. package/src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.d.ts.map +1 -1
  173. package/src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.js +6 -2
  174. package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.d.ts +5 -2
  175. package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.d.ts.map +1 -1
  176. package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.js +43 -2
  177. package/src/shade/renderer/rasterize/visibility/VISIBILITY_BUFFER.d.ts +39 -0
  178. package/src/shade/renderer/rasterize/visibility/VISIBILITY_BUFFER.d.ts.map +1 -0
  179. package/src/shade/renderer/rasterize/visibility/VISIBILITY_BUFFER.js +45 -0
  180. package/src/shade/renderer/rasterize/visibility/chunk_visibility_decode.d.ts +26 -0
  181. package/src/shade/renderer/rasterize/visibility/chunk_visibility_decode.d.ts.map +1 -0
  182. package/src/shade/renderer/rasterize/visibility/chunk_visibility_decode.js +48 -0
  183. package/src/shade/renderer/rasterize/visibility/shader_visible_meshlets_append.d.ts +40 -0
  184. package/src/shade/renderer/rasterize/visibility/shader_visible_meshlets_append.d.ts.map +1 -0
  185. package/src/shade/renderer/rasterize/visibility/shader_visible_meshlets_append.js +172 -0
  186. package/src/shade/renderer/restir/di/chunk_restir_reconstruct_surface.d.ts.map +1 -1
  187. package/src/shade/renderer/restir/di/chunk_restir_reconstruct_surface.js +6 -4
  188. package/src/shade/renderer/restir/di/chunk_restir_spatial_reuse.js +1 -1
  189. package/src/shade/renderer/restir/di/shader_restir_di_denoise.js +2 -2
  190. package/src/shade/renderer/shader/chunk/color/sRGB/chunk_sRGBTransferEOTF.d.ts +9 -0
  191. package/src/shade/renderer/shader/chunk/color/sRGB/chunk_sRGBTransferEOTF.d.ts.map +1 -0
  192. package/src/shade/renderer/shader/chunk/color/sRGB/chunk_sRGBTransferEOTF.js +18 -0
  193. package/src/shade/renderer/shader/chunk/geometry/mat3/chunk_mat3_determinant.d.ts +20 -0
  194. package/src/shade/renderer/shader/chunk/geometry/mat3/chunk_mat3_determinant.d.ts.map +1 -0
  195. package/src/shade/renderer/shader/chunk/geometry/mat3/chunk_mat3_determinant.js +26 -0
  196. package/src/shade/renderer/shader/chunk/geometry/mat3/chunk_mat3_singular_values.d.ts +60 -18
  197. package/src/shade/renderer/shader/chunk/geometry/mat3/chunk_mat3_singular_values.d.ts.map +1 -1
  198. package/src/shade/renderer/shader/chunk/geometry/mat3/chunk_mat3_singular_values.js +163 -45
  199. package/src/shade/renderer/shader/chunk/geometry/mat4/chunk_mat4_linear_determinant.d.ts.map +1 -1
  200. package/src/shade/renderer/shader/chunk/geometry/mat4/chunk_mat4_linear_determinant.js +19 -18
  201. package/src/shade/renderer/shader/chunk/geometry/normal/chunk_decode_g_buffer_face_normal.d.ts +13 -0
  202. package/src/shade/renderer/shader/chunk/geometry/normal/chunk_decode_g_buffer_face_normal.d.ts.map +1 -0
  203. package/src/shade/renderer/shader/chunk/geometry/normal/chunk_decode_g_buffer_face_normal.js +22 -0
  204. package/src/shade/renderer/shader/chunk/geometry/normal/chunk_decode_g_buffer_normal.d.ts +8 -1
  205. package/src/shade/renderer/shader/chunk/geometry/normal/chunk_decode_g_buffer_normal.d.ts.map +1 -1
  206. package/src/shade/renderer/shader/chunk/geometry/normal/chunk_decode_g_buffer_normal.js +10 -8
  207. package/src/shade/renderer/shader/chunk/geometry/normal/chunk_encode_g_buffer_face_normal.d.ts +22 -0
  208. package/src/shade/renderer/shader/chunk/geometry/normal/chunk_encode_g_buffer_face_normal.d.ts.map +1 -0
  209. package/src/shade/renderer/shader/chunk/geometry/normal/chunk_encode_g_buffer_face_normal.js +32 -0
  210. package/src/shade/renderer/shader/chunk/geometry/normal/chunk_encode_g_buffer_normal.d.ts +11 -1
  211. package/src/shade/renderer/shader/chunk/geometry/normal/chunk_encode_g_buffer_normal.d.ts.map +1 -1
  212. package/src/shade/renderer/shader/chunk/geometry/normal/chunk_encode_g_buffer_normal.js +14 -6
  213. package/src/shade/renderer/shader/chunk/material/chunk_decode_g_buffer_albedo.d.ts +14 -0
  214. package/src/shade/renderer/shader/chunk/material/chunk_decode_g_buffer_albedo.d.ts.map +1 -0
  215. package/src/shade/renderer/shader/chunk/material/chunk_decode_g_buffer_albedo.js +24 -0
  216. package/src/shade/renderer/shader/chunk/material/chunk_encode_g_buffer_albedo.d.ts +17 -0
  217. package/src/shade/renderer/shader/chunk/material/chunk_encode_g_buffer_albedo.d.ts.map +1 -0
  218. package/src/shade/renderer/shader/chunk/material/chunk_encode_g_buffer_albedo.js +27 -0
  219. package/src/shade/renderer/shader/chunk/screen_space/SCREEN_SPACE_RESOURCES.d.ts +7 -1
  220. package/src/shade/renderer/shader/chunk/screen_space/SCREEN_SPACE_RESOURCES.d.ts.map +1 -1
  221. package/src/shade/renderer/shader/chunk/screen_space/SCREEN_SPACE_RESOURCES.js +8 -1
  222. package/src/shade/renderer/shader/chunk/screen_space/chunk_ffx_sssr_load_world_space_normal.js +1 -1
  223. package/src/shade/renderer/shader/chunk/screen_space/chunk_screen_space_newton_ray.js +10 -10
  224. package/src/shade/renderer/shader/pass/RenderPassDescriptor.d.ts +8 -0
  225. package/src/shade/renderer/shader/pass/RenderPassDescriptor.d.ts.map +1 -1
  226. package/src/shade/renderer/shader/pass/RenderPassDescriptor.js +9 -0
  227. package/src/shade/renderer/shader/util/shader_decode_octahedral_normal.js +1 -1
  228. package/src/shade/renderer/shadow/contact/graph_contact_shadow_linear.d.ts +3 -3
  229. package/src/shade/renderer/shadow/contact/graph_contact_shadow_linear.d.ts.map +1 -1
  230. package/src/shade/renderer/shadow/contact/graph_contact_shadow_linear.js +3 -3
  231. package/src/shade/renderer/shadow/contact/shader_contact_shadow_linear.d.ts.map +1 -1
  232. package/src/shade/renderer/shadow/contact/shader_contact_shadow_linear.js +6 -4
  233. package/src/shade/renderer/shadow/ray/RTXShadows.d.ts +6 -4
  234. package/src/shade/renderer/shadow/ray/RTXShadows.d.ts.map +1 -1
  235. package/src/shade/renderer/shadow/ray/RTXShadows.js +16 -5
  236. package/src/shade/renderer/shadow/ray/shader_ray_shadow_code.d.ts.map +1 -1
  237. package/src/shade/renderer/shadow/ray/shader_ray_shadow_code.js +7 -7
  238. package/src/shade/renderer/shadow/ray/shader_shadow_upscale.js +2 -2
  239. package/src/shade/renderer/shadow/ray/staged/gen/graph_gen_rays.d.ts +4 -2
  240. package/src/shade/renderer/shadow/ray/staged/gen/graph_gen_rays.d.ts.map +1 -1
  241. package/src/shade/renderer/shadow/ray/staged/gen/graph_gen_rays.js +79 -74
  242. package/src/shade/renderer/shadow/ray/staged/gen/shader_generate_rays.d.ts.map +1 -1
  243. package/src/shade/renderer/shadow/ray/staged/gen/shader_generate_rays.js +7 -7
  244. package/src/shade/renderer/shadow/sdf/cascade/shader_scene_sdf_soft_shadows.d.ts.map +1 -1
  245. package/src/shade/renderer/shadow/sdf/cascade/shader_scene_sdf_soft_shadows.js +7 -3
  246. package/src/shade/renderer/shadow/sdf/graph_draw_sdf_shadows.d.ts +7 -5
  247. package/src/shade/renderer/shadow/sdf/graph_draw_sdf_shadows.d.ts.map +1 -1
  248. package/src/shade/renderer/shadow/sdf/graph_draw_sdf_shadows.js +29 -16
  249. package/src/shade/renderer/texture/virtual/VirtualTextureManager.d.ts +5 -5
  250. package/src/shade/renderer/texture/virtual/VirtualTextureManager.d.ts.map +1 -1
  251. package/src/shade/renderer/texture/virtual/VirtualTextureManager.js +8 -8
  252. package/src/shade/renderer/texture/virtual/build_shader_vt_feedback.d.ts.map +1 -1
  253. package/src/shade/renderer/texture/virtual/build_shader_vt_feedback.js +13 -14
  254. package/src/shade/renderer/water/GPUWaterRenderer.d.ts +2 -1
  255. package/src/shade/renderer/water/GPUWaterRenderer.d.ts.map +1 -1
  256. package/src/shade/renderer/water/GPUWaterRenderer.js +6 -4
  257. package/src/shade/renderer/water/chunk_water_transport.d.ts.map +1 -1
  258. package/src/shade/renderer/water/chunk_water_transport.js +11 -9
  259. package/src/shade/renderer/water/shader_water.d.ts.map +1 -1
  260. package/src/shade/renderer/water/shader_water.js +13 -11
  261. package/src/shade/renderer/gbuffer/G_BUFFER_MIP_LEVELS.d.ts +0 -7
  262. package/src/shade/renderer/gbuffer/G_BUFFER_MIP_LEVELS.d.ts.map +0 -1
  263. package/src/shade/renderer/gbuffer/G_BUFFER_MIP_LEVELS.js +0 -6
  264. package/src/shade/renderer/postprocess/ssr/shader_downsample_encoded_normal.d.ts +0 -3
  265. package/src/shade/renderer/postprocess/ssr/shader_downsample_encoded_normal.d.ts.map +0 -1
  266. package/src/shade/renderer/postprocess/ssr/shader_downsample_encoded_normal.js +0 -104
@@ -65,7 +65,7 @@ fn main(
65
65
 
66
66
  let phi_luma = phi_visibility * std_dev;
67
67
 
68
- let current_normal = decode_g_buffer_normal(textureLoad(tNormal, ipos, 0).xy);
68
+ let current_normal = decode_g_buffer_normal(textureLoad(tNormal, ipos, 0).x);
69
69
  let center_depth = textureLoad(tDepth, ipos, 0).r;
70
70
 
71
71
  // the centre at weight 1, so the edge-stopping functions cannot leave nothing
@@ -91,7 +91,7 @@ fn main(
91
91
 
92
92
  let texel = textureLoad(tInput, p, 0);
93
93
 
94
- let sample_normal = decode_g_buffer_normal(textureLoad(tNormal, p, 0).xy);
94
+ let sample_normal = decode_g_buffer_normal(textureLoad(tNormal, p, 0).x);
95
95
  let sample_depth = textureLoad(tDepth, p, 0).r;
96
96
 
97
97
  let w = compute_edge_stopping_weight(
@@ -1,41 +1,41 @@
1
- import { CodeChunk } from "../../shader/compiler/CodeChunk.js";
2
- import { chunk_rgb_to_luminance } from "../../shader/chunk/color/chunk_rgb_to_luminance.js";
3
- import { chunk_decode_g_buffer_normal } from "../../shader/chunk/geometry/normal/chunk_decode_g_buffer_normal.js";
4
- import { chunk_get_std_dev } from "../../shader/chunk/math/statistics/chunk_get_std_dev.js";
5
- import { chunk_is_on_screen_i32 } from "../../shader/chunk/texture/chunk_is_on_screen_i32.js";
6
- import { chunk_ffx_dnsr_reflections_get_edge_stopping_normal_weight } from "./prefilter/chunk_ffx_dnsr_reflections_get_edge_stopping_normal_weight.js";
7
- import { chunk_ffx_dnsr_reflections_get_edge_stopping_depth_weight } from "./prefilter/chunk_ffx_dnsr_reflections_get_edge_stopping_depth_weight.js";
8
-
9
- /** Bootstrap variance from spatial samples when resolve has too few rays to estimate noise. */
10
- export const chunk_ssr_spatial_variance = CodeChunk.from(/* language=WGSL */ `
11
- fn ssr_spatial_variance(
12
- radiance: texture_2d<f32>, depth: texture_2d<f32>, normals: texture_2d<u32>, p: vec2i,
13
- ) -> f32 {
14
- let center_luma = rgb_to_luminance(textureLoad(radiance,p,0).rgb);
15
- let center_normal = decode_g_buffer_normal(textureLoad(normals,p,0).xy);
16
- let center_depth = textureLoad(depth,p,0).r;
17
- let size = vec2i(textureDimensions(radiance));
18
- let kernel = array<f32,3>(0.25,0.125,0.0625);
19
- var moments = vec2f(0.0);
20
- var sum_weight = 0.0;
21
- for (var y = -1; y <= 1; y++) {
22
- for (var x = -1; x <= 1; x++) {
23
- let q = p + vec2i(x,y);
24
- if (!is_on_screen_i32(q,size)) { continue; }
25
- let sample_normal = decode_g_buffer_normal(textureLoad(normals,q,0).xy);
26
- let sample_depth = textureLoad(depth,q,0).r;
27
- let weight = kernel[abs(x)+abs(y)]
28
- * ffx_dnsr_reflections_get_edge_stopping_normal_weight(center_normal,sample_normal)
29
- * ffx_dnsr_reflections_get_edge_stopping_depth_weight(center_depth,sample_depth);
30
- // Differences about the centre avoid cancellation for a constant HDR signal.
31
- let delta = rgb_to_luminance(textureLoad(radiance,q,0).rgb)-center_luma;
32
- moments += vec2f(delta,delta*delta)*weight;
33
- sum_weight += weight;
34
- }
35
- }
36
- moments /= max(sum_weight,1e-8);
37
- let sigma = get_std_dev(moments.x,moments.y);
38
- return sigma*sigma;
39
- }
40
- `, [chunk_rgb_to_luminance, chunk_decode_g_buffer_normal, chunk_get_std_dev, chunk_is_on_screen_i32,
41
- chunk_ffx_dnsr_reflections_get_edge_stopping_normal_weight, chunk_ffx_dnsr_reflections_get_edge_stopping_depth_weight]);
1
+ import { CodeChunk } from "../../shader/compiler/CodeChunk.js";
2
+ import { chunk_rgb_to_luminance } from "../../shader/chunk/color/chunk_rgb_to_luminance.js";
3
+ import { chunk_decode_g_buffer_normal } from "../../shader/chunk/geometry/normal/chunk_decode_g_buffer_normal.js";
4
+ import { chunk_get_std_dev } from "../../shader/chunk/math/statistics/chunk_get_std_dev.js";
5
+ import { chunk_is_on_screen_i32 } from "../../shader/chunk/texture/chunk_is_on_screen_i32.js";
6
+ import { chunk_ffx_dnsr_reflections_get_edge_stopping_normal_weight } from "./prefilter/chunk_ffx_dnsr_reflections_get_edge_stopping_normal_weight.js";
7
+ import { chunk_ffx_dnsr_reflections_get_edge_stopping_depth_weight } from "./prefilter/chunk_ffx_dnsr_reflections_get_edge_stopping_depth_weight.js";
8
+
9
+ /** Bootstrap variance from spatial samples when resolve has too few rays to estimate noise. */
10
+ export const chunk_ssr_spatial_variance = CodeChunk.from(/* language=WGSL */ `
11
+ fn ssr_spatial_variance(
12
+ radiance: texture_2d<f32>, depth: texture_2d<f32>, normals: texture_2d<u32>, p: vec2i,
13
+ ) -> f32 {
14
+ let center_luma = rgb_to_luminance(textureLoad(radiance,p,0).rgb);
15
+ let center_normal = decode_g_buffer_normal(textureLoad(normals,p,0).x);
16
+ let center_depth = textureLoad(depth,p,0).r;
17
+ let size = vec2i(textureDimensions(radiance));
18
+ let kernel = array<f32,3>(0.25,0.125,0.0625);
19
+ var moments = vec2f(0.0);
20
+ var sum_weight = 0.0;
21
+ for (var y = -1; y <= 1; y++) {
22
+ for (var x = -1; x <= 1; x++) {
23
+ let q = p + vec2i(x,y);
24
+ if (!is_on_screen_i32(q,size)) { continue; }
25
+ let sample_normal = decode_g_buffer_normal(textureLoad(normals,q,0).x);
26
+ let sample_depth = textureLoad(depth,q,0).r;
27
+ let weight = kernel[abs(x)+abs(y)]
28
+ * ffx_dnsr_reflections_get_edge_stopping_normal_weight(center_normal,sample_normal)
29
+ * ffx_dnsr_reflections_get_edge_stopping_depth_weight(center_depth,sample_depth);
30
+ // Differences about the centre avoid cancellation for a constant HDR signal.
31
+ let delta = rgb_to_luminance(textureLoad(radiance,q,0).rgb)-center_luma;
32
+ moments += vec2f(delta,delta*delta)*weight;
33
+ sum_weight += weight;
34
+ }
35
+ }
36
+ moments /= max(sum_weight,1e-8);
37
+ let sigma = get_std_dev(moments.x,moments.y);
38
+ return sigma*sigma;
39
+ }
40
+ `, [chunk_rgb_to_luminance, chunk_decode_g_buffer_normal, chunk_get_std_dev, chunk_is_on_screen_i32,
41
+ chunk_ffx_dnsr_reflections_get_edge_stopping_normal_weight, chunk_ffx_dnsr_reflections_get_edge_stopping_depth_weight]);
@@ -22,7 +22,7 @@ fn load_neighbourhood_sample(
22
22
  sample.radiance = rv.xyz;
23
23
 
24
24
  // shading normal
25
- sample.normal = decode_g_buffer_normal( textureLoad(tNormal, texel_coordinate, 0).xy );
25
+ sample.normal = decode_g_buffer_normal( textureLoad(tNormal, texel_coordinate, 0).x );
26
26
 
27
27
  sample.depth = get_view_space_depth(
28
28
  textureLoad(tDepth, texel_coordinate, 0).r,
@@ -1,7 +1,7 @@
1
1
  import { CodeChunk } from "../../../shader/compiler/CodeChunk.js";
2
2
  import { chunk_rgb_to_luminance } from "../../../shader/chunk/color/chunk_rgb_to_luminance.js";
3
3
  import { chunk_decode_g_buffer_normal } from "../../../shader/chunk/geometry/normal/chunk_decode_g_buffer_normal.js";
4
- import { chunk_is_finite } from "../../../shader/chunk/math/chunk_is_finite.js";
4
+ import { chunk_is_finite } from "../../../shader/chunk/math/chunk_is_finite.js";
5
5
  import { F16_MAX_DEFINITION } from "../../../shader/chunk/math/F16_MAX_DEFINITION.js";
6
6
  import { chunk_decode_g_buffer_roughness } from "../../../shader/chunk/material/chunk_decode_g_buffer_roughness.js";
7
7
  import { chunk_project_position_from_depth } from "../../../shader/chunk/camera/chunk_project_position_from_depth.js";
@@ -45,7 +45,7 @@ fn ssr_temporal_accumulate(current: vec4f, previous: vec4f, previous_age: f32,
45
45
  // uncertainty keeps a chance cluster of misses from clipping a valid mean to
46
46
  // black. Real geometry and coherent lighting changes can still rectify it.
47
47
  let size = vec2i(textureDimensions(tInput));
48
- let center_normal = decode_g_buffer_normal(textureLoad(tNormal, st, 0).xy);
48
+ let center_normal = decode_g_buffer_normal(textureLoad(tNormal, st, 0).x);
49
49
  let center_depth = textureLoad(tDepth, st, 0).r;
50
50
  let center_roughness = decode_g_buffer_roughness(textureLoad(tPBR, st, 0));
51
51
  var first = vec3f(0.0);
@@ -71,7 +71,7 @@ fn ssr_temporal_accumulate(current: vec4f, previous: vec4f, previous_age: f32,
71
71
  for (var x = -2; x <= 2; x++) {
72
72
  let p = st + vec2i(x,y);
73
73
  if (any(p < vec2i(0)) || any(p >= size)) { continue; }
74
- let normal = decode_g_buffer_normal(textureLoad(tNormal, p, 0).xy);
74
+ let normal = decode_g_buffer_normal(textureLoad(tNormal, p, 0).x);
75
75
  let depth = textureLoad(tDepth, p, 0).r;
76
76
  if (is_background(depth)) { continue; }
77
77
  let roughness = decode_g_buffer_roughness(textureLoad(tPBR, p, 0));
@@ -1 +1 @@
1
- {"version":3,"file":"chunk_ssr_add_hit_irradiance.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/postprocess/ssr/resolve/chunk_ssr_add_hit_irradiance.js"],"names":[],"mappings":"AAYA;;;;;GAKG;AACH,4CAFU,wBAAwB,CAQhC;AAEF;;;GAGG;AACH,gDAFU,SAAS,CAcR;AAEX;;;;;GAKG;AACH,+CAFU,SAAS,CAyBZ;AAKP;;;;;;;;GAQG;AACH,yDAFU,SAAS,CAsBZ;AAKP;;;;;;;;;;;GAWG;AACH,2CAFU,eAAe,CAE2D;yCAnH3C,sDAAsD;0BAJrE,uCAAuC;gCACjC,6CAA6C"}
1
+ {"version":3,"file":"chunk_ssr_add_hit_irradiance.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/postprocess/ssr/resolve/chunk_ssr_add_hit_irradiance.js"],"names":[],"mappings":"AAaA;;;;;GAKG;AACH,4CAFU,wBAAwB,CAQhC;AAEF;;;GAGG;AACH,gDAFU,SAAS,CAcR;AAEX;;;;;GAKG;AACH,+CAFU,SAAS,CA0BZ;AAKP;;;;;;;;GAQG;AACH,yDAFU,SAAS,CAuBZ;AAKP;;;;;;;;;;;GAWG;AACH,2CAFU,eAAe,CAE2D;yCArH3C,sDAAsD;0BAJrE,uCAAuC;gCACjC,6CAA6C"}
@@ -2,6 +2,7 @@ import { INDIRECT_LIGHTING } from "../../../INDIRECT_LIGHTING.js";
2
2
  import { ShadeIndirectLightingMode } from "../../../ShadeIndirectLightingMode.js";
3
3
  import { chunk_v3_matrix4_project } from "../../../shader/chunk/geometry/vec3/chunk_v3_matrix4_project.js";
4
4
  import { chunk_lpv_sample_irradiance } from "../../../shader/chunk/light/lpv/chunk_lpv_sample_irradiance.js";
5
+ import { chunk_decode_g_buffer_albedo } from "../../../shader/chunk/material/chunk_decode_g_buffer_albedo.js";
5
6
  import { RECIPROCAL_PI_DECLARATION } from "../../../shader/chunk/math/RECIPROCAL_PI_DECLARATION.js";
6
7
  import { CodeChunk } from "../../../shader/compiler/CodeChunk.js";
7
8
  import { CodeChunkChoice } from "../../../shader/compiler/CodeChunkChoice.js";
@@ -63,13 +64,14 @@ fn ssr_add_hit_irradiance(
63
64
  let hit_position_ws = v3_matrix4_project(hit_position_vs, camera.view_matrix_inverse);
64
65
  let hit_direction_ws = normalize(hit_position_ws - position_ws);
65
66
  let hit_irradiance = lpv_sample_irradiance(hit_position_ws, hit_normal_ws, hit_direction_ws);
66
- let hit_albedo = textureLoad(tAlbedoAO, hit_coord, 0).rgb;
67
+ let hit_albedo = decode_g_buffer_albedo(textureLoad(tAlbedoAO, hit_coord, 0).rgb);
67
68
  *result += hit_albedo * hit_irradiance * RECIPROCAL_PI;
68
69
  }
69
70
  }
70
71
  `, [
71
72
  chunk_lpv_sample_irradiance,
72
73
  chunk_v3_matrix4_project,
74
+ chunk_decode_g_buffer_albedo,
73
75
  RECIPROCAL_PI_DECLARATION,
74
76
  ]);
75
77
 
@@ -98,12 +100,13 @@ fn ssr_add_hit_irradiance(
98
100
  ) {
99
101
  if (confidence > 0.05) {
100
102
  let hit_irradiance = textureLoad(tIndirectDiffuse, hit_coord, 0).rgb;
101
- let hit_albedo = textureLoad(tAlbedoAO, hit_coord, 0).rgb;
103
+ let hit_albedo = decode_g_buffer_albedo(textureLoad(tAlbedoAO, hit_coord, 0).rgb);
102
104
 
103
105
  *result += hit_albedo * hit_irradiance * RECIPROCAL_PI;
104
106
  }
105
107
  }
106
108
  `, [
109
+ chunk_decode_g_buffer_albedo,
107
110
  RECIPROCAL_PI_DECLARATION,
108
111
  ]);
109
112
 
@@ -148,7 +148,7 @@ fn main(
148
148
  let this_pbr = textureLoad(tPBR, coord_i, 0);
149
149
  let this_roughness = decode_g_buffer_roughness(this_pbr);
150
150
 
151
- let this_normal_ws = decode_g_buffer_normal( textureLoad(tNormal, coord_i, 0).xy );
151
+ let this_normal_ws = decode_g_buffer_normal( textureLoad(tNormal, coord_i, 0).x );
152
152
  let this_normal_vs = direction_world_to_view(this_normal_ws, camera);
153
153
 
154
154
  let this_position_vs = screen_coordinate_to_view(vec2u(coord_i), tDepth, camera);
@@ -176,7 +176,7 @@ fn main(
176
176
  let candidate_distance = length(candidate_position - this_position_vs);
177
177
  if (is_finite(candidate_distance) && candidate_distance > 1e-6) {
178
178
  this_hit_position_vs = candidate_position;
179
- this_hit_normal_ws = decode_g_buffer_normal(textureLoad(tNormal, this_hit.position, 0).xy);
179
+ this_hit_normal_ws = decode_g_buffer_normal(textureLoad(tNormal, this_hit.position, 0).x);
180
180
  let hit_normal_vs = direction_world_to_view(this_hit_normal_ws, camera);
181
181
  let mip = get_ray_mip_level(this_position_vs, this_hit_position_vs, hit_normal_vs, this_roughness, focal_length_px);
182
182
  this_hit_color_sample = textureSampleLevel(tColor, sLinear, this_hit_uv, mip).rgb;
@@ -210,7 +210,7 @@ fn main(
210
210
  let neighbour_coord = coord_i + NEIGHBOR_OFFSETS[heighbour_index];
211
211
  if (!is_on_screen_i32(neighbour_coord, vec2i(render_resolution))) { continue; }
212
212
 
213
- let neighbour_normal_ws = decode_g_buffer_normal(textureLoad(tNormal, neighbour_coord, 0).xy);
213
+ let neighbour_normal_ws = decode_g_buffer_normal(textureLoad(tNormal, neighbour_coord, 0).x);
214
214
  let neighbour_normal_vs = direction_world_to_view(neighbour_normal_ws, camera);
215
215
 
216
216
  let neighbour_pbr = textureLoad(tPBR, neighbour_coord, 0);
@@ -234,7 +234,7 @@ fn main(
234
234
  let sample_direction = (sample_hit_position_vs - this_position_vs) / sample_distance;
235
235
 
236
236
  // check visibility
237
- let sample_hit_normal_ws = decode_g_buffer_normal( textureLoad(tNormal, sample_hit.position.xy, 0).xy );
237
+ let sample_hit_normal_ws = decode_g_buffer_normal( textureLoad(tNormal, sample_hit.position.xy, 0).x );
238
238
  let sample_hit_normal_vs = direction_world_to_view(sample_hit_normal_ws, camera);
239
239
 
240
240
  let ray_hit_valid = step( 0, dot(-sample_direction, sample_hit_normal_vs));
@@ -1 +1 @@
1
- {"version":3,"file":"ssr_combine_shader.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/postprocess/ssr/ssr_combine_shader.js"],"names":[],"mappings":"AA0HA,6CAWG;4BA3HyB,6BAA6B"}
1
+ {"version":3,"file":"ssr_combine_shader.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/postprocess/ssr/ssr_combine_shader.js"],"names":[],"mappings":"AA4HA,6CAWG;4BA5HyB,6BAA6B"}
@@ -4,6 +4,7 @@ import { chunk_DFGApprox } from "../../shader/chunk/brdf/dfg/chunk_DFGApprox.js"
4
4
  import { chunk_project_position_from_depth } from "../../shader/chunk/camera/chunk_project_position_from_depth.js";
5
5
  import { chunk_mat4_extract_position } from "../../shader/chunk/geometry/mat4/chunk_mat4_extract_position.js";
6
6
  import { chunk_decode_g_buffer_normal } from "../../shader/chunk/geometry/normal/chunk_decode_g_buffer_normal.js";
7
+ import { chunk_decode_g_buffer_albedo } from "../../shader/chunk/material/chunk_decode_g_buffer_albedo.js";
7
8
  import { chunk_decode_g_buffer_metalness } from "../../shader/chunk/material/chunk_decode_g_buffer_metalness.js";
8
9
  import { chunk_decode_g_buffer_roughness } from "../../shader/chunk/material/chunk_decode_g_buffer_roughness.js";
9
10
  import { chunk_metalness_to_specular_color } from "../../shader/chunk/material/chunk_metalness_to_specular_color.js";
@@ -65,9 +66,9 @@ fn main(
65
66
  }
66
67
 
67
68
  let reflection_color = textureLoad(tReflection, coord_i, 0).rgb;
68
- let normal_ws = decode_g_buffer_normal(textureLoad(tNormal, coord_i, 0).xy);
69
+ let normal_ws = decode_g_buffer_normal(textureLoad(tNormal, coord_i, 0).x);
69
70
  let albedo_ao = textureLoad(tAlbedoAO, coord_i, 0);
70
- let albedo = albedo_ao.rgb;
71
+ let albedo = decode_g_buffer_albedo(albedo_ao.rgb);
71
72
  let occlusion = albedo_ao.a;
72
73
 
73
74
  let position_ws = project_position_from_depth(uv, depth, camera.view_projection_matrix_inverse);
@@ -114,6 +115,7 @@ fn main(
114
115
  chunk_env_brdf_approx,
115
116
  chunk_metalness_to_specular_color,
116
117
  chunk_decode_g_buffer_roughness,
118
+ chunk_decode_g_buffer_albedo,
117
119
  chunk_decode_g_buffer_metalness,
118
120
  chunk_compute_specular_occlusion,
119
121
  chunk_is_background,
@@ -7,7 +7,8 @@
7
7
  * @param {FrameGraph} options.graph
8
8
  * @param {number} options.input_color
9
9
  * @param {number} options.input_depth
10
- * @param {number} options.mip_count
10
+ * @param {number} options.mip_count how many levels below the full-size copy to filter; a texture too small to
11
+ * have that many gets the levels it has
11
12
  * @param {number[]} options.resolution
12
13
  */
13
14
  export function ssr_graph_prefilter_color({ graph, input_color, input_depth, mip_count, resolution, }: {
@@ -1 +1 @@
1
- {"version":3,"file":"ssr_graph_prefilter_color.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/postprocess/ssr/ssr_graph_prefilter_color.js"],"names":[],"mappings":"AAQA;;;;;;;;;;;GAWG;AACH;IAN+B,KAAK;IACT,WAAW,EAA3B,MAAM;IACU,WAAW,EAA3B,MAAM;IACU,SAAS,EAAzB,MAAM;IACY,UAAU,EAA5B,MAAM,EAAE;QAsGlB"}
1
+ {"version":3,"file":"ssr_graph_prefilter_color.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/postprocess/ssr/ssr_graph_prefilter_color.js"],"names":[],"mappings":"AAQA;;;;;;;;;;;;GAYG;AACH;IAP+B,KAAK;IACT,WAAW,EAA3B,MAAM;IACU,WAAW,EAA3B,MAAM;IACU,SAAS,EAAzB,MAAM;IAEY,UAAU,EAA5B,MAAM,EAAE;QA6GlB"}
@@ -15,7 +15,8 @@ import { downsample_karis } from "./downsample_karis.js";
15
15
  * @param {FrameGraph} options.graph
16
16
  * @param {number} options.input_color
17
17
  * @param {number} options.input_depth
18
- * @param {number} options.mip_count
18
+ * @param {number} options.mip_count how many levels below the full-size copy to filter; a texture too small to
19
+ * have that many gets the levels it has
19
20
  * @param {number[]} options.resolution
20
21
  */
21
22
  export function ssr_graph_prefilter_color({
@@ -55,6 +56,13 @@ export function ssr_graph_prefilter_color({
55
56
  ]
56
57
  });
57
58
 
59
+ // the full chain of a texture under 2^mip_count texels along its longer side is shorter than that
60
+ const filtered_levels = Math.min(mip_count, output.descriptor.mipLevelCount - 1);
61
+
62
+ if (filtered_levels === 0) {
63
+ return;
64
+ }
65
+
58
66
  const sampler = context.graphics.samplers.obtain(SAMPLER_LINEAR_UPSCALE);
59
67
 
60
68
  let source_view = output.obtainView(DEFAULT_RENDER_TARGET_VIEW_DESCRIPTOR);
@@ -78,7 +86,7 @@ export function ssr_graph_prefilter_color({
78
86
  }]
79
87
  })
80
88
 
81
- for (let i = 1; i < mip_count; i++) {
89
+ for (let i = 1; i < filtered_levels; i++) {
82
90
 
83
91
  source_view = destination_view;
84
92
  destination_view = output.obtainView(TextureViewDescriptor.from({
@@ -49,7 +49,7 @@ fn main(@builtin(position) coord: vec4f) -> SSRTemporalOutput {
49
49
  let st = vec2i(coord.xy);
50
50
  let current = textureLoad(tInput, st, 0);
51
51
  let metadata = textureLoad(tMetadata, st, 0).rg;
52
- let normal = decode_g_buffer_normal(textureLoad(tNormal, st, 0).xy);
52
+ let normal = decode_g_buffer_normal(textureLoad(tNormal, st, 0).x);
53
53
  let roughness = decode_g_buffer_roughness(textureLoad(tPBR, st, 0));
54
54
  var output: SSRTemporalOutput;
55
55
  output.radiance = current;
@@ -4,7 +4,7 @@ import { SSR_DENOISE_TILE_SIZE } from "./SSR_DENOISE_TILE_SIZE.js";
4
4
  import { chunk_rgb_to_luminance } from "../../shader/chunk/color/chunk_rgb_to_luminance.js";
5
5
  import { chunk_rgb_to_YCoCg } from "../../shader/chunk/color/YCoCg/chunk_rgb_to_YCoCg.js";
6
6
  import { chunk_decode_g_buffer_normal } from "../../shader/chunk/geometry/normal/chunk_decode_g_buffer_normal.js";
7
- import { chunk_safe_sqrt } from "../../shader/chunk/math/chunk_safe_sqrt.js";
7
+ import { chunk_safe_sqrt } from "../../shader/chunk/math/chunk_safe_sqrt.js";
8
8
  import { F16_MAX_DEFINITION } from "../../shader/chunk/math/F16_MAX_DEFINITION.js";
9
9
  import {
10
10
  chunk_texture_channel_gaussian_3x3
@@ -77,7 +77,7 @@ ${with_metadata ? ` let center_metadata = textureLoad(tMetadata, ipos, 0).rg;
77
77
  var distance_moments = ssr_distance_moments(center_metadata.x, center_metadata.y, 1.0);` : ""}
78
78
 
79
79
 
80
- let current_normal = decode_g_buffer_normal( textureLoad(tNormal, ipos, 0).xy );
80
+ let current_normal = decode_g_buffer_normal( textureLoad(tNormal, ipos, 0).x );
81
81
  let center_depth = textureLoad(tDepth, ipos, 0).r;
82
82
 
83
83
  const offsets = array< vec2<i32>,8>(
@@ -111,7 +111,7 @@ ${with_metadata ? ` let center_metadata = textureLoad(tMetadata, ipos, 0).rg;
111
111
  let sample_color = textureLoad(tInput, p, 0);
112
112
  let sample_color_luma = rgb_to_luminance(sample_color.rgb);
113
113
 
114
- let sample_normal = decode_g_buffer_normal(textureLoad(tNormal, p, 0).xy);
114
+ let sample_normal = decode_g_buffer_normal(textureLoad(tNormal, p, 0).x);
115
115
  let sample_depth = textureLoad(tDepth, p, 0).r;
116
116
 
117
117
  // compute the edge-stopping functions
@@ -154,7 +154,7 @@ ${with_metadata ? ` var output: SSRResolveOutput;
154
154
  chunk_ffx_dnsr_reflections_get_edge_stopping_normal_weight,
155
155
  chunk_ffx_dnsr_reflections_get_edge_stopping_depth_weight,
156
156
  chunk_luma_edge_stopping_weight,
157
- F16_MAX_DEFINITION,
157
+ F16_MAX_DEFINITION,
158
158
  chunk_safe_sqrt,
159
159
  ]);
160
160
 
@@ -1 +1 @@
1
- {"version":3,"file":"shader_reprojection_map.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/postprocess/taa/shader_reprojection_map.js"],"names":[],"mappings":"AAyBA,wDAeE;AAyFF,kDAWE;0BApIwB,oCAAoC;4BAClC,6BAA6B"}
1
+ {"version":3,"file":"shader_reprojection_map.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/postprocess/taa/shader_reprojection_map.js"],"names":[],"mappings":"AA2BA,wDAeE;AAyFF,kDAWE;0BApIwB,oCAAoC;4BAClC,6BAA6B"}
@@ -2,7 +2,9 @@ import { CAMERA_UNIFORM_STRUCT } from "../../camera/CAMERA_UNIFORM_STRUCT.js";
2
2
  import { DEPTH_BACKGROUND_VALUE } from "../../depth/DEPTH_BACKGROUND_VALUE.js";
3
3
  import { chunk_get_view_space_depth } from "../../shader/chunk/depth/chunk_get_view_space_depth.js";
4
4
  import { chunk_get_view_space_position } from "../../shader/chunk/depth/chunk_get_view_space_position.js";
5
- import { chunk_decode_g_buffer_normal } from "../../shader/chunk/geometry/normal/chunk_decode_g_buffer_normal.js";
5
+ import {
6
+ chunk_decode_g_buffer_face_normal
7
+ } from "../../shader/chunk/geometry/normal/chunk_decode_g_buffer_face_normal.js";
6
8
  import { chunk_v3_matrix4_rotate } from "../../shader/chunk/geometry/vec3/chunk_v3_matrix4_rotate.js";
7
9
  import { chunk_texture_gather_channel } from "../../shader/chunk/texture/chunk_texture_gather_channel.js";
8
10
  import { chunk_get_bilinear_weights } from "../../shader/chunk/texture/sample/chunk_get_bilinear_weights.js";
@@ -17,7 +19,7 @@ const resources = new ShaderResourceSetDescriptor();
17
19
  resources.createGroup()
18
20
  .addTexture("tDepthCurrent")
19
21
  .addTexture("tDepthPrevious")
20
- .addTexture("tNormal", "uint")
22
+ .addTexture("tPBR")
21
23
  .addTexture("tVelocity")
22
24
  .addUniform("camera_current", CAMERA_UNIFORM_STRUCT)
23
25
  .addUniform("camera_previous", CAMERA_UNIFORM_STRUCT)
@@ -75,7 +77,7 @@ fn main(
75
77
  let distance_to_point = position_vs.z;
76
78
 
77
79
  // get geometric normal
78
- let normal_ws = decode_g_buffer_normal( textureLoad(tNormal, coord_i, 0).zw );
80
+ let normal_ws = decode_g_buffer_face_normal( textureLoad(tPBR, coord_i, 0) );
79
81
 
80
82
  // move normal to view space
81
83
  var normal_vs = v3_matrix4_rotate(normal_ws, camera_current.transform_inverse);
@@ -118,7 +120,7 @@ fn main(
118
120
  }
119
121
  `, [
120
122
  chunk_get_view_space_position,
121
- chunk_decode_g_buffer_normal,
123
+ chunk_decode_g_buffer_face_normal,
122
124
  chunk_v3_matrix4_rotate,
123
125
  chunk_texture_gather_channel,
124
126
  chunk_get_view_space_depth_vec4,
@@ -7,7 +7,7 @@ export function enquire_per_object_velocity_pipelines(enquiry: PipelineEnquiry):
7
7
  /**
8
8
  * Per-pixel motion-vector pass with three branches:
9
9
  *
10
- * 1. **Background** (no rasterized geometry, `viz_mesh == INVALID`)
10
+ * 1. **Background** (no rasterized geometry, `VISIBILITY_NONE`)
11
11
  * — rotation-only reprojection of the current pixel through the
12
12
  * camera's frame-over-frame rotation delta. Suitable for skybox
13
13
  * / infinite background.
@@ -39,8 +39,8 @@ export function enquire_per_object_velocity_pipelines(enquiry: PipelineEnquiry):
39
39
  * @param {object} args
40
40
  * @param {FrameGraph} args.graph
41
41
  * @param {number} args.texture_depth
42
- * @param {number} args.texture_viz_mesh
43
- * @param {number} args.texture_viz_triangle
42
+ * @param {number} args.texture_visibility the visibility buffer
43
+ * @param {number} args.buffer_visible_meshlets the frame's visible-meshlet table, which resolves it
44
44
  * @param {number} args.buffer_scene_database
45
45
  * @param {number} args.buffer_meshlet_metadata
46
46
  * @param {number} args.buffer_meshlet_data
@@ -51,14 +51,13 @@ export function enquire_per_object_velocity_pipelines(enquiry: PipelineEnquiry):
51
51
  * placeholders and the shader forces the rigid path.
52
52
  * @param {number[]} args.resolution
53
53
  * @param {GPUViewContext} args.view
54
- * @param {boolean} [args.enable_mipmap]
55
54
  * @returns {number} FrameGraph handle to the velocity texture (rg16float)
56
55
  */
57
- export function graph_add_per_object_velocity({ graph, texture_depth, texture_viz_mesh, texture_viz_triangle, buffer_scene_database, buffer_meshlet_metadata, buffer_meshlet_data, buffer_prev_position_offsets, buffer_prev_positions, skinning_active, resolution, view, enable_mipmap, }: {
56
+ export function graph_add_per_object_velocity({ graph, texture_depth, texture_visibility, buffer_visible_meshlets, buffer_scene_database, buffer_meshlet_metadata, buffer_meshlet_data, buffer_prev_position_offsets, buffer_prev_positions, skinning_active, resolution, view, }: {
58
57
  graph: FrameGraph;
59
58
  texture_depth: number;
60
- texture_viz_mesh: number;
61
- texture_viz_triangle: number;
59
+ texture_visibility: number;
60
+ buffer_visible_meshlets: number;
62
61
  buffer_scene_database: number;
63
62
  buffer_meshlet_metadata: number;
64
63
  buffer_meshlet_data: number;
@@ -67,7 +66,6 @@ export function graph_add_per_object_velocity({ graph, texture_depth, texture_vi
67
66
  skinning_active: boolean;
68
67
  resolution: number[];
69
68
  view: GPUViewContext;
70
- enable_mipmap?: boolean;
71
69
  }): number;
72
70
  export type PipelineEnquiry = import("../../../device/pipeline/PipelineEnquiry.js").PipelineEnquiry;
73
71
  //# sourceMappingURL=graph_add_per_object_velocity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"graph_add_per_object_velocity.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/postprocess/velocity/graph_add_per_object_velocity.js"],"names":[],"mappings":"AAmRA;;;;GAIG;AACH,+DAFW,eAAe,QAIzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH;IAjB4B,KAAK;IACT,aAAa,EAA1B,MAAM;IACO,gBAAgB,EAA7B,MAAM;IACO,oBAAoB,EAAjC,MAAM;IACO,qBAAqB,EAAlC,MAAM;IACO,uBAAuB,EAApC,MAAM;IACO,mBAAmB,EAAhC,MAAM;IACO,4BAA4B,EAAzC,MAAM;IACO,qBAAqB,EAAlC,MAAM;IACQ,eAAe,EAA7B,OAAO;IAGQ,UAAU,EAAzB,MAAM,EAAE;IACa,IAAI;IACV,aAAa,GAA5B,OAAO;IACL,MAAM,CAgFlB;8BArXY,OAAO,6CAA6C,EAAE,eAAe"}
1
+ {"version":3,"file":"graph_add_per_object_velocity.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/postprocess/velocity/graph_add_per_object_velocity.js"],"names":[],"mappings":"AAkRA;;;;GAIG;AACH,+DAFW,eAAe,QAIzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH;IAhB4B,KAAK;IACT,aAAa,EAA1B,MAAM;IACO,kBAAkB,EAA/B,MAAM;IACO,uBAAuB,EAApC,MAAM;IACO,qBAAqB,EAAlC,MAAM;IACO,uBAAuB,EAApC,MAAM;IACO,mBAAmB,EAAhC,MAAM;IACO,4BAA4B,EAAzC,MAAM;IACO,qBAAqB,EAAlC,MAAM;IACQ,eAAe,EAA7B,OAAO;IAGQ,UAAU,EAAzB,MAAM,EAAE;IACa,IAAI;IACvB,MAAM,CA8ElB;8BAhXY,OAAO,6CAA6C,EAAE,eAAe"}
@@ -9,8 +9,9 @@ import {
9
9
  MESHLET_METADATA_STRUCT
10
10
  } from "../../geometry/meshlet/encoding/MESHLET_METADATA_STRUCT.js";
11
11
  import {
12
- VIZ_BUFFER_INVALID_MESH_VALUE
13
- } from "../../rasterize/native/viz/VIZ_BUFFER_INVALID_MESH_VALUE.js";
12
+ chunk_visibility_decode,
13
+ VISIBLE_MESHLETS_RESOURCE
14
+ } from "../../rasterize/visibility/chunk_visibility_decode.js";
14
15
  import {
15
16
  chunk_scene_database_access
16
17
  } from "../../scene/chunk_scene_database_access.js";
@@ -44,8 +45,8 @@ const resources = new ShaderResourceSetDescriptor();
44
45
 
45
46
  resources.createGroup()
46
47
  .addTexture("tDepth")
47
- .addTexture("tVizMesh", "uint")
48
- .addTexture("tVizTriangle", "uint")
48
+ .addTexture("tVisibility", "uint")
49
+ .add(VISIBLE_MESHLETS_RESOURCE)
49
50
  .addUniform("mReprojectionRotation", mat4x4f)
50
51
  // Un-jittered current-frame inverse view-projection and
51
52
  // un-jittered previous-frame view-projection. TAA wants
@@ -78,7 +79,6 @@ resources.createGroup()
78
79
  const body = CodeChunk.from(
79
80
  //language=WGSL
80
81
  `
81
- const VIZ_INVALID: u32 = ${VIZ_BUFFER_INVALID_MESH_VALUE}u;
82
82
  const PREV_POS_OFFSET_INVALID: u32 = 0xFFFFFFFFu;
83
83
 
84
84
  fn read_prev_position(base: u32, vertex_index: u32) -> vec3<f32> {
@@ -97,14 +97,14 @@ fn main(
97
97
 
98
98
  let cur_px = coord.xy;
99
99
  let texel = vec2<u32>(cur_px);
100
- let mesh_id = textureLoad(tVizMesh, texel, 0).r;
100
+ let visibility_word = textureLoad(tVisibility, texel, 0).r;
101
101
 
102
102
  // ── Background: rotation-only reprojection ──────────────────
103
103
  //
104
- // Visibility-buffer clears leave mesh_id == VIZ_INVALID on sky
104
+ // Visibility-buffer clears leave VISIBILITY_NONE on sky
105
105
  // pixels, where reverse-Z depth is always 0.0. Passing 0.0
106
106
  // directly avoids a tDepth textureLoad on every background pixel.
107
- if mesh_id == VIZ_INVALID {
107
+ if visibility_word == VISIBILITY_NONE {
108
108
  let position_previous = v3_matrix4_project(
109
109
  vec3<f32>(cur_px, 0.0),
110
110
  mReprojectionRotation
@@ -123,16 +123,16 @@ fn main(
123
123
  let cur_world_h = mInvViewProjCurrent * vec4<f32>(cur_ndc, 1.0);
124
124
  let cur_world = cur_world_h.xyz / cur_world_h.w;
125
125
 
126
- let mesh = scene_read_mesh(&scene_database, mesh_id);
126
+ let visibility_texel = visibility_decode(visibility_word);
127
+
128
+ let mesh = scene_read_mesh(&scene_database, visibility_texel.mesh);
127
129
  let node = scene_read_node(&scene_database, mesh.node);
128
130
 
129
131
  // ── Skinned vs static fork ─────────────────────────────────
130
132
  //
131
- // viz_triangle encodes (meshlet_id, triangle_local) via
132
- // encode_meshlet_element — upper 24 bits meshlet, lower 8 bits
133
- // triangle-within-meshlet. Look up the per-meshlet
134
- // prev-position offset; sentinel means "not a skinned clone,
135
- // use rigid per-object math".
133
+ // The visibility word names the meshlet and the triangle within
134
+ // it. Look up the per-meshlet prev-position offset; sentinel
135
+ // means "not a skinned clone, use rigid per-object math".
136
136
  //
137
137
  // The per-vertex skinning path reads prev_position_offsets /
138
138
  // prev_positions, which only hold valid data when a skinned mesh is
@@ -140,17 +140,15 @@ fn main(
140
140
  // bindings (the scene_database buffer) and reading them would feed
141
141
  // garbage offsets into the skinned branch — a non-sentinel word
142
142
  // there sends a static triangle down the per-vertex path and
143
- // fabricates a constant phantom velocity. Gate both the tVizTriangle
144
- // textureLoad and the offset buffer read on skinning_active so
145
- // non-skinned scenes skip the full-screen tVizTriangle fetch and
146
- // every pixel takes the rigid per-object path.
143
+ // fabricates a constant phantom velocity. Gate the offset buffer
144
+ // read on skinning_active so every pixel of a non-skinned scene
145
+ // takes the rigid per-object path.
147
146
  var meshlet_id = 0u;
148
147
  var tri_local = 0u;
149
148
  var prev_pos_base = PREV_POS_OFFSET_INVALID;
150
149
  if skinning_active.value != 0u {
151
- let triangle_packed = textureLoad(tVizTriangle, texel, 0).r;
152
- meshlet_id = (triangle_packed >> 8u) & 0x00FFFFFFu;
153
- tri_local = triangle_packed & 0xFFu;
150
+ meshlet_id = visibility_texel.meshlet;
151
+ tri_local = visibility_texel.triangle;
154
152
  prev_pos_base = prev_position_offsets[meshlet_id];
155
153
  }
156
154
 
@@ -253,6 +251,7 @@ fn main(
253
251
  chunk_read_meshlet_resolved_index,
254
252
  chunk_read_meshlet_vertex_position,
255
253
  MESHLET_METADATA_STRUCT.declaration_chunk,
254
+ chunk_visibility_decode,
256
255
  ]
257
256
  );
258
257
 
@@ -285,7 +284,7 @@ export function enquire_per_object_velocity_pipelines(enquiry) {
285
284
  /**
286
285
  * Per-pixel motion-vector pass with three branches:
287
286
  *
288
- * 1. **Background** (no rasterized geometry, `viz_mesh == INVALID`)
287
+ * 1. **Background** (no rasterized geometry, `VISIBILITY_NONE`)
289
288
  * — rotation-only reprojection of the current pixel through the
290
289
  * camera's frame-over-frame rotation delta. Suitable for skybox
291
290
  * / infinite background.
@@ -317,8 +316,8 @@ export function enquire_per_object_velocity_pipelines(enquiry) {
317
316
  * @param {object} args
318
317
  * @param {FrameGraph} args.graph
319
318
  * @param {number} args.texture_depth
320
- * @param {number} args.texture_viz_mesh
321
- * @param {number} args.texture_viz_triangle
319
+ * @param {number} args.texture_visibility the visibility buffer
320
+ * @param {number} args.buffer_visible_meshlets the frame's visible-meshlet table, which resolves it
322
321
  * @param {number} args.buffer_scene_database
323
322
  * @param {number} args.buffer_meshlet_metadata
324
323
  * @param {number} args.buffer_meshlet_data
@@ -329,14 +328,13 @@ export function enquire_per_object_velocity_pipelines(enquiry) {
329
328
  * placeholders and the shader forces the rigid path.
330
329
  * @param {number[]} args.resolution
331
330
  * @param {GPUViewContext} args.view
332
- * @param {boolean} [args.enable_mipmap]
333
331
  * @returns {number} FrameGraph handle to the velocity texture (rg16float)
334
332
  */
335
333
  export function graph_add_per_object_velocity({
336
334
  graph,
337
335
  texture_depth,
338
- texture_viz_mesh,
339
- texture_viz_triangle,
336
+ texture_visibility,
337
+ buffer_visible_meshlets,
340
338
  buffer_scene_database,
341
339
  buffer_meshlet_metadata,
342
340
  buffer_meshlet_data,
@@ -345,13 +343,12 @@ export function graph_add_per_object_velocity({
345
343
  skinning_active,
346
344
  resolution,
347
345
  view,
348
- enable_mipmap = false,
349
346
  }) {
350
347
 
351
348
  assert.defined(view, 'view');
352
349
  assert.isNonNegativeInteger(texture_depth, 'texture_depth');
353
- assert.isNonNegativeInteger(texture_viz_mesh, 'texture_viz_mesh');
354
- assert.isNonNegativeInteger(texture_viz_triangle, 'texture_viz_triangle');
350
+ assert.isNonNegativeInteger(texture_visibility, 'texture_visibility');
351
+ assert.isNonNegativeInteger(buffer_visible_meshlets, 'buffer_visible_meshlets');
355
352
  assert.isNonNegativeInteger(buffer_scene_database, 'buffer_scene_database');
356
353
  assert.isNonNegativeInteger(buffer_meshlet_metadata, 'buffer_meshlet_metadata');
357
354
  assert.isNonNegativeInteger(buffer_meshlet_data, 'buffer_meshlet_data');
@@ -395,8 +392,8 @@ export function graph_add_per_object_velocity({
395
392
  shader,
396
393
  inputs: {
397
394
  tDepth: texture_depth,
398
- tVizMesh: texture_viz_mesh,
399
- tVizTriangle: texture_viz_triangle,
395
+ tVisibility: texture_visibility,
396
+ visible_meshlets: buffer_visible_meshlets,
400
397
  mReprojectionRotation: reprojection_matrix_pixels_rotation,
401
398
  mInvViewProjCurrent: scratch_unjit_inv_view_proj_curr_f32,
402
399
  mViewProjPrevious: scratch_unjit_view_proj_prev_f32,
@@ -408,6 +405,5 @@ export function graph_add_per_object_velocity({
408
405
  prev_positions: buffer_prev_positions,
409
406
  },
410
407
  output_resolution: resolution,
411
- output_mipmaps: enable_mipmap,
412
408
  })[0];
413
409
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TemplatePassDescriptor.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/rasterize/TemplatePassDescriptor.js"],"names":[],"mappings":"AAMA;;;;;GAKG;AAEH;;;;;;;;;;;;;;GAcG;AACH;IA0CI;;;;OAIG;IACH,mBAJW,MAAM,gBACG,qBAAqB,QAAE,eAAe,KAAG,wBAAwB,EAWpF;IA3CD;;OAEG;IACH,gCAEC;IAwCD;;;;;;;OAOG;IACH,aAHW,eAAe,GACb,sBAAsB,CAwBlC;IAED;;;;;;;OAOG;IACH,gHAEC;IAED;;;OAGG;IACH,cAEC;IAED;;OAEG;IACH,qBAEC;IAED;;;OAGG;IACH,uCAHW,qBAAqB,GACnB,wBAAwB,CAYpC;IAED;;;;;OAKG;IACH,kCALW,qBAAqB,YACrB,qBAAqB,6CAsC/B;IAGL;;;OAGG;IACH,mCAFU,OAAO,CAEwC;;CANxD;uCAlMY,OAAO,8DAA8D,EAAE,wBAAwB;uCAC/F,OAAO,uDAAuD,EAAE,wBAAwB;oCACxF,OAAO,gDAAgD,EAAE,qBAAqB;oCAC9E,OAAO,+CAA+C,EAAE,qBAAqB;qCANrD,wCAAwC;gCAD7C,uCAAuC"}
1
+ {"version":3,"file":"TemplatePassDescriptor.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/rasterize/TemplatePassDescriptor.js"],"names":[],"mappings":"AAMA;;;;;GAKG;AAEH;;;;;;;;;;;;;;GAcG;AACH;IA0CI;;;;OAIG;IACH,mBAJW,MAAM,gBACG,qBAAqB,QAAE,eAAe,KAAG,wBAAwB,EAWpF;IA3CD;;OAEG;IACH,gCAEC;IAwCD;;;;;;;OAOG;IACH,aAHW,eAAe,GACb,sBAAsB,CAyBlC;IAED;;;;;;;OAOG;IACH,gHAEC;IAED;;;OAGG;IACH,cAEC;IAED;;OAEG;IACH,qBAEC;IAED;;;OAGG;IACH,uCAHW,qBAAqB,GACnB,wBAAwB,CAYpC;IAED;;;;;OAKG;IACH,kCALW,qBAAqB,YACrB,qBAAqB,6CAsC/B;IAGL;;;OAGG;IACH,mCAFU,OAAO,CAEwC;;CANxD;uCAnMY,OAAO,8DAA8D,EAAE,wBAAwB;uCAC/F,OAAO,uDAAuD,EAAE,wBAAwB;oCACxF,OAAO,gDAAgD,EAAE,qBAAqB;oCAC9E,OAAO,+CAA+C,EAAE,qBAAqB;qCANrD,wCAAwC;gCAD7C,uCAAuC"}