@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
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { clamp01 } from "../../../../../core/math/clamp01.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* The code `albedo_compress` (`chunk_albedo_compress.js`) gives an albedo, on the host: each channel
|
|
5
|
+
* clamped to [0, 1], its square root rounded to f32 and then to unorm8, as `pack4x8unorm` rounds, the
|
|
6
|
+
* top byte 255.
|
|
7
|
+
*
|
|
8
|
+
* @param {number} r linear
|
|
9
|
+
* @param {number} g linear
|
|
10
|
+
* @param {number} b linear
|
|
11
|
+
* @returns {number} u32
|
|
12
|
+
*/
|
|
13
|
+
export function albedo_compress(r, g, b) {
|
|
14
|
+
return (unorm8_root(r) | (unorm8_root(g) << 8) | (unorm8_root(b) << 16) | (255 << 24)) >>> 0;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @param {number} v
|
|
19
|
+
* @returns {number}
|
|
20
|
+
*/
|
|
21
|
+
function unorm8_root(v) {
|
|
22
|
+
const root = Math.fround(Math.sqrt(Math.fround(clamp01(Math.fround(v)))));
|
|
23
|
+
|
|
24
|
+
// ⌊0.5 + 255·e⌋ of the f32 e, which a double holds exactly
|
|
25
|
+
return Math.floor(0.5 + 255 * root);
|
|
26
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A diffuse albedo, RGB on [0, 1], in a 32-bit code, as `albedo_uncompress` reads it:
|
|
3
|
+
*
|
|
4
|
+
* ```wgsl
|
|
5
|
+
* fn albedo_compress(albedo: vec3<f32>) -> u32
|
|
6
|
+
* ```
|
|
7
|
+
*
|
|
8
|
+
* Each channel is clamped to [0, 1] and stored as its square root, unorm8, which puts more codes in the
|
|
9
|
+
* dark. The top byte is 255, so a code is never 0, black
|
|
10
|
+
* included: a reader may take 0 for no albedo at all.
|
|
11
|
+
*
|
|
12
|
+
* @type {CodeChunk}
|
|
13
|
+
*/
|
|
14
|
+
export const chunk_albedo_compress: CodeChunk;
|
|
15
|
+
import { CodeChunk } from "../../compiler/CodeChunk.js";
|
|
16
|
+
//# sourceMappingURL=chunk_albedo_compress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk_albedo_compress.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/shader/chunk/material/chunk_albedo_compress.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,oCAFU,SAAS,CAQhB;0BArBuB,6BAA6B"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { CodeChunk } from "../../compiler/CodeChunk.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* A diffuse albedo, RGB on [0, 1], in a 32-bit code, as `albedo_uncompress` reads it:
|
|
5
|
+
*
|
|
6
|
+
* ```wgsl
|
|
7
|
+
* fn albedo_compress(albedo: vec3<f32>) -> u32
|
|
8
|
+
* ```
|
|
9
|
+
*
|
|
10
|
+
* Each channel is clamped to [0, 1] and stored as its square root, unorm8, which puts more codes in the
|
|
11
|
+
* dark. The top byte is 255, so a code is never 0, black
|
|
12
|
+
* included: a reader may take 0 for no albedo at all.
|
|
13
|
+
*
|
|
14
|
+
* @type {CodeChunk}
|
|
15
|
+
*/
|
|
16
|
+
export const chunk_albedo_compress = CodeChunk.from(
|
|
17
|
+
//language=WGSL
|
|
18
|
+
`
|
|
19
|
+
fn albedo_compress(albedo: vec3<f32>) -> u32 {
|
|
20
|
+
return pack4x8unorm(vec4<f32>(sqrt(saturate(albedo)), 1.0));
|
|
21
|
+
}
|
|
22
|
+
`);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A diffuse albedo from the code `albedo_compress` wrote:
|
|
3
|
+
*
|
|
4
|
+
* ```wgsl
|
|
5
|
+
* fn albedo_uncompress(code: u32) -> vec3<f32> // RGB on [0, 1]
|
|
6
|
+
* ```
|
|
7
|
+
*
|
|
8
|
+
* The code's low three bytes are the square roots of R, G and B, unorm8; its top byte is 255 for every
|
|
9
|
+
* albedo.
|
|
10
|
+
*
|
|
11
|
+
* @type {CodeChunk}
|
|
12
|
+
*/
|
|
13
|
+
export const chunk_albedo_uncompress: CodeChunk;
|
|
14
|
+
import { CodeChunk } from "../../compiler/CodeChunk.js";
|
|
15
|
+
//# sourceMappingURL=chunk_albedo_uncompress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk_albedo_uncompress.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/shader/chunk/material/chunk_albedo_uncompress.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,sCAFU,SAAS,CAUhB;0BAtBuB,6BAA6B"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { CodeChunk } from "../../compiler/CodeChunk.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* A diffuse albedo from the code `albedo_compress` wrote:
|
|
5
|
+
*
|
|
6
|
+
* ```wgsl
|
|
7
|
+
* fn albedo_uncompress(code: u32) -> vec3<f32> // RGB on [0, 1]
|
|
8
|
+
* ```
|
|
9
|
+
*
|
|
10
|
+
* The code's low three bytes are the square roots of R, G and B, unorm8; its top byte is 255 for every
|
|
11
|
+
* albedo.
|
|
12
|
+
*
|
|
13
|
+
* @type {CodeChunk}
|
|
14
|
+
*/
|
|
15
|
+
export const chunk_albedo_uncompress = CodeChunk.from(
|
|
16
|
+
//language=WGSL
|
|
17
|
+
`
|
|
18
|
+
fn albedo_uncompress(code: u32) -> vec3<f32> {
|
|
19
|
+
let root = unpack4x8unorm(code).rgb;
|
|
20
|
+
|
|
21
|
+
return root * root;
|
|
22
|
+
}
|
|
23
|
+
`);
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Metalness and roughness, each on [0, 1], in a code of `METAL_ROUGH_CODE_BITS` bits, as
|
|
3
|
+
* `metal_rough_uncompress` reads it:
|
|
4
|
+
*
|
|
5
|
+
* ```wgsl
|
|
6
|
+
* fn metal_rough_compress(metal_rough: vec2<f32>) -> u32 // (metalness, roughness)
|
|
7
|
+
* ```
|
|
8
|
+
*
|
|
9
|
+
* Each is clamped to [0, 1] and rounded to the nearest of 2^{@link METAL_ROUGH_CHANNEL_BITS} even
|
|
10
|
+
* steps, metalness in the low bits.
|
|
11
|
+
*
|
|
12
|
+
* @type {CodeChunk}
|
|
13
|
+
*/
|
|
14
|
+
export const chunk_metal_rough_compress: CodeChunk;
|
|
15
|
+
import { CodeChunk } from "../../compiler/CodeChunk.js";
|
|
16
|
+
//# sourceMappingURL=chunk_metal_rough_compress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk_metal_rough_compress.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/shader/chunk/material/chunk_metal_rough_compress.js"],"names":[],"mappings":"AAGA;;;;;;;;;;;;GAYG;AACH,yCAFU,SAAS,CAUhB;0BAxBuB,6BAA6B"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { CodeChunk } from "../../compiler/CodeChunk.js";
|
|
2
|
+
import { METAL_ROUGH_CHANNEL_BITS } from "./chunk_metal_rough_uncompress.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Metalness and roughness, each on [0, 1], in a code of `METAL_ROUGH_CODE_BITS` bits, as
|
|
6
|
+
* `metal_rough_uncompress` reads it:
|
|
7
|
+
*
|
|
8
|
+
* ```wgsl
|
|
9
|
+
* fn metal_rough_compress(metal_rough: vec2<f32>) -> u32 // (metalness, roughness)
|
|
10
|
+
* ```
|
|
11
|
+
*
|
|
12
|
+
* Each is clamped to [0, 1] and rounded to the nearest of 2^{@link METAL_ROUGH_CHANNEL_BITS} even
|
|
13
|
+
* steps, metalness in the low bits.
|
|
14
|
+
*
|
|
15
|
+
* @type {CodeChunk}
|
|
16
|
+
*/
|
|
17
|
+
export const chunk_metal_rough_compress = CodeChunk.from(
|
|
18
|
+
//language=WGSL
|
|
19
|
+
`
|
|
20
|
+
fn metal_rough_compress(metal_rough: vec2<f32>) -> u32 {
|
|
21
|
+
let q = vec2<u32>(round(saturate(metal_rough) * ${2 ** METAL_ROUGH_CHANNEL_BITS - 1}.0));
|
|
22
|
+
|
|
23
|
+
return q.x | (q.y << ${METAL_ROUGH_CHANNEL_BITS}u);
|
|
24
|
+
}
|
|
25
|
+
`);
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bits of each of metalness and roughness in a `metal_rough_compress` code.
|
|
3
|
+
* @type {number}
|
|
4
|
+
*/
|
|
5
|
+
export const METAL_ROUGH_CHANNEL_BITS: number;
|
|
6
|
+
/**
|
|
7
|
+
* Bits of a `metal_rough_compress` code: metalness, then roughness.
|
|
8
|
+
* @type {number}
|
|
9
|
+
*/
|
|
10
|
+
export const METAL_ROUGH_CODE_BITS: number;
|
|
11
|
+
/**
|
|
12
|
+
* Metalness and roughness from the code `metal_rough_compress` wrote:
|
|
13
|
+
*
|
|
14
|
+
* ```wgsl
|
|
15
|
+
* fn metal_rough_uncompress(code: u32) -> vec2<f32> // (metalness, roughness), on [0, 1]
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* The code's low {@link METAL_ROUGH_CHANNEL_BITS} bits are the metalness and the next as many the
|
|
19
|
+
* roughness, each unorm. Bits past {@link METAL_ROUGH_CODE_BITS} are ignored.
|
|
20
|
+
*
|
|
21
|
+
* @type {CodeChunk}
|
|
22
|
+
*/
|
|
23
|
+
export const chunk_metal_rough_uncompress: CodeChunk;
|
|
24
|
+
import { CodeChunk } from "../../compiler/CodeChunk.js";
|
|
25
|
+
//# sourceMappingURL=chunk_metal_rough_uncompress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk_metal_rough_uncompress.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/shader/chunk/material/chunk_metal_rough_uncompress.js"],"names":[],"mappings":"AAEA;;;GAGG;AACH,uCAFU,MAAM,CAE0B;AAE1C;;;GAGG;AACH,oCAFU,MAAM,CAEkD;AAElE;;;;;;;;;;;GAWG;AACH,2CAFU,SAAS,CAWhB;0BAnCuB,6BAA6B"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { CodeChunk } from "../../compiler/CodeChunk.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Bits of each of metalness and roughness in a `metal_rough_compress` code.
|
|
5
|
+
* @type {number}
|
|
6
|
+
*/
|
|
7
|
+
export const METAL_ROUGH_CHANNEL_BITS = 4;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Bits of a `metal_rough_compress` code: metalness, then roughness.
|
|
11
|
+
* @type {number}
|
|
12
|
+
*/
|
|
13
|
+
export const METAL_ROUGH_CODE_BITS = 2 * METAL_ROUGH_CHANNEL_BITS;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Metalness and roughness from the code `metal_rough_compress` wrote:
|
|
17
|
+
*
|
|
18
|
+
* ```wgsl
|
|
19
|
+
* fn metal_rough_uncompress(code: u32) -> vec2<f32> // (metalness, roughness), on [0, 1]
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* The code's low {@link METAL_ROUGH_CHANNEL_BITS} bits are the metalness and the next as many the
|
|
23
|
+
* roughness, each unorm. Bits past {@link METAL_ROUGH_CODE_BITS} are ignored.
|
|
24
|
+
*
|
|
25
|
+
* @type {CodeChunk}
|
|
26
|
+
*/
|
|
27
|
+
export const chunk_metal_rough_uncompress = CodeChunk.from(
|
|
28
|
+
//language=WGSL
|
|
29
|
+
`
|
|
30
|
+
fn metal_rough_uncompress(code: u32) -> vec2<f32> {
|
|
31
|
+
return vec2<f32>(
|
|
32
|
+
f32(extractBits(code, 0u, ${METAL_ROUGH_CHANNEL_BITS}u)),
|
|
33
|
+
f32(extractBits(code, ${METAL_ROUGH_CHANNEL_BITS}u, ${METAL_ROUGH_CHANNEL_BITS}u))
|
|
34
|
+
) / ${2 ** METAL_ROUGH_CHANNEL_BITS - 1}.0;
|
|
35
|
+
}
|
|
36
|
+
`);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The code `metal_rough_compress` (`chunk_metal_rough_compress.js`) gives a metalness and roughness, on
|
|
3
|
+
* the host: each clamped to [0, 1], scaled to its steps in f32 and rounded half to even, as WGSL's
|
|
4
|
+
* `round` does.
|
|
5
|
+
*
|
|
6
|
+
* @param {number} metalness
|
|
7
|
+
* @param {number} roughness
|
|
8
|
+
* @returns {number} the code, {@link METAL_ROUGH_CHANNEL_BITS} bits each, metalness low
|
|
9
|
+
*/
|
|
10
|
+
export function metal_rough_compress(metalness: number, roughness: number): number;
|
|
11
|
+
//# sourceMappingURL=metal_rough_compress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metal_rough_compress.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/shader/chunk/material/metal_rough_compress.js"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AACH,gDAJW,MAAM,aACN,MAAM,GACJ,MAAM,CAIlB"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { clamp01 } from "../../../../../core/math/clamp01.js";
|
|
2
|
+
import { METAL_ROUGH_CHANNEL_BITS } from "./chunk_metal_rough_uncompress.js";
|
|
3
|
+
|
|
4
|
+
const STEPS = 2 ** METAL_ROUGH_CHANNEL_BITS - 1;
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* The code `metal_rough_compress` (`chunk_metal_rough_compress.js`) gives a metalness and roughness, on
|
|
8
|
+
* the host: each clamped to [0, 1], scaled to its steps in f32 and rounded half to even, as WGSL's
|
|
9
|
+
* `round` does.
|
|
10
|
+
*
|
|
11
|
+
* @param {number} metalness
|
|
12
|
+
* @param {number} roughness
|
|
13
|
+
* @returns {number} the code, {@link METAL_ROUGH_CHANNEL_BITS} bits each, metalness low
|
|
14
|
+
*/
|
|
15
|
+
export function metal_rough_compress(metalness, roughness) {
|
|
16
|
+
return step(metalness) | (step(roughness) << METAL_ROUGH_CHANNEL_BITS);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @param {number} v
|
|
21
|
+
* @returns {number}
|
|
22
|
+
*/
|
|
23
|
+
function step(v) {
|
|
24
|
+
const scaled = Math.fround(Math.fround(clamp01(Math.fround(v))) * STEPS);
|
|
25
|
+
const floor = Math.floor(scaled);
|
|
26
|
+
const fraction = scaled - floor;
|
|
27
|
+
|
|
28
|
+
if (fraction > 0.5) {
|
|
29
|
+
return floor + 1;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
if (fraction < 0.5) {
|
|
33
|
+
return floor;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// halfway: to the even one
|
|
37
|
+
return floor % 2 === 0 ? floor : floor + 1;
|
|
38
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Evaluates a 2D shuffled, Owen-scrambled Sobol (0, 2)-sequence point in [0, 1)^2
|
|
3
|
+
* entirely in registers with zero lookup tables.
|
|
4
|
+
*
|
|
5
|
+
* Every power-of-two prefix of 2^m samples forms a fully stratified (0, m, 2)-net
|
|
6
|
+
* across all elementary dyadic rectangles of area 2^-m, while per-pixel seeding
|
|
7
|
+
* decorrelates sample sets across pixels and bounce dimensions:
|
|
8
|
+
*
|
|
9
|
+
* 1. **Index shuffling (MSB-to-LSB):** `sample_idx` is Owen-scrambled top-down via
|
|
10
|
+
* `reverseBits(hash_lk(reverseBits(sample_idx), ...))`. This maps every aligned
|
|
11
|
+
* block of 2^m contiguous indices `[k * 2^m, (k + 1) * 2^m)` bijectively onto
|
|
12
|
+
* another aligned 2^m block, randomizing traversal order per pixel while keeping
|
|
13
|
+
* bits `i_31..i_m` constant across the block so prefix stratification holds.
|
|
14
|
+
* 2. **Dimension 0 (Van der Corput):** Prior to radical inversion, the base-2
|
|
15
|
+
* Van der Corput sequence is the identity on `i`. Because bit 0 of `i` (`i_0`)
|
|
16
|
+
* already represents the geometric MSB (2^-1), `hash_lk` is applied directly
|
|
17
|
+
* followed by a single `reverseBits`.
|
|
18
|
+
* 3. **Dimension 1 (Sobol D1):** Computed without direction-number tables by
|
|
19
|
+
* multiplying `i` by the 32x32 upper-triangular Pascal matrix over GF(2)
|
|
20
|
+
* (`P_{k,j} = C(j, k) mod 2`, the 5-fold Kronecker power of `[1 1; 0 1]`) using
|
|
21
|
+
* 5 logarithmic butterfly shift-XOR stages before coordinate scrambling.
|
|
22
|
+
*
|
|
23
|
+
* For multi-bounce path tracing, pass a combined hash of `(pixel_coord, bounce_dim_pair)`
|
|
24
|
+
* as `pixel_seed` to construct padded 2D (0, 2)-sequences without high-dimensional
|
|
25
|
+
* direction tables.
|
|
26
|
+
*
|
|
27
|
+
* @see Brent Burley, "Practical Hash-based Owen Scrambling", Journal of Computer
|
|
28
|
+
* Graphics Techniques (JCGT), vol. 9, no. 4, pp. 1-20, 2020.
|
|
29
|
+
* http://jcgt.org/published/0009/04/01/
|
|
30
|
+
* @see Nathan Vegdahl, "Building a Better LK Hash", 2021.
|
|
31
|
+
* https://psychopath.io/post/2021_01_30_building_a_better_lk_hash
|
|
32
|
+
* @see Ilya M. Sobol', "On the distribution of points in a cube and the approximate
|
|
33
|
+
* evaluation of integrals", USSR Computational Mathematics and Mathematical
|
|
34
|
+
* Physics, vol. 7, no. 4, pp. 86-112, 1967.
|
|
35
|
+
*
|
|
36
|
+
* @type {CodeChunk}
|
|
37
|
+
*/
|
|
38
|
+
export const chunk_sobol_sample_vec2: CodeChunk;
|
|
39
|
+
import { CodeChunk } from "../../compiler/CodeChunk.js";
|
|
40
|
+
//# sourceMappingURL=chunk_sobol_sample_vec2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk_sobol_sample_vec2.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/shader/chunk/noise/chunk_sobol_sample_vec2.js"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,sCAFU,SAAS,CAkClB;0BA1EyB,6BAA6B"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { CodeChunk } from "../../compiler/CodeChunk.js";
|
|
2
|
+
import { chunk_hash_lk } from "../random/chunk_hash_lk.js";
|
|
3
|
+
import { chunk_hash_to_float01 } from "../random/chunk_hash_to_float01.js";
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Evaluates a 2D shuffled, Owen-scrambled Sobol (0, 2)-sequence point in [0, 1)^2
|
|
8
|
+
* entirely in registers with zero lookup tables.
|
|
9
|
+
*
|
|
10
|
+
* Every power-of-two prefix of 2^m samples forms a fully stratified (0, m, 2)-net
|
|
11
|
+
* across all elementary dyadic rectangles of area 2^-m, while per-pixel seeding
|
|
12
|
+
* decorrelates sample sets across pixels and bounce dimensions:
|
|
13
|
+
*
|
|
14
|
+
* 1. **Index shuffling (MSB-to-LSB):** `sample_idx` is Owen-scrambled top-down via
|
|
15
|
+
* `reverseBits(hash_lk(reverseBits(sample_idx), ...))`. This maps every aligned
|
|
16
|
+
* block of 2^m contiguous indices `[k * 2^m, (k + 1) * 2^m)` bijectively onto
|
|
17
|
+
* another aligned 2^m block, randomizing traversal order per pixel while keeping
|
|
18
|
+
* bits `i_31..i_m` constant across the block so prefix stratification holds.
|
|
19
|
+
* 2. **Dimension 0 (Van der Corput):** Prior to radical inversion, the base-2
|
|
20
|
+
* Van der Corput sequence is the identity on `i`. Because bit 0 of `i` (`i_0`)
|
|
21
|
+
* already represents the geometric MSB (2^-1), `hash_lk` is applied directly
|
|
22
|
+
* followed by a single `reverseBits`.
|
|
23
|
+
* 3. **Dimension 1 (Sobol D1):** Computed without direction-number tables by
|
|
24
|
+
* multiplying `i` by the 32x32 upper-triangular Pascal matrix over GF(2)
|
|
25
|
+
* (`P_{k,j} = C(j, k) mod 2`, the 5-fold Kronecker power of `[1 1; 0 1]`) using
|
|
26
|
+
* 5 logarithmic butterfly shift-XOR stages before coordinate scrambling.
|
|
27
|
+
*
|
|
28
|
+
* For multi-bounce path tracing, pass a combined hash of `(pixel_coord, bounce_dim_pair)`
|
|
29
|
+
* as `pixel_seed` to construct padded 2D (0, 2)-sequences without high-dimensional
|
|
30
|
+
* direction tables.
|
|
31
|
+
*
|
|
32
|
+
* @see Brent Burley, "Practical Hash-based Owen Scrambling", Journal of Computer
|
|
33
|
+
* Graphics Techniques (JCGT), vol. 9, no. 4, pp. 1-20, 2020.
|
|
34
|
+
* http://jcgt.org/published/0009/04/01/
|
|
35
|
+
* @see Nathan Vegdahl, "Building a Better LK Hash", 2021.
|
|
36
|
+
* https://psychopath.io/post/2021_01_30_building_a_better_lk_hash
|
|
37
|
+
* @see Ilya M. Sobol', "On the distribution of points in a cube and the approximate
|
|
38
|
+
* evaluation of integrals", USSR Computational Mathematics and Mathematical
|
|
39
|
+
* Physics, vol. 7, no. 4, pp. 86-112, 1967.
|
|
40
|
+
*
|
|
41
|
+
* @type {CodeChunk}
|
|
42
|
+
*/
|
|
43
|
+
export const chunk_sobol_sample_vec2 = CodeChunk.from(
|
|
44
|
+
//language=WGSL
|
|
45
|
+
`
|
|
46
|
+
fn sample_sobol_2d(sample_idx: u32, pixel_seed: u32) -> vec2<f32> {
|
|
47
|
+
// 1. Shuffle index (MSB -> LSB):
|
|
48
|
+
// Reverse sample_idx so s_31 is at bit 0, run LSB->MSB hash,
|
|
49
|
+
// then reverse back so i_0 is at bit 0 for Sobol generation.
|
|
50
|
+
let idx_seed = pixel_seed ^ 0x79c68e4au;
|
|
51
|
+
let i = reverseBits(hash_lk(reverseBits(sample_idx), idx_seed));
|
|
52
|
+
|
|
53
|
+
// 2. Dimension 0 (Van der Corput):
|
|
54
|
+
// i_0 (geometric MSB) is already at bit 0. Hash LSB->MSB, then
|
|
55
|
+
// reverse once so the geometric MSB sits at bit 31.
|
|
56
|
+
let u0 = reverseBits(hash_lk(i, pixel_seed ^ 0x9e3779b9u));
|
|
57
|
+
|
|
58
|
+
// 3. Dimension 1 (Sobol D1 via upper-triangular Pascal matrix):
|
|
59
|
+
// Requires i_0 at bit 0 so high bits (i_31..i_m, which are constant
|
|
60
|
+
// across 2^m-aligned blocks) shift down into low bits.
|
|
61
|
+
var b = i;
|
|
62
|
+
b ^= b >> 16u;
|
|
63
|
+
b ^= (b & 0xff00ff00u) >> 8u;
|
|
64
|
+
b ^= (b & 0xf0f0f0f0u) >> 4u;
|
|
65
|
+
b ^= (b & 0xccccccccu) >> 2u;
|
|
66
|
+
b ^= (b & 0xaaaaaaaau) >> 1u;
|
|
67
|
+
let u1 = reverseBits(hash_lk(b, pixel_seed ^ 0xbb67ae85u));
|
|
68
|
+
|
|
69
|
+
return vec2<f32>(hash_to_float01(u0), hash_to_float01(u1));
|
|
70
|
+
}
|
|
71
|
+
`,[
|
|
72
|
+
chunk_hash_lk,
|
|
73
|
+
chunk_hash_to_float01
|
|
74
|
+
]
|
|
75
|
+
)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk_vdc_radical_inverse.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/shader/chunk/noise/chunk_vdc_radical_inverse.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chunk_vdc_radical_inverse.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/shader/chunk/noise/chunk_vdc_radical_inverse.js"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,wCAFU,SAAS,CAalB;0BApByB,6BAA6B"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { CodeChunk } from "../../compiler/CodeChunk.js";
|
|
2
|
+
import { chunk_hash_to_float01 } from "../random/chunk_hash_to_float01.js";
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
*
|
|
@@ -12,8 +13,9 @@ export const chunk_vdc_radical_inverse = CodeChunk.from(
|
|
|
12
13
|
fn vdc_radical_inverse(bits:u32) -> f32{
|
|
13
14
|
let b = reverseBits(bits);
|
|
14
15
|
|
|
15
|
-
return
|
|
16
|
+
return hash_to_float01(b);
|
|
16
17
|
}
|
|
17
18
|
`, [
|
|
19
|
+
chunk_hash_to_float01
|
|
18
20
|
]
|
|
19
21
|
)
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Applies Brent Burley's improved seeded Laine-Karras permutation hash for fast
|
|
3
|
+
* hash-based Owen scrambling of low-discrepancy sequences.
|
|
4
|
+
*
|
|
5
|
+
* Every operation in the sequence — integer addition, multiplication by an odd
|
|
6
|
+
* integer, and XOR-multiplication by an even constant — is a bijection modulo 2^k
|
|
7
|
+
* for all k in [1, 32]. Consequently, bit `i` of the output depends exclusively
|
|
8
|
+
* on bits `0..=i` of `x_in`, propagating entropy strictly from least-significant
|
|
9
|
+
* bit (LSB) to most-significant bit (MSB) while preserving prefix stratification.
|
|
10
|
+
*
|
|
11
|
+
* True Owen scrambling randomizes binary radical inverses from MSB to LSB. Unless
|
|
12
|
+
* your input sequence is already evaluated in bit-reversed order, wrap the call
|
|
13
|
+
* with `reverseBits`: `reverseBits(hash_lk(reverseBits(x), seed))`.
|
|
14
|
+
*
|
|
15
|
+
* @see Nathan Vegdahl, "Building a Better LK Hash", 2021.
|
|
16
|
+
* https://psychopath.io/post/2021_01_30_building_a_better_lk_hash
|
|
17
|
+
* @see Brent Burley, "Practical Hash-based Owen Scrambling", Journal of Computer
|
|
18
|
+
* Graphics Techniques (JCGT), vol. 9, no. 4, pp. 1-20, 2020.
|
|
19
|
+
* http://jcgt.org/published/0009/04/01/
|
|
20
|
+
* @see Samuli Laine and Tero Karras, "Stratified Sampling for Stochastic
|
|
21
|
+
* Transparency", Computer Graphics Forum (Proceedings of EGSR), vol. 30,
|
|
22
|
+
* no. 4, pp. 1197-1204, 2011. https://doi.org/10.1111/j.1467-8659.2011.01978.x
|
|
23
|
+
*
|
|
24
|
+
* @type {CodeChunk}
|
|
25
|
+
*/
|
|
26
|
+
export const chunk_hash_lk: CodeChunk;
|
|
27
|
+
import { CodeChunk } from "../../compiler/CodeChunk.js";
|
|
28
|
+
//# sourceMappingURL=chunk_hash_lk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk_hash_lk.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/shader/chunk/random/chunk_hash_lk.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,4BAFU,SAAS,CAejB;0BAxCwB,6BAA6B"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { CodeChunk } from "../../compiler/CodeChunk.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Applies Brent Burley's improved seeded Laine-Karras permutation hash for fast
|
|
5
|
+
* hash-based Owen scrambling of low-discrepancy sequences.
|
|
6
|
+
*
|
|
7
|
+
* Every operation in the sequence — integer addition, multiplication by an odd
|
|
8
|
+
* integer, and XOR-multiplication by an even constant — is a bijection modulo 2^k
|
|
9
|
+
* for all k in [1, 32]. Consequently, bit `i` of the output depends exclusively
|
|
10
|
+
* on bits `0..=i` of `x_in`, propagating entropy strictly from least-significant
|
|
11
|
+
* bit (LSB) to most-significant bit (MSB) while preserving prefix stratification.
|
|
12
|
+
*
|
|
13
|
+
* True Owen scrambling randomizes binary radical inverses from MSB to LSB. Unless
|
|
14
|
+
* your input sequence is already evaluated in bit-reversed order, wrap the call
|
|
15
|
+
* with `reverseBits`: `reverseBits(hash_lk(reverseBits(x), seed))`.
|
|
16
|
+
*
|
|
17
|
+
* @see Nathan Vegdahl, "Building a Better LK Hash", 2021.
|
|
18
|
+
* https://psychopath.io/post/2021_01_30_building_a_better_lk_hash
|
|
19
|
+
* @see Brent Burley, "Practical Hash-based Owen Scrambling", Journal of Computer
|
|
20
|
+
* Graphics Techniques (JCGT), vol. 9, no. 4, pp. 1-20, 2020.
|
|
21
|
+
* http://jcgt.org/published/0009/04/01/
|
|
22
|
+
* @see Samuli Laine and Tero Karras, "Stratified Sampling for Stochastic
|
|
23
|
+
* Transparency", Computer Graphics Forum (Proceedings of EGSR), vol. 30,
|
|
24
|
+
* no. 4, pp. 1197-1204, 2011. https://doi.org/10.1111/j.1467-8659.2011.01978.x
|
|
25
|
+
*
|
|
26
|
+
* @type {CodeChunk}
|
|
27
|
+
*/
|
|
28
|
+
export const chunk_hash_lk = CodeChunk.from(
|
|
29
|
+
//language=WGSL
|
|
30
|
+
`
|
|
31
|
+
fn hash_lk(x_in: u32, seed: u32) -> u32 {
|
|
32
|
+
var x = x_in;
|
|
33
|
+
x ^= x * 0x3d20adeau;
|
|
34
|
+
x += seed;
|
|
35
|
+
x *= (seed >> 16u) | 1u;
|
|
36
|
+
x ^= x * 0x05526c56u;
|
|
37
|
+
x ^= x * 0x53a22864u;
|
|
38
|
+
return x;
|
|
39
|
+
}
|
|
40
|
+
`
|
|
41
|
+
);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `a + b × scale`, coefficient by coefficient: a weighted SH added to a sum.
|
|
3
|
+
*
|
|
4
|
+
* ```wgsl
|
|
5
|
+
* fn sh3_color_add_scaled(a: array<vec3<f32>, 9>, b: array<vec3<f32>, 9>, scale: f32) -> array<vec3<f32>, 9>
|
|
6
|
+
* ```
|
|
7
|
+
*
|
|
8
|
+
* @type {CodeChunk}
|
|
9
|
+
*/
|
|
10
|
+
export const chunk_sh3_color_add_scaled: CodeChunk;
|
|
11
|
+
import { CodeChunk } from "../../compiler/CodeChunk.js";
|
|
12
|
+
//# sourceMappingURL=chunk_sh3_color_add_scaled.d.ts.map
|
package/src/shade/renderer/shader/chunk/spherical_harmonics/chunk_sh3_color_add_scaled.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk_sh3_color_add_scaled.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/shader/chunk/spherical_harmonics/chunk_sh3_color_add_scaled.js"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,yCAFU,SAAS,CAchB;0BAvBuB,6BAA6B"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { CodeChunk } from "../../compiler/CodeChunk.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* `a + b × scale`, coefficient by coefficient: a weighted SH added to a sum.
|
|
5
|
+
*
|
|
6
|
+
* ```wgsl
|
|
7
|
+
* fn sh3_color_add_scaled(a: array<vec3<f32>, 9>, b: array<vec3<f32>, 9>, scale: f32) -> array<vec3<f32>, 9>
|
|
8
|
+
* ```
|
|
9
|
+
*
|
|
10
|
+
* @type {CodeChunk}
|
|
11
|
+
*/
|
|
12
|
+
export const chunk_sh3_color_add_scaled = CodeChunk.from(
|
|
13
|
+
//language=WGSL
|
|
14
|
+
`
|
|
15
|
+
fn sh3_color_add_scaled(a: array<vec3<f32>, 9>, b: array<vec3<f32>, 9>, scale: f32) -> array<vec3<f32>, 9> {
|
|
16
|
+
var out: array<vec3<f32>, 9>;
|
|
17
|
+
|
|
18
|
+
for (var i = 0; i < 9; i++) {
|
|
19
|
+
out[i] = a[i] + b[i] * scale;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
return out;
|
|
23
|
+
}
|
|
24
|
+
`);
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An RGB SH2 (L1) function of a unit normal written about a pivot normal, and its evaluation:
|
|
3
|
+
*
|
|
4
|
+
* ```wgsl
|
|
5
|
+
* struct Sh2ColorPivot { value: vec3<f32>, gradient: mat3x3<f32>, pivot: vec3<f32> }
|
|
6
|
+
* fn sh2_color_pivot_evaluate(f: Sh2ColorPivot, n: vec3<f32>) -> vec3<f32> // value + gradient · (n − pivot)
|
|
7
|
+
* ```
|
|
8
|
+
*
|
|
9
|
+
* Any L1 function on the sphere is affine in the normal, c₀ + c·n, so this is the same function space as
|
|
10
|
+
* band 0 and band 1 of SH. Writing it about a pivot near the normals it was fitted on puts a real value
|
|
11
|
+
* in `value`, the function at the pivot, where band 0 is the function's mean over the whole sphere. A
|
|
12
|
+
* one-sided fit's mean can lie far outside the range its values take on the fitted side.
|
|
13
|
+
*
|
|
14
|
+
* `gradient`'s column `a` is the RGB derivative along normal axis `a`.
|
|
15
|
+
*
|
|
16
|
+
* @type {CodeChunk}
|
|
17
|
+
*/
|
|
18
|
+
export const chunk_sh2_color_pivot: CodeChunk;
|
|
19
|
+
import { CodeChunk } from "../../../compiler/CodeChunk.js";
|
|
20
|
+
//# sourceMappingURL=chunk_sh2_color_pivot.d.ts.map
|
package/src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk_sh2_color_pivot.d.ts","sourceRoot":"","sources":["../../../../../../../../src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AACH,oCAFU,SAAS,CAiBhB;0BAlCuB,gCAAgC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { CodeChunk } from "../../../compiler/CodeChunk.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* An RGB SH2 (L1) function of a unit normal written about a pivot normal, and its evaluation:
|
|
5
|
+
*
|
|
6
|
+
* ```wgsl
|
|
7
|
+
* struct Sh2ColorPivot { value: vec3<f32>, gradient: mat3x3<f32>, pivot: vec3<f32> }
|
|
8
|
+
* fn sh2_color_pivot_evaluate(f: Sh2ColorPivot, n: vec3<f32>) -> vec3<f32> // value + gradient · (n − pivot)
|
|
9
|
+
* ```
|
|
10
|
+
*
|
|
11
|
+
* Any L1 function on the sphere is affine in the normal, c₀ + c·n, so this is the same function space as
|
|
12
|
+
* band 0 and band 1 of SH. Writing it about a pivot near the normals it was fitted on puts a real value
|
|
13
|
+
* in `value`, the function at the pivot, where band 0 is the function's mean over the whole sphere. A
|
|
14
|
+
* one-sided fit's mean can lie far outside the range its values take on the fitted side.
|
|
15
|
+
*
|
|
16
|
+
* `gradient`'s column `a` is the RGB derivative along normal axis `a`.
|
|
17
|
+
*
|
|
18
|
+
* @type {CodeChunk}
|
|
19
|
+
*/
|
|
20
|
+
export const chunk_sh2_color_pivot = CodeChunk.from(
|
|
21
|
+
//language=WGSL
|
|
22
|
+
`
|
|
23
|
+
struct Sh2ColorPivot {
|
|
24
|
+
/** the function at the pivot */
|
|
25
|
+
value: vec3<f32>,
|
|
26
|
+
/** a column an axis of the normal: the RGB change per unit of that axis */
|
|
27
|
+
gradient: mat3x3<f32>,
|
|
28
|
+
/** unit length */
|
|
29
|
+
pivot: vec3<f32>,
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
fn sh2_color_pivot_evaluate(f: Sh2ColorPivot, n: vec3<f32>) -> vec3<f32> {
|
|
33
|
+
return f.value + f.gradient * (n - f.pivot);
|
|
34
|
+
}
|
|
35
|
+
`);
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An {@link chunk_sh2_color_pivot} function whose value at the pivot is in [0, 1] per channel, an
|
|
3
|
+
* albedo, in 128 bits, laid out as `sh2_color_pivot_uncompress` reads them:
|
|
4
|
+
*
|
|
5
|
+
* ```wgsl
|
|
6
|
+
* fn sh2_color_pivot_compress(f: Sh2ColorPivot) -> vec4<u32>
|
|
7
|
+
* ```
|
|
8
|
+
*
|
|
9
|
+
* - **The gradient** goes first: nine snorm8 codes over the least power of two at or above its largest
|
|
10
|
+
* component, so every code lies within ±127 and the largest one at or past 64.
|
|
11
|
+
* - **The pivot** goes next, octahedral, 12 bits a coordinate.
|
|
12
|
+
* - **The value** is then taken at the stored pivot, through the stored gradient: f(pivot′) =
|
|
13
|
+
* value + G′·(pivot′ − pivot). The function keeps its value at the given pivot up to the value's own
|
|
14
|
+
* code, whatever the pivot's quantization and however steep the gradient. The value is clamped to
|
|
15
|
+
* [0, 1] and stored as its square root, unorm8 a channel, which puts more codes in the dark, as
|
|
16
|
+
* `albedo_compress` stores an albedo.
|
|
17
|
+
*
|
|
18
|
+
* A code is never all zero: the exponent byte is at least 1, 1 for a zero gradient. A reader may take
|
|
19
|
+
* an all-zero `vec4<u32>` for no function at all.
|
|
20
|
+
*
|
|
21
|
+
* Nothing is deringed. A function fitted to one side of the sphere takes whatever values its other
|
|
22
|
+
* side gives, and a reader evaluates it near its pivot.
|
|
23
|
+
*
|
|
24
|
+
* @type {CodeChunk}
|
|
25
|
+
*/
|
|
26
|
+
export const chunk_sh2_color_pivot_compress: CodeChunk;
|
|
27
|
+
import { CodeChunk } from "../../../compiler/CodeChunk.js";
|
|
28
|
+
//# sourceMappingURL=chunk_sh2_color_pivot_compress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk_sh2_color_pivot_compress.d.ts","sourceRoot":"","sources":["../../../../../../../../src/shade/renderer/shader/chunk/spherical_harmonics/pivot/chunk_sh2_color_pivot_compress.js"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,6CAFU,SAAS,CA6CZ;0BA9EmB,gCAAgC"}
|