@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.
- package/package.json +1 -1
- package/src/engine/graphics3/PickingSystem.d.ts.map +1 -1
- package/src/engine/graphics3/PickingSystem.js +415 -413
- package/src/engine/graphics3/decal/GPUDecalRenderer.d.ts.map +1 -1
- package/src/engine/graphics3/decal/GPUDecalRenderer.js +2 -1
- package/src/engine/graphics3/decal/shader_decal_composite.d.ts.map +1 -1
- package/src/engine/graphics3/decal/shader_decal_composite.js +26 -16
- package/src/engine/graphics3/decal/shader_decal_tile_copy.d.ts.map +1 -1
- package/src/engine/graphics3/decal/shader_decal_tile_copy.js +6 -11
- package/src/engine/graphics3/highlight/GPUHighlightRenderer.d.ts.map +1 -1
- package/src/engine/graphics3/highlight/GPUHighlightRenderer.js +6 -2
- package/src/engine/graphics3/highlight/shader_highlight_outline.d.ts.map +1 -1
- package/src/engine/graphics3/highlight/shader_highlight_outline.js +167 -150
- package/src/engine/graphics3/shader_picking_gather.d.ts.map +1 -1
- package/src/engine/graphics3/shader_picking_gather.js +133 -120
- package/src/shade/device/mock/SoftwareGPUTexture.d.ts.map +1 -1
- package/src/shade/device/mock/SoftwareGPUTexture.js +11 -0
- package/src/shade/device/pipeline/rp_validate_and_rewrite_for_color_attachments.js +1 -1
- package/src/shade/playground/contact_shadows/ContactShadowLab.js +6 -6
- package/src/shade/playground/contact_shadows/shader_contact_lab_composite.d.ts.map +1 -1
- package/src/shade/playground/contact_shadows/shader_contact_lab_composite.js +6 -4
- package/src/shade/playground/contact_shadows/shader_contact_lab_reference.d.ts.map +1 -1
- package/src/shade/playground/contact_shadows/shader_contact_lab_reference.js +6 -4
- package/src/shade/playground/contact_shadows/shader_contact_shadow_march.d.ts.map +1 -1
- package/src/shade/playground/contact_shadows/shader_contact_shadow_march.js +6 -4
- package/src/shade/playground/ssr_reprojection/SpatialFilterProbe.js +1 -1
- package/src/shade/playground/ssr_variance/capture.js +1 -1
- package/src/shade/renderer/Renderer.d.ts +2 -2
- package/src/shade/renderer/Renderer.d.ts.map +1 -1
- package/src/shade/renderer/Renderer.js +40 -53
- package/src/shade/renderer/deferred/chunk_read_gBuffer_material.d.ts.map +1 -1
- package/src/shade/renderer/deferred/chunk_read_gBuffer_material.js +3 -1
- package/src/shade/renderer/deferred/chunk_ss_trace_contact_shadow_soft.d.ts.map +1 -1
- package/src/shade/renderer/deferred/chunk_ss_trace_contact_shadow_soft.js +5 -4
- package/src/shade/renderer/deferred/shader_deferred_main.d.ts.map +1 -1
- package/src/shade/renderer/deferred/shader_deferred_main.js +6 -4
- package/src/shade/renderer/extension/GBufferTextures.d.ts +5 -1
- package/src/shade/renderer/extension/GBufferTextures.d.ts.map +1 -1
- package/src/shade/renderer/extension/GBufferTextures.js +5 -1
- package/src/shade/renderer/extension/ViewTextures.d.ts +11 -7
- package/src/shade/renderer/extension/ViewTextures.d.ts.map +1 -1
- package/src/shade/renderer/extension/ViewTextures.js +17 -13
- package/src/shade/renderer/gbuffer/G_BUFFER_ALBEDO_FORMAT.d.ts +2 -0
- package/src/shade/renderer/gbuffer/G_BUFFER_ALBEDO_FORMAT.d.ts.map +1 -1
- package/src/shade/renderer/gbuffer/G_BUFFER_ALBEDO_FORMAT.js +2 -0
- package/src/shade/renderer/gbuffer/G_BUFFER_COLOR_TARGETS.d.ts.map +1 -1
- package/src/shade/renderer/gbuffer/G_BUFFER_COLOR_TARGETS.js +8 -5
- package/src/shade/renderer/geometry/sdf/shader_sdf_visualize.d.ts +7 -5
- package/src/shade/renderer/geometry/sdf/shader_sdf_visualize.d.ts.map +1 -1
- package/src/shade/renderer/geometry/sdf/shader_sdf_visualize.js +29 -16
- package/src/shade/renderer/geometry/virtual/runtime/cut/chunk_vgeo_cut_instance.d.ts +9 -3
- package/src/shade/renderer/geometry/virtual/runtime/cut/chunk_vgeo_cut_instance.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/runtime/cut/chunk_vgeo_cut_instance.js +40 -32
- package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_collect.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_collect.js +14 -15
- package/src/shade/renderer/global_illumination/brick4/gpu/draw/shader_brick4_debug_draw.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/brick4/gpu/draw/shader_brick4_debug_draw.js +7 -3
- package/src/shade/renderer/global_illumination/brick4/gpu/draw/shader_brick4_diffuse.js +1 -1
- package/src/shade/renderer/global_illumination/brick4/gpu/draw/shader_brick4_indirect_lighting.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/brick4/gpu/draw/shader_brick4_indirect_lighting.js +5 -3
- package/src/shade/renderer/global_illumination/brick4/gpu/draw/shader_brick4_specular.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/brick4/gpu/draw/shader_brick4_specular.js +1 -3
- package/src/shade/renderer/global_illumination/ibl/shader_diffuse_IBL.js +1 -1
- package/src/shade/renderer/global_illumination/ibl/shader_specular_IBL.js +2 -2
- package/src/shade/renderer/global_illumination/lpv/shader_diffuse_LPV.js +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/GPUBrickClipmap.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/GPUBrickClipmap.js +14 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/GPUProbeClipmap.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/GPUProbeClipmap.js +10 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_diffuse.js +2 -2
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_indirect_lighting.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_indirect_lighting.js +5 -3
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_want.js +1 -1
- package/src/shade/renderer/global_illumination/shader_resolve_indirect_lighting.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/shader_resolve_indirect_lighting.js +5 -3
- package/src/shade/renderer/global_illumination/sharc/shader/debug/shader_colored_hash.js +1 -1
- package/src/shade/renderer/global_illumination/sharc/shader/debug/shader_sharc_debug_radiance.js +1 -1
- package/src/shade/renderer/global_illumination/sharc/shader/shader_sharc_update.js +1 -1
- package/src/shade/renderer/material/GPUMaterialManager.d.ts +22 -9
- package/src/shade/renderer/material/GPUMaterialManager.d.ts.map +1 -1
- package/src/shade/renderer/material/GPUMaterialManager.js +159 -65
- package/src/shade/renderer/material/MATERIAL_MASK.d.ts +19 -0
- package/src/shade/renderer/material/MATERIAL_MASK.d.ts.map +1 -0
- package/src/shade/renderer/material/MATERIAL_MASK.js +19 -0
- package/src/shade/renderer/material/dispatch/GPUMaterialComputeDispatch.d.ts +8 -8
- package/src/shade/renderer/material/dispatch/GPUMaterialComputeDispatch.d.ts.map +1 -1
- package/src/shade/renderer/material/dispatch/GPUMaterialComputeDispatch.js +11 -92
- package/src/shade/renderer/material/dispatch/chunk_material_quad_keys.d.ts.map +1 -1
- package/src/shade/renderer/material/dispatch/chunk_material_quad_keys.js +10 -2
- package/src/shade/renderer/material/dispatch/gbuffer_compute.js +2 -2
- package/src/shade/renderer/material/dispatch/graph_material_dispatch_compute.d.ts +7 -7
- package/src/shade/renderer/material/dispatch/graph_material_dispatch_compute.d.ts.map +1 -1
- package/src/shade/renderer/material/dispatch/graph_material_dispatch_compute.js +20 -16
- package/src/shade/renderer/material/dispatch/shader_material_pixel_count.d.ts.map +1 -1
- package/src/shade/renderer/material/dispatch/shader_material_pixel_count.js +3 -1
- package/src/shade/renderer/material/dispatch/shader_material_pixel_scatter.d.ts.map +1 -1
- package/src/shade/renderer/material/dispatch/shader_material_pixel_scatter.js +3 -1
- package/src/shade/renderer/material/standard/fragment_gbuffer.d.ts.map +1 -1
- package/src/shade/renderer/material/standard/fragment_gbuffer.js +26 -25
- package/src/shade/renderer/material/standard/material_gbuffer_vertex.d.ts +10 -8
- package/src/shade/renderer/material/standard/material_gbuffer_vertex.d.ts.map +1 -1
- package/src/shade/renderer/material/standard/material_gbuffer_vertex.js +16 -13
- package/src/shade/renderer/material/template/ShadeMaterialTemplate.d.ts +1 -1
- package/src/shade/renderer/material/template/ShadeMaterialTemplate.js +1 -1
- package/src/shade/renderer/postprocess/denoise/LigmaDenoiser.d.ts +5 -2
- package/src/shade/renderer/postprocess/denoise/LigmaDenoiser.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/denoise/LigmaDenoiser.js +7 -4
- package/src/shade/renderer/postprocess/denoise/debug/graph_pass_debug_reprojection.d.ts +3 -3
- package/src/shade/renderer/postprocess/denoise/debug/graph_pass_debug_reprojection.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/denoise/debug/graph_pass_debug_reprojection.js +12 -10
- package/src/shade/renderer/postprocess/denoise/fragment_shader_denoise_ao.js +2 -2
- package/src/shade/renderer/postprocess/denoise/shader_temporal_reprojection_luma.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/denoise/shader_temporal_reprojection_luma.js +6 -4
- package/src/shade/renderer/postprocess/gtao/GTAO.d.ts +9 -7
- package/src/shade/renderer/postprocess/gtao/GTAO.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/gtao/GTAO.js +11 -8
- package/src/shade/renderer/postprocess/gtao/ao_reproject_shader.d.ts +3 -3
- package/src/shade/renderer/postprocess/gtao/ao_reproject_shader.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/gtao/ao_reproject_shader.js +17 -12
- package/src/shade/renderer/postprocess/gtao/chunk_integrate_lighting_sample.js +1 -1
- package/src/shade/renderer/postprocess/gtao/fragment_shader_gtao.js +1 -1
- package/src/shade/renderer/postprocess/gtao/fragment_shader_gtao_with_irradiance.js +4 -4
- package/src/shade/renderer/postprocess/gtao/shader_gtao_spatial_denoise.js +2 -2
- package/src/shade/renderer/postprocess/ssr/chunk_ssr_spatial_variance.js +41 -41
- package/src/shade/renderer/postprocess/ssr/prefilter/chunk_load_neighbourhood_sample.js +1 -1
- package/src/shade/renderer/postprocess/ssr/reproject/chunk_ssr_temporal_accumulate.js +3 -3
- package/src/shade/renderer/postprocess/ssr/resolve/chunk_ssr_add_hit_irradiance.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/ssr/resolve/chunk_ssr_add_hit_irradiance.js +5 -2
- package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader.js +4 -4
- package/src/shade/renderer/postprocess/ssr/ssr_combine_shader.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/ssr/ssr_combine_shader.js +4 -2
- package/src/shade/renderer/postprocess/ssr/ssr_graph_prefilter_color.d.ts +2 -1
- package/src/shade/renderer/postprocess/ssr/ssr_graph_prefilter_color.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/ssr/ssr_graph_prefilter_color.js +10 -2
- package/src/shade/renderer/postprocess/ssr/ssr_reproject_shader.js +1 -1
- package/src/shade/renderer/postprocess/ssr/ssr_spatial_denoise_shader.js +4 -4
- package/src/shade/renderer/postprocess/taa/shader_reprojection_map.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/taa/shader_reprojection_map.js +6 -4
- package/src/shade/renderer/postprocess/velocity/graph_add_per_object_velocity.d.ts +6 -8
- package/src/shade/renderer/postprocess/velocity/graph_add_per_object_velocity.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/velocity/graph_add_per_object_velocity.js +29 -33
- package/src/shade/renderer/rasterize/TemplatePassDescriptor.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/TemplatePassDescriptor.js +1 -0
- package/src/shade/renderer/rasterize/bucket/graph_meshlets_rasterize_by_bucket.d.ts +6 -3
- package/src/shade/renderer/rasterize/bucket/graph_meshlets_rasterize_by_bucket.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/bucket/graph_meshlets_rasterize_by_bucket.js +8 -3
- package/src/shade/renderer/rasterize/expand/GPUCollectionLimits.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/GPUCollectionLimits.js +3 -0
- package/src/shade/renderer/rasterize/expand/RasterizationCollectionType.d.ts +1 -0
- package/src/shade/renderer/rasterize/expand/RasterizationCollectionType.js +5 -0
- package/src/shade/renderer/rasterize/expand/graph_meshlets_rasterize.d.ts +8 -3
- package/src/shade/renderer/rasterize/expand/graph_meshlets_rasterize.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/graph_meshlets_rasterize.js +54 -5
- package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts +1 -0
- package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.js +1 -1
- package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.d.ts +1 -1
- package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.js +2 -1
- package/src/shade/renderer/rasterize/native/graph_rasterize_meshes_alpha_tested.d.ts +7 -2
- package/src/shade/renderer/rasterize/native/graph_rasterize_meshes_alpha_tested.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/graph_rasterize_meshes_alpha_tested.js +73 -9
- package/src/shade/renderer/rasterize/native/viz/shader_vertex.js +4 -4
- package/src/shade/renderer/rasterize/native/viz/viz_rasterization_alpha_tested_pass_descriptor.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/viz/viz_rasterization_alpha_tested_pass_descriptor.js +23 -40
- package/src/shade/renderer/rasterize/native/viz/viz_rasterization_opaque_pass_descriptor.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/viz/viz_rasterization_opaque_pass_descriptor.js +55 -76
- package/src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.d.ts +4 -2
- package/src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.js +6 -2
- package/src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.d.ts +4 -2
- package/src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.js +6 -2
- package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.d.ts +5 -2
- package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.js +43 -2
- package/src/shade/renderer/rasterize/visibility/VISIBILITY_BUFFER.d.ts +39 -0
- package/src/shade/renderer/rasterize/visibility/VISIBILITY_BUFFER.d.ts.map +1 -0
- package/src/shade/renderer/rasterize/visibility/VISIBILITY_BUFFER.js +45 -0
- package/src/shade/renderer/rasterize/visibility/chunk_visibility_decode.d.ts +26 -0
- package/src/shade/renderer/rasterize/visibility/chunk_visibility_decode.d.ts.map +1 -0
- package/src/shade/renderer/rasterize/visibility/chunk_visibility_decode.js +48 -0
- package/src/shade/renderer/rasterize/visibility/shader_visible_meshlets_append.d.ts +40 -0
- package/src/shade/renderer/rasterize/visibility/shader_visible_meshlets_append.d.ts.map +1 -0
- package/src/shade/renderer/rasterize/visibility/shader_visible_meshlets_append.js +172 -0
- package/src/shade/renderer/restir/di/chunk_restir_reconstruct_surface.d.ts.map +1 -1
- package/src/shade/renderer/restir/di/chunk_restir_reconstruct_surface.js +6 -4
- package/src/shade/renderer/restir/di/chunk_restir_spatial_reuse.js +1 -1
- package/src/shade/renderer/restir/di/shader_restir_di_denoise.js +2 -2
- package/src/shade/renderer/shader/chunk/color/sRGB/chunk_sRGBTransferEOTF.d.ts +9 -0
- package/src/shade/renderer/shader/chunk/color/sRGB/chunk_sRGBTransferEOTF.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/color/sRGB/chunk_sRGBTransferEOTF.js +18 -0
- package/src/shade/renderer/shader/chunk/geometry/mat3/chunk_mat3_determinant.d.ts +20 -0
- package/src/shade/renderer/shader/chunk/geometry/mat3/chunk_mat3_determinant.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/geometry/mat3/chunk_mat3_determinant.js +26 -0
- package/src/shade/renderer/shader/chunk/geometry/mat3/chunk_mat3_singular_values.d.ts +60 -18
- package/src/shade/renderer/shader/chunk/geometry/mat3/chunk_mat3_singular_values.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/geometry/mat3/chunk_mat3_singular_values.js +163 -45
- package/src/shade/renderer/shader/chunk/geometry/mat4/chunk_mat4_linear_determinant.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/geometry/mat4/chunk_mat4_linear_determinant.js +19 -18
- package/src/shade/renderer/shader/chunk/geometry/normal/chunk_decode_g_buffer_face_normal.d.ts +13 -0
- package/src/shade/renderer/shader/chunk/geometry/normal/chunk_decode_g_buffer_face_normal.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/geometry/normal/chunk_decode_g_buffer_face_normal.js +22 -0
- package/src/shade/renderer/shader/chunk/geometry/normal/chunk_decode_g_buffer_normal.d.ts +8 -1
- package/src/shade/renderer/shader/chunk/geometry/normal/chunk_decode_g_buffer_normal.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/geometry/normal/chunk_decode_g_buffer_normal.js +10 -8
- package/src/shade/renderer/shader/chunk/geometry/normal/chunk_encode_g_buffer_face_normal.d.ts +22 -0
- package/src/shade/renderer/shader/chunk/geometry/normal/chunk_encode_g_buffer_face_normal.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/geometry/normal/chunk_encode_g_buffer_face_normal.js +32 -0
- package/src/shade/renderer/shader/chunk/geometry/normal/chunk_encode_g_buffer_normal.d.ts +11 -1
- package/src/shade/renderer/shader/chunk/geometry/normal/chunk_encode_g_buffer_normal.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/geometry/normal/chunk_encode_g_buffer_normal.js +14 -6
- package/src/shade/renderer/shader/chunk/material/chunk_decode_g_buffer_albedo.d.ts +14 -0
- package/src/shade/renderer/shader/chunk/material/chunk_decode_g_buffer_albedo.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/material/chunk_decode_g_buffer_albedo.js +24 -0
- package/src/shade/renderer/shader/chunk/material/chunk_encode_g_buffer_albedo.d.ts +17 -0
- package/src/shade/renderer/shader/chunk/material/chunk_encode_g_buffer_albedo.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/material/chunk_encode_g_buffer_albedo.js +27 -0
- package/src/shade/renderer/shader/chunk/screen_space/SCREEN_SPACE_RESOURCES.d.ts +7 -1
- package/src/shade/renderer/shader/chunk/screen_space/SCREEN_SPACE_RESOURCES.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/screen_space/SCREEN_SPACE_RESOURCES.js +8 -1
- package/src/shade/renderer/shader/chunk/screen_space/chunk_ffx_sssr_load_world_space_normal.js +1 -1
- package/src/shade/renderer/shader/chunk/screen_space/chunk_screen_space_newton_ray.js +10 -10
- package/src/shade/renderer/shader/pass/RenderPassDescriptor.d.ts +8 -0
- package/src/shade/renderer/shader/pass/RenderPassDescriptor.d.ts.map +1 -1
- package/src/shade/renderer/shader/pass/RenderPassDescriptor.js +9 -0
- package/src/shade/renderer/shader/util/shader_decode_octahedral_normal.js +1 -1
- package/src/shade/renderer/shadow/contact/graph_contact_shadow_linear.d.ts +3 -3
- package/src/shade/renderer/shadow/contact/graph_contact_shadow_linear.d.ts.map +1 -1
- package/src/shade/renderer/shadow/contact/graph_contact_shadow_linear.js +3 -3
- package/src/shade/renderer/shadow/contact/shader_contact_shadow_linear.d.ts.map +1 -1
- package/src/shade/renderer/shadow/contact/shader_contact_shadow_linear.js +6 -4
- package/src/shade/renderer/shadow/ray/RTXShadows.d.ts +6 -4
- package/src/shade/renderer/shadow/ray/RTXShadows.d.ts.map +1 -1
- package/src/shade/renderer/shadow/ray/RTXShadows.js +16 -5
- package/src/shade/renderer/shadow/ray/shader_ray_shadow_code.d.ts.map +1 -1
- package/src/shade/renderer/shadow/ray/shader_ray_shadow_code.js +7 -7
- package/src/shade/renderer/shadow/ray/shader_shadow_upscale.js +2 -2
- package/src/shade/renderer/shadow/ray/staged/gen/graph_gen_rays.d.ts +4 -2
- package/src/shade/renderer/shadow/ray/staged/gen/graph_gen_rays.d.ts.map +1 -1
- package/src/shade/renderer/shadow/ray/staged/gen/graph_gen_rays.js +79 -74
- package/src/shade/renderer/shadow/ray/staged/gen/shader_generate_rays.d.ts.map +1 -1
- package/src/shade/renderer/shadow/ray/staged/gen/shader_generate_rays.js +7 -7
- package/src/shade/renderer/shadow/sdf/cascade/shader_scene_sdf_soft_shadows.d.ts.map +1 -1
- package/src/shade/renderer/shadow/sdf/cascade/shader_scene_sdf_soft_shadows.js +7 -3
- package/src/shade/renderer/shadow/sdf/graph_draw_sdf_shadows.d.ts +7 -5
- package/src/shade/renderer/shadow/sdf/graph_draw_sdf_shadows.d.ts.map +1 -1
- package/src/shade/renderer/shadow/sdf/graph_draw_sdf_shadows.js +29 -16
- package/src/shade/renderer/texture/virtual/VirtualTextureManager.d.ts +5 -5
- package/src/shade/renderer/texture/virtual/VirtualTextureManager.d.ts.map +1 -1
- package/src/shade/renderer/texture/virtual/VirtualTextureManager.js +8 -8
- package/src/shade/renderer/texture/virtual/build_shader_vt_feedback.d.ts.map +1 -1
- package/src/shade/renderer/texture/virtual/build_shader_vt_feedback.js +13 -14
- package/src/shade/renderer/water/GPUWaterRenderer.d.ts +2 -1
- package/src/shade/renderer/water/GPUWaterRenderer.d.ts.map +1 -1
- package/src/shade/renderer/water/GPUWaterRenderer.js +6 -4
- package/src/shade/renderer/water/chunk_water_transport.d.ts.map +1 -1
- package/src/shade/renderer/water/chunk_water_transport.js +11 -9
- package/src/shade/renderer/water/shader_water.d.ts.map +1 -1
- package/src/shade/renderer/water/shader_water.js +13 -11
- package/src/shade/renderer/gbuffer/G_BUFFER_MIP_LEVELS.d.ts +0 -7
- package/src/shade/renderer/gbuffer/G_BUFFER_MIP_LEVELS.d.ts.map +0 -1
- package/src/shade/renderer/gbuffer/G_BUFFER_MIP_LEVELS.js +0 -6
- package/src/shade/renderer/postprocess/ssr/shader_downsample_encoded_normal.d.ts +0 -3
- package/src/shade/renderer/postprocess/ssr/shader_downsample_encoded_normal.d.ts.map +0 -1
- package/src/shade/renderer/postprocess/ssr/shader_downsample_encoded_normal.js +0 -104
|
@@ -20,7 +20,8 @@ import { CodeChunk } from "../shader/compiler/CodeChunk.js";
|
|
|
20
20
|
import {
|
|
21
21
|
SCREEN_DEPTH_RESOURCE,
|
|
22
22
|
SCREEN_HZB_RESOURCE,
|
|
23
|
-
SCREEN_NORMAL_RESOURCE
|
|
23
|
+
SCREEN_NORMAL_RESOURCE,
|
|
24
|
+
SCREEN_PBR_RESOURCE
|
|
24
25
|
} from "../shader/chunk/screen_space/SCREEN_SPACE_RESOURCES.js";
|
|
25
26
|
import { ShaderResourceDescriptor } from "../shader/resource/ShaderResourceDescriptor.js";
|
|
26
27
|
import { ShaderResourceSetDescriptor } from "../shader/resource/ShaderResourceSetDescriptor.js";
|
|
@@ -75,6 +76,7 @@ function water_resources(finalize = false) {
|
|
|
75
76
|
.add(TRACE_RESOURCE)
|
|
76
77
|
.add(SCREEN_DEPTH_RESOURCE)
|
|
77
78
|
.add(SCREEN_NORMAL_RESOURCE)
|
|
79
|
+
.add(SCREEN_PBR_RESOURCE)
|
|
78
80
|
.add(SCREEN_HZB_RESOURCE)
|
|
79
81
|
.addTexture("tScene")
|
|
80
82
|
.add(SCENE_DATABASE_RESOURCE)
|
|
@@ -383,7 +385,7 @@ fn water_hzb_crossing(origin: vec3f, direction: vec3f, budget: u32,
|
|
|
383
385
|
fn water_exact_receiver(ray: Ray, input: ScreenSpaceRayHit) -> ScreenSpaceRayHit {
|
|
384
386
|
var hit = input;
|
|
385
387
|
if (hit.status != 0u) { return hit; }
|
|
386
|
-
let receiver = screen_space_ray_load_receiver(hit.uv, tDepth,
|
|
388
|
+
let receiver = screen_space_ray_load_receiver(hit.uv, tDepth, tPBR,
|
|
387
389
|
camera.projection_matrix_inverse, camera.view_matrix);
|
|
388
390
|
let travel = plane_ray_raycast(ray.origin, ray.direction, receiver.plane);
|
|
389
391
|
// Keep the analytic distance rather than the projection of the texel center onto the ray.
|
|
@@ -392,14 +394,14 @@ fn water_exact_receiver(ray: Ray, input: ScreenSpaceRayHit) -> ScreenSpaceRayHit
|
|
|
392
394
|
hit.uv = project_position(ray_at(ray.origin, ray.direction, travel), camera.projection_matrix).xy;
|
|
393
395
|
// Reprojection can change texel ownership at a silhouette. Validate that lookup
|
|
394
396
|
// again; the analytic travel above already checked the ray's bounded interval.
|
|
395
|
-
let checked = screen_space_ray_validate(Ray(ray.origin,ray.direction,1e20),hit.uv,tDepth,
|
|
397
|
+
let checked = screen_space_ray_validate(Ray(ray.origin,ray.direction,1e20),hit.uv,tDepth,tPBR,
|
|
396
398
|
camera.projection_matrix,camera.projection_matrix_inverse,camera.view_matrix,trace.distance_tolerance);
|
|
397
399
|
hit.status = checked.status;
|
|
398
400
|
hit.residual = checked.residual;
|
|
399
401
|
// The plane can carry a hit on the last texel before the sky across that edge. The texel the
|
|
400
402
|
// traversal stopped on is still a receiver: accept it where it passes on its own.
|
|
401
403
|
if (checked.status == 2u) {
|
|
402
|
-
let unsnapped = screen_space_ray_validate(ray, input.uv, tDepth,
|
|
404
|
+
let unsnapped = screen_space_ray_validate(ray, input.uv, tDepth, tPBR, camera.projection_matrix,
|
|
403
405
|
camera.projection_matrix_inverse, camera.view_matrix, trace.distance_tolerance);
|
|
404
406
|
if (unsnapped.status == 0u) { hit = unsnapped; }
|
|
405
407
|
}
|
|
@@ -431,7 +433,7 @@ fn water_hzb_hit(ray: Ray, budget: u32) -> ScreenSpaceRayHit {
|
|
|
431
433
|
`, [chunk_screen_space_newton_ray, chunk_ffx_sssr_advance_ray, chunk_ffx_sssr_load_depth, chunk_project_direction,
|
|
432
434
|
chunk_ray_at]);
|
|
433
435
|
|
|
434
|
-
for (const resource of [CAMERA_RESOURCE, TRACE_RESOURCE, SCREEN_DEPTH_RESOURCE, SCREEN_HZB_RESOURCE,
|
|
436
|
+
for (const resource of [CAMERA_RESOURCE, TRACE_RESOURCE, SCREEN_DEPTH_RESOURCE, SCREEN_HZB_RESOURCE, SCREEN_PBR_RESOURCE]) {
|
|
435
437
|
chunk_water_screen_ray.requireResource(resource);
|
|
436
438
|
}
|
|
437
439
|
|
|
@@ -448,7 +450,7 @@ struct WaterReceiver {
|
|
|
448
450
|
// A screen-space receiver must lie below the surface point the ray entered at: the refracted ray runs
|
|
449
451
|
// downward from it, so any point on the ray is lower, and one that is not is a root off the ray.
|
|
450
452
|
fn water_receiver_submerged(uv: vec2f, surface: vec3f, normal: vec3f) -> bool {
|
|
451
|
-
let receiver = water_receiver_texel(tDepth, tNormal, vec2i(uv * vec2f(textureDimensions(tDepth, 0))),
|
|
453
|
+
let receiver = water_receiver_texel(tDepth, tNormal, tPBR, vec2i(uv * vec2f(textureDimensions(tDepth, 0))),
|
|
452
454
|
camera.projection_matrix_inverse, camera.view_matrix_inverse);
|
|
453
455
|
return dot(receiver.position - surface, normal) <= WATER_LEVEL_TOLERANCE;
|
|
454
456
|
}
|
|
@@ -485,7 +487,7 @@ fn fs_main(in: WaterVertexOut, @builtin(front_facing) above: bool) -> WaterRecei
|
|
|
485
487
|
if (above && trace.mode == 0u) {
|
|
486
488
|
// Mayer et al. §2.2: a root within one pixel of the ray is accepted as is. Like the paper,
|
|
487
489
|
// this can converge past a thin occluder; traversal is only the fallback for failures.
|
|
488
|
-
hit = screen_space_newton_ray(ray, uv, tDepth,
|
|
490
|
+
hit = screen_space_newton_ray(ray, uv, tDepth, tPBR, camera.projection_matrix,
|
|
489
491
|
camera.projection_matrix_inverse, camera.view_matrix, trace.max_updates, trace.distance_tolerance);
|
|
490
492
|
newton_updates = hit.iterations;
|
|
491
493
|
newton_failure = hit.status;
|
|
@@ -569,7 +571,7 @@ fn fs_main(in: WaterVertexOut, @builtin(front_facing) above: bool) -> WaterOptic
|
|
|
569
571
|
// vignette validation. Its two-pixel rule must not reject normal-incidence refraction.
|
|
570
572
|
let confidence = ffx_sssr_validate_hit(vec3f(reflected.uv, projected.z), uv,
|
|
571
573
|
reflection_direction, dimensions, max(trace.distance_tolerance, 0.02), 0.05);
|
|
572
|
-
let radiance = water_receiver_radiance(tScene, tDepth, tNormal, reflected.uv,
|
|
574
|
+
let radiance = water_receiver_radiance(tScene, tDepth, tNormal, tPBR, reflected.uv,
|
|
573
575
|
camera.projection_matrix_inverse, camera.view_matrix_inverse, in.world, interface_normal, false);
|
|
574
576
|
reflection = mix(reflection, radiance.rgb,
|
|
575
577
|
confidence * min(radiance.a * 2.0, 1.0) * smoothstep(0.05, 0.5, reflected.distance)
|
|
@@ -584,14 +586,14 @@ fn fs_main(in: WaterVertexOut, @builtin(front_facing) above: bool) -> WaterOptic
|
|
|
584
586
|
let lookup = select(uv, receiver_data.xy, valid);
|
|
585
587
|
// The surface height here stands for the one above the displaced receiver: they differ by the
|
|
586
588
|
// wave height across a few metres, against a tolerance the gather already allows.
|
|
587
|
-
let gathered = water_receiver_radiance(tScene, tDepth, tNormal, lookup,
|
|
589
|
+
let gathered = water_receiver_radiance(tScene, tDepth, tNormal, tPBR, lookup,
|
|
588
590
|
camera.projection_matrix_inverse, camera.view_matrix_inverse, in.world, interface_normal, above);
|
|
589
591
|
var path = bitcast<f32>(metadata.x);
|
|
590
592
|
var color = original.rgb;
|
|
591
593
|
// the receiver seen through the surface: refracted, or the pixel's own when there is none
|
|
592
594
|
var receiver_coord = coord;
|
|
593
595
|
if (valid && gathered.a > 0.0) {
|
|
594
|
-
path = min(water_receiver_path(tDepth,
|
|
596
|
+
path = min(water_receiver_path(tDepth, tPBR, lookup, camera.projection_matrix_inverse,
|
|
595
597
|
camera.view_matrix, origin), limit);
|
|
596
598
|
color = gathered.rgb;
|
|
597
599
|
receiver_coord = vec2i(lookup * dimensions);
|
|
@@ -600,7 +602,7 @@ fn fs_main(in: WaterVertexOut, @builtin(front_facing) above: bool) -> WaterOptic
|
|
|
600
602
|
// (WATER_OPTICS_PLAN_2026_10_02.md §4.3). Seen from under the surface, the receiver is above it.
|
|
601
603
|
// Its light is rebuilt on the normal it was shaded with: its triangle's turns at every edge of a
|
|
602
604
|
// tessellated floor, and every edge would show through the water.
|
|
603
|
-
let receiver_texel = water_receiver_texel(tDepth, tNormal, receiver_coord, camera.projection_matrix_inverse,
|
|
605
|
+
let receiver_texel = water_receiver_texel(tDepth, tNormal, tPBR, receiver_coord, camera.projection_matrix_inverse,
|
|
604
606
|
camera.view_matrix_inverse);
|
|
605
607
|
if (above && !is_background(receiver_texel.depth)) {
|
|
606
608
|
let camera_ws = camera.view_matrix_inverse[3].xyz;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* How many mip levels to generate for each buffer
|
|
3
|
-
* Lower resolution versions are used for further rendering passes that work on fractional resolution, such as 1/2 or 1/4
|
|
4
|
-
* @type {number}
|
|
5
|
-
*/
|
|
6
|
-
export const G_BUFFER_MIP_LEVELS: number;
|
|
7
|
-
//# sourceMappingURL=G_BUFFER_MIP_LEVELS.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"G_BUFFER_MIP_LEVELS.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/gbuffer/G_BUFFER_MIP_LEVELS.js"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,kCAFU,MAAM,CAEqB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shader_downsample_encoded_normal.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/postprocess/ssr/shader_downsample_encoded_normal.js"],"names":[],"mappings":"AA8FA,2DASG;4BA/FyB,6BAA6B"}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import { chunk_decode_g_buffer_normal } from "../../shader/chunk/geometry/normal/chunk_decode_g_buffer_normal.js";
|
|
2
|
-
import { chunk_encode_g_buffer_normal } from "../../shader/chunk/geometry/normal/chunk_encode_g_buffer_normal.js";
|
|
3
|
-
import { chunk_texel_coordinate_to_uv } from "../../shader/chunk/texture/chunk_texel_coordinate_to_uv.js";
|
|
4
|
-
import { chunk_uv_to_texel_coordinate } from "../../shader/chunk/texture/chunk_uv_to_texel_coordinate.js";
|
|
5
|
-
import {
|
|
6
|
-
chunk_texture_sample_bilinear_exact
|
|
7
|
-
} from "../../shader/chunk/texture/sample/chunk_texture_sample_bilinear_exact.js";
|
|
8
|
-
import { CodeChunk } from "../../shader/compiler/CodeChunk.js";
|
|
9
|
-
import { ImageShader } from "../../shader/ImageShader.js";
|
|
10
|
-
import { ShaderResourceSetDescriptor } from "../../shader/resource/ShaderResourceSetDescriptor.js";
|
|
11
|
-
import { ShaderDescriptor } from "../../shader/ShaderDescriptor.js";
|
|
12
|
-
|
|
13
|
-
const resources = new ShaderResourceSetDescriptor();
|
|
14
|
-
|
|
15
|
-
// per-pass, eight bytes, read-only: immediate data rather than a uniform buffer
|
|
16
|
-
resources.setImmediate("output_resolution", "vec2<f32>");
|
|
17
|
-
resources.createGroup()
|
|
18
|
-
.addTexture("tInput", "uint")
|
|
19
|
-
;
|
|
20
|
-
|
|
21
|
-
const body = CodeChunk.from(
|
|
22
|
-
//language=WGSL
|
|
23
|
-
`
|
|
24
|
-
@fragment
|
|
25
|
-
fn main(
|
|
26
|
-
@builtin(position) coord: vec4<f32>,
|
|
27
|
-
@location(0) uv: vec2<f32>,
|
|
28
|
-
) -> @location(0) vec4<u32> {
|
|
29
|
-
|
|
30
|
-
let output_texel_uv_size = 1.0 / output_resolution;
|
|
31
|
-
|
|
32
|
-
let input_size_f = vec2<f32>(textureDimensions(tInput,0));
|
|
33
|
-
|
|
34
|
-
// get scale
|
|
35
|
-
let scale = input_size_f / output_resolution ;
|
|
36
|
-
|
|
37
|
-
// sample quad
|
|
38
|
-
const offsets = array<vec2<u32>,4>(
|
|
39
|
-
vec2(0,0),
|
|
40
|
-
vec2(1,0),
|
|
41
|
-
vec2(0,1),
|
|
42
|
-
vec2(1,1),
|
|
43
|
-
);
|
|
44
|
-
|
|
45
|
-
// TODO we can potentially skip decoding
|
|
46
|
-
|
|
47
|
-
var direction_sum_0 = vec3();
|
|
48
|
-
var direction_sum_1 = vec3();
|
|
49
|
-
|
|
50
|
-
for(var i = 0; i < 4; i++){
|
|
51
|
-
|
|
52
|
-
let input_coord = vec2<u32>( coord.xy * scale + offset );
|
|
53
|
-
|
|
54
|
-
if(input_coord >= vec2<u32>(input_size_f)){
|
|
55
|
-
// outside of the sampling region
|
|
56
|
-
continue;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// distance to center
|
|
60
|
-
let input_uv = texel_coordinate_to_uv(input_coord, vec2<u32>(input_size_f));
|
|
61
|
-
|
|
62
|
-
let output_coord = uv_to_texel_coordinate(input_uv, vec2<u32>(output_resolution));
|
|
63
|
-
|
|
64
|
-
let distance = distance(output_coord, coord.xy);
|
|
65
|
-
|
|
66
|
-
let texel = textureLoad(
|
|
67
|
-
tInput,
|
|
68
|
-
input_coord,
|
|
69
|
-
0
|
|
70
|
-
);
|
|
71
|
-
|
|
72
|
-
let normal_0 = decode_g_buffer_normal(texel.xy);
|
|
73
|
-
let normal_1 = decode_g_buffer_normal(texel.zw);
|
|
74
|
-
|
|
75
|
-
let weight = saturate( 1.7 - distance);
|
|
76
|
-
|
|
77
|
-
direction_sum_0 += normal_0 * weight;
|
|
78
|
-
direction_sum_1 += normal_1 * weight;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
return vec4(
|
|
82
|
-
encode_g_buffer_normal(normalize(direction_sum_0)),
|
|
83
|
-
encode_g_buffer_normal(normalize(direction_sum_1)),
|
|
84
|
-
);
|
|
85
|
-
}
|
|
86
|
-
`, [
|
|
87
|
-
chunk_texture_sample_bilinear_exact,
|
|
88
|
-
chunk_texel_coordinate_to_uv,
|
|
89
|
-
chunk_uv_to_texel_coordinate,
|
|
90
|
-
chunk_decode_g_buffer_normal,
|
|
91
|
-
chunk_encode_g_buffer_normal,
|
|
92
|
-
]
|
|
93
|
-
);
|
|
94
|
-
|
|
95
|
-
export const shader_downsample_encoded_normal = new ImageShader({
|
|
96
|
-
descriptor: ShaderDescriptor.from({
|
|
97
|
-
label: "Reduce RGBA octahedral normal",
|
|
98
|
-
resources,
|
|
99
|
-
body,
|
|
100
|
-
}),
|
|
101
|
-
targets: [{
|
|
102
|
-
format: "rgba16uint"
|
|
103
|
-
}]
|
|
104
|
-
});
|