@woosh/meep-engine 3.61.2 → 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/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
- 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 +0 -5
- package/src/shade/playground/probe_clipmap_box/README.md +1 -1
- package/src/shade/playground/probe_clipmap_box/index.html +1 -1
- package/src/shade/renderer/Renderer.d.ts.map +1 -1
- package/src/shade/renderer/Renderer.js +50 -11
- 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/probe_clipmap/GPUProbeClipmapGI.d.ts +15 -7
- package/src/shade/renderer/global_illumination/probe_clipmap/GPUProbeClipmapGI.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/GPUProbeClipmapGI.js +82 -17
- 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 +18 -9
- 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 +63 -44
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/PROBE_CLIPMAP.d.ts +21 -1
- 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 +24 -1
- 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 +44 -7
- 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 +88 -11
- 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 +2 -0
- 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 +10 -4
- 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_bounce.d.ts +3 -3
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_bounce.js +5 -5
- 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 +5 -1
- 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_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 -5
- 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 +22 -16
- 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/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/nss/NSS.d.ts +1 -1
- 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/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/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/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/query/GPUWaterQueries.d.ts +1 -1
- package/src/shade/renderer/wind/GPUSceneWind.d.ts +1 -1
- 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
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Bricks along each axis of a direction: the axis it looks along, then its columns' u and v.
|
|
3
|
-
*
|
|
4
|
-
* @param {number} direction
|
|
5
|
-
* @returns {number[]} axis, u axis, v axis
|
|
6
|
-
*/
|
|
7
|
-
export function mesh_card_axes(direction: number): number[];
|
|
8
|
-
/**
|
|
9
|
-
* The range card placement runs in, for a level-0 grid of `bricks`: room for any layout of the grid,
|
|
10
|
-
* bounded before the cards are placed — at most MESH_CARD_MAX cards, each with no more columns than
|
|
11
|
-
* the largest face of the grid, and no more pages than columns — then the placement's scratch.
|
|
12
|
-
*
|
|
13
|
-
* @param {ArrayLike<number>} bricks level 0's bricks along x, y and z
|
|
14
|
-
* @returns {{histograms: number, splits: number, words: number, layers: number, columns_max: number}}
|
|
15
|
-
* word offsets from the range's start, and its length
|
|
16
|
-
*/
|
|
17
|
-
export function mesh_card_placement_of(bricks: ArrayLike<number>): {
|
|
18
|
-
histograms: number;
|
|
19
|
-
splits: number;
|
|
20
|
-
words: number;
|
|
21
|
-
layers: number;
|
|
22
|
-
columns_max: number;
|
|
23
|
-
};
|
|
24
|
-
/**
|
|
25
|
-
* Words a placed layout keeps: its header and records, its column tables and its page list.
|
|
26
|
-
*
|
|
27
|
-
* @param {number} columns over every card
|
|
28
|
-
* @param {number} pages
|
|
29
|
-
* @returns {number}
|
|
30
|
-
*/
|
|
31
|
-
export function mesh_card_layout_words(columns: number, pages: number): number;
|
|
32
|
-
/**
|
|
33
|
-
* Cards a geometry has at most: UE's ceiling.
|
|
34
|
-
* @type {number}
|
|
35
|
-
*/
|
|
36
|
-
export const MESH_CARD_MAX: number;
|
|
37
|
-
/**
|
|
38
|
-
* ±X, ±Y and ±Z.
|
|
39
|
-
* @type {number}
|
|
40
|
-
*/
|
|
41
|
-
export const MESH_CARD_DIRECTIONS: number;
|
|
42
|
-
/**
|
|
43
|
-
* Texels a page has along each side: a brick face's corners, as a brick's texels sit on its voxels'.
|
|
44
|
-
* @type {number}
|
|
45
|
-
*/
|
|
46
|
-
export const MESH_CARD_PAGE_TEXELS: number;
|
|
47
|
-
/** A column a card sees nothing in. */
|
|
48
|
-
export const MESH_CARD_NO_PAGE: 4294967295;
|
|
49
|
-
/** Layout header: cards placed. */
|
|
50
|
-
export const MESH_CARD_LAYOUT_CARD_COUNT: 0;
|
|
51
|
-
/** Layout header: pages over every card. */
|
|
52
|
-
export const MESH_CARD_LAYOUT_PAGE_COUNT: 1;
|
|
53
|
-
/** Layout header: columns over every card, the column tables' length. */
|
|
54
|
-
export const MESH_CARD_LAYOUT_COLUMN_COUNT: 2;
|
|
55
|
-
/**
|
|
56
|
-
* Layout header: each direction's first card, {@link MESH_CARD_DIRECTIONS} words. The records are
|
|
57
|
-
* written direction by direction, so a direction's cards run from its word to the next direction's,
|
|
58
|
-
* and the last direction's to the card count. A reader looking along one direction reads its run alone.
|
|
59
|
-
*/
|
|
60
|
-
export const MESH_CARD_LAYOUT_DIRECTION_FIRST: 3;
|
|
61
|
-
/** Layout header, in words. */
|
|
62
|
-
export const MESH_CARD_LAYOUT_HEADER_WORDS: number;
|
|
63
|
-
/** Card record: the direction it looks along. */
|
|
64
|
-
export const MESH_CARD_RECORD_DIRECTION: 0;
|
|
65
|
-
/** Card record: the first layer of its slab. */
|
|
66
|
-
export const MESH_CARD_RECORD_NEAR: 1;
|
|
67
|
-
/** Card record: one past the last layer of its slab. */
|
|
68
|
-
export const MESH_CARD_RECORD_FAR: 2;
|
|
69
|
-
/** Card record: its column table, from the tables' start. */
|
|
70
|
-
export const MESH_CARD_RECORD_TABLE: 3;
|
|
71
|
-
/** Card record, in words. */
|
|
72
|
-
export const MESH_CARD_RECORD_WORDS: 4;
|
|
73
|
-
/** Where the card records start, from the layout's start. */
|
|
74
|
-
export const MESH_CARD_LAYOUT_RECORDS: number;
|
|
75
|
-
/** Where the column tables start, from the layout's start. The page list follows them. */
|
|
76
|
-
export const MESH_CARD_LAYOUT_TABLES: number;
|
|
77
|
-
/**
|
|
78
|
-
* Splits a direction's greedy search may record: every card past the six whole-grid ones.
|
|
79
|
-
* @type {number}
|
|
80
|
-
*/
|
|
81
|
-
export const MESH_CARD_SPLITS_MAX: number;
|
|
82
|
-
//# sourceMappingURL=MESH_CARDS.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MESH_CARDS.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/geometry/sdf/cards/MESH_CARDS.js"],"names":[],"mappings":"AAmFA;;;;;GAKG;AACH,0CAHW,MAAM,GACJ,MAAM,EAAE,CAMpB;AAED;;;;;;;;GAQG;AACH,+CAJW,UAAU,MAAM,CAAC,GACf;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAC,CAcpG;AAED;;;;;;GAMG;AACH,gDAJW,MAAM,SACN,MAAM,GACJ,MAAM,CAIlB;AArGD;;;GAGG;AACH,4BAFU,MAAM,CAEgB;AAEhC;;;GAGG;AACH,mCAFU,MAAM,CAEsB;AAEtC;;;GAGG;AACH,oCAFU,MAAM,CAE2C;AAE3D,uCAAuC;AACvC,2CAA4C;AAE5C,mCAAmC;AACnC,4CAA6C;AAC7C,4CAA4C;AAC5C,4CAA6C;AAC7C,yEAAyE;AACzE,8CAA+C;AAC/C;;;;GAIG;AACH,iDAAkD;AAClD,+BAA+B;AAC/B,mDAAqG;AAErG,iDAAiD;AACjD,2CAA4C;AAC5C,gDAAgD;AAChD,sCAAuC;AACvC,wDAAwD;AACxD,qCAAsC;AACtC,6DAA6D;AAC7D,uCAAwC;AACxC,6BAA6B;AAC7B,uCAAwC;AAExC,6DAA6D;AAC7D,8CAAsE;AACtE,0FAA0F;AAC1F,6CAAyG;AAEzG;;;GAGG;AACH,mCAFU,MAAM,CAEyD"}
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import { MESH_SDF_BRICK_TEXELS } from "../MESH_SDF.js";
|
|
2
|
-
|
|
3
|
-
/*
|
|
4
|
-
A geometry's surface cards (PROBE_CLIPMAP_PROPOSAL_2026_10_27.md §6.5): slabs of its level-0 brick
|
|
5
|
-
grid seen along ±X, ±Y and ±Z of its local space. Their layout lives in the indirection arena at
|
|
6
|
-
the header's `cards` word, made once a geometry's field is resident:
|
|
7
|
-
|
|
8
|
-
header MESH_CARD_LAYOUT_HEADER_WORDS: card count, page count, columns over every card,
|
|
9
|
-
each direction's first card
|
|
10
|
-
card records at MESH_CARD_LAYOUT_RECORDS, MESH_CARD_MAX of MESH_CARD_RECORD_WORDS: direction,
|
|
11
|
-
near and far layer, the offset of its column table in the tables
|
|
12
|
-
column tables at MESH_CARD_LAYOUT_TABLES, a word for each column of each card, along the
|
|
13
|
-
card's direction: the page seeing that column, or MESH_CARD_NO_PAGE
|
|
14
|
-
page list right after the tables, a word a page: its card, and its column's u and v
|
|
15
|
-
|
|
16
|
-
Placement runs in a range sized for any layout of the grid ({@link mesh_card_placement_of}), its
|
|
17
|
-
scratch past that: run starts by (m, z) along each direction, then each direction's splits. Its log
|
|
18
|
-
record gives the columns and pages it took; the layout is then moved into a range of its own size
|
|
19
|
-
({@link mesh_card_layout_words}), and the placement's range is given back.
|
|
20
|
-
|
|
21
|
-
A direction d looks along axis d >> 1, toward +axis when d is even. Layer 0 is the first brick a
|
|
22
|
-
ray along the direction meets; a column is a line of bricks along it, at (u, v) on the other two
|
|
23
|
-
axes in order.
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Cards a geometry has at most: UE's ceiling.
|
|
28
|
-
* @type {number}
|
|
29
|
-
*/
|
|
30
|
-
export const MESH_CARD_MAX = 32;
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* ±X, ±Y and ±Z.
|
|
34
|
-
* @type {number}
|
|
35
|
-
*/
|
|
36
|
-
export const MESH_CARD_DIRECTIONS = 6;
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Texels a page has along each side: a brick face's corners, as a brick's texels sit on its voxels'.
|
|
40
|
-
* @type {number}
|
|
41
|
-
*/
|
|
42
|
-
export const MESH_CARD_PAGE_TEXELS = MESH_SDF_BRICK_TEXELS;
|
|
43
|
-
|
|
44
|
-
/** A column a card sees nothing in. */
|
|
45
|
-
export const MESH_CARD_NO_PAGE = 0xffffffff;
|
|
46
|
-
|
|
47
|
-
/** Layout header: cards placed. */
|
|
48
|
-
export const MESH_CARD_LAYOUT_CARD_COUNT = 0;
|
|
49
|
-
/** Layout header: pages over every card. */
|
|
50
|
-
export const MESH_CARD_LAYOUT_PAGE_COUNT = 1;
|
|
51
|
-
/** Layout header: columns over every card, the column tables' length. */
|
|
52
|
-
export const MESH_CARD_LAYOUT_COLUMN_COUNT = 2;
|
|
53
|
-
/**
|
|
54
|
-
* Layout header: each direction's first card, {@link MESH_CARD_DIRECTIONS} words. The records are
|
|
55
|
-
* written direction by direction, so a direction's cards run from its word to the next direction's,
|
|
56
|
-
* and the last direction's to the card count. A reader looking along one direction reads its run alone.
|
|
57
|
-
*/
|
|
58
|
-
export const MESH_CARD_LAYOUT_DIRECTION_FIRST = 3;
|
|
59
|
-
/** Layout header, in words. */
|
|
60
|
-
export const MESH_CARD_LAYOUT_HEADER_WORDS = MESH_CARD_LAYOUT_DIRECTION_FIRST + MESH_CARD_DIRECTIONS;
|
|
61
|
-
|
|
62
|
-
/** Card record: the direction it looks along. */
|
|
63
|
-
export const MESH_CARD_RECORD_DIRECTION = 0;
|
|
64
|
-
/** Card record: the first layer of its slab. */
|
|
65
|
-
export const MESH_CARD_RECORD_NEAR = 1;
|
|
66
|
-
/** Card record: one past the last layer of its slab. */
|
|
67
|
-
export const MESH_CARD_RECORD_FAR = 2;
|
|
68
|
-
/** Card record: its column table, from the tables' start. */
|
|
69
|
-
export const MESH_CARD_RECORD_TABLE = 3;
|
|
70
|
-
/** Card record, in words. */
|
|
71
|
-
export const MESH_CARD_RECORD_WORDS = 4;
|
|
72
|
-
|
|
73
|
-
/** Where the card records start, from the layout's start. */
|
|
74
|
-
export const MESH_CARD_LAYOUT_RECORDS = MESH_CARD_LAYOUT_HEADER_WORDS;
|
|
75
|
-
/** Where the column tables start, from the layout's start. The page list follows them. */
|
|
76
|
-
export const MESH_CARD_LAYOUT_TABLES = MESH_CARD_LAYOUT_RECORDS + MESH_CARD_MAX * MESH_CARD_RECORD_WORDS;
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Splits a direction's greedy search may record: every card past the six whole-grid ones.
|
|
80
|
-
* @type {number}
|
|
81
|
-
*/
|
|
82
|
-
export const MESH_CARD_SPLITS_MAX = MESH_CARD_MAX - MESH_CARD_DIRECTIONS;
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* Bricks along each axis of a direction: the axis it looks along, then its columns' u and v.
|
|
86
|
-
*
|
|
87
|
-
* @param {number} direction
|
|
88
|
-
* @returns {number[]} axis, u axis, v axis
|
|
89
|
-
*/
|
|
90
|
-
export function mesh_card_axes(direction) {
|
|
91
|
-
const axis = direction >> 1;
|
|
92
|
-
|
|
93
|
-
return [axis, (axis + 1) % 3, (axis + 2) % 3];
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* The range card placement runs in, for a level-0 grid of `bricks`: room for any layout of the grid,
|
|
98
|
-
* bounded before the cards are placed — at most MESH_CARD_MAX cards, each with no more columns than
|
|
99
|
-
* the largest face of the grid, and no more pages than columns — then the placement's scratch.
|
|
100
|
-
*
|
|
101
|
-
* @param {ArrayLike<number>} bricks level 0's bricks along x, y and z
|
|
102
|
-
* @returns {{histograms: number, splits: number, words: number, layers: number, columns_max: number}}
|
|
103
|
-
* word offsets from the range's start, and its length
|
|
104
|
-
*/
|
|
105
|
-
export function mesh_card_placement_of(bricks) {
|
|
106
|
-
const layers = Math.max(bricks[0], bricks[1], bricks[2]);
|
|
107
|
-
const columns_max = Math.max(bricks[0] * bricks[1], bricks[1] * bricks[2], bricks[0] * bricks[2]);
|
|
108
|
-
|
|
109
|
-
// a histogram a direction, layers × layers: run starts by (m, z), then its 2-D prefix sums
|
|
110
|
-
const histograms = MESH_CARD_LAYOUT_TABLES + 2 * MESH_CARD_MAX * columns_max;
|
|
111
|
-
// a direction's splits in the order its greedy search took them: (gain, layer)
|
|
112
|
-
const splits = histograms + MESH_CARD_DIRECTIONS * layers * layers;
|
|
113
|
-
const words = splits + MESH_CARD_DIRECTIONS * MESH_CARD_SPLITS_MAX * 2;
|
|
114
|
-
|
|
115
|
-
return { histograms, splits, words, layers, columns_max };
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
/**
|
|
119
|
-
* Words a placed layout keeps: its header and records, its column tables and its page list.
|
|
120
|
-
*
|
|
121
|
-
* @param {number} columns over every card
|
|
122
|
-
* @param {number} pages
|
|
123
|
-
* @returns {number}
|
|
124
|
-
*/
|
|
125
|
-
export function mesh_card_layout_words(columns, pages) {
|
|
126
|
-
return MESH_CARD_LAYOUT_TABLES + columns + pages;
|
|
127
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Every card set's record, by card set id.
|
|
3
|
-
* @type {ShaderResourceDescriptor}
|
|
4
|
-
*/
|
|
5
|
-
export const MESH_CARD_SETS_RESOURCE: ShaderResourceDescriptor;
|
|
6
|
-
/**
|
|
7
|
-
* The card atlas's first plane: √(diffuse albedo), and depth through the slab on [1/255, 1], 0 where
|
|
8
|
-
* a texel saw nothing. `rgba8unorm`, 8×8 tiles, read texel by texel.
|
|
9
|
-
* @type {ShaderResourceDescriptor}
|
|
10
|
-
*/
|
|
11
|
-
export const MESH_CARD_ALBEDO_RESOURCE: ShaderResourceDescriptor;
|
|
12
|
-
/**
|
|
13
|
-
* The card atlas's second plane: emissive / s_e.
|
|
14
|
-
* @type {ShaderResourceDescriptor}
|
|
15
|
-
*/
|
|
16
|
-
export const MESH_CARD_EMISSIVE_RESOURCE: ShaderResourceDescriptor;
|
|
17
|
-
/**
|
|
18
|
-
* A word a `meshes` row: the card set of the row's (geometry, material) pair, or
|
|
19
|
-
* `GPU_DATABASE_NULL` while it has none that readers may use.
|
|
20
|
-
* @type {ShaderResourceDescriptor}
|
|
21
|
-
*/
|
|
22
|
-
export const MESH_CARD_ROWS_RESOURCE: ShaderResourceDescriptor;
|
|
23
|
-
import { ShaderResourceDescriptor } from "../../../shader/resource/ShaderResourceDescriptor.js";
|
|
24
|
-
//# sourceMappingURL=MESH_CARD_RESOURCES.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MESH_CARD_RESOURCES.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/geometry/sdf/cards/MESH_CARD_RESOURCES.js"],"names":[],"mappings":"AAIA;;;GAGG;AACH,sCAFU,wBAAwB,CAEsG;AAExI;;;;GAIG;AACH,wCAFU,wBAAwB,CAE2E;AAE7G;;;GAGG;AACH,0CAFU,wBAAwB,CAE+E;AAEjH;;;;GAIG;AACH,sCAFU,wBAAwB,CAE+E;yCA5BxE,sDAAsD"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { ShaderResourceDescriptor } from "../../../shader/resource/ShaderResourceDescriptor.js";
|
|
2
|
-
import { WebGPUArray } from "../../../shader/type/WebGPUArray.js";
|
|
3
|
-
import { MESH_CARD_SET_STRUCT } from "./MESH_CARD_SET_STRUCT.js";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Every card set's record, by card set id.
|
|
7
|
-
* @type {ShaderResourceDescriptor}
|
|
8
|
-
*/
|
|
9
|
-
export const MESH_CARD_SETS_RESOURCE = ShaderResourceDescriptor.storageBuffer("mesh_card_sets", WebGPUArray.from(MESH_CARD_SET_STRUCT));
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* The card atlas's first plane: √(diffuse albedo), and depth through the slab on [1/255, 1], 0 where
|
|
13
|
-
* a texel saw nothing. `rgba8unorm`, 8×8 tiles, read texel by texel.
|
|
14
|
-
* @type {ShaderResourceDescriptor}
|
|
15
|
-
*/
|
|
16
|
-
export const MESH_CARD_ALBEDO_RESOURCE = ShaderResourceDescriptor.texture("mesh_card_albedo", "float", "2d");
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* The card atlas's second plane: emissive / s_e.
|
|
20
|
-
* @type {ShaderResourceDescriptor}
|
|
21
|
-
*/
|
|
22
|
-
export const MESH_CARD_EMISSIVE_RESOURCE = ShaderResourceDescriptor.texture("mesh_card_emissive", "float", "2d");
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* A word a `meshes` row: the card set of the row's (geometry, material) pair, or
|
|
26
|
-
* `GPU_DATABASE_NULL` while it has none that readers may use.
|
|
27
|
-
* @type {ShaderResourceDescriptor}
|
|
28
|
-
*/
|
|
29
|
-
export const MESH_CARD_ROWS_RESOURCE = ShaderResourceDescriptor.storageBuffer("mesh_card_rows", WebGPUArray.u32);
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A card set: one (geometry, material) pair's capture of its geometry's card layout
|
|
3
|
-
* (PROBE_CLIPMAP_PROPOSAL_2026_10_27.md §6.5), by card set id. Its pages are a run of tiles of the
|
|
4
|
-
* card atlas, one a page of the layout, in the layout's page order.
|
|
5
|
-
*
|
|
6
|
-
* 16 bytes.
|
|
7
|
-
*
|
|
8
|
-
* @type {WebGPUStruct}
|
|
9
|
-
*/
|
|
10
|
-
export const MESH_CARD_SET_STRUCT: WebGPUStruct;
|
|
11
|
-
import { WebGPUStruct } from "../../../shader/type/WebGPUStruct.js";
|
|
12
|
-
//# sourceMappingURL=MESH_CARD_SET_STRUCT.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MESH_CARD_SET_STRUCT.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/geometry/sdf/cards/MESH_CARD_SET_STRUCT.js"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,mCAFU,YAAY,CAoBJ;6BA7BW,sCAAsC"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { f32, u32 } from "../../../shader/type/WEBGPU_WGSL_PRIMITIVE_TYPES.js";
|
|
2
|
-
import { WebGPUStruct } from "../../../shader/type/WebGPUStruct.js";
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* A card set: one (geometry, material) pair's capture of its geometry's card layout
|
|
6
|
-
* (PROBE_CLIPMAP_PROPOSAL_2026_10_27.md §6.5), by card set id. Its pages are a run of tiles of the
|
|
7
|
-
* card atlas, one a page of the layout, in the layout's page order.
|
|
8
|
-
*
|
|
9
|
-
* 16 bytes.
|
|
10
|
-
*
|
|
11
|
-
* @type {WebGPUStruct}
|
|
12
|
-
*/
|
|
13
|
-
export const MESH_CARD_SET_STRUCT = WebGPUStruct.from({
|
|
14
|
-
/**
|
|
15
|
-
* The geometry id whose layout this captures: the source's, for a skinned row.
|
|
16
|
-
*/
|
|
17
|
-
geometry: u32,
|
|
18
|
-
/**
|
|
19
|
-
* The material's resident id.
|
|
20
|
-
*/
|
|
21
|
-
material: u32,
|
|
22
|
-
/**
|
|
23
|
-
* The tile of the card atlas holding the layout's page 0.
|
|
24
|
-
*/
|
|
25
|
-
page_base: u32,
|
|
26
|
-
/**
|
|
27
|
-
* s_e: the largest component of the material's emissive factor, which emissive is stored over.
|
|
28
|
-
* 0 for a material that emits nothing.
|
|
29
|
-
*/
|
|
30
|
-
emissive_scale: f32,
|
|
31
|
-
}, "MeshCardSet");
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* How a card set's pages are captured (PROBE_CLIPMAP_PROPOSAL_2026_10_27.md §6.5). Both write the
|
|
3
|
-
* same atlas texels in the same encoding; they differ in how a texel finds its surface and samples
|
|
4
|
-
* its material. {@link Raster } is the default: see `ProbeClipmapSettings#card_capture_mode`.
|
|
5
|
-
*/
|
|
6
|
-
export type MeshCardCaptureMode = number;
|
|
7
|
-
export namespace MeshCardCaptureMode {
|
|
8
|
-
let Trace: number;
|
|
9
|
-
let Raster: number;
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=MeshCardCaptureMode.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MeshCardCaptureMode.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/geometry/sdf/cards/MeshCardCaptureMode.js"],"names":[],"mappings":";;;;;kCAMU,MAAM"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* How a card set's pages are captured (PROBE_CLIPMAP_PROPOSAL_2026_10_27.md §6.5). Both write the
|
|
3
|
-
* same atlas texels in the same encoding; they differ in how a texel finds its surface and samples
|
|
4
|
-
* its material. {@link Raster} is the default: see `ProbeClipmapSettings#card_capture_mode`.
|
|
5
|
-
*
|
|
6
|
-
* @readonly
|
|
7
|
-
* @enum {number}
|
|
8
|
-
*/
|
|
9
|
-
export const MeshCardCaptureMode = {
|
|
10
|
-
/**
|
|
11
|
-
* A ray a texel through its card's slab against the geometry's BLAS, the material sampled at the
|
|
12
|
-
* hit as the path tracer samples it: the resident 64² copies, level 0, one stochastic tap.
|
|
13
|
-
*/
|
|
14
|
-
Trace: 0,
|
|
15
|
-
/**
|
|
16
|
-
* Each card drawn orthographically along its direction, the slab its depth range, through the
|
|
17
|
-
* material's own template and bind group: its textures with their mips and hardware filtering.
|
|
18
|
-
* A template that cannot be drawn this way (no surface function) is traced.
|
|
19
|
-
*/
|
|
20
|
-
Raster: 1,
|
|
21
|
-
};
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* What a card set's cards say of a surface point (PROBE_CLIPMAP_PROPOSAL_2026_10_27.md §6.6, steps
|
|
3
|
-
* 2–5), in the geometry's local space:
|
|
4
|
-
*
|
|
5
|
-
* ```wgsl
|
|
6
|
-
* fn mesh_card_surface(card_set: u32, p: vec3<f32>, n: vec3<f32>, tolerance: f32) -> MeshCardSurface
|
|
7
|
-
* ```
|
|
8
|
-
*
|
|
9
|
-
* - The directions facing the surface: for each axis a with n_a ≠ 0, the cards looking along
|
|
10
|
-
* −sign(n_a)·e_a, weighed by n_a², as UE weighs them.
|
|
11
|
-
* - A card of such a direction passes when its slab holds p's depth within `tolerance`, and the
|
|
12
|
-
* texel nearest p stored a depth within `tolerance` and one step of the slab of p's: otherwise it
|
|
13
|
-
* sees something in front of p. Of a direction's passing cards, the one whose near face is
|
|
14
|
-
* nearest p serves, one texel.
|
|
15
|
-
* - The serving texels blend by weight: diffuse albedo as Σ w·stored² / Σ w, emissive as
|
|
16
|
-
* Σ w·stored·s_e / Σ w.
|
|
17
|
-
*
|
|
18
|
-
* `found` is false when no card passes; the caller falls back (§6.6 step 6). `tolerance` is in local
|
|
19
|
-
* units: 1.5 voxels of the hit's cascade, which is as exact as the hit is. The card set must be one
|
|
20
|
-
* readers may use (resident), its layout placed.
|
|
21
|
-
*
|
|
22
|
-
* A direction's scan reads that direction's cards alone, the run the layout's header names; a
|
|
23
|
-
* candidate costs a table entry and a texel of each plane.
|
|
24
|
-
*
|
|
25
|
-
* @type {CodeChunk}
|
|
26
|
-
*/
|
|
27
|
-
export const chunk_mesh_card_surface: CodeChunk;
|
|
28
|
-
import { CodeChunk } from "../../../shader/compiler/CodeChunk.js";
|
|
29
|
-
//# sourceMappingURL=chunk_mesh_card_surface.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunk_mesh_card_surface.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/geometry/sdf/cards/chunk_mesh_card_surface.js"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,sCAFU,SAAS,CA4IZ;0BA3KmB,uCAAuC"}
|
|
@@ -1,179 +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 { MESH_SDF_HEADERS_RESOURCE, MESH_SDF_INDIRECTION_RESOURCE } from "../MESH_SDF_RESOURCES.js";
|
|
4
|
-
import { MESH_SDF_STRUCT } from "../MESH_SDF_STRUCT.js";
|
|
5
|
-
import { chunk_mesh_cards } from "./chunk_mesh_cards.js";
|
|
6
|
-
import { MESH_CARD_SET_STRUCT } from "./MESH_CARD_SET_STRUCT.js";
|
|
7
|
-
import { MESH_CARD_ALBEDO_RESOURCE, MESH_CARD_EMISSIVE_RESOURCE, MESH_CARD_SETS_RESOURCE } from "./MESH_CARD_RESOURCES.js";
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* What a card set's cards say of a surface point (PROBE_CLIPMAP_PROPOSAL_2026_10_27.md §6.6, steps
|
|
11
|
-
* 2–5), in the geometry's local space:
|
|
12
|
-
*
|
|
13
|
-
* ```wgsl
|
|
14
|
-
* fn mesh_card_surface(card_set: u32, p: vec3<f32>, n: vec3<f32>, tolerance: f32) -> MeshCardSurface
|
|
15
|
-
* ```
|
|
16
|
-
*
|
|
17
|
-
* - The directions facing the surface: for each axis a with n_a ≠ 0, the cards looking along
|
|
18
|
-
* −sign(n_a)·e_a, weighed by n_a², as UE weighs them.
|
|
19
|
-
* - A card of such a direction passes when its slab holds p's depth within `tolerance`, and the
|
|
20
|
-
* texel nearest p stored a depth within `tolerance` and one step of the slab of p's: otherwise it
|
|
21
|
-
* sees something in front of p. Of a direction's passing cards, the one whose near face is
|
|
22
|
-
* nearest p serves, one texel.
|
|
23
|
-
* - The serving texels blend by weight: diffuse albedo as Σ w·stored² / Σ w, emissive as
|
|
24
|
-
* Σ w·stored·s_e / Σ w.
|
|
25
|
-
*
|
|
26
|
-
* `found` is false when no card passes; the caller falls back (§6.6 step 6). `tolerance` is in local
|
|
27
|
-
* units: 1.5 voxels of the hit's cascade, which is as exact as the hit is. The card set must be one
|
|
28
|
-
* readers may use (resident), its layout placed.
|
|
29
|
-
*
|
|
30
|
-
* A direction's scan reads that direction's cards alone, the run the layout's header names; a
|
|
31
|
-
* candidate costs a table entry and a texel of each plane.
|
|
32
|
-
*
|
|
33
|
-
* @type {CodeChunk}
|
|
34
|
-
*/
|
|
35
|
-
export const chunk_mesh_card_surface = CodeChunk.from(
|
|
36
|
-
//language=WGSL
|
|
37
|
-
`
|
|
38
|
-
struct MeshCardSurface {
|
|
39
|
-
found: bool,
|
|
40
|
-
albedo: vec3<f32>,
|
|
41
|
-
emissive: vec3<f32>,
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
struct MeshCardAxis {
|
|
45
|
-
found: bool,
|
|
46
|
-
depth: f32,
|
|
47
|
-
albedo: vec3<f32>,
|
|
48
|
-
emissive: vec3<f32>,
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/*
|
|
52
|
-
The serving card of the direction facing p along one axis, if one passes. p and the tolerance are
|
|
53
|
-
in voxels from the grid's corner.
|
|
54
|
-
*/
|
|
55
|
-
fn mesh_card_surface_axis(
|
|
56
|
-
card_set: ${MESH_CARD_SET_STRUCT.wgsl_ref},
|
|
57
|
-
header: ${MESH_SDF_STRUCT.wgsl_ref},
|
|
58
|
-
p: vec3<f32>,
|
|
59
|
-
normal_component: f32,
|
|
60
|
-
axis: u32,
|
|
61
|
-
tolerance: f32,
|
|
62
|
-
) -> MeshCardAxis {
|
|
63
|
-
var out: MeshCardAxis;
|
|
64
|
-
|
|
65
|
-
out.depth = 3.0e38;
|
|
66
|
-
|
|
67
|
-
// a surface facing +axis is seen by the cards looking toward -axis: the odd direction
|
|
68
|
-
let direction = 2u * axis + select(0u, 1u, normal_component > 0.0);
|
|
69
|
-
let axes = mesh_card_axes(direction);
|
|
70
|
-
let extent = mesh_card_extent(header.bricks, direction);
|
|
71
|
-
let lattice = vec2<f32>(f32(extent.y * MESH_SDF_BRICK_VOXELS), f32(extent.z * MESH_SDF_BRICK_VOXELS));
|
|
72
|
-
|
|
73
|
-
// the lattice point nearest p across the card, and the page column and texel it falls in
|
|
74
|
-
let nearest = vec2<u32>(clamp(round(vec2<f32>(p[axes.y], p[axes.z])), vec2<f32>(0.0), lattice));
|
|
75
|
-
let column = min(nearest / MESH_SDF_BRICK_VOXELS, extent.yz - 1u);
|
|
76
|
-
let texel = nearest - column * MESH_SDF_BRICK_VOXELS;
|
|
77
|
-
let column_index = column.x + extent.y * column.y;
|
|
78
|
-
|
|
79
|
-
// the records run direction by direction: this direction's from its first card to the next one's
|
|
80
|
-
let base = header.cards;
|
|
81
|
-
let first = mesh_sdf_indirection[base + MESH_CARD_LAYOUT_DIRECTION_FIRST + direction];
|
|
82
|
-
let end = select(
|
|
83
|
-
mesh_sdf_indirection[base + MESH_CARD_LAYOUT_DIRECTION_FIRST + direction + 1u],
|
|
84
|
-
mesh_sdf_indirection[base + MESH_CARD_LAYOUT_CARD_COUNT],
|
|
85
|
-
direction == MESH_CARD_DIRECTIONS - 1u
|
|
86
|
-
);
|
|
87
|
-
let tiles_per_row = textureDimensions(mesh_card_albedo).x / MESH_CARD_PAGE_TEXELS;
|
|
88
|
-
|
|
89
|
-
for (var card = first; card < min(end, MESH_CARD_MAX); card++) {
|
|
90
|
-
let record = base + MESH_CARD_LAYOUT_RECORDS + card * MESH_CARD_RECORD_WORDS;
|
|
91
|
-
|
|
92
|
-
let near = mesh_sdf_indirection[record + MESH_CARD_RECORD_NEAR];
|
|
93
|
-
let far = mesh_sdf_indirection[record + MESH_CARD_RECORD_FAR];
|
|
94
|
-
|
|
95
|
-
// p's depth from the card's near face, and the slab's
|
|
96
|
-
let face = f32(select(extent.x - near, near, (direction & 1u) == 0u) * MESH_SDF_BRICK_VOXELS);
|
|
97
|
-
let depth = select(face - p[axis], p[axis] - face, (direction & 1u) == 0u);
|
|
98
|
-
let slab = f32((far - near) * MESH_SDF_BRICK_VOXELS);
|
|
99
|
-
|
|
100
|
-
if (depth < -tolerance || depth > slab + tolerance || depth >= out.depth) {
|
|
101
|
-
continue;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
let page = mesh_sdf_indirection[base + MESH_CARD_LAYOUT_TABLES + mesh_sdf_indirection[record + MESH_CARD_RECORD_TABLE] + column_index];
|
|
105
|
-
|
|
106
|
-
if (page == MESH_CARD_NO_PAGE) {
|
|
107
|
-
continue;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
let coord = index_to_grid2d(card_set.page_base + page, tiles_per_row) * MESH_CARD_PAGE_TEXELS + texel;
|
|
111
|
-
let albedo = textureLoad(mesh_card_albedo, coord, 0);
|
|
112
|
-
|
|
113
|
-
if (albedo.w < 0.5 / 255.0) {
|
|
114
|
-
// the texel's ray found nothing in the slab
|
|
115
|
-
continue;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
let seen = (albedo.w * 255.0 - 1.0) / 254.0 * slab;
|
|
119
|
-
|
|
120
|
-
if (abs(seen - depth) > tolerance + slab / 254.0) {
|
|
121
|
-
// the card sees something in front of p
|
|
122
|
-
continue;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
out.found = true;
|
|
126
|
-
out.depth = depth;
|
|
127
|
-
out.albedo = albedo.rgb * albedo.rgb;
|
|
128
|
-
out.emissive = textureLoad(mesh_card_emissive, coord, 0).rgb * card_set.emissive_scale;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
return out;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
fn mesh_card_surface(card_set_id: u32, p: vec3<f32>, n: vec3<f32>, tolerance: f32) -> MeshCardSurface {
|
|
135
|
-
let card_set = mesh_card_sets[card_set_id];
|
|
136
|
-
let header = mesh_sdf_headers[card_set.geometry];
|
|
137
|
-
|
|
138
|
-
let local = (p - header.origin) / header.voxel;
|
|
139
|
-
let reach = tolerance / header.voxel;
|
|
140
|
-
|
|
141
|
-
var out: MeshCardSurface;
|
|
142
|
-
var weight = 0.0;
|
|
143
|
-
|
|
144
|
-
for (var axis = 0u; axis < 3u; axis++) {
|
|
145
|
-
let w = n[axis] * n[axis];
|
|
146
|
-
|
|
147
|
-
if (w == 0.0) {
|
|
148
|
-
continue;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
let seen = mesh_card_surface_axis(card_set, header, local, n[axis], axis, reach);
|
|
152
|
-
|
|
153
|
-
if (seen.found) {
|
|
154
|
-
out.albedo += w * seen.albedo;
|
|
155
|
-
out.emissive += w * seen.emissive;
|
|
156
|
-
weight += w;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
if (weight > 0.0) {
|
|
161
|
-
out.found = true;
|
|
162
|
-
out.albedo /= weight;
|
|
163
|
-
out.emissive /= weight;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
return out;
|
|
167
|
-
}
|
|
168
|
-
`, [
|
|
169
|
-
MESH_CARD_SET_STRUCT.declaration_chunk,
|
|
170
|
-
MESH_SDF_STRUCT.declaration_chunk,
|
|
171
|
-
chunk_mesh_cards,
|
|
172
|
-
chunk_index_to_grid2d,
|
|
173
|
-
]);
|
|
174
|
-
|
|
175
|
-
chunk_mesh_card_surface.requireResource(MESH_SDF_HEADERS_RESOURCE);
|
|
176
|
-
chunk_mesh_card_surface.requireResource(MESH_SDF_INDIRECTION_RESOURCE);
|
|
177
|
-
chunk_mesh_card_surface.requireResource(MESH_CARD_SETS_RESOURCE);
|
|
178
|
-
chunk_mesh_card_surface.requireResource(MESH_CARD_ALBEDO_RESOURCE);
|
|
179
|
-
chunk_mesh_card_surface.requireResource(MESH_CARD_EMISSIVE_RESOURCE);
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A geometry's cards on the device (`MESH_CARDS.js`): the layout's constants, the placement's
|
|
3
|
-
* scratch by the level-0 grid, a direction's axes and extent, and the brick a direction's column
|
|
4
|
-
* holds at a layer. Pure: nothing here reads a binding.
|
|
5
|
-
*
|
|
6
|
-
* ```wgsl
|
|
7
|
-
* fn mesh_card_placement_of(bricks: vec3<u32>) -> MeshCardPlacement // offsets from the range's start
|
|
8
|
-
* fn mesh_card_axes(direction: u32) -> vec3<u32> // the axis looked along, then u, v
|
|
9
|
-
* fn mesh_card_extent(bricks: vec3<u32>, direction: u32) -> vec3<u32>
|
|
10
|
-
* fn mesh_card_brick(bricks: vec3<u32>, direction: u32, column: vec2<u32>, layer: u32) -> vec3<u32>
|
|
11
|
-
* ```
|
|
12
|
-
*
|
|
13
|
-
* @type {CodeChunk}
|
|
14
|
-
*/
|
|
15
|
-
export const chunk_mesh_cards: CodeChunk;
|
|
16
|
-
import { CodeChunk } from "../../../shader/compiler/CodeChunk.js";
|
|
17
|
-
//# sourceMappingURL=chunk_mesh_cards.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunk_mesh_cards.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/geometry/sdf/cards/chunk_mesh_cards.js"],"names":[],"mappings":"AAsBA;;;;;;;;;;;;;GAaG;AACH,+BAFU,SAAS,CAwEZ;0BA1GmB,uCAAuC"}
|