@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
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
* read every frame the mode runs (PROBE_CLIPMAP_PROPOSAL_2026_10_27.md §10).
|
|
4
4
|
*
|
|
5
5
|
* Three kinds of field, by what a change costs:
|
|
6
|
-
* - **structure**: the cascade counts and resolutions, the brick voxel, the probe spacing,
|
|
7
|
-
* radiance and depth resolutions. A change destroys the GI and
|
|
8
|
-
* so its bricks and probes warm up from nothing.
|
|
6
|
+
* - **structure**: the cascade counts and resolutions, the brick voxel, the probe spacing, the
|
|
7
|
+
* radiance and depth resolutions, and where hits take their material. A change destroys the GI and
|
|
8
|
+
* builds it again at the next frame, so its bricks and probes warm up from nothing.
|
|
9
9
|
* - **the mesh caches**: {@link mesh_sdf_voxel_size} and {@link mesh_sdf_max_bricks}. A change bakes
|
|
10
10
|
* every cached geometry again.
|
|
11
11
|
* - **budgets and times**: they size a frame's work and set uniforms, and take effect the next frame
|
|
@@ -97,7 +97,9 @@ export class ProbeClipmapSettings {
|
|
|
97
97
|
* §6.4). Over Sponza's fill, its 103 geometries all coarsened by the cap, with the budgets
|
|
98
98
|
* interleaved in one process, evaluate costs 798 µs plus 8.6 µs a brick at the median, which
|
|
99
99
|
* reaches 1 ms at 23. At 23 the fill's evaluate costs 840 µs a frame at the median and 5.3 ms at
|
|
100
|
-
* worst, and every geometry is resident after 5,712 frames of baking.
|
|
100
|
+
* worst, and every geometry is resident after 5,712 frames of baking. Finding the slots that hold a
|
|
101
|
+
* frame's bricks already and comparing their bytes (the key and resolve passes) adds 29 µs at the
|
|
102
|
+
* median.
|
|
101
103
|
*
|
|
102
104
|
* On the AMD iGPU (RDNA2) the same 23 bricks cost 26 ms a frame at the median and 79 ms at worst,
|
|
103
105
|
* and no budget fits 1 ms: one brick costs 2.3 ms there.
|
|
@@ -105,59 +107,30 @@ export class ProbeClipmapSettings {
|
|
|
105
107
|
*/
|
|
106
108
|
get mesh_sdf_bake_budget(): number;
|
|
107
109
|
/**
|
|
108
|
-
* @param {number} v a positive integer
|
|
109
|
-
*
|
|
110
|
+
* @param {number} v a positive integer: a frame lists every texel of its bricks in one storage
|
|
111
|
+
* binding, which the bake checks against the device
|
|
110
112
|
*/
|
|
111
|
-
set
|
|
113
|
+
set surface_bake_budget(v: number);
|
|
112
114
|
/**
|
|
113
|
-
*
|
|
114
|
-
* materials that changed
|
|
115
|
-
*
|
|
116
|
-
* a material sample
|
|
115
|
+
* Model Surface Cache bricks surveyed and baked a frame at most: fields' surveys first, then new
|
|
116
|
+
* (geometry, material) pairs, then bakes again of materials that changed. A time knob. A brick is a
|
|
117
|
+
* thread a texel to find which hold surface, a workgroup of 64 rays for each that does, each ray up
|
|
118
|
+
* to four alpha draws and a material sample, against the pair's geometry alone, and a workgroup for
|
|
119
|
+
* each of its blocks to code them; a survey's brick is its first pass alone. A frame with nothing to
|
|
120
|
+
* do spends nothing. A cache is held for each pair the SDF world draws: for every 4³ block of its
|
|
121
|
+
* geometry's field's bricks that can hold surface, a block of each plane that varies over the pair's
|
|
122
|
+
* surface (48 B of albedo, 20 B of metalness and roughness, 256 B of emissive) and 8 B of presence; a
|
|
123
|
+
* pair that varies in no plane is neither surveyed nor baked.
|
|
117
124
|
*
|
|
118
|
-
* The default is derived against 1 ms a frame on the RTX 4090, as {@link mesh_sdf_bake_budget}
|
|
119
|
-
*
|
|
120
|
-
*
|
|
121
|
-
*
|
|
122
|
-
* GPU with another load of
|
|
123
|
-
*
|
|
124
|
-
*
|
|
125
|
-
* Re-derived once the material reads became trilinear at a texel's footprint (2026-10-30), which
|
|
126
|
-
* costs 1.30× at the median, timed on the same pages in the same frame: 16,384 pages cost 0.54 and
|
|
127
|
-
* 0.55 ms at the median in two runs (the old capture 0.54 ms beside them), 32,768 cost 1.48 and
|
|
128
|
-
* 1.52 ms, and the least loaded frames 0.15 ms at 16,384.
|
|
129
|
-
*
|
|
130
|
-
* On the AMD iGPU (RDNA2), measured before that, a page costs 0.78 µs: 16,384 pages cost 33.5 ms at
|
|
131
|
-
* the median, and about 1,290 fit 1 ms (1,024 cost 0.80 ms).
|
|
132
|
-
*
|
|
133
|
-
* Derived for {@link MeshCardCaptureMode.Trace}. A rastered card set is taken whole, the frame's
|
|
134
|
-
* last past the budget, and a frame also stops at what its scratch holds: at the largest budget
|
|
135
|
-
* Sponza's recapture took 13 frames on the iGPU, 2.5 ms of capture a frame on average.
|
|
125
|
+
* The default is derived against 1 ms a frame on the RTX 4090, as {@link mesh_sdf_bake_budget} is.
|
|
126
|
+
* Over Sponza's 103 caches (115,978 bricks), baked again with the budgets interleaved frame by frame
|
|
127
|
+
* in one process, 512 bricks cost 0.77 to 0.95 ms at the median in four runs (1.9 to 2.5 ms at the
|
|
128
|
+
* 90th percentile), and 256 cost 0.38 to 0.42 ms, before the blocks are coded, which adds 0.08 ms at
|
|
129
|
+
* 512. Runs sharing the GPU with another load of 38-73% read 0.95 to 1.34 ms at 512. At the default
|
|
130
|
+
* Sponza's caches are baked in 227 frames.
|
|
136
131
|
* @returns {number}
|
|
137
132
|
*/
|
|
138
|
-
get
|
|
139
|
-
/**
|
|
140
|
-
* @param {MeshCardCaptureMode} v
|
|
141
|
-
*/
|
|
142
|
-
set card_capture_mode(v: number);
|
|
143
|
-
/**
|
|
144
|
-
* How card pages are captured: each card drawn through its material's own template and textures,
|
|
145
|
-
* or a ray a texel against the geometry's BLAS with the path tracer's material sampling. A change
|
|
146
|
-
* captures every card set again.
|
|
147
|
-
*
|
|
148
|
-
* Raster is the default. The trace took one level-0 tap of the material's 64² resident copy a
|
|
149
|
-
* texel and kept it, which aliased: on Sponza's outer wall the brick texture's dark band, every
|
|
150
|
-
* 12.8 card texels, landed on a row of texels once and between rows at its other repeats, a seam
|
|
151
|
-
* across the wall. The raster samples the texture's mips at the card texel's footprint, as UE's
|
|
152
|
-
* card capture does, and since 2026-10-30 the trace reads the resident copy's mips there too,
|
|
153
|
-
* trilinearly, at 1.30× its cost (see {@link card_capture_budget}). Against the one-tap trace, the
|
|
154
|
-
* cards' colours agreed with the raster's to 3 codes on average over Sponza's wall, floor, ceiling
|
|
155
|
-
* and banners, and recapturing all of Sponza (154,138 pages) at the largest budget, the two
|
|
156
|
-
* interleaved in one process, cost the trace 9.1–12.7 ms and the raster 0.6 ms on the RTX 4090,
|
|
157
|
-
* and 335 ms against 33 ms on the AMD iGPU (RDNA2).
|
|
158
|
-
* @returns {MeshCardCaptureMode}
|
|
159
|
-
*/
|
|
160
|
-
get card_capture_mode(): number;
|
|
133
|
+
get surface_bake_budget(): number;
|
|
161
134
|
/**
|
|
162
135
|
* @param {number} v a positive integer; the probe clipmap checks it against what its layout and the
|
|
163
136
|
* device hold when it is built
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProbeClipmapSettings.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/global_illumination/probe_clipmap/ProbeClipmapSettings.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ProbeClipmapSettings.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/global_illumination/probe_clipmap/ProbeClipmapSettings.js"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;GAgBG;AACH;IAaI;;;OAGG;IACH,mCAIC;IAjBD;;;;OAIG;IACH,kCAEC;IAsBD;;;OAGG;IACH,wCAKC;IAjBD;;;OAGG;IACH,uCAEC;IAyBD;;OAEG;IACH,gCAKC;IAlBD;;;;;OAKG;IACH,+BAEC;IAuBD;;OAEG;IACH,kCAIC;IAhBD;;;;OAIG;IACH,iCAEC;IAuBD;;OAEG;IACH,mCAKC;IAlBD;;;;;OAKG;IACH,kCAEC;IAyBD;;;OAGG;IACH,mCAMC;IArBD;;;;;;OAMG;IACH,kCAEC;IAsCD;;;OAGG;IACH,oCAKC;IA/BD;;;;;;;;;;;;;;;;;OAiBG;IACH,mCAEC;IAsCD;;;OAGG;IACH,mCAIC;IA/BD;;;;;;;;;;;;;;;;;;OAkBG;IACH,kCAEC;IAuBD;;;OAGG;IACH,mCAIC;IAjBD;;;;OAIG;IACH,kCAEC;IAsBD;;;OAGG;IACH,wCAKC;IAjBD;;;OAGG;IACH,uCAEC;IAyBD;;OAEG;IACH,6BAKC;IAlBD;;;;;OAKG;IACH,4BAEC;IAuBD;;;OAGG;IACH,mCAMC;IAnBD;;;;OAIG;IACH,kCAEC;IAyBD;;OAEG;IACH,gCAKC;IAjBD;;;;OAIG;IACH,+BAEC;IAuBD;;;;OAIG;IACH,8BAKC;IAnBD;;;;OAIG;IACH,6BAEC;IAyBD;;;OAGG;IACH,0BAIC;IAjBD;;;;OAIG;IACH,yBAEC;IAYD;;;;;OAKG;IACH,iCAEC;IAED;;;OAGG;IACH,+BAEC;IAeD;;;OAGG;IACH,yCAIC;IAnBD;;;;;;OAMG;IACH,wCAEC;IAuBD;;OAEG;IACH,+CAMC;IAlBD;;;;OAIG;IACH,8CAEC;IAwBD;;OAEG;IACH,4CAKC;IAjBD;;;;OAIG;IACH,2CAEC;IAuBD;;;OAGG;IACH,0CAKC;IAlBD;;;;OAIG;IACH,yCAEC;IA2BD;;OAEG;IACH,+BAKC;IApBD;;;;;;;OAOG;IACH,8BAEC;IAyBD;;OAEG;IACH,mCAIC;IAlBD;;;;;;OAMG;IACH,kCAEC;IAwBD;;OAEG;IACH,+BAIC;IAlBD;;;;;;OAMG;IACH,8BAEC;IAsBD;;OAEG;IACH,0BAIC;IAhBD;;;;OAIG;IACH,yBAEC;;CAUJ"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { assert } from "../../../../core/assert.js";
|
|
2
2
|
import { isPowerOfTwo } from "../../../../core/math/isPowerOfTwo.js";
|
|
3
|
-
import { MESH_CARD_CAPTURE_BUDGET_MAX } from "../../geometry/sdf/cards/GPUMeshCardSets.js";
|
|
4
|
-
import { MeshCardCaptureMode } from "../../geometry/sdf/cards/MeshCardCaptureMode.js";
|
|
5
3
|
import { MESH_SDF_BAKE_BUDGET_MAX } from "../../geometry/sdf/GPUGeometrySDFManager.js";
|
|
6
4
|
import { ProbeClipmapDebugView } from "./debug/ProbeClipmapDebugView.js";
|
|
7
5
|
import { FRUSTUM_RAY_BUDGET_FRACTION } from "./probe/PROBE_CLIPMAP.js";
|
|
@@ -11,9 +9,9 @@ import { FRUSTUM_RAY_BUDGET_FRACTION } from "./probe/PROBE_CLIPMAP.js";
|
|
|
11
9
|
* read every frame the mode runs (PROBE_CLIPMAP_PROPOSAL_2026_10_27.md §10).
|
|
12
10
|
*
|
|
13
11
|
* Three kinds of field, by what a change costs:
|
|
14
|
-
* - **structure**: the cascade counts and resolutions, the brick voxel, the probe spacing,
|
|
15
|
-
* radiance and depth resolutions. A change destroys the GI and
|
|
16
|
-
* so its bricks and probes warm up from nothing.
|
|
12
|
+
* - **structure**: the cascade counts and resolutions, the brick voxel, the probe spacing, the
|
|
13
|
+
* radiance and depth resolutions, and where hits take their material. A change destroys the GI and
|
|
14
|
+
* builds it again at the next frame, so its bricks and probes warm up from nothing.
|
|
17
15
|
* - **the mesh caches**: {@link mesh_sdf_voxel_size} and {@link mesh_sdf_max_bricks}. A change bakes
|
|
18
16
|
* every cached geometry again.
|
|
19
17
|
* - **budgets and times**: they size a frame's work and set uniforms, and take effect the next frame
|
|
@@ -168,7 +166,9 @@ export class ProbeClipmapSettings {
|
|
|
168
166
|
* §6.4). Over Sponza's fill, its 103 geometries all coarsened by the cap, with the budgets
|
|
169
167
|
* interleaved in one process, evaluate costs 798 µs plus 8.6 µs a brick at the median, which
|
|
170
168
|
* reaches 1 ms at 23. At 23 the fill's evaluate costs 840 µs a frame at the median and 5.3 ms at
|
|
171
|
-
* worst, and every geometry is resident after 5,712 frames of baking.
|
|
169
|
+
* worst, and every geometry is resident after 5,712 frames of baking. Finding the slots that hold a
|
|
170
|
+
* frame's bricks already and comparing their bytes (the key and resolve passes) adds 29 µs at the
|
|
171
|
+
* median.
|
|
172
172
|
*
|
|
173
173
|
* On the AMD iGPU (RDNA2) the same 23 bricks cost 26 ms a frame at the median and 79 ms at worst,
|
|
174
174
|
* and no budget fits 1 ms: one brick costs 2.3 ms there.
|
|
@@ -189,79 +189,39 @@ export class ProbeClipmapSettings {
|
|
|
189
189
|
this.#mesh_sdf_bake_budget = v;
|
|
190
190
|
}
|
|
191
191
|
|
|
192
|
-
#
|
|
192
|
+
#surface_bake_budget = 512;
|
|
193
193
|
|
|
194
194
|
/**
|
|
195
|
-
*
|
|
196
|
-
* materials that changed
|
|
197
|
-
*
|
|
198
|
-
* a material sample
|
|
195
|
+
* Model Surface Cache bricks surveyed and baked a frame at most: fields' surveys first, then new
|
|
196
|
+
* (geometry, material) pairs, then bakes again of materials that changed. A time knob. A brick is a
|
|
197
|
+
* thread a texel to find which hold surface, a workgroup of 64 rays for each that does, each ray up
|
|
198
|
+
* to four alpha draws and a material sample, against the pair's geometry alone, and a workgroup for
|
|
199
|
+
* each of its blocks to code them; a survey's brick is its first pass alone. A frame with nothing to
|
|
200
|
+
* do spends nothing. A cache is held for each pair the SDF world draws: for every 4³ block of its
|
|
201
|
+
* geometry's field's bricks that can hold surface, a block of each plane that varies over the pair's
|
|
202
|
+
* surface (48 B of albedo, 20 B of metalness and roughness, 256 B of emissive) and 8 B of presence; a
|
|
203
|
+
* pair that varies in no plane is neither surveyed nor baked.
|
|
199
204
|
*
|
|
200
|
-
* The default is derived against 1 ms a frame on the RTX 4090, as {@link mesh_sdf_bake_budget}
|
|
201
|
-
*
|
|
202
|
-
*
|
|
203
|
-
*
|
|
204
|
-
* GPU with another load of
|
|
205
|
-
*
|
|
206
|
-
*
|
|
207
|
-
* Re-derived once the material reads became trilinear at a texel's footprint (2026-10-30), which
|
|
208
|
-
* costs 1.30× at the median, timed on the same pages in the same frame: 16,384 pages cost 0.54 and
|
|
209
|
-
* 0.55 ms at the median in two runs (the old capture 0.54 ms beside them), 32,768 cost 1.48 and
|
|
210
|
-
* 1.52 ms, and the least loaded frames 0.15 ms at 16,384.
|
|
211
|
-
*
|
|
212
|
-
* On the AMD iGPU (RDNA2), measured before that, a page costs 0.78 µs: 16,384 pages cost 33.5 ms at
|
|
213
|
-
* the median, and about 1,290 fit 1 ms (1,024 cost 0.80 ms).
|
|
214
|
-
*
|
|
215
|
-
* Derived for {@link MeshCardCaptureMode.Trace}. A rastered card set is taken whole, the frame's
|
|
216
|
-
* last past the budget, and a frame also stops at what its scratch holds: at the largest budget
|
|
217
|
-
* Sponza's recapture took 13 frames on the iGPU, 2.5 ms of capture a frame on average.
|
|
205
|
+
* The default is derived against 1 ms a frame on the RTX 4090, as {@link mesh_sdf_bake_budget} is.
|
|
206
|
+
* Over Sponza's 103 caches (115,978 bricks), baked again with the budgets interleaved frame by frame
|
|
207
|
+
* in one process, 512 bricks cost 0.77 to 0.95 ms at the median in four runs (1.9 to 2.5 ms at the
|
|
208
|
+
* 90th percentile), and 256 cost 0.38 to 0.42 ms, before the blocks are coded, which adds 0.08 ms at
|
|
209
|
+
* 512. Runs sharing the GPU with another load of 38-73% read 0.95 to 1.34 ms at 512. At the default
|
|
210
|
+
* Sponza's caches are baked in 227 frames.
|
|
218
211
|
* @returns {number}
|
|
219
212
|
*/
|
|
220
|
-
get
|
|
221
|
-
return this.#
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
/**
|
|
225
|
-
* @param {number} v a positive integer, at most {@link MESH_CARD_CAPTURE_BUDGET_MAX}: a workgroup a
|
|
226
|
-
* page in one dispatch row
|
|
227
|
-
*/
|
|
228
|
-
set card_capture_budget(v) {
|
|
229
|
-
assert.isPositiveInteger(v, 'card_capture_budget');
|
|
230
|
-
assert.lessThanOrEqual(v, MESH_CARD_CAPTURE_BUDGET_MAX, 'card_capture_budget');
|
|
231
|
-
|
|
232
|
-
this.#card_capture_budget = v;
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
#card_capture_mode = MeshCardCaptureMode.Raster;
|
|
236
|
-
|
|
237
|
-
/**
|
|
238
|
-
* How card pages are captured: each card drawn through its material's own template and textures,
|
|
239
|
-
* or a ray a texel against the geometry's BLAS with the path tracer's material sampling. A change
|
|
240
|
-
* captures every card set again.
|
|
241
|
-
*
|
|
242
|
-
* Raster is the default. The trace took one level-0 tap of the material's 64² resident copy a
|
|
243
|
-
* texel and kept it, which aliased: on Sponza's outer wall the brick texture's dark band, every
|
|
244
|
-
* 12.8 card texels, landed on a row of texels once and between rows at its other repeats, a seam
|
|
245
|
-
* across the wall. The raster samples the texture's mips at the card texel's footprint, as UE's
|
|
246
|
-
* card capture does, and since 2026-10-30 the trace reads the resident copy's mips there too,
|
|
247
|
-
* trilinearly, at 1.30× its cost (see {@link card_capture_budget}). Against the one-tap trace, the
|
|
248
|
-
* cards' colours agreed with the raster's to 3 codes on average over Sponza's wall, floor, ceiling
|
|
249
|
-
* and banners, and recapturing all of Sponza (154,138 pages) at the largest budget, the two
|
|
250
|
-
* interleaved in one process, cost the trace 9.1–12.7 ms and the raster 0.6 ms on the RTX 4090,
|
|
251
|
-
* and 335 ms against 33 ms on the AMD iGPU (RDNA2).
|
|
252
|
-
* @returns {MeshCardCaptureMode}
|
|
253
|
-
*/
|
|
254
|
-
get card_capture_mode() {
|
|
255
|
-
return this.#card_capture_mode;
|
|
213
|
+
get surface_bake_budget() {
|
|
214
|
+
return this.#surface_bake_budget;
|
|
256
215
|
}
|
|
257
216
|
|
|
258
217
|
/**
|
|
259
|
-
* @param {
|
|
218
|
+
* @param {number} v a positive integer: a frame lists every texel of its bricks in one storage
|
|
219
|
+
* binding, which the bake checks against the device
|
|
260
220
|
*/
|
|
261
|
-
set
|
|
262
|
-
assert.
|
|
221
|
+
set surface_bake_budget(v) {
|
|
222
|
+
assert.isPositiveInteger(v, 'surface_bake_budget');
|
|
263
223
|
|
|
264
|
-
this.#
|
|
224
|
+
this.#surface_bake_budget = v;
|
|
265
225
|
}
|
|
266
226
|
|
|
267
227
|
#probe_cascade_count = 5;
|
|
@@ -28,19 +28,9 @@ export const BRICK_CLIPMAP_STORE_PENDING: number;
|
|
|
28
28
|
*/
|
|
29
29
|
export const BRICK_OCCUPANCY_BLOCK: number;
|
|
30
30
|
/**
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
|
|
34
|
-
export const BRICK_OBJECT_CELLS_PER_AXIS: number;
|
|
35
|
-
/**
|
|
36
|
-
* Objects a slot holds: the `meshes` row nearest in each of its 2³-texel cells, 0 for none.
|
|
37
|
-
* @type {number}
|
|
38
|
-
*/
|
|
39
|
-
export const BRICK_OBJECT_CELLS: number;
|
|
40
|
-
/**
|
|
41
|
-
* The `meshes` rows an object cell can name: one more than the largest row that fits in the 24 bits
|
|
42
|
-
* the object decision packs a row into beside its distance byte (`chunk_brick_object`). A row past it
|
|
43
|
-
* writes no object, as a provider that cannot name a row does (§7.6, contract 5).
|
|
31
|
+
* The `meshes` rows a texel's key can name: one more than the largest row that fits in the 24 bits the
|
|
32
|
+
* key packs a row into beside its distance byte (`chunk_brick_object`). A row past it names none, as a
|
|
33
|
+
* provider that cannot name a row does (§7.6, contract 8).
|
|
44
34
|
* @type {number}
|
|
45
35
|
*/
|
|
46
36
|
export const BRICK_OBJECT_ROW_LIMIT: number;
|
|
@@ -51,15 +41,22 @@ export const BRICK_OBJECT_ROW_LIMIT: number;
|
|
|
51
41
|
*/
|
|
52
42
|
export const BRICK_STAGING_DISTANCE_WORDS: number;
|
|
53
43
|
/**
|
|
54
|
-
* The word of a build slot that asks for its cell again (§7.6, contract 7), after its distances
|
|
55
|
-
*
|
|
44
|
+
* The word of a build slot that asks for its cell again (§7.6, contract 7), after its distances: clear
|
|
45
|
+
* makes it 0, and a provider that could not finish the cell this frame writes 1.
|
|
56
46
|
* Free then puts the key back on the ring rather than out of the pending set, and the cell is built
|
|
57
47
|
* again from what the frame stored.
|
|
58
48
|
* @type {number}
|
|
59
49
|
*/
|
|
60
50
|
export const BRICK_STAGING_RETRY_WORD: number;
|
|
61
51
|
/**
|
|
62
|
-
*
|
|
52
|
+
* The first of a build slot's surface words, after its retry word: a word a texel, `x + 8 (y + 8 z)`,
|
|
53
|
+
* the `meshes` row whose surface the texel holds, the provider's that gave its distance (§7.6,
|
|
54
|
+
* contract 8), 0 for none. What the cell's material is gathered by; the store does not keep it.
|
|
55
|
+
* @type {number}
|
|
56
|
+
*/
|
|
57
|
+
export const BRICK_STAGING_SURFACE_WORDS: number;
|
|
58
|
+
/**
|
|
59
|
+
* Words of a build slot in the staging: its distances, its retry word, then its surfaces.
|
|
63
60
|
* @type {number}
|
|
64
61
|
*/
|
|
65
62
|
export const BRICK_STAGING_WORDS: number;
|
|
@@ -123,6 +120,12 @@ export const BRICK_TAKE_FIRST: number;
|
|
|
123
120
|
* @type {number}
|
|
124
121
|
*/
|
|
125
122
|
export const BRICK_TAKE_COUNT: number;
|
|
123
|
+
/**
|
|
124
|
+
* Three words: the indirect dispatch of a thread a texel of the taken cells, 8³ a cell, in workgroups of
|
|
125
|
+
* {@link BRICK_THREAD_WORKGROUP_SIZE}.
|
|
126
|
+
* @type {number}
|
|
127
|
+
*/
|
|
128
|
+
export const BRICK_TAKE_TEXEL_DISPATCH: number;
|
|
126
129
|
/**
|
|
127
130
|
* Words of the take buffer.
|
|
128
131
|
* @type {number}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BRICK_CLIPMAP.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/global_illumination/probe_clipmap/brick/BRICK_CLIPMAP.js"],"names":[],"mappings":"AAaA;;;;GAIG;AACH,oCAFU,MAAM,CAEgC;AAEhD;;;;GAIG;AACH,kCAFU,MAAM,CAE8B;AAE9C;;;;GAIG;AACH,yCAFU,MAAM,CAEkD;AAElE;;;;GAIG;AACH,0CAFU,MAAM,CAEmD;AAEnE;;;GAGG;AACH,oCAFU,MAAM,CAEuB;AAEvC
|
|
1
|
+
{"version":3,"file":"BRICK_CLIPMAP.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/global_illumination/probe_clipmap/brick/BRICK_CLIPMAP.js"],"names":[],"mappings":"AAaA;;;;GAIG;AACH,oCAFU,MAAM,CAEgC;AAEhD;;;;GAIG;AACH,kCAFU,MAAM,CAE8B;AAE9C;;;;GAIG;AACH,yCAFU,MAAM,CAEkD;AAElE;;;;GAIG;AACH,0CAFU,MAAM,CAEmD;AAEnE;;;GAGG;AACH,oCAFU,MAAM,CAEuB;AAEvC;;;;;GAKG;AACH,qCAFU,MAAM,CAE8B;AAE9C;;;;GAIG;AACH,2CAFU,MAAM,CAE2D;AAE3E;;;;;;GAMG;AACH,uCAFU,MAAM,CAEqD;AAErE;;;;;GAKG;AACH,0CAFU,MAAM,CAEwD;AAExE;;;GAGG;AACH,kCAFU,MAAM,CAE4E;AAE5F;;;;GAIG;AACH,wCAFU,MAAM,CAE4B;AAE5C;;;GAGG;AACH,0CAFU,MAAM,CAE8B;AAM9C;;;GAGG;AACH,+BAFU,MAAM,CAEkB;AAElC;;;GAGG;AACH,+BAFU,MAAM,CAEkB;AAElC;;;GAGG;AACH,+BAFU,MAAM,CAEkB;AAElC;;;;;GAKG;AACH,kCAFU,MAAM,CAEqB;AAErC;;;GAGG;AACH,gCAFU,MAAM,CAEmB;AAQnC;;;;GAIG;AACH,uCAFU,MAAM,CAE0B;AAE1C;;;GAGG;AACH,uCAFU,MAAM,CAE0B;AAE1C;;;;GAIG;AACH,+BAFU,MAAM,CAEkB;AAElC;;;GAGG;AACH,+BAFU,MAAM,CAEkB;AAElC;;;;GAIG;AACH,wCAFU,MAAM,CAE2B;AAE3C;;;GAGG;AACH,+BAFU,MAAM,CAEmB;AAOnC;;;GAGG;AACH,+BAFU,MAAM,CAEkB;AAElC;;;GAGG;AACH,8BAFU,MAAM,CAEiB;AAEjC;;;GAGG;AACH,qCAFU,MAAM,CAEwB"}
|
|
@@ -46,21 +46,9 @@ export const BRICK_CLIPMAP_STORE_PENDING = BRICK_CLIPMAP_EMPTY + 2;
|
|
|
46
46
|
export const BRICK_OCCUPANCY_BLOCK = 4;
|
|
47
47
|
|
|
48
48
|
/**
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
|
|
52
|
-
export const BRICK_OBJECT_CELLS_PER_AXIS = 4;
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Objects a slot holds: the `meshes` row nearest in each of its 2³-texel cells, 0 for none.
|
|
56
|
-
* @type {number}
|
|
57
|
-
*/
|
|
58
|
-
export const BRICK_OBJECT_CELLS = BRICK_OBJECT_CELLS_PER_AXIS ** 3;
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* The `meshes` rows an object cell can name: one more than the largest row that fits in the 24 bits
|
|
62
|
-
* the object decision packs a row into beside its distance byte (`chunk_brick_object`). A row past it
|
|
63
|
-
* writes no object, as a provider that cannot name a row does (§7.6, contract 5).
|
|
49
|
+
* The `meshes` rows a texel's key can name: one more than the largest row that fits in the 24 bits the
|
|
50
|
+
* key packs a row into beside its distance byte (`chunk_brick_object`). A row past it names none, as a
|
|
51
|
+
* provider that cannot name a row does (§7.6, contract 8).
|
|
64
52
|
* @type {number}
|
|
65
53
|
*/
|
|
66
54
|
export const BRICK_OBJECT_ROW_LIMIT = 1 << 24;
|
|
@@ -73,19 +61,27 @@ export const BRICK_OBJECT_ROW_LIMIT = 1 << 24;
|
|
|
73
61
|
export const BRICK_STAGING_DISTANCE_WORDS = MESH_SDF_BRICK_TEXEL_COUNT / 4;
|
|
74
62
|
|
|
75
63
|
/**
|
|
76
|
-
* The word of a build slot that asks for its cell again (§7.6, contract 7), after its distances
|
|
77
|
-
*
|
|
64
|
+
* The word of a build slot that asks for its cell again (§7.6, contract 7), after its distances: clear
|
|
65
|
+
* makes it 0, and a provider that could not finish the cell this frame writes 1.
|
|
78
66
|
* Free then puts the key back on the ring rather than out of the pending set, and the cell is built
|
|
79
67
|
* again from what the frame stored.
|
|
80
68
|
* @type {number}
|
|
81
69
|
*/
|
|
82
|
-
export const BRICK_STAGING_RETRY_WORD = BRICK_STAGING_DISTANCE_WORDS
|
|
70
|
+
export const BRICK_STAGING_RETRY_WORD = BRICK_STAGING_DISTANCE_WORDS;
|
|
83
71
|
|
|
84
72
|
/**
|
|
85
|
-
*
|
|
73
|
+
* The first of a build slot's surface words, after its retry word: a word a texel, `x + 8 (y + 8 z)`,
|
|
74
|
+
* the `meshes` row whose surface the texel holds, the provider's that gave its distance (§7.6,
|
|
75
|
+
* contract 8), 0 for none. What the cell's material is gathered by; the store does not keep it.
|
|
86
76
|
* @type {number}
|
|
87
77
|
*/
|
|
88
|
-
export const
|
|
78
|
+
export const BRICK_STAGING_SURFACE_WORDS = BRICK_STAGING_RETRY_WORD + 1;
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Words of a build slot in the staging: its distances, its retry word, then its surfaces.
|
|
82
|
+
* @type {number}
|
|
83
|
+
*/
|
|
84
|
+
export const BRICK_STAGING_WORDS = BRICK_STAGING_SURFACE_WORDS + MESH_SDF_BRICK_TEXEL_COUNT;
|
|
89
85
|
|
|
90
86
|
/**
|
|
91
87
|
* Lanes of the passes that run a workgroup a taken cell: free, store and the mesh provider's walk,
|
|
@@ -168,11 +164,18 @@ export const BRICK_TAKE_FIRST = 6;
|
|
|
168
164
|
*/
|
|
169
165
|
export const BRICK_TAKE_COUNT = 7;
|
|
170
166
|
|
|
167
|
+
/**
|
|
168
|
+
* Three words: the indirect dispatch of a thread a texel of the taken cells, 8³ a cell, in workgroups of
|
|
169
|
+
* {@link BRICK_THREAD_WORKGROUP_SIZE}.
|
|
170
|
+
* @type {number}
|
|
171
|
+
*/
|
|
172
|
+
export const BRICK_TAKE_TEXEL_DISPATCH = 8;
|
|
173
|
+
|
|
171
174
|
/**
|
|
172
175
|
* Words of the take buffer.
|
|
173
176
|
* @type {number}
|
|
174
177
|
*/
|
|
175
|
-
export const BRICK_TAKE_WORDS =
|
|
178
|
+
export const BRICK_TAKE_WORDS = 11;
|
|
176
179
|
|
|
177
180
|
/*
|
|
178
181
|
What a march through the clipmap ends in, `BrickClipmapHit.kind` (chunk_brick_clipmap_trace.js), and
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
* @typedef {Object} BrickProviderContext
|
|
7
7
|
* @property {FrameGraph} graph
|
|
8
8
|
* @property {number} state `brick_state`'s handle: the ring's head and tail, and the free slots
|
|
9
|
-
* @property {number} take `brick_take`'s handle: the taken keys' first and count,
|
|
10
|
-
* at {@link BRICK_TAKE_CELL_DISPATCH}, a workgroup a taken cell
|
|
11
|
-
* through it.
|
|
9
|
+
* @property {number} take `brick_take`'s handle: the taken keys' first and count, the cell dispatch
|
|
10
|
+
* at {@link BRICK_TAKE_CELL_DISPATCH}, a workgroup a taken cell, and the texel dispatch at
|
|
11
|
+
* `BRICK_TAKE_TEXEL_DISPATCH`, a thread a texel of them. Bind it read-only and dispatch through it.
|
|
12
12
|
* @property {number} staging `brick_staging`'s handle, `BRICK_STAGING_WORDS` words a build slot. A provider
|
|
13
13
|
* that could not finish a cell sets its `BRICK_STAGING_RETRY_WORD`, and the cell is built again (§7.6, contract 7)
|
|
14
14
|
* @property {number} staging_capacity build slots the staging holds: at least the frame's taken cells
|
|
@@ -20,11 +20,23 @@
|
|
|
20
20
|
* cell one brick of 7 voxels
|
|
21
21
|
* @property {GPUSceneContext} scene the view's scene: its database, its TLAS over the mesh rows, and
|
|
22
22
|
* its geometry caches
|
|
23
|
+
* @property {GPUBrickClipmap} clipmap the clipmap being built, whose {@link GPUBrickClipmap#write_bindings}
|
|
24
|
+
* a material writer binds the stored bricks through; a provider, which runs before the store, reads
|
|
25
|
+
* none of it
|
|
23
26
|
*/
|
|
24
27
|
/**
|
|
25
28
|
* @typedef {Object} BrickProvider
|
|
26
29
|
* @property {function(FrameGraph, BrickProviderContext): void} graph_write_bricks
|
|
27
30
|
*/
|
|
31
|
+
/**
|
|
32
|
+
* What writes per-slot payloads of its own over the frame's taken cells once the store has put their
|
|
33
|
+
* bricks in their slots, such as their surface material (§7.6). The context's `state` is then the
|
|
34
|
+
* store's handle; a writer that records a pass replaces it with its own, so the next writer and the
|
|
35
|
+
* bricks' readers come after it. `take` holds the texel dispatch at `BRICK_TAKE_TEXEL_DISPATCH` too.
|
|
36
|
+
*
|
|
37
|
+
* @typedef {Object} BrickMaterialWriter
|
|
38
|
+
* @property {function(FrameGraph, BrickProviderContext): void} graph_write_material
|
|
39
|
+
*/
|
|
28
40
|
/**
|
|
29
41
|
* The world as the probe clipmap's rays see it (PROBE_CLIPMAP_PROPOSAL_2026_10_27.md §7):
|
|
30
42
|
* {@link cascade_count} cascades of {@link resolution}³ cells around an anchor, a cell one brick of
|
|
@@ -36,20 +48,19 @@
|
|
|
36
48
|
* - {@link occupancy}, `r32uint`, a texel a {@link BRICK_OCCUPANCY_BLOCK}³-cell block of storage: how many
|
|
37
49
|
* of its cells a ray must read;
|
|
38
50
|
* - {@link atlas}, `r8unorm` bricks of 8³ texels, the mesh caches' lattice and encoding, its slots
|
|
39
|
-
* handed out by a free list on the device
|
|
40
|
-
* - {@link objects}, 64 words a slot: the `meshes` row nearest in each 2³-texel cell of the brick.
|
|
51
|
+
* handed out by a free list on the device.
|
|
41
52
|
*
|
|
42
53
|
* **A frame** ({@link graph_update}): the windows are placed around the anchor, coarsest first,
|
|
43
54
|
* each child a parent cell inside its parent (`ClipmapCascadePlacement`), and what a move exposed is
|
|
44
55
|
* queued (scroll). Then the frame takes up to its budget of queued cells, clears their staging, has
|
|
45
|
-
* each provider merge its distances
|
|
56
|
+
* each provider merge its distances into it, frees what needs no brick, stores what does,
|
|
46
57
|
* and counts the occupancy of the blocks it built. Every pass after scroll is sized by take's count
|
|
47
58
|
* on the device, and scroll by the cells the moves exposed: nothing by the clipmap's size.
|
|
48
59
|
*
|
|
49
60
|
* **Capacity** (§7.10) starts at `2·N²·C` slots, a ground plane two cells thick through every
|
|
50
61
|
* cascade. A take the free slots held back is counted on the device and read back, and the next
|
|
51
|
-
* frame doubles the capacity: the atlas reserves more layers, and the
|
|
52
|
-
*
|
|
62
|
+
* frame doubles the capacity: the atlas reserves more layers, and the free list grows with a copy,
|
|
63
|
+
* the new slots pushed. Nothing shrinks.
|
|
53
64
|
*/
|
|
54
65
|
export class GPUBrickClipmap {
|
|
55
66
|
/**
|
|
@@ -95,10 +106,6 @@ export class GPUBrickClipmap {
|
|
|
95
106
|
* @returns {GPUTileAtlas3D}
|
|
96
107
|
*/
|
|
97
108
|
get atlas(): GPUTileAtlas3D;
|
|
98
|
-
/**
|
|
99
|
-
* @returns {GPUBuffer}
|
|
100
|
-
*/
|
|
101
|
-
get objects(): GPUBuffer;
|
|
102
109
|
/**
|
|
103
110
|
* The cascades' windows, a {@link CLIPMAP_LEVEL_ARRAY} as a uniform, finest first: as placed by the
|
|
104
111
|
* last {@link graph_update}.
|
|
@@ -107,16 +114,15 @@ export class GPUBrickClipmap {
|
|
|
107
114
|
get levels(): GPUBuffer;
|
|
108
115
|
/**
|
|
109
116
|
* Put what the tracer's chunks read (`chunk_brick_clipmap_trace.js`) into a reader's bindings,
|
|
110
|
-
* under the names they take: the levels, the map, the occupancy, the atlas
|
|
111
|
-
*
|
|
112
|
-
* frame.
|
|
117
|
+
* under the names they take: the levels, the map, the occupancy, the atlas and its sampler. The atlas
|
|
118
|
+
* is replaced when the capacity grows: take it each frame.
|
|
113
119
|
*
|
|
114
120
|
* @param {Object} bindings
|
|
115
121
|
* @returns {Object} bindings
|
|
116
122
|
*/
|
|
117
123
|
write_bindings(bindings: any): any;
|
|
118
124
|
/**
|
|
119
|
-
* Slots of the atlas
|
|
125
|
+
* Slots of the atlas.
|
|
120
126
|
* @returns {number}
|
|
121
127
|
*/
|
|
122
128
|
get capacity(): number;
|
|
@@ -146,8 +152,9 @@ export class GPUBrickClipmap {
|
|
|
146
152
|
built_for(settings: ProbeClipmapSettings): boolean;
|
|
147
153
|
/**
|
|
148
154
|
* Record the frame's build: place the windows around the anchor and queue what they exposed, then
|
|
149
|
-
* take up to `budget` queued cells, stage them through `providers` in order,
|
|
150
|
-
* need
|
|
155
|
+
* take up to `budget` queued cells, stage them through `providers` in order, store what they
|
|
156
|
+
* need, and have `material_writers` write their payloads over the stored cells in order.
|
|
157
|
+
* Allocates nothing per frame once the staging holds the budget.
|
|
151
158
|
*
|
|
152
159
|
* @param {Object} options
|
|
153
160
|
* @param {FrameGraph} options.graph
|
|
@@ -156,19 +163,21 @@ export class GPUBrickClipmap {
|
|
|
156
163
|
* @param {number} options.z
|
|
157
164
|
* @param {number} options.budget cells built a frame at most, `brick_build_budget`
|
|
158
165
|
* @param {ArrayLike<BrickProvider>} options.providers merged into the staging in this order
|
|
166
|
+
* @param {ArrayLike<BrickMaterialWriter>} [options.material_writers] run after the store in this order
|
|
159
167
|
* @param {GPUSceneContext|null} options.scene what the providers read: the view's scene
|
|
160
168
|
* @param {number} [options.movers] the graph handle of the scene's mover list for the frame,
|
|
161
169
|
* `GPUSceneContext.graph_movers`; none queues nothing but the invalidated rows
|
|
162
170
|
* @returns {number} the graph handle of the build's last write, which a pass reading the bricks reads
|
|
163
171
|
* to come after it
|
|
164
172
|
*/
|
|
165
|
-
graph_update({ graph, x, y, z, budget, providers, scene, movers }: {
|
|
173
|
+
graph_update({ graph, x, y, z, budget, providers, material_writers, scene, movers }: {
|
|
166
174
|
graph: FrameGraph;
|
|
167
175
|
x: number;
|
|
168
176
|
y: number;
|
|
169
177
|
z: number;
|
|
170
178
|
budget: number;
|
|
171
179
|
providers: ArrayLike<BrickProvider>;
|
|
180
|
+
material_writers?: ArrayLike<BrickMaterialWriter>;
|
|
172
181
|
scene: GPUSceneContext | null;
|
|
173
182
|
movers?: number;
|
|
174
183
|
}): number;
|
|
@@ -190,9 +199,9 @@ export type BrickProviderContext = {
|
|
|
190
199
|
*/
|
|
191
200
|
state: number;
|
|
192
201
|
/**
|
|
193
|
-
* `brick_take`'s handle: the taken keys' first and count,
|
|
194
|
-
* at {@link BRICK_TAKE_CELL_DISPATCH }, a workgroup a taken cell
|
|
195
|
-
* through it.
|
|
202
|
+
* `brick_take`'s handle: the taken keys' first and count, the cell dispatch
|
|
203
|
+
* at {@link BRICK_TAKE_CELL_DISPATCH }, a workgroup a taken cell, and the texel dispatch at
|
|
204
|
+
* `BRICK_TAKE_TEXEL_DISPATCH`, a thread a texel of them. Bind it read-only and dispatch through it.
|
|
196
205
|
*/
|
|
197
206
|
take: number;
|
|
198
207
|
/**
|
|
@@ -224,9 +233,24 @@ export type BrickProviderContext = {
|
|
|
224
233
|
* its geometry caches
|
|
225
234
|
*/
|
|
226
235
|
scene: GPUSceneContext;
|
|
236
|
+
/**
|
|
237
|
+
* the clipmap being built, whose {@link GPUBrickClipmapwrite_bindings }
|
|
238
|
+
* a material writer binds the stored bricks through; a provider, which runs before the store, reads
|
|
239
|
+
* none of it
|
|
240
|
+
*/
|
|
241
|
+
clipmap: GPUBrickClipmap;
|
|
227
242
|
};
|
|
228
243
|
export type BrickProvider = {
|
|
229
244
|
graph_write_bricks: (arg0: FrameGraph, arg1: BrickProviderContext) => void;
|
|
230
245
|
};
|
|
246
|
+
/**
|
|
247
|
+
* What writes per-slot payloads of its own over the frame's taken cells once the store has put their
|
|
248
|
+
* bricks in their slots, such as their surface material (§7.6). The context's `state` is then the
|
|
249
|
+
* store's handle; a writer that records a pass replaces it with its own, so the next writer and the
|
|
250
|
+
* bricks' readers come after it. `take` holds the texel dispatch at `BRICK_TAKE_TEXEL_DISPATCH` too.
|
|
251
|
+
*/
|
|
252
|
+
export type BrickMaterialWriter = {
|
|
253
|
+
graph_write_material: (arg0: FrameGraph, arg1: BrickProviderContext) => void;
|
|
254
|
+
};
|
|
231
255
|
import { GPUTileAtlas3D } from "../../../texture/atlas/GPUTileAtlas3D.js";
|
|
232
256
|
//# sourceMappingURL=GPUBrickClipmap.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GPUBrickClipmap.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/global_illumination/probe_clipmap/brick/GPUBrickClipmap.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GPUBrickClipmap.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/global_illumination/probe_clipmap/brick/GPUBrickClipmap.js"],"names":[],"mappings":"AA6FA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH;;;GAGG;AAEH;;;;;;;;GAQG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH;IAyJI;;;;;;;;OAQG;IACH;QAN2B,aAAa,EAA7B,MAAM;QACU,UAAU,EAA1B,MAAM;QAGU,UAAU,EAA1B,MAAM;OAgGhB;IA/PD;;;OAGG;IACH,wBAHU,MAAM,CAGF;IAEd;;;;OAIG;IACH,qBAHU,MAAM,CAGL;IAEX;;;;OAIG;IACH,qBAHU,MAAM,CAGL;IA+OX;;OAEG;IACH,4BAEC;IAED;;OAEG;IACH,4BAEC;IAED;;OAEG;IACH,4BAEC;IAED;;;;OAIG;IACH,wBAEC;IAED;;;;;;;OAOG;IACH,mCAQC;IAED;;;OAGG;IACH,uBAEC;IAED;;;;OAIG;IACH,gBAJW,MAAM,QACN,MAAM,GACJ,MAAM,CAIlB;IAED;;;OAGG;IACH,mBAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;;;;OAMG;IACH,sBAFW,UAAU,MAAM,CAAC,QAiB3B;IAED;;;OAGG;IACH,oBAHW,oBAAoB,GAClB,OAAO,CAMnB;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH;QAb+B,KAAK,EAAzB,UAAU;QACM,CAAC,EAAjB,MAAM;QACU,CAAC,EAAjB,MAAM;QACU,CAAC,EAAjB,MAAM;QACU,MAAM,EAAtB,MAAM;QAC4B,SAAS,EAA3C,UAAU,aAAa,CAAC;QACiB,gBAAgB,GAAzD,UAAU,mBAAmB,CAAC;QACA,KAAK,EAAnC,eAAe,GAAC,IAAI;QACH,MAAM,GAAvB,MAAM;QAEJ,MAAM,CA6GlB;IAgWD,gBAcC;;CACJ;mCAx8BY,OAAO,4BAA4B,EAAE,oBAAoB;yBACzD,OAAO,iEAAiE,EAAE,UAAU;8BACpF,OAAO,mCAAmC,EAAE,eAAe;;;;;;;WA+C1D,UAAU;;;;WACV,MAAM;;;;;;UACN,MAAM;;;;;aAGN,MAAM;;;;sBAEN,MAAM;;;;;mBAEN,MAAM;;;;gBACN,MAAM;mBACN,MAAM;;;;;;;;;;WAGN,eAAe;;;;;;aAEf,eAAe;;;+BAON,UAAU,QAAE,oBAAoB,KAAG,IAAI;;;;;;;;;iCAUvC,UAAU,QAAE,oBAAoB,KAAG,IAAI;;+BA1G/B,0CAA0C"}
|