@woosh/meep-engine 3.60.4 → 3.60.6
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 +2621 -0
- package/CONTRIBUTING.md +7 -0
- package/MIGRATION_2_TO_3.md +136 -0
- package/SECURITY.md +4 -0
- package/editor/EditorCameraNavigation.d.ts +2 -1
- package/editor/EditorCameraNavigation.d.ts.map +1 -1
- package/editor/EditorCameraNavigation.js +51 -57
- package/package.json +6 -2
- package/src/engine/EngineHarness.d.ts +3 -9
- package/src/engine/EngineHarness.d.ts.map +1 -1
- package/src/engine/EngineHarness.js +6 -8
- package/src/engine/graphics/camera/makeOrbitalCameraController.d.ts +9 -6
- package/src/engine/graphics/camera/makeOrbitalCameraController.d.ts.map +1 -1
- package/src/engine/graphics/camera/makeOrbitalCameraController.js +44 -71
- package/src/engine/graphics/camera/orbital/MomentumAxis.d.ts +64 -0
- package/src/engine/graphics/camera/orbital/MomentumAxis.d.ts.map +1 -0
- package/src/engine/graphics/camera/orbital/MomentumAxis.js +187 -0
- package/src/engine/graphics/camera/orbital/OrbitalCameraRig.d.ts +86 -0
- package/src/engine/graphics/camera/orbital/OrbitalCameraRig.d.ts.map +1 -0
- package/src/engine/graphics/camera/orbital/OrbitalCameraRig.js +319 -0
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.d.ts +34 -10
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.d.ts.map +1 -1
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.js +116 -30
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.d.ts +1 -7
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.js +1 -37
- package/src/engine/graphics/ecs/water/Water.d.ts +8 -0
- package/src/engine/graphics/ecs/water/Water.d.ts.map +1 -1
- package/src/engine/graphics/ecs/water/Water.js +8 -0
- package/src/engine/graphics3/WaterSystem.d.ts.map +1 -1
- package/src/engine/graphics3/WaterSystem.js +731 -734
- package/src/engine/graphics3/decal/DecalTileShader.d.ts +61 -0
- package/src/engine/graphics3/decal/DecalTileShader.d.ts.map +1 -0
- package/src/engine/graphics3/decal/DecalTileShader.js +138 -0
- package/src/engine/graphics3/decal/GPUDecalRenderer.d.ts +10 -4
- package/src/engine/graphics3/decal/GPUDecalRenderer.d.ts.map +1 -1
- package/src/engine/graphics3/decal/GPUDecalRenderer.js +149 -44
- package/src/engine/graphics3/decal/chunk_decal_tile_vertex.d.ts +25 -0
- package/src/engine/graphics3/decal/chunk_decal_tile_vertex.d.ts.map +1 -0
- package/src/engine/graphics3/decal/chunk_decal_tile_vertex.js +55 -0
- package/src/engine/graphics3/decal/graph_gather_decal_tiles.d.ts +22 -0
- package/src/engine/graphics3/decal/graph_gather_decal_tiles.d.ts.map +1 -0
- package/src/engine/graphics3/decal/graph_gather_decal_tiles.js +70 -0
- package/src/engine/graphics3/decal/shader_decal_composite.d.ts +7 -5
- package/src/engine/graphics3/decal/shader_decal_composite.d.ts.map +1 -1
- package/src/engine/graphics3/decal/shader_decal_composite.js +48 -44
- package/src/engine/graphics3/decal/shader_decal_tile_copy.d.ts +12 -0
- package/src/engine/graphics3/decal/shader_decal_tile_copy.d.ts.map +1 -0
- package/src/engine/graphics3/decal/shader_decal_tile_copy.js +78 -0
- package/src/engine/graphics3/decal/shader_gather_decal_tiles.d.ts +11 -0
- package/src/engine/graphics3/decal/shader_gather_decal_tiles.d.ts.map +1 -0
- package/src/engine/graphics3/decal/shader_gather_decal_tiles.js +80 -0
- package/src/engine/input/devices/mouse/MouseEventButtons.d.ts +13 -0
- package/src/engine/input/devices/mouse/MouseEventButtons.d.ts.map +1 -0
- package/src/engine/input/devices/mouse/MouseEventButtons.js +23 -0
- package/src/engine/input/ecs/controllers/KeyboardCameraController.d.ts +4 -0
- package/src/engine/input/ecs/controllers/KeyboardCameraController.d.ts.map +1 -1
- package/src/engine/input/ecs/controllers/KeyboardCameraController.js +9 -45
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
- package/src/shade/playground/water_refraction/README.md +5 -6
- package/src/shade/playground/water_refraction/index.html +1 -1
- package/src/shade/renderer/Renderer.d.ts +11 -0
- package/src/shade/renderer/Renderer.d.ts.map +1 -1
- package/src/shade/renderer/Renderer.js +50 -6
- package/src/shade/renderer/camera/orbital/OrbitalCameraController.d.ts +40 -80
- package/src/shade/renderer/camera/orbital/OrbitalCameraController.d.ts.map +1 -1
- package/src/shade/renderer/camera/orbital/OrbitalCameraController.js +197 -147
- 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/sdf/GPUGeometrySDFManager.d.ts +28 -45
- package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.d.ts.map +1 -1
- package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.js +111 -119
- package/src/shade/renderer/geometry/sdf/cards/GPUMeshCardSets.d.ts +22 -3
- package/src/shade/renderer/geometry/sdf/cards/GPUMeshCardSets.d.ts.map +1 -1
- package/src/shade/renderer/geometry/sdf/cards/GPUMeshCardSets.js +84 -3
- package/src/shade/renderer/geometry/virtual/proxy/vgeo_proxy_triangle_limit.d.ts +19 -0
- package/src/shade/renderer/geometry/virtual/proxy/vgeo_proxy_triangle_limit.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/proxy/vgeo_proxy_triangle_limit.js +25 -0
- package/src/shade/renderer/geometry/virtual/proxy/vgeo_to_proxy_mesh.d.ts +31 -0
- package/src/shade/renderer/geometry/virtual/proxy/vgeo_to_proxy_mesh.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/proxy/vgeo_to_proxy_mesh.js +343 -0
- package/src/shade/renderer/geometry/virtual/runtime/VirtualGeometry.d.ts +15 -0
- package/src/shade/renderer/geometry/virtual/runtime/VirtualGeometry.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/runtime/VirtualGeometry.js +38 -0
- package/src/shade/renderer/geometry/virtual/runtime/vgeo_meshlet_metadata_write.d.ts +17 -0
- package/src/shade/renderer/geometry/virtual/runtime/vgeo_meshlet_metadata_write.d.ts.map +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/vgeo_meshlet_metadata_write.js +29 -0
- package/src/shade/renderer/geometry/virtual/runtime/vgeo_runtime_meshlet_batch.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/runtime/vgeo_runtime_meshlet_batch.js +7 -13
- package/src/shade/renderer/geometry/virtual/sdf/VGeoSDFProxies.d.ts +28 -59
- package/src/shade/renderer/geometry/virtual/sdf/VGeoSDFProxies.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/sdf/VGeoSDFProxies.js +84 -789
- package/src/shade/renderer/global_illumination/probe_clipmap/GPUProbeClipmapGI.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/GPUProbeClipmapGI.js +1 -8
- package/src/shade/renderer/global_illumination/probe_clipmap/ProbeClipmapSceneHolds.d.ts +7 -6
- package/src/shade/renderer/global_illumination/probe_clipmap/ProbeClipmapSceneHolds.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/ProbeClipmapSceneHolds.js +12 -11
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/chunk_mesh_brick_instance.d.ts +2 -2
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/chunk_mesh_brick_instance.js +2 -2
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/GPUProbeClipmap.d.ts +1 -4
- 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 +1 -10
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_hit_surface.d.ts +5 -15
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_hit_surface.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_hit_surface.js +6 -34
- 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 +1 -7
- package/src/shade/renderer/hiz/HZBFootprint.d.ts +14 -0
- package/src/shade/renderer/hiz/HZBFootprint.d.ts.map +1 -0
- package/src/shade/renderer/hiz/HZBFootprint.js +16 -0
- package/src/shade/renderer/hiz/HZB_FOOTPRINT_X.d.ts +10 -0
- package/src/shade/renderer/hiz/HZB_FOOTPRINT_X.d.ts.map +1 -0
- package/src/shade/renderer/hiz/HZB_FOOTPRINT_X.js +11 -0
- package/src/shade/renderer/hiz/HZB_FOOTPRINT_Y.d.ts +10 -0
- package/src/shade/renderer/hiz/HZB_FOOTPRINT_Y.d.ts.map +1 -0
- package/src/shade/renderer/hiz/HZB_FOOTPRINT_Y.js +11 -0
- package/src/shade/renderer/hiz/HierarchicalZBuffer.d.ts +0 -7
- package/src/shade/renderer/hiz/HierarchicalZBuffer.d.ts.map +1 -1
- package/src/shade/renderer/hiz/HierarchicalZBuffer.js +405 -350
- package/src/shade/renderer/hiz/chunk_hzb_footprint_x.d.ts +12 -0
- package/src/shade/renderer/hiz/chunk_hzb_footprint_x.d.ts.map +1 -0
- package/src/shade/renderer/hiz/chunk_hzb_footprint_x.js +27 -0
- package/src/shade/renderer/hiz/chunk_hzb_footprint_y.d.ts +12 -0
- package/src/shade/renderer/hiz/chunk_hzb_footprint_y.d.ts.map +1 -0
- package/src/shade/renderer/hiz/chunk_hzb_footprint_y.js +27 -0
- package/src/shade/renderer/hiz/hzb_footprint_texels.d.ts +14 -0
- package/src/shade/renderer/hiz/hzb_footprint_texels.d.ts.map +1 -0
- package/src/shade/renderer/hiz/hzb_footprint_texels.js +34 -0
- package/src/shade/renderer/hiz/shader_hzb_reduce_any.d.ts +0 -5
- package/src/shade/renderer/hiz/shader_hzb_reduce_any.d.ts.map +1 -1
- package/src/shade/renderer/hiz/shader_hzb_reduce_any.js +37 -57
- package/src/shade/renderer/hiz/shader_hzb_reduce_mip0.d.ts +11 -0
- package/src/shade/renderer/hiz/shader_hzb_reduce_mip0.d.ts.map +1 -0
- package/src/shade/renderer/hiz/{shader_hzb_reduce_mip0_clip.js → shader_hzb_reduce_mip0.js} +120 -111
- package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
- package/src/shade/renderer/material/GPUMaterialManager.d.ts +11 -1
- package/src/shade/renderer/material/GPUMaterialManager.d.ts.map +1 -1
- package/src/shade/renderer/material/GPUMaterialManager.js +16 -8
- package/src/shade/renderer/material/resident/GPUResidentMaterialContext.d.ts +12 -12
- package/src/shade/renderer/material/resident/GPUResidentMaterialContext.d.ts.map +1 -1
- package/src/shade/renderer/material/resident/GPUResidentMaterialContext.js +17 -118
- package/src/shade/renderer/postprocess/gtao/GTAO.d.ts +7 -3
- package/src/shade/renderer/postprocess/gtao/GTAO.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/gtao/GTAO.js +26 -13
- package/src/shade/renderer/postprocess/gtao/ao_reproject_shader.d.ts +14 -0
- package/src/shade/renderer/postprocess/gtao/ao_reproject_shader.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/gtao/ao_reproject_shader.js +196 -68
- package/src/shade/renderer/postprocess/gtao/fragment_shader_gtao.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/gtao/fragment_shader_gtao.js +42 -28
- package/src/shade/renderer/postprocess/gtao/fragment_shader_gtao_with_irradiance.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/gtao/fragment_shader_gtao_with_irradiance.js +429 -414
- package/src/shade/renderer/postprocess/gtao/shader_gtao_spatial_denoise.d.ts +16 -0
- package/src/shade/renderer/postprocess/gtao/shader_gtao_spatial_denoise.d.ts.map +1 -0
- package/src/shade/renderer/postprocess/gtao/shader_gtao_spatial_denoise.js +156 -0
- package/src/shade/renderer/scene/GPUSceneContext.d.ts +2 -2
- package/src/shade/renderer/scene/GPUSceneContext.js +5 -5
- package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.d.ts.map +1 -1
- package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.js +7 -2
- package/src/shade/renderer/water/GPUWaterRenderer.d.ts +0 -6
- package/src/shade/renderer/water/GPUWaterRenderer.d.ts.map +1 -1
- package/src/shade/renderer/water/GPUWaterRenderer.js +12 -17
- package/src/shade/renderer/water/medium/graph_water_meshlets.d.ts +35 -0
- package/src/shade/renderer/water/medium/graph_water_meshlets.d.ts.map +1 -0
- package/src/shade/renderer/water/medium/graph_water_meshlets.js +89 -0
- package/src/shade/renderer/water/query/GPUWaterQueries.d.ts +1 -1
- package/src/shade/renderer/water/shader_water.d.ts.map +1 -1
- package/src/shade/renderer/water/shader_water.js +22 -13
- package/src/shade/renderer/water/shader_water_avboit.d.ts.map +1 -1
- package/src/shade/renderer/water/shader_water_avboit.js +7 -7
- package/src/shade/renderer/water/surface/graph_water_tessellation.d.ts +1 -1
- package/src/shade/renderer/water/surface/graph_water_tessellation.js +1 -1
- package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.js +9 -1
- package/editor/REWORK_PLAN_2026_08.md +0 -692
- package/src/CODEC_LAYOUT_VERIFICATION.md +0 -419
- package/src/CORRECTNESS_HUNT_2026_07_24.md +0 -142
- package/src/DUPLICATION_AUDIT_2026_08_07/00_core_reuse_surface.md +0 -738
- package/src/DUPLICATION_AUDIT_2026_08_07/A_core_math_geom.md +0 -79
- package/src/DUPLICATION_AUDIT_2026_08_07/B_core_data.md +0 -93
- package/src/DUPLICATION_AUDIT_2026_08_07/C_gfx_render.md +0 -80
- package/src/DUPLICATION_AUDIT_2026_08_07/D_gfx_features.md +0 -164
- package/src/DUPLICATION_AUDIT_2026_08_07/E_physics.md +0 -69
- package/src/DUPLICATION_AUDIT_2026_08_07/F_sound.md +0 -110
- package/src/DUPLICATION_AUDIT_2026_08_07/G_net_save.md +0 -129
- package/src/DUPLICATION_AUDIT_2026_08_07/H_engine_misc.md +0 -72
- package/src/DUPLICATION_AUDIT_2026_08_07/I_generation_view.md +0 -74
- package/src/DUPLICATION_AUDIT_2026_08_07/K_crosscutting.md +0 -169
- package/src/DUPLICATION_AUDIT_2026_08_07.md +0 -254
- package/src/DUPLICATION_AUDIT_REMEDIATION.md +0 -250
- package/src/DUPLICATION_REVIEW_2026_10_24.md +0 -1072
- package/src/REVIEW_2026_08_06/adv-core.md +0 -511
- package/src/REVIEW_2026_08_06/adv-gfx.md +0 -480
- package/src/REVIEW_2026_08_06/adv-view.md +0 -446
- package/src/REVIEW_2026_08_06/api-core.md +0 -296
- package/src/REVIEW_2026_08_06/api-engine.md +0 -195
- package/src/REVIEW_2026_08_06/bvh-phys-sound-net.md +0 -507
- package/src/REVIEW_2026_08_06/core-binary.md +0 -348
- package/src/REVIEW_2026_08_06/core-collection.md +0 -376
- package/src/REVIEW_2026_08_06/core-math.md +0 -221
- package/src/REVIEW_2026_08_06/core-process.md +0 -266
- package/src/REVIEW_2026_08_06/core-science.md +0 -223
- package/src/REVIEW_2026_08_06/engine-ai-nav.md +0 -279
- package/src/REVIEW_2026_08_06/engine-animation.md +0 -167
- package/src/REVIEW_2026_08_06/engine-asset.md +0 -166
- package/src/REVIEW_2026_08_06/engine-ecs.md +0 -920
- package/src/REVIEW_2026_08_06/engine-input.md +0 -197
- package/src/REVIEW_2026_08_06/engine-misc.md +0 -248
- package/src/REVIEW_2026_08_06/engine-terrain.md +0 -52
- package/src/REVIEW_2026_08_06/generation.md +0 -176
- package/src/REVIEW_2026_08_06/geom-2d.md +0 -434
- package/src/REVIEW_2026_08_06/geom-3d.md +0 -117
- package/src/REVIEW_2026_08_06/gfx-gi.md +0 -143
- package/src/REVIEW_2026_08_06/gfx-render.md +0 -740
- package/src/REVIEW_2026_08_06/gfx-texture.md +0 -690
- package/src/REVIEW_2026_08_06/prior-criticals.md +0 -49
- package/src/REVIEW_2026_08_06/prior-highs.md +0 -138
- package/src/REVIEW_2026_08_06/test-gaps.md +0 -364
- package/src/REVIEW_2026_08_06/view.md +0 -667
- package/src/REVIEW_2026_08_06.md +0 -610
- package/src/core/binary/lz4/LZ4_HIGH_COMPRESSION_PLAN_2026_09_14.md +0 -542
- package/src/core/bvh2/bvh3/NOTES.md +0 -2
- package/src/core/bvh8/NOTES.md +0 -63
- package/src/core/cache/wtinylfu/benchmark/CacheWTinylfu.bench.md +0 -243
- package/src/core/color/COLOR_FIX_PLAN_2026_08_28.md +0 -417
- package/src/core/color/COLOR_REVIEW_2026_08_28.md +0 -779
- package/src/core/geom/2d/polygon/TRIANGULATION_DESIGN.md +0 -433
- package/src/core/geom/3d/atlas/ATLAS_PORT_PLAN.md +0 -486
- package/src/core/geom/3d/atlas/BFF_PLAN.md +0 -174
- package/src/core/geom/3d/atlas/REVIEW_02.md +0 -392
- package/src/core/geom/3d/gjk/GJK_REVIEW_NOTES.md +0 -146
- package/src/core/geom/3d/gjk/NOTES.md +0 -8
- package/src/core/geom/3d/topology/TOPO_MESH_RETIREMENT_PLAN.md +0 -135
- package/src/core/geom/GEOMETRY_REVIEW_002_API_ISSUES.md +0 -381
- package/src/core/geom/GEOMETRY_REVIEW_002_NAMING.md +0 -684
- package/src/core/geom/MANIFOLD_COMPARISON_2026_08_01.md +0 -554
- package/src/core/model/reactive/evaluation/PREDICATE_APPLICABILITY_PROPOSAL.md +0 -446
- package/src/engine/REVIEW_2026_07_03.md +0 -211
- package/src/engine/asset/loaders/image/IMAGE_CODEC_REVIEW_2026_08_28.md +0 -815
- package/src/engine/control/first-person/DESIGN.md +0 -658
- package/src/engine/control/first-person/DESIGN_COLLISION.md +0 -382
- package/src/engine/control/first-person/DESIGN_EXTENSIONS.md +0 -563
- package/src/engine/control/first-person/TODO.md +0 -160
- package/src/engine/ecs/ASYNC_SYSTEMS_PROPOSAL.md +0 -531
- package/src/engine/ecs/HIERARCHY_REVIEW.md +0 -717
- package/src/engine/ecs/async/WORKER_SYSTEM_PLAN.md +0 -262
- package/src/engine/ecs/ik/PLAN.md +0 -179
- package/src/engine/ecs/storage/binary/SERIALIZATION_COVERAGE.md +0 -272
- package/src/engine/ecs/storage/binary/object-v2/DESIGN.md +0 -199
- package/src/engine/ecs/transform/TRANSFORM64_MIGRATION_PLAN_2026_09_04.md +0 -521
- package/src/engine/graphics/CONTEXT_LOSS_RECOVERY_PLAN.md +0 -463
- package/src/engine/graphics/ecs/camera/pp/NOTES.md +0 -48
- package/src/engine/graphics/render/frame_graph/CORRECTNESS_FIXES_2026_09_04.md +0 -659
- package/src/engine/graphics/render/frame_graph/FRAME_GRAPH_RECOMMENDATIONS.md +0 -235
- package/src/engine/graphics/sh3/path_tracer/REVIEW_001_ACTION_PLAN.md +0 -490
- package/src/engine/graphics/texture/sampler/compare/FLIP_IMPLEMENTATION_PLAN.md +0 -466
- package/src/engine/input/GAMEPAD_API_PROPOSAL.md +0 -717
- package/src/engine/input/ecs/ism/ISM_DESIGN.md +0 -1523
- package/src/engine/input/ecs/ism/ISM_IMPLEMENTATION_PLAN.md +0 -627
- package/src/engine/navigation/mesh/OVERLAPPING_SURFACES_2026_08_25.md +0 -661
- package/src/engine/navigation/mesh/PATHFINDING_PLAN.md +0 -229
- package/src/engine/network/CONGESTION_CONTROL.md +0 -87
- package/src/engine/network/MESSAGE_TRANSPORT.md +0 -364
- package/src/engine/network/SMOOTHNESS_DESIGN.md +0 -400
- package/src/engine/physics/cloth/MEASUREMENTS.md +0 -5304
- package/src/engine/physics/cloth/PLAN.md +0 -3056
- package/src/engine/physics/fluid/GPU_FLUID_CASCADES_PROPOSAL_2026_10_16.md +0 -1382
- package/src/engine/physics/fluid/REVIEW_02_PLAN.md +0 -243
- package/src/engine/physics/fluid/solver/NOTES.md +0 -46
- package/src/engine/sound/SOUND_EMITTER_RETIREMENT_PLAN.md +0 -536
- package/src/engine/sound/simulation/IMPLEMENTATION_PLAN.md +0 -432
- package/src/engine/sound/simulation/PROBE_PLACEMENT.md +0 -250
- package/src/engine/sound/simulation/PROBE_TRANSFER_RESEARCH.md +0 -322
- package/src/engine/sound/simulation/REFLECTION_IR_PLAN.md +0 -261
- package/src/engine/sound/simulation/VISIBILITY_GRAPH_PLAN.md +0 -121
- package/src/engine/sound/sopra/IMPLEMENTATION_PLAN.md +0 -999
- package/src/format/image/avif/DECISIONS.md +0 -545
- package/src/format/image/jpeg/NOTES.md +0 -3
- package/src/format/scene/gltf/MESHOPT_COMPRESSION_PLAN.md +0 -814
- package/src/generation/COORDINATES.md +0 -54
- package/src/generation/REVIEW_01_ACTION_PLAN.md +0 -628
- package/src/generation/foliage/ANNUAL_SHOOTS_BRIEF_2026_10_25.md +0 -220
- package/src/generation/foliage/CROWN_FILLING_BRIEF_2026_10_26.md +0 -172
- package/src/generation/foliage/CROWN_FULLNESS_BRIEF_2026_10_26.md +0 -86
- package/src/generation/foliage/FOLIAGE_DESIGN.md +0 -547
- package/src/generation/foliage/FOLIAGE_PLAN.md +0 -198
- package/src/generation/foliage/LEAF_ARCHITECTURE_BRIEF_2026_10_26.md +0 -158
- package/src/generation/foliage/LOD_REWORK_BRIEF_2026_10_27.md +0 -521
- package/src/generation/foliage/REAL_TIME_TREES_BRIEF_2026_10_27.md +0 -86
- package/src/generation/foliage/SELF_ORGANIZING_FRAMEWORK_BRIEF_2026_10_26.md +0 -347
- package/src/generation/foliage/SHOOT_SYSTEMS_ALL_SPECIES_BRIEF_2026_10_26.md +0 -248
- package/src/generation/foliage/SPEEDTREE_COMPARISON_2026_10_24.md +0 -694
- package/src/generation/foliage/TWO_FRONT_ENDS_BRIEF_2026_10_28.md +0 -552
- package/src/shade/RENDERER_CONTRACT.md +0 -697
- package/src/shade/SHADER_F16_PROPOSAL_2026_10_24.md +0 -263
- package/src/shade/device/IMMEDIATE_DATA_PLAN_2026_08_28.md +0 -569
- package/src/shade/device/PASS_ENCODER_PROPOSAL_2026_08_31.md +0 -755
- package/src/shade/device/mock/EXTENSION_PROPOSAL_2026_08_22.md +0 -458
- package/src/shade/device/mock/IMPLEMENTATION_PLAN.md +0 -255
- package/src/shade/device/mock/REVIEW_2026_08_22.md +0 -527
- package/src/shade/device/timing/GPU_PROFILER_PROPOSAL_2026_08_28.md +0 -894
- package/src/shade/device/timing/profile/SGPT_FORMAT.md +0 -345
- package/src/shade/renderer/NOTES.md +0 -78
- package/src/shade/renderer/PLAN.md +0 -8
- package/src/shade/renderer/animation/ADDITIVE_BLENDING_PLAN.md +0 -145
- package/src/shade/renderer/animation/SKINNING_FRAME_PLAN.md +0 -357
- package/src/shade/renderer/atmosphere/NOTES.md +0 -6
- package/src/shade/renderer/camera/orbital/MomentumAxis.d.ts +0 -76
- package/src/shade/renderer/camera/orbital/MomentumAxis.d.ts.map +0 -1
- package/src/shade/renderer/camera/orbital/MomentumAxis.js +0 -164
- package/src/shade/renderer/camera/orbital/OrbitalCameraConfig.d.ts +0 -45
- package/src/shade/renderer/camera/orbital/OrbitalCameraConfig.d.ts.map +0 -1
- package/src/shade/renderer/camera/orbital/OrbitalCameraConfig.js +0 -66
- package/src/shade/renderer/camera/orbital/OrbitalCameraInput.d.ts +0 -98
- package/src/shade/renderer/camera/orbital/OrbitalCameraInput.d.ts.map +0 -1
- package/src/shade/renderer/camera/orbital/OrbitalCameraInput.js +0 -184
- package/src/shade/renderer/camera/orbital/OrbitalCameraRig.d.ts +0 -175
- package/src/shade/renderer/camera/orbital/OrbitalCameraRig.d.ts.map +0 -1
- package/src/shade/renderer/camera/orbital/OrbitalCameraRig.js +0 -411
- package/src/shade/renderer/camera/orbital/README.md +0 -81
- package/src/shade/renderer/camera/orbital/index.d.ts +0 -6
- package/src/shade/renderer/camera/orbital/index.d.ts.map +0 -1
- package/src/shade/renderer/camera/orbital/index.js +0 -9
- package/src/shade/renderer/extension/RENDER_EXTENSION_DESIGN.md +0 -964
- package/src/shade/renderer/fluid/GPU_FLUID_OCCUPANCY_AND_SOTA_REVIEW_2026_10_26.md +0 -361
- package/src/shade/renderer/geometry/bvh/BLAS_REFIT_BATCH_PLAN.md +0 -619
- package/src/shade/renderer/geometry/meshlet/COMPACTION_PLAN_2026_09_16.md +0 -674
- package/src/shade/renderer/geometry/sdf/NOTES.md +0 -6
- package/src/shade/renderer/geometry/virtual/ATTRIBUTE_PLAN_2026_09_18.md +0 -540
- package/src/shade/renderer/geometry/virtual/MICRON_COMPARISON_2026_08_20.md +0 -305
- package/src/shade/renderer/geometry/virtual/VGEO_FORMAT.md +0 -913
- package/src/shade/renderer/geometry/virtual/VIRTUAL_GEOMETRY_DESIGN.md +0 -787
- package/src/shade/renderer/geometry/virtual/VIRTUAL_GEOMETRY_PLAN.md +0 -481
- package/src/shade/renderer/geometry/virtual/VK_LOD_CLUSTERS_COMPARISON_2026_08_20.md +0 -301
- package/src/shade/renderer/geometry/virtual/WEDGE_PLAN_2026_09_18.md +0 -448
- package/src/shade/renderer/geometry/virtual/runtime/CULL_PLAN_2026_09_16.md +0 -385
- package/src/shade/renderer/geometry/virtual/runtime/CUT_PLAN_2026_09_14.md +0 -656
- package/src/shade/renderer/geometry/virtual/runtime/REVIEW_LEDGER.md +0 -308
- package/src/shade/renderer/geometry/virtual/runtime/RUNTIME_PLAN.md +0 -657
- package/src/shade/renderer/geometry/virtual/runtime/RUNTIME_PLAN_2026_09_14.md +0 -551
- package/src/shade/renderer/geometry/virtual/runtime/SHADOW_PLAN_2026_09_28.md +0 -529
- package/src/shade/renderer/geometry/virtual/sdf/VGEO_SDF.d.ts +0 -47
- package/src/shade/renderer/geometry/virtual/sdf/VGEO_SDF.d.ts.map +0 -1
- package/src/shade/renderer/geometry/virtual/sdf/VGEO_SDF.js +0 -80
- package/src/shade/renderer/geometry/virtual/sdf/shader_vgeo_sdf_collect.d.ts +0 -16
- package/src/shade/renderer/geometry/virtual/sdf/shader_vgeo_sdf_collect.d.ts.map +0 -1
- package/src/shade/renderer/geometry/virtual/sdf/shader_vgeo_sdf_collect.js +0 -67
- package/src/shade/renderer/geometry/virtual/sdf/shader_vgeo_sdf_decode.d.ts +0 -17
- package/src/shade/renderer/geometry/virtual/sdf/shader_vgeo_sdf_decode.d.ts.map +0 -1
- package/src/shade/renderer/geometry/virtual/sdf/shader_vgeo_sdf_decode.js +0 -145
- package/src/shade/renderer/geometry/virtual/sdf/shader_vgeo_sdf_traverse.d.ts +0 -12
- package/src/shade/renderer/geometry/virtual/sdf/shader_vgeo_sdf_traverse.d.ts.map +0 -1
- package/src/shade/renderer/geometry/virtual/sdf/shader_vgeo_sdf_traverse.js +0 -105
- package/src/shade/renderer/global_illumination/lpv/NOTES.md +0 -3
- package/src/shade/renderer/global_illumination/probe_clipmap/PROBE_CLIPMAP_PROPOSAL_2026_10_27.md +0 -4306
- package/src/shade/renderer/global_illumination/probe_clipmap/PROBE_RAYS_VARIABLE_AND_SORTED_SCOPE_2026_10_30.md +0 -410
- package/src/shade/renderer/global_illumination/sharc/NOTES.md +0 -8
- package/src/shade/renderer/gpu_primitive/bvh/GPU_BVH_BUILD_PLAN.md +0 -1369
- package/src/shade/renderer/gpu_primitive/bvh/PHASE1_HANDOVER.md +0 -202
- package/src/shade/renderer/gpu_primitive/indirect/NOTES.md +0 -94
- package/src/shade/renderer/hiz/NOTES.md +0 -3
- package/src/shade/renderer/hiz/shader_hzb_reduce_mip0_clip.d.ts +0 -8
- package/src/shade/renderer/hiz/shader_hzb_reduce_mip0_clip.d.ts.map +0 -1
- package/src/shade/renderer/light/cluster/NOTES.md +0 -11
- package/src/shade/renderer/light/cluster/PROPOSAL_ALGORITHM_2026_10_16.md +0 -524
- package/src/shade/renderer/light/cluster/PROPOSAL_HIERARCHICAL_2026_10_16.md +0 -1101
- package/src/shade/renderer/material/resident/shader_resident_texture_means.d.ts +0 -24
- package/src/shade/renderer/material/resident/shader_resident_texture_means.d.ts.map +0 -1
- package/src/shade/renderer/material/resident/shader_resident_texture_means.js +0 -120
- package/src/shade/renderer/particles/DESIGN.md +0 -1011
- package/src/shade/renderer/particles/EMITTER_GLOBAL_STATE_PLAN_2026_10_29.md +0 -280
- package/src/shade/renderer/particles/ORIENTATION_PLAN_2026_10_15.md +0 -453
- package/src/shade/renderer/path_tracer/PATH_TRACED_MEDIA_PLAN_2026_10_02.md +0 -520
- package/src/shade/renderer/postprocess/bloom/NOTES.md +0 -6
- package/src/shade/renderer/postprocess/fsr/NOTES.md +0 -4
- package/src/shade/renderer/postprocess/gtao/NOTES.md +0 -6
- package/src/shade/renderer/postprocess/nss/NOTES.md +0 -332
- package/src/shade/renderer/postprocess/perspective/NOTES.md +0 -3
- package/src/shade/renderer/postprocess/sscs/NOTES.md +0 -5
- package/src/shade/renderer/postprocess/ssr/NOTES.md +0 -14
- package/src/shade/renderer/postprocess/ssr/REPROJECTION_PROPOSAL.md +0 -286
- package/src/shade/renderer/postprocess/ssr/prefilter/NOTES.md +0 -39
- package/src/shade/renderer/postprocess/taa/NOTES.md +0 -11
- package/src/shade/renderer/postprocess/upscale-dither/NOTES.md +0 -78
- package/src/shade/renderer/postprocess/vrs/NOTES.md +0 -4
- package/src/shade/renderer/rasterize/native/avboit/AVBOIT_LEDGER.md +0 -1218
- package/src/shade/renderer/rasterize/native/avboit/AVBOIT_PLAN_2026_09_03.md +0 -600
- package/src/shade/renderer/restir/reservoir/NOTES.md +0 -6
- package/src/shade/renderer/shader/chunk/atmosphere/NOTES.md +0 -6
- package/src/shade/renderer/shader/chunk/brdf/FRESNEL_BRIEF_2026_10_16.md +0 -391
- package/src/shade/renderer/shader/chunk/color/tonemap/ACES_TONE_MAPPING_BRIEF_2026_10_17.md +0 -153
- package/src/shade/renderer/shader/chunk/color/tonemap/HDR_TONE_MAPPING_FORMS_BRIEF_2026_10_16.md +0 -322
- package/src/shade/renderer/shader/chunk/color/tonemap/SDR_TONE_MAPPING_BRIEF_2026_10_16.md +0 -247
- package/src/shade/renderer/shader/chunk/fsr/NOTES.md +0 -3
- package/src/shade/renderer/shader/chunk/fsr/spd/NOTES.md +0 -4
- package/src/shade/renderer/shader/chunk/geometry/ray/NOTES.md +0 -4
- package/src/shade/renderer/shader/chunk/material/MULTISCATTER.md +0 -159
- package/src/shade/renderer/shader/chunk/mboit/NOTES.md +0 -38
- package/src/shade/renderer/shader/chunk/spherical_harmonics/l1i/NOTES.md +0 -3
- package/src/shade/renderer/shader/chunk/spherical_harmonics/sampling/NOTES.md +0 -8
- package/src/shade/renderer/shader/compiler/SHADER_SWITCH_PROPOSAL_2026_10_16.md +0 -927
- package/src/shade/renderer/shadow/contact/FINDINGS.md +0 -413
- package/src/shade/renderer/shadow/map/csm/NOTES.md +0 -5
- package/src/shade/renderer/shadow/ray/NOTES.md +0 -31
- package/src/shade/renderer/shadow/sdf/NOTES.md +0 -9
- package/src/shade/renderer/shadow/sdf/brixelizer/NOTES.md +0 -5
- package/src/shade/renderer/shadow/sdf/cascade/NOTES.md +0 -9
- package/src/shade/renderer/shadow/vsm/NOTES.md +0 -12
- package/src/shade/renderer/shadow/vsm/PLAN.md +0 -442
- package/src/shade/renderer/shadow/vsm/REVIEW_LEDGER.md +0 -43
- package/src/shade/renderer/texture/COMPRESSED_TEXTURE_PLAN_2026_09_01.md +0 -2444
- package/src/shade/renderer/texture/mipmaps/NOTES.md +0 -3
- package/src/shade/renderer/volumetrics/NOTES.md +0 -1329
- package/src/shade/renderer/volumetrics/VOLUMETRIC_NOISE_PLAN_2026_10_15.md +0 -336
- package/src/shade/renderer/water/medium/GPUWaterBodies.d.ts +0 -23
- package/src/shade/renderer/water/medium/GPUWaterBodies.d.ts.map +0 -1
- package/src/shade/renderer/water/medium/GPUWaterBodies.js +0 -75
- package/src/shade/wgsl/NOTES.md +0 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GPUProbeClipmapGI.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/global_illumination/probe_clipmap/GPUProbeClipmapGI.js"],"names":[],"mappings":"AAeA;;;;;;GAMG;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AACH;IA0DI;;OAEG;IACH,sBAFW,eAAe,EAMzB;IAED;;OAEG;IACH,qCAEC;IAED;;OAEG;IACH,qCAEC;IAED;;OAEG;IACH,oCAEC;IAED;;;;;;;;;;;;;;OAcG;IACH;QAT+B,KAAK,EAAzB,UAAU;QACc,IAAI,EAA5B,cAAc;QACgB,QAAQ,EAAtC,oBAAoB;QACJ,KAAK,EAArB,MAAM;QACU,MAAM,EAAtB,MAAM;QACK,IAAI;QACE,MAAM,GAAvB,MAAM;
|
|
1
|
+
{"version":3,"file":"GPUProbeClipmapGI.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/global_illumination/probe_clipmap/GPUProbeClipmapGI.js"],"names":[],"mappings":"AAeA;;;;;;GAMG;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AACH;IA0DI;;OAEG;IACH,sBAFW,eAAe,EAMzB;IAED;;OAEG;IACH,qCAEC;IAED;;OAEG;IACH,qCAEC;IAED;;OAEG;IACH,oCAEC;IAED;;;;;;;;;;;;;;OAcG;IACH;QAT+B,KAAK,EAAzB,UAAU;QACc,IAAI,EAA5B,cAAc;QACgB,QAAQ,EAAtC,oBAAoB;QACJ,KAAK,EAArB,MAAM;QACU,MAAM,EAAtB,MAAM;QACK,IAAI;QACE,MAAM,GAAvB,MAAM;aA2FhB;IAED;;;OAGG;IACH,0BAEC;IAED;;;;;;;;;OASG;IACH,4CAUC;IAwDD;;;;;;;;;;OAUG;IACH;QAN+B,KAAK,EAAzB,UAAU;QACc,IAAI,EAA5B,cAAc;QACgB,QAAQ,EAAtC,oBAAoB;QACF,UAAU,EAA5B,MAAM,EAAE;QACN,MAAM,CAmBlB;IAED;;;;;OAKG;IACH,uBAFW,aAAa,QASvB;IAED;;;OAGG;IACH,0BAHW,aAAa,GACX,OAAO,CAanB;IAyCD;;;OAGG;IACH,gBAoBC;IAED,gBAcC;;CACJ;yBA9bY,OAAO,8DAA8D,EAAE,UAAU;8BACjF,OAAO,0BAA0B,EAAE,eAAe;6BAClD,OAAO,8BAA8B,EAAE,cAAc;mCACrD,OAAO,2BAA2B,EAAE,oBAAoB;4BACxD,OAAO,4BAA4B,EAAE,aAAa;gCAjB/B,4BAA4B;gCAQ5B,4BAA4B;uCAErB,6BAA6B"}
|
|
@@ -180,12 +180,6 @@ export class GPUProbeClipmapGI {
|
|
|
180
180
|
|
|
181
181
|
const scene = view.scene;
|
|
182
182
|
const sdf = scene.geometries.sdf;
|
|
183
|
-
const materials = this.#graphics.materials_resident;
|
|
184
|
-
|
|
185
|
-
// the scene's materials as they are this frame: a repack recaptures its pairs
|
|
186
|
-
materials.ensure_scene_materials(scene);
|
|
187
|
-
materials.update();
|
|
188
|
-
|
|
189
183
|
sdf.configure(settings.mesh_sdf_voxel_size, settings.mesh_sdf_max_bricks);
|
|
190
184
|
sdf.trim();
|
|
191
185
|
sdf.cards.capture_mode = settings.card_capture_mode;
|
|
@@ -193,7 +187,7 @@ export class GPUProbeClipmapGI {
|
|
|
193
187
|
graph,
|
|
194
188
|
budget: settings.mesh_sdf_bake_budget,
|
|
195
189
|
capture_budget: settings.card_capture_budget,
|
|
196
|
-
materials,
|
|
190
|
+
materials: this.#graphics.materials_resident,
|
|
197
191
|
material_contexts: this.#graphics.materials,
|
|
198
192
|
});
|
|
199
193
|
|
|
@@ -235,7 +229,6 @@ export class GPUProbeClipmapGI {
|
|
|
235
229
|
brick_clipmap: this.#brick_clipmap,
|
|
236
230
|
bricks,
|
|
237
231
|
scene,
|
|
238
|
-
materials,
|
|
239
232
|
card_rows: this.#holds.rows_buffer,
|
|
240
233
|
resampling: settings.resampling,
|
|
241
234
|
});
|
|
@@ -9,14 +9,15 @@
|
|
|
9
9
|
* `GPU_DATABASE_NULL` until then and for a row out of the SDF world.
|
|
10
10
|
*
|
|
11
11
|
* A row is in the SDF world when its `flags` carry `MESH_FLAG_SDF_WORLD`, whatever its geometry: a
|
|
12
|
-
* virtual geometry's cache is held as a mesh's is, and
|
|
12
|
+
* virtual geometry's cache is held as a mesh's is, and is its proxy's once `VGeoSDFProxies` aliases it: the
|
|
13
|
+
* hold and its side move to the proxy, and the pair's card set captures the proxy's layout.
|
|
13
14
|
* A skinned row draws a clone: the hold and the pair are its source's,
|
|
14
15
|
* whose unskinned field and cards the clone's header is aliased to (§6.3). A row written again moves
|
|
15
16
|
* its hold and its pair, the new ones taken before the old ones go, so a cache or card set a row keeps
|
|
16
17
|
* drawing is never let go in between.
|
|
17
18
|
*
|
|
18
|
-
* When the
|
|
19
|
-
*
|
|
19
|
+
* When the material manager restages a material whose version moved, each of that material's pairs
|
|
20
|
+
* is recaptured (§6.5), and the holds of its rows move to the side it draws now.
|
|
20
21
|
*
|
|
21
22
|
* {@link attach} subscribes and walks the rows already there; {@link detach} gives every hold and card
|
|
22
23
|
* set back. Neither trims: a cache with no holder stays until its user trims, so leaving the mode keeps
|
|
@@ -25,7 +26,7 @@
|
|
|
25
26
|
export class ProbeClipmapSceneHolds {
|
|
26
27
|
/**
|
|
27
28
|
* @param {GPUSceneContext} scene
|
|
28
|
-
* @param {GraphicsContext} graphics whose
|
|
29
|
+
* @param {GraphicsContext} graphics whose material manager's restages recapture the pairs of the material
|
|
29
30
|
*/
|
|
30
31
|
constructor(scene: GPUSceneContext, graphics: GraphicsContext);
|
|
31
32
|
/**
|
|
@@ -43,7 +44,7 @@ export class ProbeClipmapSceneHolds {
|
|
|
43
44
|
*/
|
|
44
45
|
get pair_count(): number;
|
|
45
46
|
/**
|
|
46
|
-
* Recaptures asked for, a pair each time its material was
|
|
47
|
+
* Recaptures asked for, a pair each time its material was restaged.
|
|
47
48
|
* @returns {number}
|
|
48
49
|
*/
|
|
49
50
|
get recaptures_requested(): number;
|
|
@@ -79,6 +80,6 @@ export type GPUSceneContext = import("../../scene/GPUSceneContext.js").GPUSceneC
|
|
|
79
80
|
export type MeshletGeometry = import("../../geometry/MeshletGeometry.js").MeshletGeometry;
|
|
80
81
|
export type GPUGeometryMetadata = import("../../geometry/GPUGeometryMetadata.js").GPUGeometryMetadata;
|
|
81
82
|
export type ShadeMaterial = import("../../material/ShadeMaterial.js").ShadeMaterial;
|
|
82
|
-
export type
|
|
83
|
+
export type GPUMaterialManager = import("../../material/GPUMaterialManager.js").GPUMaterialManager;
|
|
83
84
|
export type GraphicsContext = import("../../GraphicsContext.js").GraphicsContext;
|
|
84
85
|
//# sourceMappingURL=ProbeClipmapSceneHolds.d.ts.map
|
package/src/shade/renderer/global_illumination/probe_clipmap/ProbeClipmapSceneHolds.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProbeClipmapSceneHolds.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/global_illumination/probe_clipmap/ProbeClipmapSceneHolds.js"],"names":[],"mappings":"AAwDA
|
|
1
|
+
{"version":3,"file":"ProbeClipmapSceneHolds.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/global_illumination/probe_clipmap/ProbeClipmapSceneHolds.js"],"names":[],"mappings":"AAwDA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH;IAwEI;;;OAGG;IACH,mBAHW,eAAe,YACf,eAAe,EASzB;IAED;;OAEG;IACH,sEAEC;IAED;;;OAGG;IACH,yBAEC;IAED;;;OAGG;IACH,yBAEC;IAED;;;OAGG;IACH,mCAEC;IAED;;;OAGG;IACH,qCAEC;IAED,0BAEC;IAED;;;;;;OAMG;IACH,oBAJW,mBAAmB,YACnB,aAAa,GACX,MAAM,GAAC,SAAS,CAI5B;IAED;;;;OAIG;IACH,6BAIC;IAED,eAiBC;IAED,eAuCC;IAED;;OAEG;IACH,cAiBC;;CA4TJ;8BA3mBY,OAAO,gCAAgC,EAAE,eAAe;8BACxD,OAAO,mCAAmC,EAAE,eAAe;kCAC3D,OAAO,uCAAuC,EAAE,mBAAmB;4BACnE,OAAO,iCAAiC,EAAE,aAAa;iCACvD,OAAO,sCAAsC,EAAE,kBAAkB;8BACjE,OAAO,0BAA0B,EAAE,eAAe"}
|
|
@@ -10,7 +10,7 @@ import { row_of_entity } from "../../scene/rows/GPUSceneRows.js";
|
|
|
10
10
|
* @typedef {import("../../geometry/MeshletGeometry.js").MeshletGeometry} MeshletGeometry
|
|
11
11
|
* @typedef {import("../../geometry/GPUGeometryMetadata.js").GPUGeometryMetadata} GPUGeometryMetadata
|
|
12
12
|
* @typedef {import("../../material/ShadeMaterial.js").ShadeMaterial} ShadeMaterial
|
|
13
|
-
* @typedef {import("../../material/
|
|
13
|
+
* @typedef {import("../../material/GPUMaterialManager.js").GPUMaterialManager} GPUMaterialManager
|
|
14
14
|
* @typedef {import("../../GraphicsContext.js").GraphicsContext} GraphicsContext
|
|
15
15
|
*/
|
|
16
16
|
|
|
@@ -65,14 +65,15 @@ class Pair {
|
|
|
65
65
|
* `GPU_DATABASE_NULL` until then and for a row out of the SDF world.
|
|
66
66
|
*
|
|
67
67
|
* A row is in the SDF world when its `flags` carry `MESH_FLAG_SDF_WORLD`, whatever its geometry: a
|
|
68
|
-
* virtual geometry's cache is held as a mesh's is, and
|
|
68
|
+
* virtual geometry's cache is held as a mesh's is, and is its proxy's once `VGeoSDFProxies` aliases it: the
|
|
69
|
+
* hold and its side move to the proxy, and the pair's card set captures the proxy's layout.
|
|
69
70
|
* A skinned row draws a clone: the hold and the pair are its source's,
|
|
70
71
|
* whose unskinned field and cards the clone's header is aliased to (§6.3). A row written again moves
|
|
71
72
|
* its hold and its pair, the new ones taken before the old ones go, so a cache or card set a row keeps
|
|
72
73
|
* drawing is never let go in between.
|
|
73
74
|
*
|
|
74
|
-
* When the
|
|
75
|
-
*
|
|
75
|
+
* When the material manager restages a material whose version moved, each of that material's pairs
|
|
76
|
+
* is recaptured (§6.5), and the holds of its rows move to the side it draws now.
|
|
76
77
|
*
|
|
77
78
|
* {@link attach} subscribes and walks the rows already there; {@link detach} gives every hold and card
|
|
78
79
|
* set back. Neither trims: a cache with no holder stays until its user trims, so leaving the mode keeps
|
|
@@ -86,7 +87,7 @@ export class ProbeClipmapSceneHolds {
|
|
|
86
87
|
#scene;
|
|
87
88
|
|
|
88
89
|
/**
|
|
89
|
-
* @type {
|
|
90
|
+
* @type {GPUMaterialManager}
|
|
90
91
|
*/
|
|
91
92
|
#materials;
|
|
92
93
|
|
|
@@ -152,14 +153,14 @@ export class ProbeClipmapSceneHolds {
|
|
|
152
153
|
|
|
153
154
|
/**
|
|
154
155
|
* @param {GPUSceneContext} scene
|
|
155
|
-
* @param {GraphicsContext} graphics whose
|
|
156
|
+
* @param {GraphicsContext} graphics whose material manager's restages recapture the pairs of the material
|
|
156
157
|
*/
|
|
157
158
|
constructor(scene, graphics) {
|
|
158
159
|
assert.defined(scene, 'scene');
|
|
159
160
|
assert.defined(graphics, 'graphics');
|
|
160
161
|
|
|
161
162
|
this.#scene = scene;
|
|
162
|
-
this.#materials = graphics.
|
|
163
|
+
this.#materials = graphics.materials;
|
|
163
164
|
this.#device = graphics.device;
|
|
164
165
|
}
|
|
165
166
|
|
|
@@ -187,7 +188,7 @@ export class ProbeClipmapSceneHolds {
|
|
|
187
188
|
}
|
|
188
189
|
|
|
189
190
|
/**
|
|
190
|
-
* Recaptures asked for, a pair each time its material was
|
|
191
|
+
* Recaptures asked for, a pair each time its material was restaged.
|
|
191
192
|
* @returns {number}
|
|
192
193
|
*/
|
|
193
194
|
get recaptures_requested() {
|
|
@@ -241,7 +242,7 @@ export class ProbeClipmapSceneHolds {
|
|
|
241
242
|
this.#scene.geometries.sdf.onBaked.add(this.#baked, this);
|
|
242
243
|
cards.onResident.add(this.#card_set_resident, this);
|
|
243
244
|
cards.onWithdrawn.add(this.#card_set_withdrawn, this);
|
|
244
|
-
this.#materials.
|
|
245
|
+
this.#materials.onMaterialRestaged.add(this.#restaged, this);
|
|
245
246
|
|
|
246
247
|
// a row not yet written is taken now, and moved when it is
|
|
247
248
|
rows.for_each_mesh((entity, geometry, material, skinned, flags) => this.#written(entity, geometry, material, flags));
|
|
@@ -263,7 +264,7 @@ export class ProbeClipmapSceneHolds {
|
|
|
263
264
|
sdf.onBaked.remove(this.#baked, this);
|
|
264
265
|
cards.onResident.remove(this.#card_set_resident, this);
|
|
265
266
|
cards.onWithdrawn.remove(this.#card_set_withdrawn, this);
|
|
266
|
-
this.#materials.
|
|
267
|
+
this.#materials.onMaterialRestaged.remove(this.#restaged, this);
|
|
267
268
|
|
|
268
269
|
for (const [entity, record] of this.#held) {
|
|
269
270
|
sdf.release(record, this.#pair_of.get(entity).two_sided);
|
|
@@ -524,7 +525,7 @@ export class ProbeClipmapSceneHolds {
|
|
|
524
525
|
/**
|
|
525
526
|
* @param {ShadeMaterial} material
|
|
526
527
|
*/
|
|
527
|
-
#
|
|
528
|
+
#restaged(material) {
|
|
528
529
|
const of_material = this.#pairs_of_material.get(material.id);
|
|
529
530
|
|
|
530
531
|
if (of_material === undefined) {
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
* `mesh_brick_accept` is the gather's leaf filter, with `bounds` the row's world box and `voxel` the
|
|
11
11
|
* cascade's: the row is in the SDF world, its geometry's field is resident (a skinned clone's through
|
|
12
12
|
* its source's, the hook), and its box resolves in the cascade (`brick_provider_resolves`). A virtual
|
|
13
|
-
* geometry's
|
|
14
|
-
*
|
|
13
|
+
* geometry's header is an alias of its proxy's (§7.8), so its rows are taken as a mesh's are, once the
|
|
14
|
+
* proxy's field is resident.
|
|
15
15
|
*
|
|
16
16
|
* `mesh_brick_instance` makes the instance the texels sample: the inverse of its transform, its box,
|
|
17
17
|
* its smallest axis scale, and the coarsest level of its field no coarser than the cascade,
|
package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/chunk_mesh_brick_instance.js
CHANGED
|
@@ -19,8 +19,8 @@ import { MESH_BRICK_INSTANCE_STRUCT } from "./MESH_BRICK_INSTANCE_STRUCT.js";
|
|
|
19
19
|
* `mesh_brick_accept` is the gather's leaf filter, with `bounds` the row's world box and `voxel` the
|
|
20
20
|
* cascade's: the row is in the SDF world, its geometry's field is resident (a skinned clone's through
|
|
21
21
|
* its source's, the hook), and its box resolves in the cascade (`brick_provider_resolves`). A virtual
|
|
22
|
-
* geometry's
|
|
23
|
-
*
|
|
22
|
+
* geometry's header is an alias of its proxy's (§7.8), so its rows are taken as a mesh's are, once the
|
|
23
|
+
* proxy's field is resident.
|
|
24
24
|
*
|
|
25
25
|
* `mesh_brick_instance` makes the instance the texels sample: the inverse of its transform, its box,
|
|
26
26
|
* its smallest axis scale, and the coarsest level of its field no coarser than the cascade,
|
|
@@ -156,13 +156,11 @@ export class GPUProbeClipmap {
|
|
|
156
156
|
* the update orders after
|
|
157
157
|
* @param {import("../../../scene/GPUSceneContext.js").GPUSceneContext} options.scene the scene the rays
|
|
158
158
|
* light and shade: its lights, its environment, its rows and their geometry caches' cards
|
|
159
|
-
* @param {import("../../../material/resident/GPUResidentMaterialContext.js").GPUResidentMaterialContext} options.materials
|
|
160
|
-
* the resident materials, updated this frame: what a hit no card sees takes
|
|
161
159
|
* @param {GPUBuffer} options.card_rows the row → card set table, a word a `meshes` row
|
|
162
160
|
* @param {boolean} options.resampling whether each update re-samples its neighbours, adding what they have
|
|
163
161
|
* seen to its rays (`shader_probe_clipmap_resample`)
|
|
164
162
|
*/
|
|
165
|
-
graph_update({ graph, x, y, z, depth, normal, camera, stbn, resolution, response_frames, ray_budget, rays_per_probe, brick_clipmap, bricks, scene,
|
|
163
|
+
graph_update({ graph, x, y, z, depth, normal, camera, stbn, resolution, response_frames, ray_budget, rays_per_probe, brick_clipmap, bricks, scene, card_rows, resampling }: {
|
|
166
164
|
graph: FrameGraph;
|
|
167
165
|
x: number;
|
|
168
166
|
y: number;
|
|
@@ -178,7 +176,6 @@ export class GPUProbeClipmap {
|
|
|
178
176
|
brick_clipmap: import("../brick/GPUBrickClipmap.js").GPUBrickClipmap;
|
|
179
177
|
bricks: number;
|
|
180
178
|
scene: import("../../../scene/GPUSceneContext.js").GPUSceneContext;
|
|
181
|
-
materials: import("../../../material/resident/GPUResidentMaterialContext.js").GPUResidentMaterialContext;
|
|
182
179
|
card_rows: GPUBuffer;
|
|
183
180
|
resampling: boolean;
|
|
184
181
|
}): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GPUProbeClipmap.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/global_illumination/probe_clipmap/probe/GPUProbeClipmap.js"],"names":[],"mappings":"AAoHA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH;
|
|
1
|
+
{"version":3,"file":"GPUProbeClipmap.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/global_illumination/probe_clipmap/probe/GPUProbeClipmap.js"],"names":[],"mappings":"AAoHA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH;IAqOI;;;;;;;;OAQG;IACH;QAN2B,aAAa,EAA7B,MAAM;QACU,UAAU,EAA1B,MAAM;QACU,OAAO,EAAvB,MAAM;QACU,mBAAmB,EAAnC,MAAM;QACU,gBAAgB,EAAhC,MAAM;OAmGhB;IA9UD;;;OAGG;IACH,wBAHU,MAAM,CAGF;IAEd;;;;OAIG;IACH,qBAHU,MAAM,CAGL;IAEX;;;;OAIG;IACH,kBAHU,MAAM,CAGR;IAER;;;;OAIG;IACH,8BAHU,MAAM,CAGI;IAEpB;;;;OAIG;IACH,2BAHU,MAAM,CAGC;IAgTjB;;;;;;;;OAQG;IACH,4CAUC;IAED;;OAEG;IACH,8BAEC;IAED;;;;;OAKG;IACH,wBAEC;IAED;;;OAGG;IACH,uBAEC;IAED;;;;OAIG;IACH,gBAJW,MAAM,QACN,MAAM,GACJ,MAAM,CAIlB;IAED;;;OAGG;IACH,mBAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;OAGG;IACH,oBAHW,oBAAoB,GAClB,OAAO,CAQnB;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH;QAtB+B,KAAK,EAAzB,UAAU;QACM,CAAC,EAAjB,MAAM;QACU,CAAC,EAAjB,MAAM;QACU,CAAC,EAAjB,MAAM;QACU,KAAK,EAArB,MAAM;QACU,MAAM,EAAtB,MAAM;QACa,MAAM;QACd,IAAI;QACY,UAAU,EAArC,UAAU,MAAM,CAAC;QACD,eAAe,EAA/B,MAAM;QACU,UAAU,EAA1B,MAAM;QACU,cAAc,EAA9B,MAAM;QACyD,aAAa,EAA5E,OAAO,6BAA6B,EAAE,eAAe;QAErC,MAAM,EAAtB,MAAM;QAE+D,KAAK,EAA1E,OAAO,mCAAmC,EAAE,eAAe;QAExC,SAAS;QACX,UAAU,EAA3B,OAAO;aA+OjB;IAweD,gBAcC;;CACJ;mCA5uCY,OAAO,4BAA4B,EAAE,oBAAoB;yBACzD,OAAO,iEAAiE,EAAE,UAAU"}
|
|
@@ -380,9 +380,6 @@ export class GPUProbeClipmap {
|
|
|
380
380
|
*/
|
|
381
381
|
#scene = null;
|
|
382
382
|
|
|
383
|
-
/** The frame's resident materials, a hit's fallback. @type {import("../../../material/resident/GPUResidentMaterialContext.js").GPUResidentMaterialContext|null} */
|
|
384
|
-
#materials = null;
|
|
385
|
-
|
|
386
383
|
/** The frame's row → card set table. @type {GPUBuffer|null} */
|
|
387
384
|
#card_rows = null;
|
|
388
385
|
|
|
@@ -599,13 +596,11 @@ export class GPUProbeClipmap {
|
|
|
599
596
|
* the update orders after
|
|
600
597
|
* @param {import("../../../scene/GPUSceneContext.js").GPUSceneContext} options.scene the scene the rays
|
|
601
598
|
* light and shade: its lights, its environment, its rows and their geometry caches' cards
|
|
602
|
-
* @param {import("../../../material/resident/GPUResidentMaterialContext.js").GPUResidentMaterialContext} options.materials
|
|
603
|
-
* the resident materials, updated this frame: what a hit no card sees takes
|
|
604
599
|
* @param {GPUBuffer} options.card_rows the row → card set table, a word a `meshes` row
|
|
605
600
|
* @param {boolean} options.resampling whether each update re-samples its neighbours, adding what they have
|
|
606
601
|
* seen to its rays (`shader_probe_clipmap_resample`)
|
|
607
602
|
*/
|
|
608
|
-
graph_update({ graph, x, y, z, depth, normal, camera, stbn, resolution, response_frames, ray_budget, rays_per_probe, brick_clipmap, bricks, scene,
|
|
603
|
+
graph_update({ graph, x, y, z, depth, normal, camera, stbn, resolution, response_frames, ray_budget, rays_per_probe, brick_clipmap, bricks, scene, card_rows, resampling }) {
|
|
609
604
|
assert.defined(graph, 'graph');
|
|
610
605
|
assert.defined(camera, 'camera');
|
|
611
606
|
assert.defined(stbn, 'stbn');
|
|
@@ -616,7 +611,6 @@ export class GPUProbeClipmap {
|
|
|
616
611
|
assert.defined(brick_clipmap, 'brick_clipmap');
|
|
617
612
|
assert.isNonNegativeInteger(bricks, 'bricks');
|
|
618
613
|
assert.defined(scene, 'scene');
|
|
619
|
-
assert.defined(materials, 'materials');
|
|
620
614
|
assert.defined(card_rows, 'card_rows');
|
|
621
615
|
assert.isBoolean(resampling, 'resampling');
|
|
622
616
|
assert.notOk(this.#destroyed, 'destroyed');
|
|
@@ -772,7 +766,6 @@ export class GPUProbeClipmap {
|
|
|
772
766
|
|
|
773
767
|
this.#brick_clipmap = brick_clipmap;
|
|
774
768
|
this.#scene = scene;
|
|
775
|
-
this.#materials = materials;
|
|
776
769
|
this.#card_rows = card_rows;
|
|
777
770
|
|
|
778
771
|
const tiles_x = Math.ceil(resolution[0] / PROBE_WANT_TILE);
|
|
@@ -1213,8 +1206,6 @@ export class GPUProbeClipmap {
|
|
|
1213
1206
|
b.mesh_card_sets = cards.records;
|
|
1214
1207
|
b.mesh_card_albedo = cards.atlas.texture_at(0).obtainView();
|
|
1215
1208
|
b.mesh_card_emissive = cards.atlas.texture_at(1).obtainView();
|
|
1216
|
-
b.materials = this.#materials.buffer_materials;
|
|
1217
|
-
b.texture_means = this.#materials.buffer_texture_means;
|
|
1218
1209
|
b.tEnvironment = lights.environment.obtainView();
|
|
1219
1210
|
|
|
1220
1211
|
shader_probe_clipmap_shade.dispatchIndirect({
|
|
@@ -5,16 +5,6 @@
|
|
|
5
5
|
* @type {number}
|
|
6
6
|
*/
|
|
7
7
|
export const PROBE_HIT_SURFACE_TOLERANCE_VOXELS: number;
|
|
8
|
-
/**
|
|
9
|
-
* The resident materials' table, as the ray passes read it: `materials[mesh.material]`.
|
|
10
|
-
* @type {ShaderResourceDescriptor}
|
|
11
|
-
*/
|
|
12
|
-
export const PROBE_HIT_MATERIALS_RESOURCE: ShaderResourceDescriptor;
|
|
13
|
-
/**
|
|
14
|
-
* Each resident texture slot's mean, `GPUResidentMaterialContext.buffer_texture_means`.
|
|
15
|
-
* @type {ShaderResourceDescriptor}
|
|
16
|
-
*/
|
|
17
|
-
export const PROBE_HIT_TEXTURE_MEANS_RESOURCE: ShaderResourceDescriptor;
|
|
18
8
|
/**
|
|
19
9
|
* What a GI hit's surface is (PROBE_CLIPMAP_PROPOSAL_2026_10_27.md §6.6), its diffuse albedo and its
|
|
20
10
|
* emissive, from the `meshes` row the hit is on:
|
|
@@ -27,15 +17,15 @@ export const PROBE_HIT_TEXTURE_MEANS_RESOURCE: ShaderResourceDescriptor;
|
|
|
27
17
|
* the geometry's local space through its node, the normal by the transpose of the node's linear
|
|
28
18
|
* part, and the tolerance {@link PROBE_HIT_SURFACE_TOLERANCE_VOXELS} voxels of the hit's cascade,
|
|
29
19
|
* `voxel`, in local units by the transform's mean scale, the cube root of its determinant.
|
|
30
|
-
* - **
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
20
|
+
* - **Black**, where no card set is resident or no card sees the hit, as UE's Lumen leaves a hit no
|
|
21
|
+
* card covers: a surface whose albedo is not known brings back no light rather than light it may not
|
|
22
|
+
* have. The cost is energy, never invented energy: a material's colour factor is all of a flat one's
|
|
23
|
+
* albedo but only the bound of a textured one's, and in Sponza it made the bounce-lit gallery 60%
|
|
24
|
+
* brighter on screen (§6.6).
|
|
34
25
|
* - **Row 0** names no object, the scene root never being a mesh: the hit is black.
|
|
35
26
|
*
|
|
36
27
|
* @type {CodeChunk}
|
|
37
28
|
*/
|
|
38
29
|
export const chunk_probe_clipmap_hit_surface: CodeChunk;
|
|
39
|
-
import { ShaderResourceDescriptor } from "../../../shader/resource/ShaderResourceDescriptor.js";
|
|
40
30
|
import { CodeChunk } from "../../../shader/compiler/CodeChunk.js";
|
|
41
31
|
//# sourceMappingURL=chunk_probe_clipmap_hit_surface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk_probe_clipmap_hit_surface.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_hit_surface.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chunk_probe_clipmap_hit_surface.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_hit_surface.js"],"names":[],"mappings":"AASA;;;;;GAKG;AACH,iDAFU,MAAM,CAEsC;AAEtD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,8CAFU,SAAS,CA0CZ;0BAvEmB,uCAAuC"}
|
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
import { GPU_DATABASE_NULL } from "../../../buffer/table/GPU_DATABASE_NULL.js";
|
|
2
2
|
import { chunk_mesh_card_surface } from "../../../geometry/sdf/cards/chunk_mesh_card_surface.js";
|
|
3
3
|
import { MESH_CARD_ROWS_RESOURCE } from "../../../geometry/sdf/cards/MESH_CARD_RESOURCES.js";
|
|
4
|
-
import { INDIRECT_MATERIAL_ARRAY_TYPE } from "../../../material/resident/INDIRECT_MATERIAL_ARRAY_TYPE.js";
|
|
5
4
|
import { chunk_scene_database_access } from "../../../scene/chunk_scene_database_access.js";
|
|
6
5
|
import { SCENE_DATABASE_RESOURCE } from "../../../scene/SCENE_DATABASE_RESOURCE.js";
|
|
7
6
|
import { chunk_mat4_inverse } from "../../../shader/chunk/geometry/mat4/chunk_mat4_inverse.js";
|
|
8
7
|
import { chunk_mat4_linear_determinant } from "../../../shader/chunk/geometry/mat4/chunk_mat4_linear_determinant.js";
|
|
9
|
-
import { chunk_albedo_unpremultiply } from "../../../shader/chunk/material/chunk_albedo_unpremultiply.js";
|
|
10
8
|
import { CodeChunk } from "../../../shader/compiler/CodeChunk.js";
|
|
11
|
-
import { ShaderResourceDescriptor } from "../../../shader/resource/ShaderResourceDescriptor.js";
|
|
12
|
-
import { vec4f } from "../../../shader/type/WEBGPU_WGSL_PRIMITIVE_TYPES.js";
|
|
13
|
-
import { WebGPUArray } from "../../../shader/type/WebGPUArray.js";
|
|
14
9
|
|
|
15
10
|
/**
|
|
16
11
|
* The tolerance a card's depth is held to at a GI hit, in voxels of the hit's brick cascade: a hit is
|
|
@@ -20,18 +15,6 @@ import { WebGPUArray } from "../../../shader/type/WebGPUArray.js";
|
|
|
20
15
|
*/
|
|
21
16
|
export const PROBE_HIT_SURFACE_TOLERANCE_VOXELS = 1.5;
|
|
22
17
|
|
|
23
|
-
/**
|
|
24
|
-
* The resident materials' table, as the ray passes read it: `materials[mesh.material]`.
|
|
25
|
-
* @type {ShaderResourceDescriptor}
|
|
26
|
-
*/
|
|
27
|
-
export const PROBE_HIT_MATERIALS_RESOURCE = ShaderResourceDescriptor.uniform("materials", INDIRECT_MATERIAL_ARRAY_TYPE);
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Each resident texture slot's mean, `GPUResidentMaterialContext.buffer_texture_means`.
|
|
31
|
-
* @type {ShaderResourceDescriptor}
|
|
32
|
-
*/
|
|
33
|
-
export const PROBE_HIT_TEXTURE_MEANS_RESOURCE = ShaderResourceDescriptor.storageBuffer("texture_means", WebGPUArray.from(vec4f));
|
|
34
|
-
|
|
35
18
|
/**
|
|
36
19
|
* What a GI hit's surface is (PROBE_CLIPMAP_PROPOSAL_2026_10_27.md §6.6), its diffuse albedo and its
|
|
37
20
|
* emissive, from the `meshes` row the hit is on:
|
|
@@ -44,10 +27,11 @@ export const PROBE_HIT_TEXTURE_MEANS_RESOURCE = ShaderResourceDescriptor.storage
|
|
|
44
27
|
* the geometry's local space through its node, the normal by the transpose of the node's linear
|
|
45
28
|
* part, and the tolerance {@link PROBE_HIT_SURFACE_TOLERANCE_VOXELS} voxels of the hit's cascade,
|
|
46
29
|
* `voxel`, in local units by the transform's mean scale, the cube root of its determinant.
|
|
47
|
-
* - **
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
30
|
+
* - **Black**, where no card set is resident or no card sees the hit, as UE's Lumen leaves a hit no
|
|
31
|
+
* card covers: a surface whose albedo is not known brings back no light rather than light it may not
|
|
32
|
+
* have. The cost is energy, never invented energy: a material's colour factor is all of a flat one's
|
|
33
|
+
* albedo but only the bound of a textured one's, and in Sponza it made the bounce-lit gallery 60%
|
|
34
|
+
* brighter on screen (§6.6).
|
|
51
35
|
* - **Row 0** names no object, the scene root never being a mesh: the hit is black.
|
|
52
36
|
*
|
|
53
37
|
* @type {CodeChunk}
|
|
@@ -67,11 +51,10 @@ fn probe_clipmap_hit_surface(row: u32, position: vec3<f32>, normal: vec3<f32>, v
|
|
|
67
51
|
return out;
|
|
68
52
|
}
|
|
69
53
|
|
|
70
|
-
let mesh = scene_read_mesh(&scene_database, row);
|
|
71
54
|
let card_set = mesh_card_rows[row];
|
|
72
55
|
|
|
73
56
|
if (card_set != ${GPU_DATABASE_NULL}u) {
|
|
74
|
-
let global = scene_read_node(&scene_database,
|
|
57
|
+
let global = scene_read_node(&scene_database, scene_read_mesh(&scene_database, row).node).global;
|
|
75
58
|
let linear = mat3x3<f32>(global[0].xyz, global[1].xyz, global[2].xyz);
|
|
76
59
|
|
|
77
60
|
let p = (mat4_inverse(global) * vec4<f32>(position, 1.0)).xyz;
|
|
@@ -83,28 +66,17 @@ fn probe_clipmap_hit_surface(row: u32, position: vec3<f32>, normal: vec3<f32>, v
|
|
|
83
66
|
if (seen.found) {
|
|
84
67
|
out.albedo = seen.albedo;
|
|
85
68
|
out.emissive = seen.emissive;
|
|
86
|
-
|
|
87
|
-
return out;
|
|
88
69
|
}
|
|
89
70
|
}
|
|
90
71
|
|
|
91
|
-
let material = materials[mesh.material];
|
|
92
|
-
let metalness = material.metallic_factor * texture_means[material.texture_orm].b;
|
|
93
|
-
|
|
94
|
-
out.albedo = albedo_unpremultiply(texture_means[material.texture_albedo]) * material.color_albedo.rgb * (1.0 - metalness);
|
|
95
|
-
out.emissive = texture_means[material.texture_emissive].rgb * material.emissive_factor;
|
|
96
|
-
|
|
97
72
|
return out;
|
|
98
73
|
}
|
|
99
74
|
`, [
|
|
100
75
|
chunk_scene_database_access,
|
|
101
76
|
chunk_mat4_inverse,
|
|
102
77
|
chunk_mat4_linear_determinant,
|
|
103
|
-
chunk_albedo_unpremultiply,
|
|
104
78
|
chunk_mesh_card_surface,
|
|
105
79
|
]);
|
|
106
80
|
|
|
107
81
|
chunk_probe_clipmap_hit_surface.requireResource(SCENE_DATABASE_RESOURCE);
|
|
108
82
|
chunk_probe_clipmap_hit_surface.requireResource(MESH_CARD_ROWS_RESOURCE);
|
|
109
|
-
chunk_probe_clipmap_hit_surface.requireResource(PROBE_HIT_MATERIALS_RESOURCE);
|
|
110
|
-
chunk_probe_clipmap_hit_surface.requireResource(PROBE_HIT_TEXTURE_MEANS_RESOURCE);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shader_probe_clipmap_shade.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_shade.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shader_probe_clipmap_shade.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_shade.js"],"names":[],"mappings":"AAqDA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,yCAFU,aAAa,CAyDpB;8BAlH2B,kCAAkC"}
|
package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_shade.js
CHANGED
|
@@ -19,11 +19,7 @@ import { ComputeShader } from "../../../shader/ComputeShader.js";
|
|
|
19
19
|
import { ShaderResourceSetDescriptor } from "../../../shader/resource/ShaderResourceSetDescriptor.js";
|
|
20
20
|
import { BRICK_TRACE_HIT, BRICK_TRACE_MISS } from "../brick/BRICK_CLIPMAP.js";
|
|
21
21
|
import { BRICK_LEVELS_RESOURCE } from "../brick/chunk_brick_clipmap_trace.js";
|
|
22
|
-
import {
|
|
23
|
-
chunk_probe_clipmap_hit_surface,
|
|
24
|
-
PROBE_HIT_MATERIALS_RESOURCE,
|
|
25
|
-
PROBE_HIT_TEXTURE_MEANS_RESOURCE
|
|
26
|
-
} from "./chunk_probe_clipmap_hit_surface.js";
|
|
22
|
+
import { chunk_probe_clipmap_hit_surface } from "./chunk_probe_clipmap_hit_surface.js";
|
|
27
23
|
import {
|
|
28
24
|
chunk_probe_clipmap,
|
|
29
25
|
chunk_probe_clipmap_ray_origin,
|
|
@@ -49,8 +45,6 @@ resources.createGroup()
|
|
|
49
45
|
resources.createGroup()
|
|
50
46
|
.add(SCENE_DATABASE_RESOURCE)
|
|
51
47
|
.add(MESH_CARD_ROWS_RESOURCE)
|
|
52
|
-
.add(PROBE_HIT_MATERIALS_RESOURCE)
|
|
53
|
-
.add(PROBE_HIT_TEXTURE_MEANS_RESOURCE)
|
|
54
48
|
.add(MESH_SDF_HEADERS_RESOURCE)
|
|
55
49
|
.add(MESH_SDF_INDIRECTION_RESOURCE)
|
|
56
50
|
.add(MESH_CARD_SETS_RESOURCE)
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How many source texels, along one axis, the mip 0 reduction reads per HZB texel: the widest footprint
|
|
3
|
+
* any HZB texel of the dispatch has on that axis ({@link hzb_footprint_texels }). Narrower footprints in
|
|
4
|
+
* the same dispatch read their last texel again.
|
|
5
|
+
*
|
|
6
|
+
* Two when the axis halves exactly, three when mip 0 is padded past half the source, which the HZB's
|
|
7
|
+
* sizing caps at three ({@link HierarchicalZBuffersetViewportSize }).
|
|
8
|
+
*/
|
|
9
|
+
export type HZBFootprint = number;
|
|
10
|
+
export namespace HZBFootprint {
|
|
11
|
+
let Two: number;
|
|
12
|
+
let Three: number;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=HZBFootprint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HZBFootprint.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/hiz/HZBFootprint.js"],"names":[],"mappings":";;;;;;;;2BAQU,MAAM"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How many source texels, along one axis, the mip 0 reduction reads per HZB texel: the widest footprint
|
|
3
|
+
* any HZB texel of the dispatch has on that axis ({@link hzb_footprint_texels}). Narrower footprints in
|
|
4
|
+
* the same dispatch read their last texel again.
|
|
5
|
+
*
|
|
6
|
+
* Two when the axis halves exactly, three when mip 0 is padded past half the source, which the HZB's
|
|
7
|
+
* sizing caps at three ({@link HierarchicalZBuffer#setViewportSize}).
|
|
8
|
+
*
|
|
9
|
+
* @enum {number}
|
|
10
|
+
*/
|
|
11
|
+
export const HZBFootprint = {
|
|
12
|
+
/** Two texels: the source is exactly twice the HZB's mip 0 on this axis. */
|
|
13
|
+
Two: 0,
|
|
14
|
+
/** Three texels: the HZB's mip 0 is padded past half the source on this axis. */
|
|
15
|
+
Three: 1,
|
|
16
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The mip 0 reduction's footprint across x — decided by {@link chunk_hzb_footprint_x}.
|
|
3
|
+
*
|
|
4
|
+
* `HierarchicalZBuffer` sets it from the viewport and its mip 0 width, each time the viewport changes.
|
|
5
|
+
*
|
|
6
|
+
* @type {ShaderSwitch}
|
|
7
|
+
*/
|
|
8
|
+
export const HZB_FOOTPRINT_X: ShaderSwitch;
|
|
9
|
+
import { ShaderSwitch } from "../shader/compiler/ShaderSwitch.js";
|
|
10
|
+
//# sourceMappingURL=HZB_FOOTPRINT_X.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HZB_FOOTPRINT_X.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/hiz/HZB_FOOTPRINT_X.js"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,8BAFU,YAAY,CAE4D;6BAVrD,oCAAoC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ShaderSwitch } from "../shader/compiler/ShaderSwitch.js";
|
|
2
|
+
import { HZBFootprint } from "./HZBFootprint.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* The mip 0 reduction's footprint across x — decided by {@link chunk_hzb_footprint_x}.
|
|
6
|
+
*
|
|
7
|
+
* `HierarchicalZBuffer` sets it from the viewport and its mip 0 width, each time the viewport changes.
|
|
8
|
+
*
|
|
9
|
+
* @type {ShaderSwitch}
|
|
10
|
+
*/
|
|
11
|
+
export const HZB_FOOTPRINT_X = ShaderSwitch.enum('hzb footprint x', HZBFootprint);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The mip 0 reduction's footprint across y — decided by {@link chunk_hzb_footprint_y}.
|
|
3
|
+
*
|
|
4
|
+
* `HierarchicalZBuffer` sets it from the viewport and its mip 0 height, each time the viewport changes.
|
|
5
|
+
*
|
|
6
|
+
* @type {ShaderSwitch}
|
|
7
|
+
*/
|
|
8
|
+
export const HZB_FOOTPRINT_Y: ShaderSwitch;
|
|
9
|
+
import { ShaderSwitch } from "../shader/compiler/ShaderSwitch.js";
|
|
10
|
+
//# sourceMappingURL=HZB_FOOTPRINT_Y.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HZB_FOOTPRINT_Y.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/hiz/HZB_FOOTPRINT_Y.js"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,8BAFU,YAAY,CAE4D;6BAVrD,oCAAoC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ShaderSwitch } from "../shader/compiler/ShaderSwitch.js";
|
|
2
|
+
import { HZBFootprint } from "./HZBFootprint.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* The mip 0 reduction's footprint across y — decided by {@link chunk_hzb_footprint_y}.
|
|
6
|
+
*
|
|
7
|
+
* `HierarchicalZBuffer` sets it from the viewport and its mip 0 height, each time the viewport changes.
|
|
8
|
+
*
|
|
9
|
+
* @type {ShaderSwitch}
|
|
10
|
+
*/
|
|
11
|
+
export const HZB_FOOTPRINT_Y = ShaderSwitch.enum('hzb footprint y', HZBFootprint);
|
|
@@ -1,10 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @typedef {import("../../device/pipeline/PipelineEnquiry.js").PipelineEnquiry} PipelineEnquiry
|
|
3
|
-
* @typedef {import("../../device/ShadeGPUCommandContext.js").ShadeGPUCommandContext} ShadeGPUCommandContext
|
|
4
|
-
* @typedef {import("../GraphicsContext.js").GraphicsContext} GraphicsContext
|
|
5
|
-
* @typedef {import("../texture/GPUTextureContext.js").GPUTextureContext} GPUTextureContext
|
|
6
|
-
* @typedef {import("./hzb_plan_reduction_steps.js").HZBReductionStep} HZBReductionStep
|
|
7
|
-
*/
|
|
8
1
|
export class HierarchicalZBuffer {
|
|
9
2
|
/**
|
|
10
3
|
* Offer the pipelines {@link build} dispatches — see {@link PipelineEnquiry}.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HierarchicalZBuffer.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/hiz/HierarchicalZBuffer.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HierarchicalZBuffer.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/hiz/HierarchicalZBuffer.js"],"names":[],"mappings":"AAqDA;IAgCI;;;;OAIG;IACH,iCAFW,eAAe,QAazB;IAsBD;;;OAGG;IACH,sBAFW,eAAe,EAczB;IApCD;;;OAGG;IACH,2EAEC;IA8CD;;;;;OAKG;IACH,eAJW,sBAAsB,UACtB,iBAAiB,kBACjB,MAAM,EAAE,QAoHlB;IA6DD;;;;OAIG;IACH,mBAHW,MAAM,KACN,MAAM,QAgChB;IA8BD,gBAEC;;CACJ;8BAjYY,OAAO,0CAA0C,EAAE,eAAe;qCAClE,OAAO,wCAAwC,EAAE,sBAAsB;8BACvE,OAAO,uBAAuB,EAAE,eAAe;gCAC/C,OAAO,iCAAiC,EAAE,iBAAiB;+BAC3D,OAAO,+BAA+B,EAAE,gBAAgB"}
|