@woosh/meep-engine 3.61.1 → 3.61.3
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/CHANGELOG.md +111 -0
- package/package.json +1 -1
- package/src/engine/network/sim/SimActionExecutor.d.ts +4 -0
- package/src/engine/network/sim/SimActionExecutor.d.ts.map +1 -1
- package/src/engine/network/sim/SimActionExecutor.js +4 -0
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
- package/src/generation/foliage/material/foliage_atlas_cutout.d.ts.map +1 -1
- package/src/generation/foliage/material/foliage_atlas_cutout.js +21 -5
- package/src/generation/foliage/mesh/tree_cluster_representatives.d.ts +8 -0
- package/src/generation/foliage/mesh/tree_cluster_representatives.d.ts.map +1 -1
- package/src/generation/foliage/mesh/tree_cluster_representatives.js +178 -78
- package/src/generation/foliage/mesh/tree_mesh_build_bark.d.ts.map +1 -1
- package/src/generation/foliage/mesh/tree_mesh_build_bark.js +178 -97
- package/src/generation/foliage/skeleton/ShootLightField.d.ts +1 -0
- package/src/generation/foliage/skeleton/ShootLightField.d.ts.map +1 -1
- package/src/generation/foliage/skeleton/ShootLightField.js +88 -17
- package/src/generation/foliage/skeleton/ShootWoodHash.d.ts +5 -2
- package/src/generation/foliage/skeleton/ShootWoodHash.d.ts.map +1 -1
- package/src/generation/foliage/skeleton/ShootWoodHash.js +191 -25
- package/src/shade/playground/probe_clipmap/README.md +3 -4
- package/src/shade/playground/probe_clipmap/index.html +5 -13
- package/src/shade/playground/probe_clipmap/main.d.ts.map +1 -1
- package/src/shade/playground/probe_clipmap/main.js +4 -5
- package/src/shade/playground/probe_clipmap_box/README.md +55 -0
- package/src/shade/playground/probe_clipmap_box/index.html +185 -0
- package/src/shade/playground/probe_clipmap_box/main.d.ts +8 -0
- package/src/shade/playground/probe_clipmap_box/main.d.ts.map +1 -0
- package/src/shade/playground/probe_clipmap_box/main.js +323 -0
- package/src/shade/playground/probe_clipmap_box/scene.d.ts +93 -0
- package/src/shade/playground/probe_clipmap_box/scene.d.ts.map +1 -0
- package/src/shade/playground/probe_clipmap_box/scene.js +256 -0
- package/src/shade/renderer/Renderer.d.ts.map +1 -1
- package/src/shade/renderer/Renderer.js +56 -12
- package/src/shade/renderer/fluid/GPUFluidCascade.d.ts +3 -3
- package/src/shade/renderer/fluid/GPUFluidCascadeStack.d.ts +1 -1
- package/src/shade/renderer/fluid/forcing/GPUFluidForcing.d.ts +6 -6
- package/src/shade/renderer/fluid/pressure/GPUFluidPressureSolve.d.ts +1 -1
- package/src/shade/renderer/fluid/query/GPUFluidQueries.d.ts +1 -1
- package/src/shade/renderer/geometry/meshlet/meshlet_batch_colored.d.ts +10 -0
- package/src/shade/renderer/geometry/meshlet/meshlet_batch_colored.d.ts.map +1 -0
- package/src/shade/renderer/geometry/meshlet/meshlet_batch_colored.js +54 -0
- package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.d.ts +85 -36
- package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.d.ts.map +1 -1
- package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.js +813 -412
- package/src/shade/renderer/geometry/sdf/MESH_SDF.d.ts +7 -0
- package/src/shade/renderer/geometry/sdf/MESH_SDF.d.ts.map +1 -1
- package/src/shade/renderer/geometry/sdf/MESH_SDF.js +8 -0
- package/src/shade/renderer/geometry/sdf/MESH_SDF_BRICK_KEY.d.ts +14 -0
- package/src/shade/renderer/geometry/sdf/MESH_SDF_BRICK_KEY.d.ts.map +1 -0
- package/src/shade/renderer/geometry/sdf/MESH_SDF_BRICK_KEY.js +35 -0
- package/src/shade/renderer/geometry/sdf/MESH_SDF_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/geometry/sdf/MESH_SDF_STRUCT.js +0 -4
- package/src/shade/renderer/geometry/sdf/bake/MESH_SDF_BAKE.d.ts +55 -10
- package/src/shade/renderer/geometry/sdf/bake/MESH_SDF_BAKE.d.ts.map +1 -1
- package/src/shade/renderer/geometry/sdf/bake/MESH_SDF_BAKE.js +86 -16
- package/src/shade/renderer/geometry/sdf/bake/chunk_mesh_sdf_bake.d.ts +2 -2
- package/src/shade/renderer/geometry/sdf/bake/chunk_mesh_sdf_bake.d.ts.map +1 -1
- package/src/shade/renderer/geometry/sdf/bake/chunk_mesh_sdf_bake.js +28 -2
- package/src/shade/renderer/geometry/sdf/bake/chunk_mesh_sdf_contents.d.ts +54 -0
- package/src/shade/renderer/geometry/sdf/bake/chunk_mesh_sdf_contents.d.ts.map +1 -0
- package/src/shade/renderer/geometry/sdf/bake/chunk_mesh_sdf_contents.js +146 -0
- package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_classify.d.ts +1 -1
- package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_classify.d.ts.map +1 -1
- package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_classify.js +2 -1
- package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_content_rehash.d.ts +18 -0
- package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_content_rehash.d.ts.map +1 -0
- package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_content_rehash.js +66 -0
- package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_count.d.ts +17 -0
- package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_count.d.ts.map +1 -0
- package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_count.js +66 -0
- package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_evaluate.d.ts +5 -3
- package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_evaluate.d.ts.map +1 -1
- package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_evaluate.js +15 -14
- package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_free.d.ts +2 -1
- package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_free.d.ts.map +1 -1
- package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_free.js +12 -3
- package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_key.d.ts +21 -0
- package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_key.d.ts.map +1 -0
- package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_key.js +84 -0
- package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_resolve.d.ts +53 -0
- package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_resolve.d.ts.map +1 -0
- package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_resolve.js +343 -0
- package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_store.d.ts +3 -3
- package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_store.d.ts.map +1 -1
- package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_store.js +9 -5
- package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_take.d.ts +2 -2
- package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_take.d.ts.map +1 -1
- package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_take.js +3 -2
- package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_upload.d.ts +69 -0
- package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_upload.d.ts.map +1 -0
- package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_upload.js +294 -0
- package/src/shade/renderer/geometry/sdf/bundle/MODEL_CACHE_BUNDLE.d.ts +16 -0
- package/src/shade/renderer/geometry/sdf/bundle/MODEL_CACHE_BUNDLE.d.ts.map +1 -0
- package/src/shade/renderer/geometry/sdf/bundle/MODEL_CACHE_BUNDLE.js +36 -0
- package/src/shade/renderer/geometry/sdf/bundle/ModelCacheBundle.d.ts +126 -0
- package/src/shade/renderer/geometry/sdf/bundle/ModelCacheBundle.d.ts.map +1 -0
- package/src/shade/renderer/geometry/sdf/bundle/ModelCacheBundle.js +148 -0
- package/src/shade/renderer/geometry/sdf/bundle/model_cache_bundle_read.d.ts +10 -0
- package/src/shade/renderer/geometry/sdf/bundle/model_cache_bundle_read.d.ts.map +1 -0
- package/src/shade/renderer/geometry/sdf/bundle/model_cache_bundle_read.js +140 -0
- package/src/shade/renderer/geometry/sdf/bundle/model_cache_bundle_write.d.ts +8 -0
- package/src/shade/renderer/geometry/sdf/bundle/model_cache_bundle_write.d.ts.map +1 -0
- package/src/shade/renderer/geometry/sdf/bundle/model_cache_bundle_write.js +76 -0
- package/src/shade/renderer/geometry/sdf/chunk_mesh_sdf.d.ts +9 -0
- package/src/shade/renderer/geometry/sdf/chunk_mesh_sdf.d.ts.map +1 -1
- package/src/shade/renderer/geometry/sdf/chunk_mesh_sdf.js +23 -0
- package/src/shade/renderer/geometry/sdf/chunk_mesh_sdf_brick_key.d.ts +13 -0
- package/src/shade/renderer/geometry/sdf/chunk_mesh_sdf_brick_key.d.ts.map +1 -0
- package/src/shade/renderer/geometry/sdf/chunk_mesh_sdf_brick_key.js +23 -0
- package/src/shade/renderer/geometry/sdf/surface/GPUMeshSurfaceCaches.d.ts +262 -0
- package/src/shade/renderer/geometry/sdf/surface/GPUMeshSurfaceCaches.d.ts.map +1 -0
- package/src/shade/renderer/geometry/sdf/surface/GPUMeshSurfaceCaches.js +1819 -0
- package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_BAKE.d.ts +118 -0
- package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_BAKE.d.ts.map +1 -0
- package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_BAKE.js +204 -0
- package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_BLOCK.d.ts +66 -0
- package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_BLOCK.d.ts.map +1 -0
- package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_BLOCK.js +103 -0
- package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_RESOURCES.d.ts +19 -0
- package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_RESOURCES.d.ts.map +1 -0
- package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_RESOURCES.js +23 -0
- package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_STRUCT.d.ts +15 -0
- package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/geometry/sdf/surface/MESH_SURFACE_STRUCT.js +70 -0
- package/src/shade/renderer/geometry/sdf/surface/SURFACE_MATERIAL.d.ts +13 -0
- package/src/shade/renderer/geometry/sdf/surface/SURFACE_MATERIAL.d.ts.map +1 -0
- package/src/shade/renderer/geometry/sdf/surface/SURFACE_MATERIAL.js +35 -0
- package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_block.d.ts +32 -0
- package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_block.d.ts.map +1 -0
- package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_block.js +111 -0
- package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_listed.d.ts +17 -0
- package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_listed.d.ts.map +1 -0
- package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_listed.js +49 -0
- package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_run_find.d.ts +13 -0
- package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_run_find.d.ts.map +1 -0
- package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_run_find.js +35 -0
- package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_sample.d.ts +24 -0
- package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_sample.d.ts.map +1 -0
- package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_sample.js +169 -0
- package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_texel_ray.d.ts +19 -0
- package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_texel_ray.d.ts.map +1 -0
- package/src/shade/renderer/geometry/sdf/surface/chunk_mesh_surface_texel_ray.js +49 -0
- package/src/shade/renderer/geometry/sdf/surface/chunk_surface_material_fit.d.ts +19 -0
- package/src/shade/renderer/geometry/sdf/surface/chunk_surface_material_fit.d.ts.map +1 -0
- package/src/shade/renderer/geometry/sdf/surface/chunk_surface_material_fit.js +67 -0
- package/src/shade/renderer/geometry/sdf/surface/chunk_surface_material_read.d.ts +78 -0
- package/src/shade/renderer/geometry/sdf/surface/chunk_surface_material_read.d.ts.map +1 -0
- package/src/shade/renderer/geometry/sdf/surface/chunk_surface_material_read.js +320 -0
- package/src/shade/renderer/geometry/sdf/surface/chunk_surface_material_store.d.ts +15 -0
- package/src/shade/renderer/geometry/sdf/surface/chunk_surface_material_store.d.ts.map +1 -0
- package/src/shade/renderer/geometry/sdf/surface/chunk_surface_material_store.js +48 -0
- package/src/shade/renderer/geometry/sdf/surface/mesh_surface_channels.d.ts +51 -0
- package/src/shade/renderer/geometry/sdf/surface/mesh_surface_channels.d.ts.map +1 -0
- package/src/shade/renderer/geometry/sdf/surface/mesh_surface_channels.js +109 -0
- package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_command.d.ts +11 -0
- package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_command.d.ts.map +1 -0
- package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_command.js +51 -0
- package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_encode.d.ts +26 -0
- package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_encode.d.ts.map +1 -0
- package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_encode.js +453 -0
- package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_list.d.ts +12 -0
- package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_list.d.ts.map +1 -0
- package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_list.js +99 -0
- package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_survey.d.ts +22 -0
- package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_survey.d.ts.map +1 -0
- package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_survey.js +140 -0
- package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_trace.d.ts +32 -0
- package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_trace.d.ts.map +1 -0
- package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_trace.js +261 -0
- package/src/shade/renderer/geometry/virtual/runtime/VirtualGeometry.d.ts +2 -2
- package/src/shade/renderer/geometry/virtual/runtime/VirtualGeometry.js +2 -2
- package/src/shade/renderer/geometry/virtual/sdf/VGeoSDFProxies.d.ts +6 -6
- package/src/shade/renderer/geometry/virtual/sdf/VGeoSDFProxies.js +7 -7
- package/src/shade/renderer/global_illumination/brick4/gpu/encoding/v2/chunk_brick4_sh3_color_decode.d.ts +12 -0
- package/src/shade/renderer/global_illumination/brick4/gpu/encoding/v2/chunk_brick4_sh3_color_decode.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/brick4/gpu/encoding/v2/chunk_brick4_sh3_color_decode.js +49 -24
- package/src/shade/renderer/global_illumination/brick4/gpu/encoding/v2/chunk_brick4_sh3_color_encode.d.ts +12 -0
- package/src/shade/renderer/global_illumination/brick4/gpu/encoding/v2/chunk_brick4_sh3_color_encode.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/brick4/gpu/encoding/v2/chunk_brick4_sh3_color_encode.js +50 -19
- package/src/shade/renderer/global_illumination/brick4/gpu/encoding/v2/chunk_sh3_compress.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/brick4/gpu/encoding/v2/chunk_sh3_compress.js +6 -2
- package/src/shade/renderer/global_illumination/probe_clipmap/GPUProbeClipmapGI.d.ts +20 -8
- package/src/shade/renderer/global_illumination/probe_clipmap/GPUProbeClipmapGI.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/GPUProbeClipmapGI.js +89 -20
- package/src/shade/renderer/global_illumination/probe_clipmap/ProbeClipmapSceneHolds.d.ts +26 -19
- package/src/shade/renderer/global_illumination/probe_clipmap/ProbeClipmapSceneHolds.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/ProbeClipmapSceneHolds.js +226 -148
- package/src/shade/renderer/global_illumination/probe_clipmap/ProbeClipmapSettings.d.ts +25 -52
- package/src/shade/renderer/global_illumination/probe_clipmap/ProbeClipmapSettings.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/ProbeClipmapSettings.js +29 -69
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/BRICK_CLIPMAP.d.ts +19 -16
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/BRICK_CLIPMAP.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/BRICK_CLIPMAP.js +24 -21
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/GPUBrickClipmap.d.ts +46 -22
- 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 +49 -36
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/chunk_brick_clipmap.d.ts +3 -2
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/chunk_brick_clipmap.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/chunk_brick_clipmap.js +7 -6
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/chunk_brick_clipmap_trace.d.ts +8 -22
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/chunk_brick_clipmap_trace.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/chunk_brick_clipmap_trace.js +15 -51
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/MESH_BRICK.d.ts +1 -6
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/MESH_BRICK.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/MESH_BRICK.js +6 -13
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/chunk_mesh_brick_walk.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/chunk_mesh_brick_walk.js +0 -2
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/shader_mesh_brick_batch.d.ts +4 -4
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/shader_mesh_brick_batch.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/shader_mesh_brick_batch.js +9 -34
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/shader_mesh_brick_resolve.d.ts +4 -6
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/shader_mesh_brick_resolve.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/shader_mesh_brick_resolve.js +15 -39
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/shader_brick_clipmap_clear.d.ts +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/shader_brick_clipmap_clear.js +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/shader_brick_clipmap_store.d.ts +1 -2
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/shader_brick_clipmap_store.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/shader_brick_clipmap_store.js +2 -6
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/shader_brick_clipmap_take.d.ts +2 -2
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/shader_brick_clipmap_take.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/shader_brick_clipmap_take.js +5 -2
- package/src/shade/renderer/global_illumination/probe_clipmap/debug/ProbeClipmapDebugView.d.ts +5 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/debug/ProbeClipmapDebugView.js +16 -2
- package/src/shade/renderer/global_illumination/probe_clipmap/debug/graph_probe_clipmap_debug_brick_material.d.ts +45 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/debug/graph_probe_clipmap_debug_brick_material.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/debug/graph_probe_clipmap_debug_brick_material.js +208 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/debug/graph_probe_clipmap_debug_indirect.d.ts +24 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/debug/graph_probe_clipmap_debug_indirect.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/debug/graph_probe_clipmap_debug_indirect.js +40 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/debug/graph_probe_clipmap_debug_mesh_surfaces.d.ts +34 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/debug/graph_probe_clipmap_debug_mesh_surfaces.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/debug/{graph_probe_clipmap_debug_mesh_cards.js → graph_probe_clipmap_debug_mesh_surfaces.js} +38 -57
- package/src/shade/renderer/global_illumination/probe_clipmap/material/GPUBrickMaterial.d.ts +61 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/material/GPUBrickMaterial.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/material/GPUBrickMaterial.js +193 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/material/chunk_brick_material.d.ts +67 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/material/chunk_brick_material.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/material/chunk_brick_material.js +142 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/material/chunk_brick_material_cell.d.ts +32 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/material/chunk_brick_material_cell.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/material/chunk_brick_material_cell.js +70 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/material/chunk_brick_material_store.d.ts +30 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/material/chunk_brick_material_store.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/material/chunk_brick_material_store.js +71 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/material/shader_brick_material_gather.d.ts +26 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/material/shader_brick_material_gather.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/material/shader_brick_material_gather.js +176 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/GPUProbeClipmap.d.ts +23 -12
- 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 +72 -52
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/PROBE_CLIPMAP.d.ts +32 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/PROBE_CLIPMAP.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/PROBE_CLIPMAP.js +37 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/PROBE_CLIPMAP_INDIRECT_LOBE.d.ts +10 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/PROBE_CLIPMAP_INDIRECT_LOBE.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/PROBE_CLIPMAP_INDIRECT_LOBE.js +11 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/ProbeClipmapIndirectLobe.d.ts +11 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/ProbeClipmapIndirectLobe.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/ProbeClipmapIndirectLobe.js +15 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap.d.ts +55 -23
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap.js +134 -69
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_hit_material.d.ts +43 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_hit_material.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_hit_material.js +138 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_indirect_lobe.d.ts +21 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_indirect_lobe.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_indirect_lobe.js +49 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_pick.d.ts +4 -3
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_pick.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_pick.js +19 -24
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_sample_radiance.d.ts +2 -2
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_sample_radiance.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_sample_radiance.js +14 -19
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_select.d.ts +22 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_select.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_select.js +50 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_want.d.ts +4 -4
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_want.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_want.js +8 -8
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_accumulate.d.ts +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_accumulate.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_accumulate.js +8 -4
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_admit.js +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_bounce.d.ts +5 -4
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_bounce.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_bounce.js +18 -23
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_candidate.d.ts +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_candidate.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_candidate.js +4 -2
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_diffuse.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_diffuse.js +4 -6
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_indirect_lighting.d.ts +2 -0
- 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 +9 -8
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_light.d.ts +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_light.js +2 -2
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_project.d.ts +4 -3
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_project.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_project.js +14 -13
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_shade.d.ts +7 -4
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_shade.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_shade.js +30 -26
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_trace.d.ts +6 -6
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_trace.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_trace.js +19 -21
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_want.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_want.js +6 -2
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_want_hits.d.ts +2 -2
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_want_hits.js +6 -6
- package/src/shade/renderer/gpu_primitive/hash_table/chunk_generate_next_linear_congruential_index.d.ts +14 -0
- package/src/shade/renderer/gpu_primitive/hash_table/chunk_generate_next_linear_congruential_index.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/hash_table/chunk_generate_next_linear_congruential_index.js +22 -0
- package/src/shade/renderer/gpu_primitive/hash_table/chunk_hash_table_atomic.d.ts +37 -0
- package/src/shade/renderer/gpu_primitive/hash_table/chunk_hash_table_atomic.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/hash_table/chunk_hash_table_atomic.js +122 -0
- package/src/shade/renderer/gpu_primitive/hash_table/chunk_hash_table_get.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/hash_table/chunk_hash_table_get.js +1 -11
- package/src/shade/renderer/gpu_primitive/hash_table/cpu_build_hash_table.d.ts +8 -0
- package/src/shade/renderer/gpu_primitive/hash_table/cpu_build_hash_table.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/hash_table/cpu_build_hash_table.js +6 -4
- package/src/shade/renderer/light/environment/shader_downsample_environment_map.d.ts.map +1 -1
- package/src/shade/renderer/light/environment/shader_downsample_environment_map.js +5 -1
- package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
- package/src/shade/renderer/material/resident/GPUResidentMaterialContext.d.ts +1 -1
- package/src/shade/renderer/material/resident/GPUResidentMaterialContext.d.ts.map +1 -1
- package/src/shade/renderer/material/resident/GPUResidentMaterialContext.js +2 -18
- package/src/shade/renderer/material/resident/NEUTRAL_SURFACE.d.ts +17 -0
- package/src/shade/renderer/material/resident/NEUTRAL_SURFACE.d.ts.map +1 -0
- package/src/shade/renderer/material/resident/NEUTRAL_SURFACE.js +16 -0
- package/src/shade/renderer/path_tracer/shader/INDIRECT_TEXTURE_FILTER.d.ts +1 -1
- package/src/shade/renderer/path_tracer/shader/INDIRECT_TEXTURE_FILTER.js +1 -1
- package/src/shade/renderer/path_tracer/shader/IndirectTextureFilter.js +1 -1
- package/src/shade/renderer/path_tracer/shader/chunk_beam_texture_level.d.ts +20 -0
- package/src/shade/renderer/path_tracer/shader/chunk_beam_texture_level.d.ts.map +1 -0
- package/src/shade/renderer/path_tracer/shader/chunk_beam_texture_level.js +65 -0
- package/src/shade/renderer/postprocess/eye/GPUCameraExposureManager.d.ts +26 -8
- package/src/shade/renderer/postprocess/eye/GPUCameraExposureManager.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/eye/GPUCameraExposureManager.js +170 -142
- package/src/shade/renderer/postprocess/nss/NSS.d.ts +1 -1
- package/src/shade/renderer/rasterize/forward/chunk_forward_sample_indirect_probe_clipmap.d.ts +1 -1
- package/src/shade/renderer/rasterize/forward/chunk_forward_sample_indirect_probe_clipmap.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/forward/chunk_forward_sample_indirect_probe_clipmap.js +5 -8
- package/src/shade/renderer/scene/GPUSceneContext.d.ts +1 -1
- package/src/shade/renderer/scene/GPUSceneContext.js +1 -1
- package/src/shade/renderer/shader/chunk/filter/chunk_multiscale_mean.d.ts +15 -4
- package/src/shade/renderer/shader/chunk/filter/chunk_multiscale_mean.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/filter/chunk_multiscale_mean.js +33 -7
- package/src/shade/renderer/shader/chunk/material/albedo_compress.d.ts +12 -0
- package/src/shade/renderer/shader/chunk/material/albedo_compress.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/material/albedo_compress.js +26 -0
- package/src/shade/renderer/shader/chunk/material/chunk_albedo_compress.d.ts +16 -0
- package/src/shade/renderer/shader/chunk/material/chunk_albedo_compress.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/material/chunk_albedo_compress.js +22 -0
- package/src/shade/renderer/shader/chunk/material/chunk_albedo_uncompress.d.ts +15 -0
- package/src/shade/renderer/shader/chunk/material/chunk_albedo_uncompress.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/material/chunk_albedo_uncompress.js +23 -0
- package/src/shade/renderer/shader/chunk/material/chunk_metal_rough_compress.d.ts +16 -0
- package/src/shade/renderer/shader/chunk/material/chunk_metal_rough_compress.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/material/chunk_metal_rough_compress.js +25 -0
- package/src/shade/renderer/shader/chunk/material/chunk_metal_rough_uncompress.d.ts +25 -0
- package/src/shade/renderer/shader/chunk/material/chunk_metal_rough_uncompress.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/material/chunk_metal_rough_uncompress.js +36 -0
- package/src/shade/renderer/shader/chunk/material/metal_rough_compress.d.ts +11 -0
- package/src/shade/renderer/shader/chunk/material/metal_rough_compress.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/material/metal_rough_compress.js +38 -0
- package/src/shade/renderer/shader/chunk/noise/chunk_sobol_sample_vec2.d.ts +40 -0
- package/src/shade/renderer/shader/chunk/noise/chunk_sobol_sample_vec2.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/noise/chunk_sobol_sample_vec2.js +75 -0
- package/src/shade/renderer/shader/chunk/noise/chunk_vdc_radical_inverse.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/noise/chunk_vdc_radical_inverse.js +3 -1
- package/src/shade/renderer/shader/chunk/random/chunk_hash_lk.d.ts +28 -0
- package/src/shade/renderer/shader/chunk/random/chunk_hash_lk.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/random/chunk_hash_lk.js +41 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/chunk_sh3_color_add_scaled.d.ts +12 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/chunk_sh3_color_add_scaled.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/chunk_sh3_color_add_scaled.js +24 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot.d.ts +20 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot.js +35 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot_compress.d.ts +28 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot_compress.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot_compress.js +79 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot_fit.d.ts +25 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot_fit.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot_fit.js +89 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot_uncompress.d.ts +31 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot_uncompress.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot_uncompress.js +66 -0
- package/src/shade/renderer/shader/chunk/subgroup/chunk_subgroup_atomic_add.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/subgroup/chunk_subgroup_atomic_add.js +2 -0
- package/src/shade/renderer/shader/chunk/subgroup/chunk_subgroup_atomic_load.d.ts +17 -0
- package/src/shade/renderer/shader/chunk/subgroup/chunk_subgroup_atomic_load.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/subgroup/chunk_subgroup_atomic_load.js +34 -0
- package/src/shade/renderer/volumetrics/chunk_frustum_unit_box_coverage_multisample.d.ts +18 -0
- package/src/shade/renderer/volumetrics/chunk_frustum_unit_box_coverage_multisample.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/chunk_frustum_unit_box_coverage_multisample.js +31 -23
- package/src/shade/renderer/volumetrics/irradiance_clipmap/GPUIrradianceClipmap.d.ts +3 -2
- package/src/shade/renderer/volumetrics/irradiance_clipmap/GPUIrradianceClipmap.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/irradiance_clipmap/GPUIrradianceClipmap.js +4 -0
- package/src/shade/renderer/volumetrics/irradiance_clipmap/chunk_irradiance_clipmap_gi_sample.d.ts +2 -5
- package/src/shade/renderer/volumetrics/irradiance_clipmap/chunk_irradiance_clipmap_gi_sample.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/irradiance_clipmap/chunk_irradiance_clipmap_gi_sample.js +3 -20
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_participating_media.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_participating_media.js +5 -6
- package/src/shade/renderer/water/chunk_water_gi.d.ts +1 -1
- package/src/shade/renderer/water/chunk_water_gi.d.ts.map +1 -1
- package/src/shade/renderer/water/chunk_water_gi.js +6 -8
- package/src/shade/renderer/water/query/GPUWaterQueries.d.ts +1 -1
- package/src/shade/renderer/wind/GPUSceneWind.d.ts +1 -1
- package/src/shade/wgsl/emulator/WGSLLanguageCore.d.ts.map +1 -1
- package/src/shade/wgsl/emulator/WGSLLanguageCore.js +76 -32
- package/src/core/math/hash/squirrel3.d.ts +0 -17
- package/src/core/math/hash/squirrel3.d.ts.map +0 -1
- package/src/core/math/hash/squirrel3.js +0 -30
- package/src/shade/renderer/geometry/sdf/cards/GPUMeshCardSets.d.ts +0 -213
- package/src/shade/renderer/geometry/sdf/cards/GPUMeshCardSets.d.ts.map +0 -1
- package/src/shade/renderer/geometry/sdf/cards/GPUMeshCardSets.js +0 -1468
- package/src/shade/renderer/geometry/sdf/cards/MESH_CARDS.d.ts +0 -82
- package/src/shade/renderer/geometry/sdf/cards/MESH_CARDS.d.ts.map +0 -1
- package/src/shade/renderer/geometry/sdf/cards/MESH_CARDS.js +0 -127
- package/src/shade/renderer/geometry/sdf/cards/MESH_CARD_RESOURCES.d.ts +0 -24
- package/src/shade/renderer/geometry/sdf/cards/MESH_CARD_RESOURCES.d.ts.map +0 -1
- package/src/shade/renderer/geometry/sdf/cards/MESH_CARD_RESOURCES.js +0 -29
- package/src/shade/renderer/geometry/sdf/cards/MESH_CARD_SET_STRUCT.d.ts +0 -12
- package/src/shade/renderer/geometry/sdf/cards/MESH_CARD_SET_STRUCT.d.ts.map +0 -1
- package/src/shade/renderer/geometry/sdf/cards/MESH_CARD_SET_STRUCT.js +0 -31
- package/src/shade/renderer/geometry/sdf/cards/MeshCardCaptureMode.d.ts +0 -11
- package/src/shade/renderer/geometry/sdf/cards/MeshCardCaptureMode.d.ts.map +0 -1
- package/src/shade/renderer/geometry/sdf/cards/MeshCardCaptureMode.js +0 -21
- package/src/shade/renderer/geometry/sdf/cards/chunk_mesh_card_surface.d.ts +0 -29
- package/src/shade/renderer/geometry/sdf/cards/chunk_mesh_card_surface.d.ts.map +0 -1
- package/src/shade/renderer/geometry/sdf/cards/chunk_mesh_card_surface.js +0 -179
- package/src/shade/renderer/geometry/sdf/cards/chunk_mesh_cards.d.ts +0 -17
- package/src/shade/renderer/geometry/sdf/cards/chunk_mesh_cards.d.ts.map +0 -1
- package/src/shade/renderer/geometry/sdf/cards/chunk_mesh_cards.js +0 -107
- package/src/shade/renderer/geometry/sdf/cards/mesh_cards_raster_pass_descriptor.d.ts +0 -65
- package/src/shade/renderer/geometry/sdf/cards/mesh_cards_raster_pass_descriptor.d.ts.map +0 -1
- package/src/shade/renderer/geometry/sdf/cards/mesh_cards_raster_pass_descriptor.js +0 -376
- package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_capture.d.ts +0 -40
- package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_capture.d.ts.map +0 -1
- package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_capture.js +0 -301
- package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_compact.d.ts +0 -19
- package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_compact.d.ts.map +0 -1
- package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_compact.js +0 -61
- package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_histogram.d.ts +0 -18
- package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_histogram.d.ts.map +0 -1
- package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_histogram.js +0 -102
- package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_log.d.ts +0 -15
- package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_log.d.ts.map +0 -1
- package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_log.js +0 -65
- package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_merge.d.ts +0 -22
- package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_merge.d.ts.map +0 -1
- package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_merge.js +0 -136
- package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_pages.d.ts +0 -20
- package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_pages.d.ts.map +0 -1
- package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_pages.js +0 -104
- package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_raster_args.d.ts +0 -20
- package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_raster_args.d.ts.map +0 -1
- package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_raster_args.js +0 -80
- package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_raster_scatter.d.ts +0 -18
- package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_raster_scatter.d.ts.map +0 -1
- package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_raster_scatter.js +0 -113
- package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_split.d.ts +0 -30
- package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_split.d.ts.map +0 -1
- package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_split.js +0 -146
- package/src/shade/renderer/global_illumination/probe_clipmap/debug/graph_probe_clipmap_debug_mesh_cards.d.ts +0 -34
- package/src/shade/renderer/global_illumination/probe_clipmap/debug/graph_probe_clipmap_debug_mesh_cards.d.ts.map +0 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_hit_surface.d.ts +0 -31
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_hit_surface.d.ts.map +0 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_hit_surface.js +0 -82
- package/src/shade/renderer/shader/chunk/random/chunk_hash_squirrel3.d.ts +0 -12
- package/src/shade/renderer/shader/chunk/random/chunk_hash_squirrel3.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/random/chunk_hash_squirrel3.js +0 -30
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
import { CodeChunk } from "../../../shader/compiler/CodeChunk.js";
|
|
2
|
-
import { ComputeShader } from "../../../shader/ComputeShader.js";
|
|
3
|
-
import { ShaderResourceSetDescriptor } from "../../../shader/resource/ShaderResourceSetDescriptor.js";
|
|
4
|
-
import { u32 } from "../../../shader/type/WEBGPU_WGSL_PRIMITIVE_TYPES.js";
|
|
5
|
-
import { WebGPUArray } from "../../../shader/type/WebGPUArray.js";
|
|
6
|
-
import { WebGPUStruct } from "../../../shader/type/WebGPUStruct.js";
|
|
7
|
-
import { chunk_mesh_sdf_bake, MESH_SDF_ARENA_RESOURCE } from "../bake/chunk_mesh_sdf_bake.js";
|
|
8
|
-
import { MESH_SDF_BAKE_WORKGROUP_SIZE } from "../bake/MESH_SDF_BAKE.js";
|
|
9
|
-
import { MESH_SDF_HEADERS_RESOURCE } from "../MESH_SDF_RESOURCES.js";
|
|
10
|
-
import { chunk_mesh_cards } from "./chunk_mesh_cards.js";
|
|
11
|
-
import { MESH_CARD_DIRECTIONS } from "./MESH_CARDS.js";
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* @type {WebGPUStruct}
|
|
15
|
-
*/
|
|
16
|
-
export const MESH_CARDS_MERGE_SETTINGS = WebGPUStruct.from({
|
|
17
|
-
/** the geometry whose cards are placed */
|
|
18
|
-
geometry: u32,
|
|
19
|
-
/** where in `mesh_sdf_take` the page pass's dispatch goes, in words */
|
|
20
|
-
dispatch: u32,
|
|
21
|
-
}, "MeshCardsMergeSettings");
|
|
22
|
-
|
|
23
|
-
const resources = new ShaderResourceSetDescriptor();
|
|
24
|
-
|
|
25
|
-
resources.setImmediate("settings", MESH_CARDS_MERGE_SETTINGS);
|
|
26
|
-
|
|
27
|
-
resources.createGroup()
|
|
28
|
-
.add(MESH_SDF_HEADERS_RESOURCE)
|
|
29
|
-
.add(MESH_SDF_ARENA_RESOURCE)
|
|
30
|
-
.addStorageBuffer("mesh_sdf_take", WebGPUArray.u32, true);
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Card placement, step 3 (PROBE_CLIPMAP_PROPOSAL_2026_10_27.md §6.5): one thread. The six directions'
|
|
34
|
-
* splits are taken in order of gain, as the greedy search over all six would take them, until the
|
|
35
|
-
* gains run out or the geometry has MESH_CARD_MAX cards. Every run start is then covered, or the
|
|
36
|
-
* ceiling has left some uncovered, which read the material mean.
|
|
37
|
-
*
|
|
38
|
-
* The cards are written direction by direction, each direction's cards by their near layer. Each
|
|
39
|
-
* card records its direction, its slab, and where its column table starts: a word for each column of
|
|
40
|
-
* its direction, laid out card after card. The layout's header gets the card count, each direction's
|
|
41
|
-
* first card, and the columns over every card. The page pass's dispatch goes to `mesh_sdf_take`: a
|
|
42
|
-
* thread a column.
|
|
43
|
-
*
|
|
44
|
-
* @type {ComputeShader}
|
|
45
|
-
*/
|
|
46
|
-
export const shader_mesh_cards_merge = ComputeShader.from({
|
|
47
|
-
label: "Mesh Cards Merge",
|
|
48
|
-
resources,
|
|
49
|
-
body: CodeChunk.from(
|
|
50
|
-
//language=WGSL
|
|
51
|
-
`
|
|
52
|
-
@compute @workgroup_size(1)
|
|
53
|
-
fn main() {
|
|
54
|
-
let header = mesh_sdf_headers[settings.geometry];
|
|
55
|
-
let parts = mesh_card_placement_of(header.bricks);
|
|
56
|
-
let base = header.cards;
|
|
57
|
-
|
|
58
|
-
// each direction's next split, and its card starts so far: layer 0 starts the whole-grid card
|
|
59
|
-
var next = array<u32, ${MESH_CARD_DIRECTIONS}>();
|
|
60
|
-
var bounds = array<vec2<u32>, ${MESH_CARD_DIRECTIONS}>();
|
|
61
|
-
|
|
62
|
-
for (var d = 0u; d < MESH_CARD_DIRECTIONS; d++) {
|
|
63
|
-
bounds[d] = vec2<u32>(1u, 0u);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
for (var taken = 0u; taken < MESH_CARD_SPLITS_MAX; taken++) {
|
|
67
|
-
var best = MESH_CARD_DIRECTIONS;
|
|
68
|
-
var best_gain = 0u;
|
|
69
|
-
|
|
70
|
-
for (var d = 0u; d < MESH_CARD_DIRECTIONS; d++) {
|
|
71
|
-
if (next[d] >= MESH_CARD_SPLITS_MAX) {
|
|
72
|
-
continue;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
let gain = atomicLoad(&mesh_sdf_indirection[base + parts.splits + (d * MESH_CARD_SPLITS_MAX + next[d]) * 2u]);
|
|
76
|
-
|
|
77
|
-
if (gain > best_gain) {
|
|
78
|
-
best_gain = gain;
|
|
79
|
-
best = d;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
if (best == MESH_CARD_DIRECTIONS) {
|
|
84
|
-
break;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
let layer = atomicLoad(&mesh_sdf_indirection[base + parts.splits + (best * MESH_CARD_SPLITS_MAX + next[best]) * 2u + 1u]);
|
|
88
|
-
|
|
89
|
-
bounds[best][layer >> 5u] |= 1u << (layer & 31u);
|
|
90
|
-
next[best]++;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
var cards = 0u;
|
|
94
|
-
var columns = 0u;
|
|
95
|
-
|
|
96
|
-
for (var d = 0u; d < MESH_CARD_DIRECTIONS; d++) {
|
|
97
|
-
let extent = mesh_card_extent(header.bricks, d);
|
|
98
|
-
let bound = bounds[d];
|
|
99
|
-
|
|
100
|
-
atomicStore(&mesh_sdf_indirection[base + MESH_CARD_LAYOUT_DIRECTION_FIRST + d], cards);
|
|
101
|
-
|
|
102
|
-
var near = 0u;
|
|
103
|
-
|
|
104
|
-
while (near < extent.x) {
|
|
105
|
-
var far = near + 1u;
|
|
106
|
-
|
|
107
|
-
while (far < extent.x && ((bound[far >> 5u] >> (far & 31u)) & 1u) == 0u) {
|
|
108
|
-
far++;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
let record = base + MESH_CARD_LAYOUT_RECORDS + cards * MESH_CARD_RECORD_WORDS;
|
|
112
|
-
|
|
113
|
-
atomicStore(&mesh_sdf_indirection[record + MESH_CARD_RECORD_DIRECTION], d);
|
|
114
|
-
atomicStore(&mesh_sdf_indirection[record + MESH_CARD_RECORD_NEAR], near);
|
|
115
|
-
atomicStore(&mesh_sdf_indirection[record + MESH_CARD_RECORD_FAR], far);
|
|
116
|
-
atomicStore(&mesh_sdf_indirection[record + MESH_CARD_RECORD_TABLE], columns);
|
|
117
|
-
|
|
118
|
-
cards++;
|
|
119
|
-
columns += extent.y * extent.z;
|
|
120
|
-
near = far;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
atomicStore(&mesh_sdf_indirection[base + MESH_CARD_LAYOUT_CARD_COUNT], cards);
|
|
125
|
-
atomicStore(&mesh_sdf_indirection[base + MESH_CARD_LAYOUT_COLUMN_COUNT], columns);
|
|
126
|
-
atomicStore(&mesh_sdf_indirection[base + MESH_CARD_LAYOUT_PAGE_COUNT], 0u);
|
|
127
|
-
|
|
128
|
-
mesh_sdf_take[settings.dispatch] = (columns + ${MESH_SDF_BAKE_WORKGROUP_SIZE - 1}u) / ${MESH_SDF_BAKE_WORKGROUP_SIZE}u;
|
|
129
|
-
mesh_sdf_take[settings.dispatch + 1u] = 1u;
|
|
130
|
-
mesh_sdf_take[settings.dispatch + 2u] = 1u;
|
|
131
|
-
}
|
|
132
|
-
`, [
|
|
133
|
-
chunk_mesh_sdf_bake,
|
|
134
|
-
chunk_mesh_cards,
|
|
135
|
-
]),
|
|
136
|
-
});
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @type {WebGPUStruct}
|
|
3
|
-
*/
|
|
4
|
-
export const MESH_CARDS_PAGES_SETTINGS: WebGPUStruct;
|
|
5
|
-
/**
|
|
6
|
-
* Card placement, step 4 (PROBE_CLIPMAP_PROPOSAL_2026_10_27.md §6.5): a thread a column of every card,
|
|
7
|
-
* dispatched by the merge. A card has a page in a column when its slab holds an occupied brick
|
|
8
|
-
* there; the page is the column's 8×8 texels on the corner lattice of the bricks' faces.
|
|
9
|
-
*
|
|
10
|
-
* A column with a page takes the next page index, and writes it into its card's column table and
|
|
11
|
-
* itself into the page list: its card, then its column's u and v, a byte each. A column without one
|
|
12
|
-
* writes MESH_CARD_NO_PAGE. The pages come out in whatever order the threads take them. Capture
|
|
13
|
-
* walks the page list and a hit reads the column table, so neither needs another order.
|
|
14
|
-
*
|
|
15
|
-
* @type {ComputeShader}
|
|
16
|
-
*/
|
|
17
|
-
export const shader_mesh_cards_pages: ComputeShader;
|
|
18
|
-
import { WebGPUStruct } from "../../../shader/type/WebGPUStruct.js";
|
|
19
|
-
import { ComputeShader } from "../../../shader/ComputeShader.js";
|
|
20
|
-
//# sourceMappingURL=shader_mesh_cards_pages.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shader_mesh_cards_pages.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_pages.js"],"names":[],"mappings":"AAUA;;GAEG;AACH,wCAFU,YAAY,CAKO;AAU7B;;;;;;;;;;;GAWG;AACH,sCAFU,aAAa,CAmEpB;6BAnG0B,sCAAsC;8BAHrC,kCAAkC"}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import { CodeChunk } from "../../../shader/compiler/CodeChunk.js";
|
|
2
|
-
import { ComputeShader } from "../../../shader/ComputeShader.js";
|
|
3
|
-
import { ShaderResourceSetDescriptor } from "../../../shader/resource/ShaderResourceSetDescriptor.js";
|
|
4
|
-
import { u32 } from "../../../shader/type/WEBGPU_WGSL_PRIMITIVE_TYPES.js";
|
|
5
|
-
import { WebGPUStruct } from "../../../shader/type/WebGPUStruct.js";
|
|
6
|
-
import { chunk_mesh_sdf_bake, MESH_SDF_ARENA_RESOURCE } from "../bake/chunk_mesh_sdf_bake.js";
|
|
7
|
-
import { MESH_SDF_BAKE_WORKGROUP_SIZE } from "../bake/MESH_SDF_BAKE.js";
|
|
8
|
-
import { MESH_SDF_HEADERS_RESOURCE } from "../MESH_SDF_RESOURCES.js";
|
|
9
|
-
import { chunk_mesh_cards } from "./chunk_mesh_cards.js";
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* @type {WebGPUStruct}
|
|
13
|
-
*/
|
|
14
|
-
export const MESH_CARDS_PAGES_SETTINGS = WebGPUStruct.from({
|
|
15
|
-
/** the geometry whose cards are placed */
|
|
16
|
-
geometry: u32,
|
|
17
|
-
}, "MeshCardsPagesSettings");
|
|
18
|
-
|
|
19
|
-
const resources = new ShaderResourceSetDescriptor();
|
|
20
|
-
|
|
21
|
-
resources.setImmediate("settings", MESH_CARDS_PAGES_SETTINGS);
|
|
22
|
-
|
|
23
|
-
resources.createGroup()
|
|
24
|
-
.add(MESH_SDF_HEADERS_RESOURCE)
|
|
25
|
-
.add(MESH_SDF_ARENA_RESOURCE);
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Card placement, step 4 (PROBE_CLIPMAP_PROPOSAL_2026_10_27.md §6.5): a thread a column of every card,
|
|
29
|
-
* dispatched by the merge. A card has a page in a column when its slab holds an occupied brick
|
|
30
|
-
* there; the page is the column's 8×8 texels on the corner lattice of the bricks' faces.
|
|
31
|
-
*
|
|
32
|
-
* A column with a page takes the next page index, and writes it into its card's column table and
|
|
33
|
-
* itself into the page list: its card, then its column's u and v, a byte each. A column without one
|
|
34
|
-
* writes MESH_CARD_NO_PAGE. The pages come out in whatever order the threads take them. Capture
|
|
35
|
-
* walks the page list and a hit reads the column table, so neither needs another order.
|
|
36
|
-
*
|
|
37
|
-
* @type {ComputeShader}
|
|
38
|
-
*/
|
|
39
|
-
export const shader_mesh_cards_pages = ComputeShader.from({
|
|
40
|
-
label: "Mesh Cards Pages",
|
|
41
|
-
resources,
|
|
42
|
-
body: CodeChunk.from(
|
|
43
|
-
//language=WGSL
|
|
44
|
-
`
|
|
45
|
-
@compute @workgroup_size(${MESH_SDF_BAKE_WORKGROUP_SIZE})
|
|
46
|
-
fn main(@builtin(global_invocation_id) id: vec3<u32>) {
|
|
47
|
-
let header = mesh_sdf_headers[settings.geometry];
|
|
48
|
-
let base = header.cards;
|
|
49
|
-
let bricks = header.bricks;
|
|
50
|
-
|
|
51
|
-
let thread = id.x;
|
|
52
|
-
let columns = atomicLoad(&mesh_sdf_indirection[base + MESH_CARD_LAYOUT_COLUMN_COUNT]);
|
|
53
|
-
|
|
54
|
-
if (thread >= columns) {
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
// the card whose columns hold the thread: the last whose table starts at or before it
|
|
59
|
-
let cards = atomicLoad(&mesh_sdf_indirection[base + MESH_CARD_LAYOUT_CARD_COUNT]);
|
|
60
|
-
|
|
61
|
-
var card = 0u;
|
|
62
|
-
|
|
63
|
-
for (var c = 1u; c < cards; c++) {
|
|
64
|
-
if (atomicLoad(&mesh_sdf_indirection[base + MESH_CARD_LAYOUT_RECORDS + c * MESH_CARD_RECORD_WORDS + MESH_CARD_RECORD_TABLE]) > thread) {
|
|
65
|
-
break;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
card = c;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
let record = base + MESH_CARD_LAYOUT_RECORDS + card * MESH_CARD_RECORD_WORDS;
|
|
72
|
-
let direction = atomicLoad(&mesh_sdf_indirection[record + MESH_CARD_RECORD_DIRECTION]);
|
|
73
|
-
let near = atomicLoad(&mesh_sdf_indirection[record + MESH_CARD_RECORD_NEAR]);
|
|
74
|
-
let far = atomicLoad(&mesh_sdf_indirection[record + MESH_CARD_RECORD_FAR]);
|
|
75
|
-
let table = atomicLoad(&mesh_sdf_indirection[record + MESH_CARD_RECORD_TABLE]);
|
|
76
|
-
|
|
77
|
-
let extent = mesh_card_extent(bricks, direction);
|
|
78
|
-
let index = thread - table;
|
|
79
|
-
let column = vec2<u32>(index % extent.y, index / extent.y);
|
|
80
|
-
|
|
81
|
-
var seen = false;
|
|
82
|
-
|
|
83
|
-
for (var layer = near; layer < far && !seen; layer++) {
|
|
84
|
-
let brick = mesh_card_brick(bricks, direction, column, layer);
|
|
85
|
-
|
|
86
|
-
seen = mesh_sdf_entry_holds_slot(atomicLoad(&mesh_sdf_indirection[header.indirection + brick.x + bricks.x * (brick.y + bricks.y * brick.z)]));
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
var page = MESH_CARD_NO_PAGE;
|
|
90
|
-
|
|
91
|
-
if (seen) {
|
|
92
|
-
page = atomicAdd(&mesh_sdf_indirection[base + MESH_CARD_LAYOUT_PAGE_COUNT], 1u);
|
|
93
|
-
|
|
94
|
-
// the page list follows the tables
|
|
95
|
-
atomicStore(&mesh_sdf_indirection[base + MESH_CARD_LAYOUT_TABLES + columns + page], (card << 16u) | (column.y << 8u) | column.x);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
atomicStore(&mesh_sdf_indirection[base + MESH_CARD_LAYOUT_TABLES + thread], page);
|
|
99
|
-
}
|
|
100
|
-
`, [
|
|
101
|
-
chunk_mesh_sdf_bake,
|
|
102
|
-
chunk_mesh_cards,
|
|
103
|
-
]),
|
|
104
|
-
});
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Threads a workgroup of {@link shader_mesh_cards_raster_args}.
|
|
3
|
-
* @type {number}
|
|
4
|
-
*/
|
|
5
|
-
export const MESH_CARDS_RASTER_ARGS_WORKGROUP_SIZE: number;
|
|
6
|
-
/**
|
|
7
|
-
* @type {WebGPUStruct}
|
|
8
|
-
*/
|
|
9
|
-
export const MESH_CARDS_RASTER_ARGS_SETTINGS: WebGPUStruct;
|
|
10
|
-
/**
|
|
11
|
-
* Card capture by raster, step 1: a thread a run, writing its draw. The draw is every card of the
|
|
12
|
-
* layout times every meshlet of the geometry, as instances, at a meshlet's worth of vertices: the
|
|
13
|
-
* card count is the device's, so the draw follows it rather than {@link MESH_CARD_MAX}.
|
|
14
|
-
*
|
|
15
|
-
* @type {ComputeShader}
|
|
16
|
-
*/
|
|
17
|
-
export const shader_mesh_cards_raster_args: ComputeShader;
|
|
18
|
-
import { WebGPUStruct } from "../../../shader/type/WebGPUStruct.js";
|
|
19
|
-
import { ComputeShader } from "../../../shader/ComputeShader.js";
|
|
20
|
-
//# sourceMappingURL=shader_mesh_cards_raster_args.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shader_mesh_cards_raster_args.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_raster_args.js"],"names":[],"mappings":"AAcA;;;GAGG;AACH,oDAFU,MAAM,CAEwC;AAExD;;GAEG;AACH,8CAFU,YAAY,CAKY;AAclC;;;;;;GAMG;AACH,4CAFU,aAAa,CAkCpB;6BAzE0B,sCAAsC;8BAJrC,kCAAkC"}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { STRUCT_UNINDEXED_DRAW_COMMAND } from "../../../gpu_primitive/indirect/STRUCT_UNINDEXED_DRAW_COMMAND.js";
|
|
2
|
-
import { CodeChunk } from "../../../shader/compiler/CodeChunk.js";
|
|
3
|
-
import { ComputeShader } from "../../../shader/ComputeShader.js";
|
|
4
|
-
import { ShaderResourceSetDescriptor } from "../../../shader/resource/ShaderResourceSetDescriptor.js";
|
|
5
|
-
import { u32, vec4u } from "../../../shader/type/WEBGPU_WGSL_PRIMITIVE_TYPES.js";
|
|
6
|
-
import { WebGPUArray } from "../../../shader/type/WebGPUArray.js";
|
|
7
|
-
import { WebGPUStruct } from "../../../shader/type/WebGPUStruct.js";
|
|
8
|
-
import { GEOMETRY_METADATA_STRUCT } from "../../GEOMETRY_METADATA_STRUCT.js";
|
|
9
|
-
import { GEOMETRY_MESHLET_TRIANGLE_LIMIT } from "../../meshlet/GEOMETRY_MESHLET_TRIANGLE_LIMIT.js";
|
|
10
|
-
import { MESH_SDF_HEADERS_RESOURCE, MESH_SDF_INDIRECTION_RESOURCE } from "../MESH_SDF_RESOURCES.js";
|
|
11
|
-
import { chunk_mesh_cards } from "./chunk_mesh_cards.js";
|
|
12
|
-
import { MESH_CARD_SETS_RESOURCE } from "./MESH_CARD_RESOURCES.js";
|
|
13
|
-
import { MESH_CARD_SET_STRUCT } from "./MESH_CARD_SET_STRUCT.js";
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Threads a workgroup of {@link shader_mesh_cards_raster_args}.
|
|
17
|
-
* @type {number}
|
|
18
|
-
*/
|
|
19
|
-
export const MESH_CARDS_RASTER_ARGS_WORKGROUP_SIZE = 64;
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* @type {WebGPUStruct}
|
|
23
|
-
*/
|
|
24
|
-
export const MESH_CARDS_RASTER_ARGS_SETTINGS = WebGPUStruct.from({
|
|
25
|
-
/** raster runs this frame */
|
|
26
|
-
run_count: u32,
|
|
27
|
-
}, "MeshCardsRasterArgsSettings");
|
|
28
|
-
|
|
29
|
-
const resources = new ShaderResourceSetDescriptor();
|
|
30
|
-
|
|
31
|
-
resources.setImmediate("settings", MESH_CARDS_RASTER_ARGS_SETTINGS);
|
|
32
|
-
|
|
33
|
-
resources.createGroup()
|
|
34
|
-
.add(MESH_SDF_HEADERS_RESOURCE)
|
|
35
|
-
.add(MESH_SDF_INDIRECTION_RESOURCE)
|
|
36
|
-
.add(MESH_CARD_SETS_RESOURCE)
|
|
37
|
-
.addStorageBuffer("mesh_card_raster_runs", WebGPUArray.from(vec4u))
|
|
38
|
-
.addStorageBuffer("geometries", WebGPUArray.from(GEOMETRY_METADATA_STRUCT))
|
|
39
|
-
.addStorageBuffer("mesh_card_raster_draws", WebGPUArray.from(STRUCT_UNINDEXED_DRAW_COMMAND), true);
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Card capture by raster, step 1: a thread a run, writing its draw. The draw is every card of the
|
|
43
|
-
* layout times every meshlet of the geometry, as instances, at a meshlet's worth of vertices: the
|
|
44
|
-
* card count is the device's, so the draw follows it rather than {@link MESH_CARD_MAX}.
|
|
45
|
-
*
|
|
46
|
-
* @type {ComputeShader}
|
|
47
|
-
*/
|
|
48
|
-
export const shader_mesh_cards_raster_args = ComputeShader.from({
|
|
49
|
-
label: "Mesh Cards Raster Args",
|
|
50
|
-
resources,
|
|
51
|
-
body: CodeChunk.from(
|
|
52
|
-
//language=WGSL
|
|
53
|
-
`
|
|
54
|
-
@compute @workgroup_size(${MESH_CARDS_RASTER_ARGS_WORKGROUP_SIZE})
|
|
55
|
-
fn main(@builtin(global_invocation_id) id: vec3<u32>) {
|
|
56
|
-
let run = id.x;
|
|
57
|
-
|
|
58
|
-
if (run >= settings.run_count) {
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
let card_set = mesh_card_sets[mesh_card_raster_runs[run].y];
|
|
63
|
-
let cards = mesh_sdf_indirection[mesh_sdf_headers[card_set.geometry].cards + MESH_CARD_LAYOUT_CARD_COUNT];
|
|
64
|
-
|
|
65
|
-
var draw: ${STRUCT_UNINDEXED_DRAW_COMMAND.wgsl_ref};
|
|
66
|
-
|
|
67
|
-
draw.vertexCount = ${GEOMETRY_MESHLET_TRIANGLE_LIMIT * 3}u;
|
|
68
|
-
draw.instanceCount = min(cards, MESH_CARD_MAX) * geometries[card_set.geometry].meshlets_count;
|
|
69
|
-
draw.firstVertex = 0u;
|
|
70
|
-
draw.firstInstance = 0u;
|
|
71
|
-
|
|
72
|
-
mesh_card_raster_draws[run] = draw;
|
|
73
|
-
}
|
|
74
|
-
`, [
|
|
75
|
-
STRUCT_UNINDEXED_DRAW_COMMAND.declaration_chunk,
|
|
76
|
-
GEOMETRY_METADATA_STRUCT.declaration_chunk,
|
|
77
|
-
MESH_CARD_SET_STRUCT.declaration_chunk,
|
|
78
|
-
chunk_mesh_cards,
|
|
79
|
-
]),
|
|
80
|
-
});
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @type {WebGPUStruct}
|
|
3
|
-
*/
|
|
4
|
-
export const MESH_CARDS_RASTER_SCATTER_SETTINGS: WebGPUStruct;
|
|
5
|
-
/**
|
|
6
|
-
* Card capture by raster, step 3: a thread a texel of each page of the frame's raster runs, a whole
|
|
7
|
-
* card set each, moving the texel from its card's cell of the scratch into the page's atlas tile.
|
|
8
|
-
* The thread → (run, page, texel) mapping is the trace's: the runs' first threads are ascending.
|
|
9
|
-
*
|
|
10
|
-
* Page texel (x, y) of column (u, v) is lattice point (7u + x, 7v + y) of the card, texel
|
|
11
|
-
* (7u + x, 7v + y) of its cell: a page's last texel and the next column's first are one texel.
|
|
12
|
-
*
|
|
13
|
-
* @type {ComputeShader}
|
|
14
|
-
*/
|
|
15
|
-
export const shader_mesh_cards_raster_scatter: ComputeShader;
|
|
16
|
-
import { WebGPUStruct } from "../../../shader/type/WebGPUStruct.js";
|
|
17
|
-
import { ComputeShader } from "../../../shader/ComputeShader.js";
|
|
18
|
-
//# sourceMappingURL=shader_mesh_cards_raster_scatter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shader_mesh_cards_raster_scatter.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_raster_scatter.js"],"names":[],"mappings":"AAcA;;GAEG;AACH,iDAFU,YAAY,CASe;AAgBrC;;;;;;;;;GASG;AACH,+CAFU,aAAa,CAgEpB;6BA1G0B,sCAAsC;8BAJrC,kCAAkC"}
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import { chunk_index_to_grid2d } from "../../../shader/chunk/grid/chunk_index_to_grid2d.js";
|
|
2
|
-
import { CodeChunk } from "../../../shader/compiler/CodeChunk.js";
|
|
3
|
-
import { ComputeShader } from "../../../shader/ComputeShader.js";
|
|
4
|
-
import { ShaderResourceSetDescriptor } from "../../../shader/resource/ShaderResourceSetDescriptor.js";
|
|
5
|
-
import { u32, vec4u } from "../../../shader/type/WEBGPU_WGSL_PRIMITIVE_TYPES.js";
|
|
6
|
-
import { WebGPUArray } from "../../../shader/type/WebGPUArray.js";
|
|
7
|
-
import { WebGPUStruct } from "../../../shader/type/WebGPUStruct.js";
|
|
8
|
-
import { MESH_SDF_BAKE_WORKGROUP_SIZE } from "../bake/MESH_SDF_BAKE.js";
|
|
9
|
-
import { MESH_SDF_HEADERS_RESOURCE, MESH_SDF_INDIRECTION_RESOURCE } from "../MESH_SDF_RESOURCES.js";
|
|
10
|
-
import { chunk_mesh_cards } from "./chunk_mesh_cards.js";
|
|
11
|
-
import { MESH_CARD_SETS_RESOURCE } from "./MESH_CARD_RESOURCES.js";
|
|
12
|
-
import { MESH_CARD_SET_STRUCT } from "./MESH_CARD_SET_STRUCT.js";
|
|
13
|
-
import { MESH_CARD_RASTER_CELLS_X } from "./mesh_cards_raster_pass_descriptor.js";
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* @type {WebGPUStruct}
|
|
17
|
-
*/
|
|
18
|
-
export const MESH_CARDS_RASTER_SCATTER_SETTINGS = WebGPUStruct.from({
|
|
19
|
-
/** raster runs this frame */
|
|
20
|
-
run_count: u32,
|
|
21
|
-
/** texels over every run's pages: the threads that do work */
|
|
22
|
-
thread_count: u32,
|
|
23
|
-
/** workgroups along x, the rest folded into y */
|
|
24
|
-
groups_x: u32,
|
|
25
|
-
}, "MeshCardsRasterScatterSettings");
|
|
26
|
-
|
|
27
|
-
const resources = new ShaderResourceSetDescriptor();
|
|
28
|
-
|
|
29
|
-
resources.setImmediate("settings", MESH_CARDS_RASTER_SCATTER_SETTINGS);
|
|
30
|
-
|
|
31
|
-
resources.createGroup()
|
|
32
|
-
.add(MESH_SDF_HEADERS_RESOURCE)
|
|
33
|
-
.add(MESH_SDF_INDIRECTION_RESOURCE)
|
|
34
|
-
.add(MESH_CARD_SETS_RESOURCE)
|
|
35
|
-
.addStorageBuffer("mesh_card_raster_runs", WebGPUArray.from(vec4u))
|
|
36
|
-
.addTexture("mesh_card_raster_albedo", "float", "2d")
|
|
37
|
-
.addTexture("mesh_card_raster_emissive", "float", "2d")
|
|
38
|
-
.addStorageTexture("mesh_card_albedo", "rgba8unorm", "2d", "write-only")
|
|
39
|
-
.addStorageTexture("mesh_card_emissive", "rgba8unorm", "2d", "write-only");
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Card capture by raster, step 3: a thread a texel of each page of the frame's raster runs, a whole
|
|
43
|
-
* card set each, moving the texel from its card's cell of the scratch into the page's atlas tile.
|
|
44
|
-
* The thread → (run, page, texel) mapping is the trace's: the runs' first threads are ascending.
|
|
45
|
-
*
|
|
46
|
-
* Page texel (x, y) of column (u, v) is lattice point (7u + x, 7v + y) of the card, texel
|
|
47
|
-
* (7u + x, 7v + y) of its cell: a page's last texel and the next column's first are one texel.
|
|
48
|
-
*
|
|
49
|
-
* @type {ComputeShader}
|
|
50
|
-
*/
|
|
51
|
-
export const shader_mesh_cards_raster_scatter = ComputeShader.from({
|
|
52
|
-
label: "Mesh Cards Raster Scatter",
|
|
53
|
-
resources,
|
|
54
|
-
body: CodeChunk.from(
|
|
55
|
-
//language=WGSL
|
|
56
|
-
`
|
|
57
|
-
@compute @workgroup_size(${MESH_SDF_BAKE_WORKGROUP_SIZE})
|
|
58
|
-
fn main(
|
|
59
|
-
@builtin(workgroup_id) workgroup_id: vec3<u32>,
|
|
60
|
-
@builtin(local_invocation_index) lane: u32,
|
|
61
|
-
) {
|
|
62
|
-
let thread = (workgroup_id.y * settings.groups_x + workgroup_id.x) * ${MESH_SDF_BAKE_WORKGROUP_SIZE}u + lane;
|
|
63
|
-
|
|
64
|
-
if (thread >= settings.thread_count) {
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
// the run the thread falls in: the last whose first thread is at or below it
|
|
69
|
-
var low = 0u;
|
|
70
|
-
var high = settings.run_count;
|
|
71
|
-
|
|
72
|
-
while (high - low > 1u) {
|
|
73
|
-
let middle = (low + high) / 2u;
|
|
74
|
-
|
|
75
|
-
if (mesh_card_raster_runs[middle].x <= thread) {
|
|
76
|
-
low = middle;
|
|
77
|
-
} else {
|
|
78
|
-
high = middle;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
let run = mesh_card_raster_runs[low];
|
|
83
|
-
let card_set = mesh_card_sets[run.y];
|
|
84
|
-
|
|
85
|
-
let page_texels = MESH_CARD_PAGE_TEXELS * MESH_CARD_PAGE_TEXELS;
|
|
86
|
-
let within = thread - run.x;
|
|
87
|
-
let page = within / page_texels;
|
|
88
|
-
let texel = vec2<u32>(within % MESH_CARD_PAGE_TEXELS, (within / MESH_CARD_PAGE_TEXELS) % MESH_CARD_PAGE_TEXELS);
|
|
89
|
-
|
|
90
|
-
let header = mesh_sdf_headers[card_set.geometry];
|
|
91
|
-
let columns = mesh_sdf_indirection[header.cards + MESH_CARD_LAYOUT_COLUMN_COUNT];
|
|
92
|
-
|
|
93
|
-
// the page list follows the tables
|
|
94
|
-
let listed = mesh_sdf_indirection[header.cards + MESH_CARD_LAYOUT_TABLES + columns + page];
|
|
95
|
-
let card = listed >> 16u;
|
|
96
|
-
let column = vec2<u32>(listed & 0xffu, (listed >> 8u) & 0xffu);
|
|
97
|
-
|
|
98
|
-
let corner = vec2<u32>(run.z & 0xffffu, run.z >> 16u)
|
|
99
|
-
+ vec2<u32>(card % ${MESH_CARD_RASTER_CELLS_X}u, card / ${MESH_CARD_RASTER_CELLS_X}u) * run.w;
|
|
100
|
-
let drawn = corner + column * MESH_SDF_BRICK_VOXELS + texel;
|
|
101
|
-
|
|
102
|
-
let tiles_per_row = textureDimensions(mesh_card_albedo).x / MESH_CARD_PAGE_TEXELS;
|
|
103
|
-
let stored = index_to_grid2d(card_set.page_base + page, tiles_per_row) * MESH_CARD_PAGE_TEXELS + texel;
|
|
104
|
-
|
|
105
|
-
textureStore(mesh_card_albedo, stored, textureLoad(mesh_card_raster_albedo, drawn, 0));
|
|
106
|
-
textureStore(mesh_card_emissive, stored, textureLoad(mesh_card_raster_emissive, drawn, 0));
|
|
107
|
-
}
|
|
108
|
-
`, [
|
|
109
|
-
MESH_CARD_SET_STRUCT.declaration_chunk,
|
|
110
|
-
chunk_mesh_cards,
|
|
111
|
-
chunk_index_to_grid2d,
|
|
112
|
-
]),
|
|
113
|
-
});
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @type {WebGPUStruct}
|
|
3
|
-
*/
|
|
4
|
-
export const MESH_CARDS_SPLIT_SETTINGS: WebGPUStruct;
|
|
5
|
-
/**
|
|
6
|
-
* Card placement, step 2 (PROBE_CLIPMAP_PROPOSAL_2026_10_27.md §6.5): a thread a direction runs its
|
|
7
|
-
* greedy search. The direction starts with one card over the whole grid, its outer projection, and
|
|
8
|
-
* each split takes the layer that newly covers the most run starts.
|
|
9
|
-
*
|
|
10
|
-
* Within a direction the cards partition the layers. A run start (m, z) lies in the card whose
|
|
11
|
-
* layers hold z, and is covered when that card's near face is at or before m. A split of card
|
|
12
|
-
* [k₀, k₁) at layer s gives the far part [s, k₁), which newly covers the uncovered run starts with
|
|
13
|
-
* k₀ < m ≤ s ≤ z < k₁. The near part keeps its own, so coverage never shrinks. That count is a
|
|
14
|
-
* rectangle of the (m, z) histogram, read from its 2-D prefix sums in four loads.
|
|
15
|
-
*
|
|
16
|
-
* A direction's gains never grow from one split to the next, and splits along one direction leave
|
|
17
|
-
* the others' gains alone. Merging the six directions' sequences by gain is therefore the greedy
|
|
18
|
-
* search over all six, which the merge does. The splits are written in the order taken, (gain,
|
|
19
|
-
* layer) each, MESH_CARD_SPLITS_MAX at most; the first gain of 0 ends the sequence.
|
|
20
|
-
*
|
|
21
|
-
* Runs on the device as the bake does, a pass with nothing to wait on, though the six threads do
|
|
22
|
-
* work a frame's passes must not: the prefix sums over every (m, z) of the direction, and up to 26
|
|
23
|
-
* scans of its layers. It runs once for each geometry that turns resident.
|
|
24
|
-
*
|
|
25
|
-
* @type {ComputeShader}
|
|
26
|
-
*/
|
|
27
|
-
export const shader_mesh_cards_split: ComputeShader;
|
|
28
|
-
import { WebGPUStruct } from "../../../shader/type/WebGPUStruct.js";
|
|
29
|
-
import { ComputeShader } from "../../../shader/ComputeShader.js";
|
|
30
|
-
//# sourceMappingURL=shader_mesh_cards_split.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shader_mesh_cards_split.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_split.js"],"names":[],"mappings":"AAUA;;GAEG;AACH,wCAFU,YAAY,CAKO;AAU7B;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,sCAFU,aAAa,CAmGpB;6BA7I0B,sCAAsC;8BAHrC,kCAAkC"}
|