@woosh/meep-engine 3.12.0 → 3.13.1
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/core/geom/3d/shape/ConvexHullShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/ConvexHullShape3D.js +41 -25
- package/src/core/geom/3d/shape/PosedShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/PosedShape3D.js +7 -2
- package/src/engine/graphics3/decal/GPUDecalRenderer.js +3 -3
- package/src/engine/graphics3/decal/shader_decal_composite.d.ts.map +1 -1
- package/src/engine/graphics3/decal/shader_decal_composite.js +4 -2
- package/src/engine/graphics3/highlight/GPUHighlightRenderer.d.ts.map +1 -1
- package/src/engine/graphics3/highlight/GPUHighlightRenderer.js +2 -3
- package/src/engine/graphics3/highlight/shader_highlight_outline.js +150 -150
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
- package/src/shade/RENDERER_CONTRACT.md +2 -1
- package/src/shade/descriptor/pipeline/compute/ComputePipelineDescriptor.d.ts +18 -0
- package/src/shade/descriptor/pipeline/compute/ComputePipelineDescriptor.d.ts.map +1 -1
- package/src/shade/descriptor/pipeline/compute/ComputePipelineDescriptor.js +73 -0
- package/src/shade/device/PASS_ENCODER_PROPOSAL_2026_08_31.md +755 -0
- package/src/shade/device/ShadeGPUCommandContext.d.ts +10 -16
- package/src/shade/device/ShadeGPUCommandContext.d.ts.map +1 -1
- package/src/shade/device/ShadeGPUCommandContext.js +801 -994
- package/src/shade/device/pass/ShadeGPUComputePassEncoder.d.ts +107 -0
- package/src/shade/device/pass/ShadeGPUComputePassEncoder.d.ts.map +1 -0
- package/src/shade/device/pass/ShadeGPUComputePassEncoder.js +222 -0
- package/src/shade/device/pass/ShadeGPURenderPassEncoder.d.ts +168 -0
- package/src/shade/device/pass/ShadeGPURenderPassEncoder.d.ts.map +1 -0
- package/src/shade/device/pass/ShadeGPURenderPassEncoder.js +317 -0
- package/src/shade/device/timing/GPUTimerArray.d.ts +4 -9
- package/src/shade/device/timing/GPUTimerArray.d.ts.map +1 -1
- package/src/shade/device/timing/GPUTimerArray.js +261 -289
- package/src/shade/device/timing/GPU_PROFILER_PROPOSAL_2026_08_28.md +20 -2
- package/src/shade/device/timing/ShadeGPUContextProfiler.d.ts +59 -0
- package/src/shade/device/timing/ShadeGPUContextProfiler.d.ts.map +1 -0
- package/src/shade/device/timing/ShadeGPUContextProfiler.js +182 -0
- package/src/shade/device/timing/profile/GPUProfileSession.d.ts +4 -4
- package/src/shade/device/timing/profile/GPUProfileSession.js +4 -4
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_leaf_triangles.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_leaf_triangles.js +3 -1
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_points.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_points.js +3 -1
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_visibility.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_visibility.js +3 -1
- package/src/shade/playground/skinned_blas_refit/verify_leaf_triangles.js +2 -2
- package/src/shade/playground/skinned_blas_refit/verify_traversal_reachability.js +2 -2
- package/src/shade/renderer/Renderer.d.ts +0 -6
- package/src/shade/renderer/Renderer.d.ts.map +1 -1
- package/src/shade/renderer/Renderer.js +0 -29
- package/src/shade/renderer/animation/GPUAnimationManager.d.ts.map +1 -1
- package/src/shade/renderer/animation/GPUAnimationManager.js +1 -3
- package/src/shade/renderer/animation/shader_animation_tick.d.ts.map +1 -1
- package/src/shade/renderer/animation/shader_animation_tick.js +128 -125
- package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.d.ts.map +1 -1
- package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.js +8 -18
- package/src/shade/renderer/animation/skinning/bounds_refresh/shader_geometry_sphere_derive.d.ts.map +1 -1
- package/src/shade/renderer/animation/skinning/bounds_refresh/shader_geometry_sphere_derive.js +100 -98
- package/src/shade/renderer/animation/skinning/bounds_refresh/shader_meshlet_bounds_reduce.d.ts.map +1 -1
- package/src/shade/renderer/animation/skinning/bounds_refresh/shader_meshlet_bounds_reduce.js +215 -212
- package/src/shade/renderer/animation/skinning/bounds_refresh/shader_meshlet_bounds_scatter.d.ts +1 -1
- package/src/shade/renderer/animation/skinning/bounds_refresh/shader_meshlet_bounds_scatter.d.ts.map +1 -1
- package/src/shade/renderer/animation/skinning/bounds_refresh/shader_meshlet_bounds_scatter.js +135 -120
- package/src/shade/renderer/animation/skinning/bounds_refresh/shader_skinned_mesh_bounds_refresh.d.ts.map +1 -1
- package/src/shade/renderer/animation/skinning/bounds_refresh/shader_skinned_mesh_bounds_refresh.js +77 -75
- package/src/shade/renderer/animation/skinning/shader_meshlet_apply_skinning.d.ts.map +1 -1
- package/src/shade/renderer/animation/skinning/shader_meshlet_apply_skinning.js +375 -371
- package/src/shade/renderer/atmosphere/shader_transmittance_lut.js +3 -3
- package/src/shade/renderer/buffer/graph_inspect_gpu_buffer.js +1 -1
- package/src/shade/renderer/buffer/table/GPUDatabase.d.ts.map +1 -1
- package/src/shade/renderer/buffer/table/GPUDatabase.js +14 -19
- package/src/shade/renderer/buffer/table/gpu_table_element_upload_shader.d.ts.map +1 -1
- package/src/shade/renderer/buffer/table/gpu_table_element_upload_shader.js +7 -2
- package/src/shade/renderer/buffer/table/single/GPUSingleTypeTable.d.ts.map +1 -1
- package/src/shade/renderer/buffer/table/single/GPUSingleTypeTable.js +325 -319
- package/src/shade/renderer/buffer/util/shader_buffer_copy_storage_to_storage.d.ts.map +1 -1
- package/src/shade/renderer/buffer/util/shader_buffer_copy_storage_to_storage.js +3 -1
- package/src/shade/renderer/deferred/shader_tonemap_HDR.d.ts.map +1 -1
- package/src/shade/renderer/deferred/shader_tonemap_HDR.js +4 -1
- package/src/shade/renderer/dynamic/GPUDynamicMeshResidency.d.ts +2 -2
- package/src/shade/renderer/dynamic/GPUDynamicMeshResidency.d.ts.map +1 -1
- package/src/shade/renderer/dynamic/GPUDynamicMeshResidency.js +167 -167
- package/src/shade/renderer/fow/GPUFogOfWarRenderer.js +3 -3
- package/src/shade/renderer/fow/shader_fog_of_war.d.ts.map +1 -1
- package/src/shade/renderer/fow/shader_fog_of_war.js +3 -1
- package/src/shade/renderer/geometry/bvh/record_blas_refit.js +102 -102
- package/src/shade/renderer/geometry/bvh/shader_blas_refit_leaf_bounds.d.ts.map +1 -1
- package/src/shade/renderer/geometry/bvh/shader_blas_refit_leaf_bounds.js +125 -121
- package/src/shade/renderer/geometry/meshlet/GPUMeshletManager.d.ts.map +1 -1
- package/src/shade/renderer/geometry/meshlet/GPUMeshletManager.js +766 -774
- package/src/shade/renderer/geometry/meshlet/shader_meshlet_metadata_address_patch.d.ts.map +1 -1
- package/src/shade/renderer/geometry/meshlet/shader_meshlet_metadata_address_patch.js +72 -69
- package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.d.ts.map +1 -1
- package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.js +5 -10
- package/src/shade/renderer/geometry/sdf/shader_build_sdf.js +129 -129
- package/src/shade/renderer/geometry/sdf/shader_sdf_visualize.d.ts.map +1 -1
- package/src/shade/renderer/geometry/sdf/shader_sdf_visualize.js +5 -3
- package/src/shade/renderer/global_illumination/brick4/gpu/bake/shader_brick4_bake_probes.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/brick4/gpu/bake/shader_brick4_bake_probes.js +4 -1
- package/src/shade/renderer/global_illumination/brick4/gpu/bake/shader_brick4_bake_resolve_probes.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/brick4/gpu/bake/shader_brick4_bake_resolve_probes.js +3 -1
- package/src/shade/renderer/global_illumination/clipmap/shader_update_clipmap_cascade.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/clipmap/shader_update_clipmap_cascade.js +114 -112
- package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_lpv_store_sh.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_lpv_store_sh.js +4 -1
- package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_lvp_atlas_to_sh.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_lvp_atlas_to_sh.js +187 -184
- package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_reduce_atlas_to_sh.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_reduce_atlas_to_sh.js +4 -1
- package/src/shade/renderer/global_illumination/sharc/SpatialHashRadianceCache.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/sharc/SpatialHashRadianceCache.js +6 -8
- package/src/shade/renderer/global_illumination/sharc/shader/shader_sharc_evict.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/sharc/shader/shader_sharc_evict.js +3 -1
- package/src/shade/renderer/global_illumination/sharc/shader/shader_sharc_update.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/sharc/shader/shader_sharc_update.js +3 -1
- package/src/shade/renderer/gpu_primitive/bvh/GPU_BVH_BUILD_PLAN.md +3 -3
- package/src/shade/renderer/gpu_primitive/bvh/PHASE1_HANDOVER.md +3 -3
- package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_build_lbvh.js +217 -217
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_emit_hierarchy.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_emit_hierarchy.js +145 -142
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_morton.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_morton.js +87 -82
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit.js +143 -140
- package/src/shade/renderer/gpu_primitive/bvh/verify_gpu_bvh_build.d.ts +2 -2
- package/src/shade/renderer/gpu_primitive/bvh/verify_gpu_bvh_build.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/bvh/verify_gpu_bvh_build.js +43 -8
- package/src/shade/renderer/gpu_primitive/sort/graph_radix_sort.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/sort/graph_radix_sort.js +4 -5
- package/src/shade/renderer/gpu_primitive/sort/shader_radix_sort_histogram.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/sort/shader_radix_sort_histogram.js +88 -84
- package/src/shade/renderer/gpu_primitive/sort/shader_radix_sort_scatter.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/sort/shader_radix_sort_scatter.js +194 -191
- package/src/shade/renderer/hiz/HierarchicalZBuffer.d.ts.map +1 -1
- package/src/shade/renderer/hiz/HierarchicalZBuffer.js +33 -69
- package/src/shade/renderer/hiz/shader_hzb_reduce_any.d.ts.map +1 -1
- package/src/shade/renderer/hiz/shader_hzb_reduce_any.js +6 -1
- package/src/shade/renderer/hiz/shader_hzb_reduce_mip0_clip.d.ts.map +1 -1
- package/src/shade/renderer/hiz/shader_hzb_reduce_mip0_clip.js +23 -7
- package/src/shade/renderer/light/environment/execute_filter_environment_map.d.ts.map +1 -1
- package/src/shade/renderer/light/environment/execute_filter_environment_map.js +1 -2
- package/src/shade/renderer/light/environment/shader_convolve_reflection_map.d.ts.map +1 -1
- package/src/shade/renderer/light/environment/shader_convolve_reflection_map.js +6 -1
- package/src/shade/renderer/lightmap/bake/raster/graph_draw_lightmap_viz_buffer.d.ts.map +1 -1
- package/src/shade/renderer/lightmap/bake/raster/graph_draw_lightmap_viz_buffer.js +234 -219
- package/src/shade/renderer/lightmap/bake/raster/shader_lightmap_to_viz_buffer.js +2 -2
- package/src/shade/renderer/lightmap/bake/shader_lightmap_denoise_sh.js +191 -191
- package/src/shade/renderer/lightmap/bake/tile/shader_lightmap_accummulate_tile.d.ts.map +1 -1
- package/src/shade/renderer/lightmap/bake/tile/shader_lightmap_accummulate_tile.js +85 -82
- package/src/shade/renderer/particles/graph_particles.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph_particles.js +5 -3
- package/src/shade/renderer/particles/prototypeParticleSystem.js +3 -4
- package/src/shade/renderer/particles/shaders/shader_particle_emit.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_emit.js +132 -117
- package/src/shade/renderer/particles/shaders/shader_particle_finalize.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_finalize.js +79 -77
- package/src/shade/renderer/particles/shaders/shader_particle_simulate.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_simulate.js +111 -99
- package/src/shade/renderer/particles/sort/shader_particle_sort.d.ts.map +1 -1
- package/src/shade/renderer/particles/sort/shader_particle_sort.js +187 -158
- package/src/shade/renderer/path_tracer/accumulating/AccumulatingPathTracer.d.ts.map +1 -1
- package/src/shade/renderer/path_tracer/accumulating/AccumulatingPathTracer.js +7 -10
- package/src/shade/renderer/path_tracer/accumulating/shader_accumulating_path_tracer.d.ts.map +1 -1
- package/src/shade/renderer/path_tracer/accumulating/shader_accumulating_path_tracer.js +4 -1
- package/src/shade/renderer/postprocess/bloom/shader_bloom_mix.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/bloom/shader_bloom_mix.js +3 -1
- package/src/shade/renderer/postprocess/cas/shader_ffx_rcas.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/cas/shader_ffx_rcas.js +4 -2
- package/src/shade/renderer/postprocess/denoise/fragment_shader_denoise_ao.js +147 -147
- package/src/shade/renderer/postprocess/denoise/graph_atorus_denoise_luma.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/denoise/graph_atorus_denoise_luma.js +121 -119
- package/src/shade/renderer/postprocess/dof/gather/graph_postprocess_dof2.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/dof/gather/graph_postprocess_dof2.js +1 -2
- package/src/shade/renderer/postprocess/dof/gather/shader_dof2_gather_far.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/dof/gather/shader_dof2_gather_far.js +4 -1
- package/src/shade/renderer/postprocess/dof/gather/shader_dof2_gather_near.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/dof/gather/shader_dof2_gather_near.js +4 -1
- package/src/shade/renderer/postprocess/dof/gather/shader_dof2_recombine.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/dof/gather/shader_dof2_recombine.js +4 -1
- package/src/shade/renderer/postprocess/dof/gather/shader_dof2_setup.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/dof/gather/shader_dof2_setup.js +4 -1
- package/src/shade/renderer/postprocess/dof/raymarch/graph_postprocess_dof.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/dof/raymarch/graph_postprocess_dof.js +2 -4
- package/src/shade/renderer/postprocess/dof/raymarch/shader_dof_composite.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/dof/raymarch/shader_dof_composite.js +4 -1
- package/src/shade/renderer/postprocess/dof/raymarch/shader_dof_prefilter.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/dof/raymarch/shader_dof_prefilter.js +4 -1
- package/src/shade/renderer/postprocess/dof/raymarch/shader_dof_raymarch.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/dof/raymarch/shader_dof_raymarch.js +4 -1
- package/src/shade/renderer/postprocess/dof/raymarch/shader_dof_raymarch_compute.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/dof/raymarch/shader_dof_raymarch_compute.js +269 -266
- package/src/shade/renderer/postprocess/dof/raymarch/shader_dof_slice_compute.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/dof/raymarch/shader_dof_slice_compute.js +273 -270
- package/src/shade/renderer/postprocess/dof/shader_dof_autofocus.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/dof/shader_dof_autofocus.js +4 -1
- package/src/shade/renderer/postprocess/eye/GPUCameraExposureManager.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/eye/GPUCameraExposureManager.js +8 -11
- package/src/shade/renderer/postprocess/eye/shader_autoexposure_adapt.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/eye/shader_autoexposure_adapt.js +5 -1
- package/src/shade/renderer/postprocess/gtao/fragment_shader_gtao.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/gtao/fragment_shader_gtao.js +11 -8
- package/src/shade/renderer/postprocess/gtao/fragment_shader_gtao_with_irradiance.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/gtao/fragment_shader_gtao_with_irradiance.js +7 -8
- package/src/shade/renderer/postprocess/motion_blur/shader_motion_blur_reconstruct.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/motion_blur/shader_motion_blur_reconstruct.js +3 -1
- package/src/shade/renderer/postprocess/nss/NSS.d.ts +1 -1
- package/src/shade/renderer/postprocess/nss/shader_nss_concat.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/nss/shader_nss_concat.js +70 -68
- package/src/shade/renderer/postprocess/ssr/depth_max_shader.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/ssr/depth_max_shader.js +70 -68
- package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_IBL.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_IBL.js +3 -1
- package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_LPV.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_LPV.js +4 -1
- package/src/shade/renderer/postprocess/ssr/shader_downsample_encoded_normal.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/ssr/shader_downsample_encoded_normal.js +103 -101
- package/src/shade/renderer/postprocess/ssr/ssr_spatial_denoise_shader.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/ssr/ssr_spatial_denoise_shader.js +4 -2
- package/src/shade/renderer/postprocess/ssr/ssr_trace_shader.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/ssr/ssr_trace_shader.js +3 -1
- package/src/shade/renderer/postprocess/taa/shader_taa.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/taa/shader_taa.js +4 -1
- package/src/shade/renderer/postprocess/upscale-dither/fragment_shader_upscale_dither.js +5 -5
- package/src/shade/renderer/rasterize/bucket/prepare_meshlet_draw_commands_by_material.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/bucket/prepare_meshlet_draw_commands_by_material.js +339 -341
- package/src/shade/renderer/rasterize/cull/hzb/shader_hzb_mesh_filter_2way.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/cull/hzb/shader_hzb_mesh_filter_2way.js +114 -109
- package/src/shade/renderer/rasterize/cull/hzb/shader_hzb_meshlet_filter_1way_full.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/cull/hzb/shader_hzb_meshlet_filter_1way_full.js +118 -115
- package/src/shade/renderer/rasterize/expand/bucket/meshlet/shader_meshlets_extract_bucket.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/bucket/meshlet/shader_meshlets_extract_bucket.js +69 -65
- package/src/shade/renderer/rasterize/native/oit/graph_rasterize_meshes_transparent_oit.js +722 -722
- 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 +1 -9
- 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 +1 -6
- package/src/shade/renderer/restir/di/graph_restir_di.d.ts.map +1 -1
- package/src/shade/renderer/restir/di/graph_restir_di.js +2 -3
- package/src/shade/renderer/restir/di/graph_restir_di_denoise.d.ts.map +1 -1
- package/src/shade/renderer/restir/di/graph_restir_di_denoise.js +1 -2
- package/src/shade/renderer/restir/di/shader_restir_di_denoise.d.ts.map +1 -1
- package/src/shade/renderer/restir/di/shader_restir_di_denoise.js +139 -136
- package/src/shade/renderer/restir/di/shader_restir_di_resample.d.ts.map +1 -1
- package/src/shade/renderer/restir/di/shader_restir_di_resample.js +131 -129
- package/src/shade/renderer/restir/di/shader_restir_di_resolve.d.ts.map +1 -1
- package/src/shade/renderer/restir/di/shader_restir_di_resolve.js +101 -99
- package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.d.ts.map +1 -1
- package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.js +379 -383
- package/src/shade/renderer/scene/Mesh.d.ts.map +1 -1
- package/src/shade/renderer/scene/Mesh.js +4 -6
- package/src/shade/renderer/scene/shader_bvh_extract_instance_leaves.d.ts.map +1 -1
- package/src/shade/renderer/scene/shader_bvh_extract_instance_leaves.js +147 -144
- package/src/shade/renderer/shader/ComputeShader.d.ts +2 -2
- package/src/shade/renderer/shader/ComputeShader.d.ts.map +1 -1
- package/src/shade/renderer/shader/ComputeShader.js +14 -17
- package/src/shade/renderer/shader/pass/RenderPassDescriptor.d.ts +2 -2
- package/src/shade/renderer/shader/pass/RenderPassDescriptor.d.ts.map +1 -1
- package/src/shade/renderer/shader/pass/RenderPassDescriptor.js +189 -189
- package/src/shade/renderer/shader/resource/ShaderResourceSetDescriptor.d.ts.map +1 -1
- package/src/shade/renderer/shader/resource/ShaderResourceSetDescriptor.js +3 -1
- package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.d.ts +16 -7
- package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.d.ts.map +1 -1
- package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.js +1342 -1326
- package/src/shade/renderer/shadow/map/Shadowmap.d.ts +13 -0
- package/src/shade/renderer/shadow/map/Shadowmap.d.ts.map +1 -1
- package/src/shade/renderer/shadow/map/Shadowmap.js +14 -0
- package/src/shade/renderer/shadow/map/ShadowmapDrawSelector.d.ts +79 -0
- package/src/shade/renderer/shadow/map/ShadowmapDrawSelector.d.ts.map +1 -0
- package/src/shade/renderer/shadow/map/ShadowmapDrawSelector.js +196 -0
- package/src/shade/renderer/shadow/map/ShadowmapRegistry.d.ts +91 -0
- package/src/shade/renderer/shadow/map/ShadowmapRegistry.d.ts.map +1 -0
- package/src/shade/renderer/shadow/map/ShadowmapRegistry.js +156 -0
- package/src/shade/renderer/shadow/map/shader/shader_shadowmap_remap_cube_to_octahedral.d.ts.map +1 -1
- package/src/shade/renderer/shadow/map/shader/shader_shadowmap_remap_cube_to_octahedral.js +5 -1
- package/src/shade/renderer/shadow/ray/shader_shadow_upscale.d.ts.map +1 -1
- package/src/shade/renderer/shadow/ray/shader_shadow_upscale.js +3 -1
- package/src/shade/renderer/shadow/ray/staged/gen/graph_gen_rays.js +73 -73
- 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 +151 -148
- package/src/shade/renderer/shadow/ray/staged/trace/graph_trace_rays.d.ts.map +1 -1
- package/src/shade/renderer/shadow/ray/staged/trace/graph_trace_rays.js +4 -2
- package/src/shade/renderer/shadow/ray/staged/trace/shader_trace_rays.d.ts.map +1 -1
- package/src/shade/renderer/shadow/ray/staged/trace/shader_trace_rays.js +18 -4
- package/src/shade/renderer/shadow/sdf/cascade/CascadedSceneSDF.d.ts.map +1 -1
- package/src/shade/renderer/shadow/sdf/cascade/CascadedSceneSDF.js +7 -8
- package/src/shade/renderer/shadow/sdf/cascade/shader_build_scene_sdf_f32.d.ts.map +1 -1
- package/src/shade/renderer/shadow/sdf/cascade/shader_build_scene_sdf_f32.js +6 -2
- package/src/shade/renderer/shadow/sdf/cascade/shader_scene_sdf_debug_viz.d.ts.map +1 -1
- package/src/shade/renderer/shadow/sdf/cascade/shader_scene_sdf_debug_viz.js +129 -127
- 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 +5 -3
- package/src/shade/renderer/texture/virtual/VirtualTextureManager.d.ts.map +1 -1
- package/src/shade/renderer/texture/virtual/VirtualTextureManager.js +2 -5
- 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 +233 -231
- package/src/shade/renderer/volumetrics/graph_build_volumetrics.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/graph_build_volumetrics.js +2 -4
- package/src/shade/wgsl/validate_wgsl_source.d.ts.map +1 -1
- package/src/shade/wgsl/validate_wgsl_source.js +8 -3
- package/src/shade/device/timing/profile/make_profiling_pass_encoder.d.ts +0 -21
- package/src/shade/device/timing/profile/make_profiling_pass_encoder.d.ts.map +0 -1
- package/src/shade/device/timing/profile/make_profiling_pass_encoder.js +0 -114
- package/src/shade/device/timing/profile/parse_workgroup_size.d.ts +0 -20
- package/src/shade/device/timing/profile/parse_workgroup_size.d.ts.map +0 -1
- package/src/shade/device/timing/profile/parse_workgroup_size.js +0 -43
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shader_autoexposure_adapt.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/postprocess/eye/shader_autoexposure_adapt.js"],"names":[],"mappings":"AASA,sDAsBE;
|
|
1
|
+
{"version":3,"file":"shader_autoexposure_adapt.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/postprocess/eye/shader_autoexposure_adapt.js"],"names":[],"mappings":"AASA,sDAsBE;AAgFF,sDAIG;6BAlH0B,mCAAmC;8BAElC,+BAA+B"}
|
|
@@ -31,10 +31,14 @@ export const ADAPTATION_SETTINGS_STRUCT = WebGPUStruct.from({
|
|
|
31
31
|
compensation: f32,
|
|
32
32
|
})
|
|
33
33
|
|
|
34
|
+
|
|
35
|
+
// per-dispatch, 20 bytes, read-only: immediate data rather than a uniform buffer. goal and previous
|
|
36
|
+
// stay bound - they hold GPU-computed exposure state, not values the CPU has at encode time.
|
|
37
|
+
resources.setImmediate("settings", ADAPTATION_SETTINGS_STRUCT);
|
|
38
|
+
|
|
34
39
|
resources.createGroup()
|
|
35
40
|
.addUniform("goal", F32_CONTAINER_STRUCT)
|
|
36
41
|
.addUniform("previous", F32_CONTAINER_STRUCT)
|
|
37
|
-
.addUniform("settings", ADAPTATION_SETTINGS_STRUCT)
|
|
38
42
|
.addStorageBuffer("adapted", F32_CONTAINER_STRUCT, true)
|
|
39
43
|
.addStorageBuffer("out_multiplier", F32_CONTAINER_STRUCT, true)
|
|
40
44
|
;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fragment_shader_gtao.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/postprocess/gtao/fragment_shader_gtao.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fragment_shader_gtao.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/postprocess/gtao/fragment_shader_gtao.js"],"names":[],"mappings":"AAyEA;;;GAGG;AACH,oCAFU,MAAM,CAEuB;AAEvC;;;GAGG;AACH,8CAA+C;AAE/C;;;;GAIG;AACH,iCAFU,MAAM,CAEoB;AAiQpC,+CA6BG;4BA1WyB,6BAA6B"}
|
|
@@ -11,24 +11,29 @@ import { chunk_fast_acos } from "../../shader/chunk/math/fast/chunk_fast_acos.js
|
|
|
11
11
|
import { PI_DECLARATION } from "../../shader/chunk/math/PI_DECLARATION.js";
|
|
12
12
|
import { PI_HALF_DECLARATION } from "../../shader/chunk/math/PI_HALF_DECLARATION.js";
|
|
13
13
|
import { chunk_spatio_temporal_noise_r2_64 } from "../../shader/chunk/noise/chunk_spatio_temporal_noise_r2_64.js";
|
|
14
|
-
import { chunk_texture_sample_nearest_uv } from "../../shader/chunk/texture/sample/chunk_texture_sample_nearest_uv.js";
|
|
15
14
|
import { CodeChunk } from "../../shader/compiler/CodeChunk.js";
|
|
16
15
|
import { ImageShader } from "../../shader/ImageShader.js";
|
|
17
16
|
import { ShaderResourceSetDescriptor } from "../../shader/resource/ShaderResourceSetDescriptor.js";
|
|
18
17
|
import { ShaderDescriptor } from "../../shader/ShaderDescriptor.js";
|
|
19
18
|
import { HILBERT_R2_INDEX_TEXTURE } from "../../texture/noise/HILBERT_R2_INDEX_TEXTURE.js";
|
|
19
|
+
import { SAMPLER_NEAREST } from "../../texture/SAMPLER_LINEAR_UPSCALE.js";
|
|
20
20
|
import { chunk_integrate_bent_normal_fast } from "./chunk_integrate_bent_normal_fast.js";
|
|
21
21
|
import { GTAO_RENDER_SETTINGS } from "./GTAO_RENDER_SETTINGS.js";
|
|
22
22
|
|
|
23
23
|
const resources = new ShaderResourceSetDescriptor();
|
|
24
|
+
|
|
25
|
+
// per-pass, four bytes, read-only: immediate data rather than a uniform buffer.
|
|
26
|
+
//
|
|
27
|
+
// The uniform carried a `frame_index: 0` default, which does not travel: immediate data has no
|
|
28
|
+
// default, and a dispatch that never wrote its slots is refused rather than reading zero. GTAO
|
|
29
|
+
// passes frame_index on every dispatch, so nothing relied on it.
|
|
30
|
+
resources.setImmediate("settings", GTAO_RENDER_SETTINGS);
|
|
24
31
|
resources.createGroup()
|
|
25
32
|
.addTexture("tDepth")
|
|
33
|
+
.addSampler("sPoint", "non-filtering", SAMPLER_NEAREST)
|
|
26
34
|
.addTexture("tNormal", "uint")
|
|
27
35
|
.addTexture("tNoise", "uint", "2d", false, HILBERT_R2_INDEX_TEXTURE)
|
|
28
36
|
.addUniform("camera", CAMERA_UNIFORM_STRUCT)
|
|
29
|
-
.addUniform("settings", GTAO_RENDER_SETTINGS, {
|
|
30
|
-
frame_index: 0,
|
|
31
|
-
})
|
|
32
37
|
;
|
|
33
38
|
|
|
34
39
|
const QualityType = {
|
|
@@ -238,12 +243,11 @@ fn main(
|
|
|
238
243
|
|
|
239
244
|
let sampleScreenPos0 = uv + sampleOffset;
|
|
240
245
|
|
|
241
|
-
|
|
242
|
-
let SZ0 = texture_sample_nearest_uv(tDepth, sampleScreenPos0, mipLevel).x;
|
|
246
|
+
let SZ0 = textureSampleLevel(tDepth, sPoint, sampleScreenPos0, mipLevel).x;
|
|
243
247
|
let samplePos0 = project_position_from_depth(sampleScreenPos0, SZ0, camera.view_projection_matrix_inverse);
|
|
244
248
|
|
|
245
249
|
let sampleScreenPos1 = uv - sampleOffset;
|
|
246
|
-
let SZ1 =
|
|
250
|
+
let SZ1 = textureSampleLevel(tDepth, sPoint, sampleScreenPos1, mipLevel).x;
|
|
247
251
|
let samplePos1 = project_position_from_depth(sampleScreenPos1, SZ1, camera.view_projection_matrix_inverse);
|
|
248
252
|
|
|
249
253
|
let sampleDelta0 = (samplePos0 - position_ws); // using lpfloat for sampleDelta causes precision issues
|
|
@@ -326,7 +330,6 @@ fn main(
|
|
|
326
330
|
}
|
|
327
331
|
`, [
|
|
328
332
|
chunk_get_view_space_depth,
|
|
329
|
-
chunk_texture_sample_nearest_uv,
|
|
330
333
|
PI_DECLARATION,
|
|
331
334
|
PI_HALF_DECLARATION,
|
|
332
335
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fragment_shader_gtao_with_irradiance.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/postprocess/gtao/fragment_shader_gtao_with_irradiance.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fragment_shader_gtao_with_irradiance.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/postprocess/gtao/fragment_shader_gtao_with_irradiance.js"],"names":[],"mappings":"AA4EA;;;GAGG;AACH,oCAFU,MAAM,CAEuB;AAEvC;;;GAGG;AACH,8CAA+C;AAE/C;;;;GAIG;AACH,iCAFU,MAAM,CAEoB;AA0TpC,+DAkCG;4BAxayB,6BAA6B"}
|
|
@@ -14,28 +14,29 @@ import { chunk_fast_acos } from "../../shader/chunk/math/fast/chunk_fast_acos.js
|
|
|
14
14
|
import { PI_DECLARATION } from "../../shader/chunk/math/PI_DECLARATION.js";
|
|
15
15
|
import { PI_HALF_DECLARATION } from "../../shader/chunk/math/PI_HALF_DECLARATION.js";
|
|
16
16
|
import { chunk_spatio_temporal_noise_r2_64 } from "../../shader/chunk/noise/chunk_spatio_temporal_noise_r2_64.js";
|
|
17
|
-
import { chunk_texture_sample_nearest_uv } from "../../shader/chunk/texture/sample/chunk_texture_sample_nearest_uv.js";
|
|
18
17
|
import { CodeChunk } from "../../shader/compiler/CodeChunk.js";
|
|
19
18
|
import { ImageShader } from "../../shader/ImageShader.js";
|
|
20
19
|
import { ShaderResourceSetDescriptor } from "../../shader/resource/ShaderResourceSetDescriptor.js";
|
|
21
20
|
import { ShaderDescriptor } from "../../shader/ShaderDescriptor.js";
|
|
22
21
|
import { HILBERT_R2_INDEX_TEXTURE } from "../../texture/noise/HILBERT_R2_INDEX_TEXTURE.js";
|
|
23
22
|
import { BLACK_PIXEL_TEXTURE } from "../../texture/util/BLACK_PIXEL_TEXTURE.js";
|
|
23
|
+
import { SAMPLER_NEAREST } from "../../texture/SAMPLER_LINEAR_UPSCALE.js";
|
|
24
24
|
import { chunk_is_background } from "../../shader/chunk/depth/chunk_is_background.js";
|
|
25
25
|
import { chunk_integrate_bent_normal_fast } from "./chunk_integrate_bent_normal_fast.js";
|
|
26
26
|
import { chunk_horizon_integrate_lighting_sample } from "./chunk_integrate_lighting_sample.js";
|
|
27
27
|
import { GTAO_RENDER_SETTINGS } from "./GTAO_RENDER_SETTINGS.js";
|
|
28
28
|
|
|
29
29
|
const resources = new ShaderResourceSetDescriptor();
|
|
30
|
+
|
|
31
|
+
// see fragment_shader_gtao — the same per-pass settings, carried as immediate data
|
|
32
|
+
resources.setImmediate("settings", GTAO_RENDER_SETTINGS);
|
|
30
33
|
resources.createGroup()
|
|
31
34
|
.addTexture("tDepth")
|
|
35
|
+
.addSampler("sPoint", "non-filtering", SAMPLER_NEAREST)
|
|
32
36
|
.addTexture("tNormal", "uint")
|
|
33
37
|
.addTexture("tColor", "unfilterable-float", "2d", false, BLACK_PIXEL_TEXTURE)
|
|
34
38
|
.addTexture("tNoise", "uint", "2d", false, HILBERT_R2_INDEX_TEXTURE)
|
|
35
39
|
.addUniform("camera", CAMERA_UNIFORM_STRUCT)
|
|
36
|
-
.addUniform("settings", GTAO_RENDER_SETTINGS, {
|
|
37
|
-
frame_index: 0,
|
|
38
|
-
})
|
|
39
40
|
;
|
|
40
41
|
|
|
41
42
|
const QualityType = {
|
|
@@ -262,12 +263,11 @@ fn main(
|
|
|
262
263
|
|
|
263
264
|
let sampleScreenPos0 = uv + sampleOffset;
|
|
264
265
|
|
|
265
|
-
|
|
266
|
-
let SZ0 = texture_sample_nearest_uv(tDepth, sampleScreenPos0, mipLevel).x;
|
|
266
|
+
let SZ0 = textureSampleLevel(tDepth, sPoint, sampleScreenPos0, mipLevel).x;
|
|
267
267
|
let samplePos0 = project_position_from_depth(sampleScreenPos0, SZ0, camera.view_projection_matrix_inverse);
|
|
268
268
|
|
|
269
269
|
let sampleScreenPos1 = uv - sampleOffset;
|
|
270
|
-
let SZ1 =
|
|
270
|
+
let SZ1 = textureSampleLevel(tDepth, sPoint, sampleScreenPos1, mipLevel).x;
|
|
271
271
|
let samplePos1 = project_position_from_depth(sampleScreenPos1, SZ1, camera.view_projection_matrix_inverse);
|
|
272
272
|
|
|
273
273
|
let sampleDelta0 = (samplePos0 - position_ws); // using lpfloat for sampleDelta causes precision issues
|
|
@@ -383,7 +383,6 @@ fn main(
|
|
|
383
383
|
}
|
|
384
384
|
`, [
|
|
385
385
|
chunk_get_view_space_depth,
|
|
386
|
-
chunk_texture_sample_nearest_uv,
|
|
387
386
|
PI_DECLARATION,
|
|
388
387
|
PI_HALF_DECLARATION,
|
|
389
388
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shader_motion_blur_reconstruct.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/postprocess/motion_blur/shader_motion_blur_reconstruct.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shader_motion_blur_reconstruct.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/postprocess/motion_blur/shader_motion_blur_reconstruct.js"],"names":[],"mappings":"AAwKA;;;;;;;;;;;;GAYG;AACH,yDASG;4BA7LyB,6BAA6B"}
|
|
@@ -12,6 +12,9 @@ import {
|
|
|
12
12
|
} from "./MOTION_BLUR_CONFIG.js";
|
|
13
13
|
|
|
14
14
|
const resources = new ShaderResourceSetDescriptor();
|
|
15
|
+
|
|
16
|
+
// per-pass, four bytes, read-only: immediate data rather than a uniform buffer holding one f32
|
|
17
|
+
resources.setImmediate("uStrength", F32_CONTAINER_STRUCT);
|
|
15
18
|
resources.createGroup()
|
|
16
19
|
// Post-TAA HDR color we're blurring.
|
|
17
20
|
.addTexture("tColor", "float")
|
|
@@ -30,7 +33,6 @@ resources.createGroup()
|
|
|
30
33
|
// cone/cylinder weight ratios are scale-invariant, so this just
|
|
31
34
|
// spreads the sample distribution wider without changing the
|
|
32
35
|
// per-tap weighting balance.
|
|
33
|
-
.addUniform("uStrength", F32_CONTAINER_STRUCT)
|
|
34
36
|
;
|
|
35
37
|
|
|
36
38
|
const body = CodeChunk.from(
|
|
@@ -49,7 +49,7 @@ export class NSS {
|
|
|
49
49
|
* @returns {number}
|
|
50
50
|
*/
|
|
51
51
|
static recommended_jitter_sequence_size(upscale_ratio: number): number;
|
|
52
|
-
static "__#
|
|
52
|
+
static "__#136@#preprocess_tensor_descriptor"(render_w: any, render_h: any): TextureResourceDescriptor;
|
|
53
53
|
/**
|
|
54
54
|
* @param {GraphicsContext} graphics
|
|
55
55
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shader_nss_concat.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/postprocess/nss/shader_nss_concat.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shader_nss_concat.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/postprocess/nss/shader_nss_concat.js"],"names":[],"mappings":"AA+DA,8CAIG;;8BAhE2B,+BAA+B;AAI7D;;;;;;;;;;;;;GAaG;AACH,4CAE+B;6BAtBF,mCAAmC"}
|
|
@@ -1,68 +1,70 @@
|
|
|
1
|
-
import { u32 } from "../../shader/type/WEBGPU_WGSL_PRIMITIVE_TYPES.js";
|
|
2
|
-
import { WebGPUStruct } from "../../shader/type/WebGPUStruct.js";
|
|
3
|
-
import { CodeChunk } from "../../shader/compiler/CodeChunk.js";
|
|
4
|
-
import { ComputeShader } from "../../shader/ComputeShader.js";
|
|
5
|
-
import { ShaderResourceSetDescriptor } from "../../shader/resource/ShaderResourceSetDescriptor.js";
|
|
6
|
-
import { NSS_WORKGROUP_SIZE } from "./NSS_CONSTANTS.js";
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Concatenate two 3D tensors along the channel-group (z) axis.
|
|
10
|
-
*
|
|
11
|
-
* For an output coord (x, y, z):
|
|
12
|
-
* - if z < `split_groups`, copy from `tA` at (x, y, z)
|
|
13
|
-
* - otherwise, copy from `tB` at (x, y, z - split_groups)
|
|
14
|
-
*
|
|
15
|
-
* `split_groups` is `tA`'s channel-group count (channels / 4) and is
|
|
16
|
-
* also the z-offset where `tB` starts in the output.
|
|
17
|
-
*
|
|
18
|
-
* Used by NSS's U-Net to merge a decoder activation with its
|
|
19
|
-
* symmetric encoder skip (e.g. conv8_out (16ch) + conv4_out (32ch) ->
|
|
20
|
-
* 48ch concat input for conv9).
|
|
21
|
-
*/
|
|
22
|
-
const CONCAT_SETTINGS = WebGPUStruct.from({
|
|
23
|
-
split_groups: u32,
|
|
24
|
-
}, "NSSConcatSettings").pack();
|
|
25
|
-
|
|
26
|
-
const resources = new ShaderResourceSetDescriptor();
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
.
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
v = textureLoad(
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
1
|
+
import { u32 } from "../../shader/type/WEBGPU_WGSL_PRIMITIVE_TYPES.js";
|
|
2
|
+
import { WebGPUStruct } from "../../shader/type/WebGPUStruct.js";
|
|
3
|
+
import { CodeChunk } from "../../shader/compiler/CodeChunk.js";
|
|
4
|
+
import { ComputeShader } from "../../shader/ComputeShader.js";
|
|
5
|
+
import { ShaderResourceSetDescriptor } from "../../shader/resource/ShaderResourceSetDescriptor.js";
|
|
6
|
+
import { NSS_WORKGROUP_SIZE } from "./NSS_CONSTANTS.js";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Concatenate two 3D tensors along the channel-group (z) axis.
|
|
10
|
+
*
|
|
11
|
+
* For an output coord (x, y, z):
|
|
12
|
+
* - if z < `split_groups`, copy from `tA` at (x, y, z)
|
|
13
|
+
* - otherwise, copy from `tB` at (x, y, z - split_groups)
|
|
14
|
+
*
|
|
15
|
+
* `split_groups` is `tA`'s channel-group count (channels / 4) and is
|
|
16
|
+
* also the z-offset where `tB` starts in the output.
|
|
17
|
+
*
|
|
18
|
+
* Used by NSS's U-Net to merge a decoder activation with its
|
|
19
|
+
* symmetric encoder skip (e.g. conv8_out (16ch) + conv4_out (32ch) ->
|
|
20
|
+
* 48ch concat input for conv9).
|
|
21
|
+
*/
|
|
22
|
+
const CONCAT_SETTINGS = WebGPUStruct.from({
|
|
23
|
+
split_groups: u32,
|
|
24
|
+
}, "NSSConcatSettings").pack();
|
|
25
|
+
|
|
26
|
+
const resources = new ShaderResourceSetDescriptor();
|
|
27
|
+
|
|
28
|
+
// per-pass, four bytes, read-only: immediate data rather than a uniform buffer
|
|
29
|
+
resources.setImmediate("settings", CONCAT_SETTINGS);
|
|
30
|
+
resources.createGroup()
|
|
31
|
+
.addTexture("tA", "float", "3d")
|
|
32
|
+
.addTexture("tB", "float", "3d")
|
|
33
|
+
.addStorageTexture("tOutput", "rgba16float", "3d", "write-only")
|
|
34
|
+
;
|
|
35
|
+
|
|
36
|
+
const body = CodeChunk.from(
|
|
37
|
+
//language=WGSL
|
|
38
|
+
`
|
|
39
|
+
@compute @workgroup_size(${NSS_WORKGROUP_SIZE}, ${NSS_WORKGROUP_SIZE}, 1)
|
|
40
|
+
fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
|
|
41
|
+
let dim = textureDimensions(tOutput);
|
|
42
|
+
|
|
43
|
+
if (any(gid >= dim)) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
let st = vec2<i32>(gid.xy);
|
|
48
|
+
let z = gid.z;
|
|
49
|
+
|
|
50
|
+
var v: vec4<f32>;
|
|
51
|
+
if (z < settings.split_groups) {
|
|
52
|
+
v = textureLoad(tA, vec3<i32>(st, i32(z)), 0);
|
|
53
|
+
} else {
|
|
54
|
+
v = textureLoad(tB, vec3<i32>(st, i32(z - settings.split_groups)), 0);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
textureStore(tOutput, vec3<i32>(st, i32(z)), v);
|
|
58
|
+
}
|
|
59
|
+
`, [
|
|
60
|
+
CONCAT_SETTINGS.declaration_chunk,
|
|
61
|
+
]
|
|
62
|
+
);
|
|
63
|
+
|
|
64
|
+
export const shader_nss_concat = ComputeShader.from({
|
|
65
|
+
label: "NSS / concat",
|
|
66
|
+
body,
|
|
67
|
+
resources,
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
export { CONCAT_SETTINGS as NSS_CONCAT_SETTINGS_STRUCT };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"depth_max_shader.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/postprocess/ssr/depth_max_shader.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"depth_max_shader.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/postprocess/ssr/depth_max_shader.js"],"names":[],"mappings":"AAyDA,2CAWG;4BAnEyB,6BAA6B"}
|
|
@@ -1,68 +1,70 @@
|
|
|
1
|
-
import { CodeChunk } from "../../shader/compiler/CodeChunk.js";
|
|
2
|
-
import { ImageShader } from "../../shader/ImageShader.js";
|
|
3
|
-
import { ShaderResourceSetDescriptor } from "../../shader/resource/ShaderResourceSetDescriptor.js";
|
|
4
|
-
import { ShaderDescriptor } from "../../shader/ShaderDescriptor.js";
|
|
5
|
-
|
|
6
|
-
const resources = new ShaderResourceSetDescriptor();
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
let
|
|
25
|
-
|
|
26
|
-
let
|
|
27
|
-
|
|
28
|
-
let
|
|
29
|
-
|
|
30
|
-
let
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
}
|
|
68
|
-
|
|
1
|
+
import { CodeChunk } from "../../shader/compiler/CodeChunk.js";
|
|
2
|
+
import { ImageShader } from "../../shader/ImageShader.js";
|
|
3
|
+
import { ShaderResourceSetDescriptor } from "../../shader/resource/ShaderResourceSetDescriptor.js";
|
|
4
|
+
import { ShaderDescriptor } from "../../shader/ShaderDescriptor.js";
|
|
5
|
+
|
|
6
|
+
const resources = new ShaderResourceSetDescriptor();
|
|
7
|
+
|
|
8
|
+
// per-pass, eight bytes, read-only: immediate data rather than a uniform buffer
|
|
9
|
+
resources.setImmediate("output_resolution", "vec2<u32>");
|
|
10
|
+
|
|
11
|
+
resources.createGroup()
|
|
12
|
+
.addTexture("tInput");
|
|
13
|
+
|
|
14
|
+
const body = CodeChunk.from(
|
|
15
|
+
//language=WGSL
|
|
16
|
+
`
|
|
17
|
+
@fragment
|
|
18
|
+
fn main(
|
|
19
|
+
@builtin(position) coord : vec4<f32>,
|
|
20
|
+
@location(0) uv: vec2<f32>,
|
|
21
|
+
) -> @location(0) f32 {
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
let target_coord_i = vec2<u32>(coord.xy);
|
|
25
|
+
|
|
26
|
+
let source_resolution = textureDimensions(tInput);
|
|
27
|
+
|
|
28
|
+
let scale = vec2f(source_resolution) / vec2f(output_resolution);
|
|
29
|
+
|
|
30
|
+
let scale_i = vec2u(ceil(scale));
|
|
31
|
+
|
|
32
|
+
let source_coord_i = target_coord_i * 2;
|
|
33
|
+
|
|
34
|
+
// compute bounds in source texture
|
|
35
|
+
let source_bounds_max = min(
|
|
36
|
+
source_coord_i + scale_i,
|
|
37
|
+
source_resolution - 1
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
let source_bounds_min = source_coord_i;
|
|
41
|
+
|
|
42
|
+
var max_value = 0.0;
|
|
43
|
+
|
|
44
|
+
for(var y = source_bounds_min.y ; y <= source_bounds_max.y ; y++){
|
|
45
|
+
for(var x = source_bounds_min.x ; x<= source_bounds_max.x ; x++){
|
|
46
|
+
|
|
47
|
+
let depth = textureLoad(tInput, vec2u(x,y), 0).r;
|
|
48
|
+
|
|
49
|
+
max_value = max(depth, max_value);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return max_value;
|
|
54
|
+
}
|
|
55
|
+
`
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
export const depth_max_shader = new ImageShader({
|
|
59
|
+
descriptor: ShaderDescriptor.from({
|
|
60
|
+
label: "Depth Reduce / max",
|
|
61
|
+
body,
|
|
62
|
+
resources,
|
|
63
|
+
}),
|
|
64
|
+
targets: [
|
|
65
|
+
{
|
|
66
|
+
format: "r32float"
|
|
67
|
+
}
|
|
68
|
+
]
|
|
69
|
+
});
|
|
70
|
+
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssr_resolve_shader_IBL.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_IBL.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ssr_resolve_shader_IBL.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_IBL.js"],"names":[],"mappings":"AA+TA;;;GAGG;AACH,qCAFU,WAAW,CAelB;4BA9TyB,gCAAgC"}
|
|
@@ -30,6 +30,9 @@ const RESOLVE_UNIFORMS = WebGPUStruct.from({
|
|
|
30
30
|
});
|
|
31
31
|
|
|
32
32
|
const resources = new ShaderResourceSetDescriptor();
|
|
33
|
+
|
|
34
|
+
// per-pass, four bytes, read-only: immediate data rather than a uniform buffer
|
|
35
|
+
resources.setImmediate("settings", RESOLVE_UNIFORMS);
|
|
33
36
|
resources.createGroup()
|
|
34
37
|
.addTexture("tTrace", "uint")
|
|
35
38
|
.addTexture("tDepth")
|
|
@@ -44,7 +47,6 @@ resources.createGroup()
|
|
|
44
47
|
addressModeU: "clamp-to-edge",
|
|
45
48
|
addressModeV: "clamp-to-edge",
|
|
46
49
|
}))
|
|
47
|
-
.addUniform("settings", RESOLVE_UNIFORMS)
|
|
48
50
|
.addUniform("camera", CAMERA_UNIFORM_STRUCT)
|
|
49
51
|
;
|
|
50
52
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssr_resolve_shader_LPV.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_LPV.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ssr_resolve_shader_LPV.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_LPV.js"],"names":[],"mappings":"AA6VA;;;GAGG;AACH,qCAFU,WAAW,CAelB;4BAzVyB,gCAAgC"}
|
|
@@ -33,6 +33,10 @@ const RESOLVE_UNIFORMS = WebGPUStruct.from({
|
|
|
33
33
|
});
|
|
34
34
|
|
|
35
35
|
const resources = new ShaderResourceSetDescriptor();
|
|
36
|
+
|
|
37
|
+
// per-pass, four bytes, read-only: immediate data rather than a uniform buffer. lpv_metadata
|
|
38
|
+
// beside it is a scene buffer and stays bound.
|
|
39
|
+
resources.setImmediate("settings", RESOLVE_UNIFORMS);
|
|
36
40
|
resources.createGroup()
|
|
37
41
|
.addTexture("tTrace", "uint")
|
|
38
42
|
.addTexture("tDepth")
|
|
@@ -47,7 +51,6 @@ resources.createGroup()
|
|
|
47
51
|
addressModeU: "clamp-to-edge",
|
|
48
52
|
addressModeV: "clamp-to-edge",
|
|
49
53
|
}))
|
|
50
|
-
.addUniform("settings", RESOLVE_UNIFORMS)
|
|
51
54
|
.addUniform("camera", CAMERA_UNIFORM_STRUCT)
|
|
52
55
|
;
|
|
53
56
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shader_downsample_encoded_normal.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/postprocess/ssr/shader_downsample_encoded_normal.js"],"names":[],"mappings":"
|
|
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"}
|