@woosh/meep-engine 3.49.0 → 3.50.0
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/build/bundle-worker-terrain.js +1 -1
- package/editor/particles/effect/ParticleReferenceSimulation.d.ts +11 -0
- package/editor/particles/effect/ParticleReferenceSimulation.d.ts.map +1 -1
- package/editor/particles/effect/ParticleReferenceSimulation.js +28 -0
- package/editor/view/particles/effect/ParticleGraphEditorView.d.ts.map +1 -1
- package/editor/view/particles/effect/ParticleGraphEditorView.js +2 -0
- package/package.json +1 -1
- package/src/core/color/xyz/m3_rgb_to_xyz_from_primaries.d.ts +11 -0
- package/src/core/color/xyz/m3_rgb_to_xyz_from_primaries.d.ts.map +1 -0
- package/src/core/color/xyz/m3_rgb_to_xyz_from_primaries.js +40 -0
- package/src/core/geom/3d/mat4/m4_decompose_rigid_array.d.ts +24 -0
- package/src/core/geom/3d/mat4/m4_decompose_rigid_array.d.ts.map +1 -0
- package/src/core/geom/3d/mat4/m4_decompose_rigid_array.js +80 -0
- package/src/core/geom/3d/shape/PosedShape3D.d.ts +10 -0
- package/src/core/geom/3d/shape/PosedShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/PosedShape3D.js +50 -11
- package/src/core/geom/3d/shape/TransformedShape3D.d.ts +37 -0
- package/src/core/geom/3d/shape/TransformedShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/TransformedShape3D.js +73 -49
- package/src/core/geom/3d/shape/UnionShape3D.d.ts +13 -0
- package/src/core/geom/3d/shape/UnionShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/UnionShape3D.js +17 -4
- package/src/core/geom/3d/shape/record/ShapeRecord.d.ts +65 -0
- package/src/core/geom/3d/shape/record/ShapeRecord.d.ts.map +1 -0
- package/src/core/geom/3d/shape/record/ShapeRecord.js +72 -0
- package/src/core/geom/3d/shape/record/ShapeRecordKind.d.ts +13 -0
- package/src/core/geom/3d/shape/record/ShapeRecordKind.d.ts.map +1 -0
- package/src/core/geom/3d/shape/record/ShapeRecordKind.js +39 -0
- package/src/core/geom/3d/shape/record/shape_record_local_bounds.d.ts +19 -0
- package/src/core/geom/3d/shape/record/shape_record_local_bounds.d.ts.map +1 -0
- package/src/core/geom/3d/shape/record/shape_record_local_bounds.js +61 -0
- package/src/core/geom/3d/shape/record/shape_record_pack.d.ts +88 -0
- package/src/core/geom/3d/shape/record/shape_record_pack.d.ts.map +1 -0
- package/src/core/geom/3d/shape/record/shape_record_pack.js +418 -0
- package/src/core/geom/3d/shape/record/shape_record_pack_bounding_box.d.ts +23 -0
- package/src/core/geom/3d/shape/record/shape_record_pack_bounding_box.d.ts.map +1 -0
- package/src/core/geom/3d/shape/record/shape_record_pack_bounding_box.js +69 -0
- package/src/core/geom/3d/shape/record/shape_record_signed_distance.d.ts +52 -0
- package/src/core/geom/3d/shape/record/shape_record_signed_distance.d.ts.map +1 -0
- package/src/core/geom/3d/shape/record/shape_record_signed_distance.js +135 -0
- package/src/core/geom/3d/shape/sdf/sdf3_plane.d.ts +7 -0
- package/src/core/geom/3d/shape/sdf/sdf3_plane.d.ts.map +1 -1
- package/src/core/geom/3d/shape/sdf/sdf3_plane.js +7 -0
- package/src/core/geom/3d/shape/util/compute_signed_distance_gradient_by_sampling.d.ts +3 -0
- package/src/core/geom/3d/shape/util/compute_signed_distance_gradient_by_sampling.d.ts.map +1 -1
- package/src/core/geom/3d/shape/util/compute_signed_distance_gradient_by_sampling.js +19 -13
- package/src/core/geom/clipmap/ClipmapWindowSet.d.ts +141 -0
- package/src/core/geom/clipmap/ClipmapWindowSet.d.ts.map +1 -0
- package/src/core/geom/clipmap/ClipmapWindowSet.js +301 -0
- package/src/core/geom/clipmap/clipmap_select_finest.d.ts +20 -0
- package/src/core/geom/clipmap/clipmap_select_finest.d.ts.map +1 -0
- package/src/core/geom/clipmap/clipmap_select_finest.js +53 -0
- package/src/core/geom/clipmap/quantize_hysteretic.d.ts +22 -0
- package/src/core/geom/clipmap/quantize_hysteretic.d.ts.map +1 -0
- package/src/core/geom/clipmap/quantize_hysteretic.js +33 -0
- package/src/core/geom/clipmap/window_scroll_regions.d.ts +25 -0
- package/src/core/geom/clipmap/window_scroll_regions.d.ts.map +1 -0
- package/src/core/geom/clipmap/window_scroll_regions.js +83 -0
- package/src/core/geom/vec3/v3_clamp_to_cone.d.ts +59 -0
- package/src/core/geom/vec3/v3_clamp_to_cone.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_clamp_to_cone.js +197 -0
- package/src/core/math/falloff_quadratic.d.ts +13 -0
- package/src/core/math/falloff_quadratic.d.ts.map +1 -0
- package/src/core/math/falloff_quadratic.js +20 -0
- package/src/core/math/physics/fluid/vortex_swirl.d.ts +40 -0
- package/src/core/math/physics/fluid/vortex_swirl.d.ts.map +1 -0
- package/src/core/math/physics/fluid/vortex_swirl.js +91 -0
- package/src/core/math/physics/kinematics/rigid_velocity_at_point.d.ts +27 -0
- package/src/core/math/physics/kinematics/rigid_velocity_at_point.d.ts.map +1 -0
- package/src/core/math/physics/kinematics/rigid_velocity_at_point.js +40 -0
- package/src/engine/EngineHarness.d.ts.map +1 -1
- package/src/engine/EngineHarness.js +6 -0
- package/src/engine/ecs/EntityComponentDataset.d.ts +48 -4
- package/src/engine/ecs/EntityComponentDataset.d.ts.map +1 -1
- package/src/engine/ecs/EntityComponentDataset.js +120 -11
- package/src/engine/ecs/fow/FogOfWarVisibilityPredicate.d.ts.map +1 -1
- package/src/engine/ecs/fow/FogOfWarVisibilityPredicate.js +1 -3
- package/src/engine/ecs/storage/populateEngineSerializationRegistry.d.ts.map +1 -1
- package/src/engine/ecs/storage/populateEngineSerializationRegistry.js +2 -0
- package/src/engine/ecs/terrain/util/obtainTerrain.d.ts.map +1 -1
- package/src/engine/ecs/terrain/util/obtainTerrain.js +5 -0
- package/src/engine/graphics/ecs/water/WaterWaves.d.ts +8 -21
- package/src/engine/graphics/ecs/water/WaterWaves.d.ts.map +1 -1
- package/src/engine/graphics/ecs/water/WaterWaves.js +8 -31
- package/src/engine/graphics/ecs/water/WaterWavesSerializationAdapter.d.ts +4 -0
- package/src/engine/graphics/ecs/water/WaterWavesSerializationAdapter.d.ts.map +1 -1
- package/src/engine/graphics/ecs/water/WaterWavesSerializationAdapter.js +5 -5
- package/src/engine/graphics/ecs/water/WaterWavesSerializationUpgrader_1_2.d.ts +9 -0
- package/src/engine/graphics/ecs/water/WaterWavesSerializationUpgrader_1_2.d.ts.map +1 -0
- package/src/engine/graphics/ecs/water/WaterWavesSerializationUpgrader_1_2.js +19 -0
- package/src/engine/graphics/texture/3d/scs3d_sample_linear3.d.ts +21 -0
- package/src/engine/graphics/texture/3d/scs3d_sample_linear3.d.ts.map +1 -1
- package/src/engine/graphics/texture/3d/scs3d_sample_linear3.js +78 -0
- package/src/engine/graphics3/GPUFluidSystem.d.ts +266 -0
- package/src/engine/graphics3/GPUFluidSystem.d.ts.map +1 -0
- package/src/engine/graphics3/GPUFluidSystem.js +1613 -0
- package/src/engine/graphics3/ParticipatingMedia.d.ts +6 -0
- package/src/engine/graphics3/ParticipatingMedia.d.ts.map +1 -1
- package/src/engine/graphics3/ParticipatingMedia.js +6 -0
- package/src/engine/graphics3/ParticipatingMediaSystem.d.ts +32 -22
- package/src/engine/graphics3/ParticipatingMediaSystem.d.ts.map +1 -1
- package/src/engine/graphics3/ParticipatingMediaSystem.js +218 -70
- package/src/engine/graphics3/WaterSystem.d.ts +9 -2
- package/src/engine/graphics3/WaterSystem.d.ts.map +1 -1
- package/src/engine/graphics3/WaterSystem.js +53 -15
- package/src/engine/physics/cloth/MEASUREMENTS.md +39 -0
- package/src/engine/physics/cloth/PLAN.md +21 -2
- package/src/engine/physics/cloth/collider/ClothColliderKind.d.ts.map +1 -1
- package/src/engine/physics/cloth/collider/ClothColliderKind.js +14 -7
- package/src/engine/physics/cloth/collider/ClothColliderRecord.d.ts +19 -5
- package/src/engine/physics/cloth/collider/ClothColliderRecord.d.ts.map +1 -1
- package/src/engine/physics/cloth/collider/ClothColliderRecord.js +28 -5
- package/src/engine/physics/cloth/collider/cloth_collider_pack.d.ts +3 -2
- package/src/engine/physics/cloth/collider/cloth_collider_pack.d.ts.map +1 -1
- package/src/engine/physics/cloth/collider/cloth_collider_pack.js +26 -108
- package/src/engine/physics/cloth/collider/cloth_collider_sdf.d.ts +6 -5
- package/src/engine/physics/cloth/collider/cloth_collider_sdf.d.ts.map +1 -1
- package/src/engine/physics/cloth/collider/cloth_collider_sdf.js +18 -28
- package/src/engine/physics/cloth/ecs/ClothInstance.d.ts +6 -9
- package/src/engine/physics/cloth/ecs/ClothInstance.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/ClothInstance.js +6 -9
- package/src/engine/physics/cloth/ecs/ClothSystem.d.ts +3 -2
- package/src/engine/physics/cloth/ecs/ClothSystem.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/ClothSystem.js +3 -2
- package/src/engine/physics/cloth/ecs/ClothWorld.d.ts +38 -28
- package/src/engine/physics/cloth/ecs/ClothWorld.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/ClothWorld.js +136 -28
- package/src/engine/physics/cloth/playground/README.md +8 -4
- package/src/engine/physics/cloth/playground/wind.html +4 -4
- package/src/engine/physics/cloth/playground/wind_build.d.ts +3 -2
- package/src/engine/physics/cloth/playground/wind_build.d.ts.map +1 -1
- package/src/engine/physics/cloth/playground/wind_build.js +4 -3
- package/src/engine/physics/cloth/playground/wind_main.js +58 -19
- package/src/engine/physics/cloth/wind/AbstractClothWind.d.ts +36 -35
- package/src/engine/physics/cloth/wind/AbstractClothWind.d.ts.map +1 -1
- package/src/engine/physics/cloth/wind/AbstractClothWind.js +36 -35
- package/src/engine/physics/cloth/wind/ClothFluidWind.d.ts +46 -25
- package/src/engine/physics/cloth/wind/ClothFluidWind.d.ts.map +1 -1
- package/src/engine/physics/cloth/wind/ClothFluidWind.js +70 -30
- package/src/engine/physics/cloth/wind/ClothGPUFluidWind.d.ts +96 -0
- package/src/engine/physics/cloth/wind/ClothGPUFluidWind.d.ts.map +1 -0
- package/src/engine/physics/cloth/wind/ClothGPUFluidWind.js +441 -0
- package/src/engine/physics/cloth/wind/cloth_sample_air.d.ts +9 -7
- package/src/engine/physics/cloth/wind/cloth_sample_air.d.ts.map +1 -1
- package/src/engine/physics/cloth/wind/cloth_sample_air.js +9 -7
- package/src/engine/physics/ecs/ColliderObserverSystem.d.ts +1 -1
- package/src/engine/physics/ecs/PhysicsSystem.d.ts +1 -1
- package/src/engine/physics/fluid/FluidAtmosphere.d.ts +80 -0
- package/src/engine/physics/fluid/FluidAtmosphere.d.ts.map +1 -0
- package/src/engine/physics/fluid/FluidAtmosphere.js +78 -0
- package/src/engine/physics/fluid/FluidField.d.ts +14 -2
- package/src/engine/physics/fluid/FluidField.d.ts.map +1 -1
- package/src/engine/physics/fluid/FluidField.js +26 -6
- package/src/engine/physics/fluid/FluidSimulator.d.ts +5 -1
- package/src/engine/physics/fluid/FluidSimulator.d.ts.map +1 -1
- package/src/engine/physics/fluid/FluidSimulator.js +13 -2
- package/src/engine/physics/fluid/GPU_FLUID_CASCADES_PROPOSAL_2026_10_16.md +1382 -0
- package/src/engine/physics/fluid/ecs/FluidEffectorsComponent.d.ts +10 -4
- package/src/engine/physics/fluid/ecs/FluidEffectorsComponent.d.ts.map +1 -1
- package/src/engine/physics/fluid/ecs/FluidEffectorsComponent.js +13 -4
- package/src/engine/physics/fluid/ecs/FluidEffectorsComponentSerializationAdapter.d.ts +47 -0
- package/src/engine/physics/fluid/ecs/FluidEffectorsComponentSerializationAdapter.d.ts.map +1 -0
- package/src/engine/physics/fluid/ecs/FluidEffectorsComponentSerializationAdapter.js +72 -0
- package/src/engine/physics/fluid/ecs/FluidEffectorsSystem.d.ts +67 -0
- package/src/engine/physics/fluid/ecs/FluidEffectorsSystem.d.ts.map +1 -0
- package/src/engine/physics/fluid/ecs/FluidEffectorsSystem.js +307 -0
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +6 -6
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts.map +1 -1
- package/src/engine/physics/fluid/ecs/FluidSystem.d.ts +24 -13
- package/src/engine/physics/fluid/ecs/FluidSystem.d.ts.map +1 -1
- package/src/engine/physics/fluid/ecs/FluidSystem.js +79 -15
- package/src/engine/physics/fluid/ecs/FluidWorkerCore.d.ts.map +1 -1
- package/src/engine/physics/fluid/ecs/FluidWorkerCore.js +17 -5
- package/src/engine/physics/fluid/ecs/GPUFluidComponent.d.ts +82 -0
- package/src/engine/physics/fluid/ecs/GPUFluidComponent.d.ts.map +1 -0
- package/src/engine/physics/fluid/ecs/GPUFluidComponent.js +124 -0
- package/src/engine/physics/fluid/ecs/GPUFluidComponentSerializationAdapter.d.ts +30 -0
- package/src/engine/physics/fluid/ecs/GPUFluidComponentSerializationAdapter.d.ts.map +1 -0
- package/src/engine/physics/fluid/ecs/GPUFluidComponentSerializationAdapter.js +51 -0
- package/src/engine/physics/fluid/ecs/WorkerFluidSystem.d.ts +19 -10
- package/src/engine/physics/fluid/ecs/WorkerFluidSystem.d.ts.map +1 -1
- package/src/engine/physics/fluid/ecs/WorkerFluidSystem.js +64 -14
- package/src/engine/physics/fluid/ecs/fluid_gather_visible_effectors.d.ts +4 -1
- package/src/engine/physics/fluid/ecs/fluid_gather_visible_effectors.d.ts.map +1 -1
- package/src/engine/physics/fluid/ecs/fluid_gather_visible_effectors.js +9 -1
- package/src/engine/physics/fluid/ecs/fluid_reanchor_field.d.ts +1 -0
- package/src/engine/physics/fluid/ecs/fluid_reanchor_field.d.ts.map +1 -1
- package/src/engine/physics/fluid/ecs/fluid_reanchor_field.js +9 -7
- package/src/engine/physics/fluid/ecs/fluid_sync_effectors_from_transform.d.ts +5 -3
- package/src/engine/physics/fluid/ecs/fluid_sync_effectors_from_transform.d.ts.map +1 -1
- package/src/engine/physics/fluid/ecs/fluid_sync_effectors_from_transform.js +5 -3
- package/src/engine/physics/fluid/ecs/fluid_worker_protocol.d.ts +20 -2
- package/src/engine/physics/fluid/ecs/fluid_worker_protocol.d.ts.map +1 -1
- package/src/engine/physics/fluid/ecs/fluid_worker_protocol.js +34 -6
- package/src/engine/physics/fluid/effector/AbstractFluidEffector.d.ts +46 -3
- package/src/engine/physics/fluid/effector/AbstractFluidEffector.d.ts.map +1 -1
- package/src/engine/physics/fluid/effector/AbstractFluidEffector.js +53 -3
- package/src/engine/physics/fluid/effector/GlobalFluidEffector.d.ts +73 -13
- package/src/engine/physics/fluid/effector/GlobalFluidEffector.d.ts.map +1 -1
- package/src/engine/physics/fluid/effector/GlobalFluidEffector.js +207 -88
- package/src/engine/physics/fluid/effector/GlobalFluidEffectorSerializationAdapter.d.ts +35 -0
- package/src/engine/physics/fluid/effector/GlobalFluidEffectorSerializationAdapter.d.ts.map +1 -0
- package/src/engine/physics/fluid/effector/GlobalFluidEffectorSerializationAdapter.js +72 -0
- package/src/engine/physics/fluid/effector/ImpulseFluidEffector.d.ts +34 -10
- package/src/engine/physics/fluid/effector/ImpulseFluidEffector.d.ts.map +1 -1
- package/src/engine/physics/fluid/effector/ImpulseFluidEffector.js +139 -150
- package/src/engine/physics/fluid/effector/ImpulseFluidEffectorSerializationAdapter.d.ts +26 -0
- package/src/engine/physics/fluid/effector/ImpulseFluidEffectorSerializationAdapter.d.ts.map +1 -0
- package/src/engine/physics/fluid/effector/ImpulseFluidEffectorSerializationAdapter.js +51 -0
- package/src/engine/physics/fluid/effector/VortexFluidEffector.d.ts +55 -0
- package/src/engine/physics/fluid/effector/VortexFluidEffector.d.ts.map +1 -0
- package/src/engine/physics/fluid/effector/VortexFluidEffector.js +255 -0
- package/src/engine/physics/fluid/effector/VortexFluidEffectorSerializationAdapter.d.ts +25 -0
- package/src/engine/physics/fluid/effector/VortexFluidEffectorSerializationAdapter.d.ts.map +1 -0
- package/src/engine/physics/fluid/effector/VortexFluidEffectorSerializationAdapter.js +52 -0
- package/src/engine/physics/fluid/effector/WakeFluidEffector.d.ts +22 -20
- package/src/engine/physics/fluid/effector/WakeFluidEffector.d.ts.map +1 -1
- package/src/engine/physics/fluid/effector/WakeFluidEffector.js +181 -185
- package/src/engine/physics/fluid/effector/WakeFluidEffectorSerializationAdapter.d.ts +31 -0
- package/src/engine/physics/fluid/effector/WakeFluidEffectorSerializationAdapter.d.ts.map +1 -0
- package/src/engine/physics/fluid/effector/WakeFluidEffectorSerializationAdapter.js +56 -0
- package/src/engine/physics/fluid/effector/record/FLUID_EFFECTOR_RECORD_STRUCT.d.ts +52 -0
- package/src/engine/physics/fluid/effector/record/FLUID_EFFECTOR_RECORD_STRUCT.d.ts.map +1 -0
- package/src/engine/physics/fluid/effector/record/FLUID_EFFECTOR_RECORD_STRUCT.js +68 -0
- package/src/engine/physics/fluid/effector/record/FluidEffectorRecordKind.d.ts +10 -0
- package/src/engine/physics/fluid/effector/record/FluidEffectorRecordKind.d.ts.map +1 -0
- package/src/engine/physics/fluid/effector/record/FluidEffectorRecordKind.js +31 -0
- package/src/engine/physics/fluid/effector/record/chunk_fluid_effector_record_deposit.d.ts +25 -0
- package/src/engine/physics/fluid/effector/record/chunk_fluid_effector_record_deposit.d.ts.map +1 -0
- package/src/engine/physics/fluid/effector/record/chunk_fluid_effector_record_deposit.js +105 -0
- package/src/engine/physics/fluid/effector/record/chunk_fluid_effector_record_resolve.d.ts +17 -0
- package/src/engine/physics/fluid/effector/record/chunk_fluid_effector_record_resolve.d.ts.map +1 -0
- package/src/engine/physics/fluid/effector/record/chunk_fluid_effector_record_resolve.js +47 -0
- package/src/engine/physics/fluid/effector/record/fluid_effector_record_create.d.ts +54 -0
- package/src/engine/physics/fluid/effector/record/fluid_effector_record_create.d.ts.map +1 -0
- package/src/engine/physics/fluid/effector/record/fluid_effector_record_create.js +34 -0
- package/src/engine/physics/fluid/effector/record/fluid_effector_record_deposit.d.ts +98 -0
- package/src/engine/physics/fluid/effector/record/fluid_effector_record_deposit.d.ts.map +1 -0
- package/src/engine/physics/fluid/effector/record/fluid_effector_record_deposit.js +409 -0
- package/src/engine/physics/fluid/effector/record/fluid_effector_record_resolve.d.ts +25 -0
- package/src/engine/physics/fluid/effector/record/fluid_effector_record_resolve.d.ts.map +1 -0
- package/src/engine/physics/fluid/effector/record/fluid_effector_record_resolve.js +78 -0
- package/src/engine/physics/fluid/effector/record/fluid_record_apply.d.ts +27 -0
- package/src/engine/physics/fluid/effector/record/fluid_record_apply.d.ts.map +1 -0
- package/src/engine/physics/fluid/effector/record/fluid_record_apply.js +151 -0
- package/src/engine/physics/fluid/fluid_apply_atmosphere.d.ts +42 -0
- package/src/engine/physics/fluid/fluid_apply_atmosphere.d.ts.map +1 -0
- package/src/engine/physics/fluid/fluid_apply_atmosphere.js +148 -0
- package/src/engine/physics/fluid/fluid_atmosphere_to_grid.d.ts +16 -0
- package/src/engine/physics/fluid/fluid_atmosphere_to_grid.d.ts.map +1 -0
- package/src/engine/physics/fluid/fluid_atmosphere_to_grid.js +47 -0
- package/src/engine/physics/fluid/obstacle/FLUID_OBSTACLE_RECORD_STRUCT.d.ts +32 -0
- package/src/engine/physics/fluid/obstacle/FLUID_OBSTACLE_RECORD_STRUCT.d.ts.map +1 -0
- package/src/engine/physics/fluid/obstacle/FLUID_OBSTACLE_RECORD_STRUCT.js +50 -0
- package/src/engine/physics/fluid/obstacle/chunk_fluid_obstacle_record.d.ts +24 -0
- package/src/engine/physics/fluid/obstacle/chunk_fluid_obstacle_record.d.ts.map +1 -0
- package/src/engine/physics/fluid/obstacle/chunk_fluid_obstacle_record.js +61 -0
- package/src/engine/physics/fluid/obstacle/fluid_obstacle_record_create.d.ts +58 -0
- package/src/engine/physics/fluid/obstacle/fluid_obstacle_record_create.d.ts.map +1 -0
- package/src/engine/physics/fluid/obstacle/fluid_obstacle_record_create.js +35 -0
- package/src/engine/physics/fluid/obstacle/fluid_obstacle_record_evaluate.d.ts +34 -0
- package/src/engine/physics/fluid/obstacle/fluid_obstacle_record_evaluate.d.ts.map +1 -0
- package/src/engine/physics/fluid/obstacle/fluid_obstacle_record_evaluate.js +90 -0
- package/src/engine/physics/fluid/obstacle/fluid_obstacle_record_extent.d.ts +17 -0
- package/src/engine/physics/fluid/obstacle/fluid_obstacle_record_extent.d.ts.map +1 -0
- package/src/engine/physics/fluid/obstacle/fluid_obstacle_record_extent.js +44 -0
- package/src/engine/physics/fluid/obstacle/fluid_obstacle_write_gpu_record.d.ts +98 -0
- package/src/engine/physics/fluid/obstacle/fluid_obstacle_write_gpu_record.d.ts.map +1 -0
- package/src/engine/physics/fluid/obstacle/fluid_obstacle_write_gpu_record.js +281 -0
- package/src/engine/physics/fluid/prototype.js +2 -0
- package/src/engine/physics/narrowphase/rigid_subject_pose.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/rigid_subject_pose.js +3 -43
- package/src/generation/markers/actions/terrain/MarkerNodeActionPaintTerrain.js +4 -4
- package/src/shade/assets/textures/split_sum.bin +0 -0
- package/src/shade/device/ShadeGPUCommandContext.d.ts +20 -0
- package/src/shade/device/ShadeGPUCommandContext.d.ts.map +1 -1
- package/src/shade/device/ShadeGPUCommandContext.js +25 -8
- package/src/shade/device/mock/SoftwareGPUComputePassEncoder.d.ts +6 -2
- package/src/shade/device/mock/SoftwareGPUComputePassEncoder.d.ts.map +1 -1
- package/src/shade/device/mock/SoftwareGPUComputePassEncoder.js +7 -3
- package/src/shade/playground/avboit/main.d.ts.map +1 -1
- package/src/shade/playground/avboit/main.js +9 -6
- package/src/shade/playground/particle_ecs/README.md +20 -0
- package/src/shade/playground/particle_ecs/bonfire_effects.d.ts +10 -0
- package/src/shade/playground/particle_ecs/bonfire_effects.d.ts.map +1 -1
- package/src/shade/playground/particle_ecs/bonfire_effects.js +10 -0
- package/src/shade/playground/particle_ecs/bonfire_wind.d.ts +48 -0
- package/src/shade/playground/particle_ecs/bonfire_wind.d.ts.map +1 -0
- package/src/shade/playground/particle_ecs/bonfire_wind.js +83 -0
- package/src/shade/playground/particle_ecs/effects/embers.json +1695 -1633
- package/src/shade/playground/particle_ecs/effects/flame.json +63 -1
- package/src/shade/playground/particle_ecs/effects/smoke.json +14 -14
- package/src/shade/playground/particle_ecs/effects/soot.json +63 -1
- package/src/shade/playground/particle_ecs/index.html +21 -0
- package/src/shade/playground/particle_ecs/main.js +35 -1
- package/src/shade/playground/path_traced_media/main.js +12 -10
- package/src/shade/playground/render_submitted_frames.d.ts +20 -0
- package/src/shade/playground/render_submitted_frames.d.ts.map +1 -0
- package/src/shade/playground/render_submitted_frames.js +29 -0
- package/src/shade/playground/skinned_blas_refit/main.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/main.js +4 -6
- package/src/shade/playground/skinned_blas_refit/verify_instance_bounds.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/verify_instance_bounds.js +267 -270
- package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.js +3 -6
- package/src/shade/playground/skinned_mesh_soup/main.d.ts.map +1 -1
- package/src/shade/playground/skinned_mesh_soup/main.js +4 -5
- package/src/shade/playground/skinned_mesh_soup/verify_clone_vertices.js +438 -438
- package/src/shade/playground/ssr_motion/README.md +24 -22
- package/src/shade/playground/ssr_motion/main.js +150 -149
- package/src/shade/playground/ssr_reprojection/SpatialFilterProbe.js +1 -1
- package/src/shade/playground/ssr_reprojection/main.js +5 -3
- package/src/shade/playground/ssr_variance/capture.js +1 -1
- package/src/shade/playground/ssr_variance/main.js +247 -246
- package/src/shade/playground/submit_frame.d.ts +25 -0
- package/src/shade/playground/submit_frame.d.ts.map +1 -0
- package/src/shade/playground/submit_frame.js +36 -0
- package/src/shade/playground/tonemap_sdr/README.md +1 -1
- package/src/shade/playground/tonemap_sdr/ToneMapCompare.d.ts.map +1 -1
- package/src/shade/playground/tonemap_sdr/ToneMapCompare.js +13 -4
- package/src/shade/playground/volumetrics_froxel/main.d.ts.map +1 -1
- package/src/shade/playground/volumetrics_froxel/main.js +7 -1
- package/src/shade/playground/water_refraction/README.md +4 -2
- package/src/shade/playground/water_refraction/main.js +19 -3
- package/src/shade/playground/water_refraction/world.d.ts.map +1 -1
- package/src/shade/playground/water_refraction/world.js +2 -1
- package/src/shade/playground/water_surface/README.md +15 -7
- package/src/shade/playground/water_surface/index.html +2 -1
- package/src/shade/playground/water_surface/main.js +39 -7
- package/src/shade/playground/water_surface/world.d.ts +2 -5
- package/src/shade/playground/water_surface/world.d.ts.map +1 -1
- package/src/shade/playground/water_surface/world.js +9 -8
- package/src/shade/renderer/INDIRECT_LIGHTING.d.ts +13 -0
- package/src/shade/renderer/INDIRECT_LIGHTING.d.ts.map +1 -0
- package/src/shade/renderer/INDIRECT_LIGHTING.js +14 -0
- package/src/shade/renderer/Renderer.d.ts.map +1 -1
- package/src/shade/renderer/Renderer.js +68 -61
- package/src/shade/renderer/STATIC_GRAPHICS_ENGINE_ASSET_RESOURCES.d.ts +17 -0
- package/src/shade/renderer/STATIC_GRAPHICS_ENGINE_ASSET_RESOURCES.d.ts.map +1 -0
- package/src/shade/renderer/STATIC_GRAPHICS_ENGINE_ASSET_RESOURCES.js +19 -0
- package/src/shade/renderer/buffer/table/GPUDatabase.d.ts.map +1 -1
- package/src/shade/renderer/buffer/table/GPUDatabase.js +7 -4
- package/src/shade/renderer/buffer/table/GPUDatabaseReadback.d.ts +32 -2
- package/src/shade/renderer/buffer/table/GPUDatabaseReadback.d.ts.map +1 -1
- package/src/shade/renderer/buffer/table/GPUDatabaseReadback.js +231 -62
- package/src/shade/renderer/buffer/table/GPUTypedTable.d.ts +12 -0
- package/src/shade/renderer/buffer/table/GPUTypedTable.d.ts.map +1 -1
- package/src/shade/renderer/buffer/table/GPUTypedTable.js +51 -14
- package/src/shade/renderer/camera/CAMERA_RESOURCE.d.ts +7 -0
- package/src/shade/renderer/camera/CAMERA_RESOURCE.d.ts.map +1 -0
- package/src/shade/renderer/camera/CAMERA_RESOURCE.js +8 -0
- package/src/shade/renderer/deferred/GBUFFER_RESOURCES.d.ts +22 -0
- package/src/shade/renderer/deferred/GBUFFER_RESOURCES.d.ts.map +1 -0
- package/src/shade/renderer/deferred/GBUFFER_RESOURCES.js +25 -0
- package/src/shade/renderer/deferred/LOCAL_LIGHT_SHADING.d.ts +12 -0
- package/src/shade/renderer/deferred/LOCAL_LIGHT_SHADING.d.ts.map +1 -0
- package/src/shade/renderer/deferred/LOCAL_LIGHT_SHADING.js +13 -0
- package/src/shade/renderer/deferred/LocalLightShading.d.ts +10 -0
- package/src/shade/renderer/deferred/LocalLightShading.d.ts.map +1 -0
- package/src/shade/renderer/deferred/LocalLightShading.js +12 -0
- package/src/shade/renderer/deferred/SHADING_LIGHT_RESOURCE_GROUP.d.ts.map +1 -1
- package/src/shade/renderer/deferred/SHADING_LIGHT_RESOURCE_GROUP.js +15 -11
- package/src/shade/renderer/deferred/TonemapDisplaySettings.d.ts +50 -0
- package/src/shade/renderer/deferred/TonemapDisplaySettings.d.ts.map +1 -0
- package/src/shade/renderer/deferred/TonemapDisplaySettings.js +142 -0
- package/src/shade/renderer/deferred/chunk_read_gBuffer_material.d.ts.map +1 -1
- package/src/shade/renderer/deferred/chunk_read_gBuffer_material.js +6 -1
- package/src/shade/renderer/deferred/chunk_sample_volumetrics.d.ts.map +1 -1
- package/src/shade/renderer/deferred/chunk_sample_volumetrics.js +11 -1
- package/src/shade/renderer/deferred/chunk_shade_directional_lights.d.ts +1 -2
- package/src/shade/renderer/deferred/chunk_shade_directional_lights.d.ts.map +1 -1
- package/src/shade/renderer/deferred/chunk_shade_directional_lights.js +4 -2
- package/src/shade/renderer/deferred/chunk_shade_standard_material_direct.d.ts +10 -3
- package/src/shade/renderer/deferred/chunk_shade_standard_material_direct.d.ts.map +1 -1
- package/src/shade/renderer/deferred/chunk_shade_standard_material_direct.js +23 -5
- package/src/shade/renderer/deferred/chunk_shade_standard_material_direct_deferred.d.ts +16 -0
- package/src/shade/renderer/deferred/chunk_shade_standard_material_direct_deferred.d.ts.map +1 -0
- package/src/shade/renderer/deferred/chunk_shade_standard_material_direct_deferred.js +23 -0
- package/src/shade/renderer/deferred/chunk_shade_standard_material_direct_heavy.d.ts +3 -2
- package/src/shade/renderer/deferred/chunk_shade_standard_material_direct_heavy.d.ts.map +1 -1
- package/src/shade/renderer/deferred/chunk_shade_standard_material_direct_heavy.js +17 -16
- package/src/shade/renderer/deferred/chunk_shade_standard_material_direct_restir.d.ts +3 -2
- package/src/shade/renderer/deferred/chunk_shade_standard_material_direct_restir.d.ts.map +1 -1
- package/src/shade/renderer/deferred/chunk_shade_standard_material_direct_restir.js +9 -2
- package/src/shade/renderer/deferred/indirect/chunk_get_ibl_irradiance.d.ts.map +1 -1
- package/src/shade/renderer/deferred/indirect/chunk_get_ibl_irradiance.js +4 -1
- package/src/shade/renderer/deferred/indirect/chunk_get_ibl_radiance.d.ts.map +1 -1
- package/src/shade/renderer/deferred/indirect/chunk_get_ibl_radiance.js +4 -1
- package/src/shade/renderer/deferred/indirect/chunk_lpv_sample_light.d.ts.map +1 -1
- package/src/shade/renderer/deferred/indirect/chunk_lpv_sample_light.js +7 -0
- package/src/shade/renderer/deferred/shader_deferred_main.d.ts +11 -6
- package/src/shade/renderer/deferred/shader_deferred_main.d.ts.map +1 -1
- package/src/shade/renderer/deferred/shader_deferred_main.js +65 -86
- package/src/shade/renderer/deferred/shader_tonemap_HDR.d.ts +1 -1
- package/src/shade/renderer/deferred/shader_tonemap_HDR.d.ts.map +1 -1
- package/src/shade/renderer/deferred/shader_tonemap_HDR.js +14 -20
- package/src/shade/renderer/deferred/shader_tonemap_HDR_none.d.ts +2 -2
- package/src/shade/renderer/deferred/shader_tonemap_HDR_none.d.ts.map +1 -1
- package/src/shade/renderer/deferred/shader_tonemap_HDR_none.js +13 -10
- package/src/shade/renderer/deferred/shader_tonemap_HDR_pbr_neutral.d.ts +2 -2
- package/src/shade/renderer/deferred/shader_tonemap_HDR_pbr_neutral.d.ts.map +1 -1
- package/src/shade/renderer/deferred/shader_tonemap_HDR_pbr_neutral.js +13 -20
- package/src/shade/renderer/deferred/shader_tonemap_LDR.d.ts +2 -2
- package/src/shade/renderer/deferred/shader_tonemap_LDR.d.ts.map +1 -1
- package/src/shade/renderer/deferred/shader_tonemap_LDR.js +13 -11
- package/src/shade/renderer/deferred/shader_tonemap_LDR_none.d.ts +2 -2
- package/src/shade/renderer/deferred/shader_tonemap_LDR_none.d.ts.map +1 -1
- package/src/shade/renderer/deferred/shader_tonemap_LDR_none.js +12 -9
- package/src/shade/renderer/deferred/shader_tonemap_LDR_pbr_neutral.d.ts +2 -2
- package/src/shade/renderer/deferred/shader_tonemap_LDR_pbr_neutral.d.ts.map +1 -1
- package/src/shade/renderer/deferred/shader_tonemap_LDR_pbr_neutral.js +12 -9
- package/src/shade/renderer/fluid/FluidCascadePlacement.d.ts +142 -0
- package/src/shade/renderer/fluid/FluidCascadePlacement.d.ts.map +1 -0
- package/src/shade/renderer/fluid/FluidCascadePlacement.js +349 -0
- package/src/shade/renderer/fluid/GPUFluidCascade.d.ts +383 -0
- package/src/shade/renderer/fluid/GPUFluidCascade.d.ts.map +1 -0
- package/src/shade/renderer/fluid/GPUFluidCascade.js +1217 -0
- package/src/shade/renderer/fluid/GPUFluidCascadeStack.d.ts +191 -0
- package/src/shade/renderer/fluid/GPUFluidCascadeStack.d.ts.map +1 -0
- package/src/shade/renderer/fluid/GPUFluidCascadeStack.js +463 -0
- package/src/shade/renderer/fluid/coupling/FLUID_CASCADE_FILL_STRUCT.d.ts +27 -0
- package/src/shade/renderer/fluid/coupling/FLUID_CASCADE_FILL_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/fluid/coupling/FLUID_CASCADE_FILL_STRUCT.js +43 -0
- package/src/shade/renderer/fluid/coupling/FLUID_CASCADE_GHOSTS.d.ts +31 -0
- package/src/shade/renderer/fluid/coupling/FLUID_CASCADE_GHOSTS.d.ts.map +1 -0
- package/src/shade/renderer/fluid/coupling/FLUID_CASCADE_GHOSTS.js +38 -0
- package/src/shade/renderer/fluid/coupling/FLUID_CASCADE_PARENT_STRUCT.d.ts +46 -0
- package/src/shade/renderer/fluid/coupling/FLUID_CASCADE_PARENT_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/fluid/coupling/FLUID_CASCADE_PARENT_STRUCT.js +61 -0
- package/src/shade/renderer/fluid/coupling/FLUID_CASCADE_RESTRICT_STRUCT.d.ts +25 -0
- package/src/shade/renderer/fluid/coupling/FLUID_CASCADE_RESTRICT_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/fluid/coupling/FLUID_CASCADE_RESTRICT_STRUCT.js +41 -0
- package/src/shade/renderer/fluid/coupling/chunk_fluid_cascade_epilogue.d.ts +52 -0
- package/src/shade/renderer/fluid/coupling/chunk_fluid_cascade_epilogue.d.ts.map +1 -0
- package/src/shade/renderer/fluid/coupling/chunk_fluid_cascade_epilogue.js +146 -0
- package/src/shade/renderer/fluid/coupling/chunk_fluid_cascade_parent.d.ts +41 -0
- package/src/shade/renderer/fluid/coupling/chunk_fluid_cascade_parent.d.ts.map +1 -0
- package/src/shade/renderer/fluid/coupling/chunk_fluid_cascade_parent.js +238 -0
- package/src/shade/renderer/fluid/coupling/shader_fluid_cascade_fill.d.ts +32 -0
- package/src/shade/renderer/fluid/coupling/shader_fluid_cascade_fill.d.ts.map +1 -0
- package/src/shade/renderer/fluid/coupling/shader_fluid_cascade_fill.js +141 -0
- package/src/shade/renderer/fluid/coupling/shader_fluid_cascade_ghosts.d.ts +34 -0
- package/src/shade/renderer/fluid/coupling/shader_fluid_cascade_ghosts.d.ts.map +1 -0
- package/src/shade/renderer/fluid/coupling/shader_fluid_cascade_ghosts.js +101 -0
- package/src/shade/renderer/fluid/coupling/shader_fluid_cascade_restrict.d.ts +31 -0
- package/src/shade/renderer/fluid/coupling/shader_fluid_cascade_restrict.d.ts.map +1 -0
- package/src/shade/renderer/fluid/coupling/shader_fluid_cascade_restrict.js +126 -0
- package/src/shade/renderer/fluid/fluid_cascade_ruler.d.ts +15 -0
- package/src/shade/renderer/fluid/fluid_cascade_ruler.d.ts.map +1 -0
- package/src/shade/renderer/fluid/fluid_cascade_ruler.js +38 -0
- package/src/shade/renderer/fluid/fluid_cascade_window.d.ts +41 -0
- package/src/shade/renderer/fluid/fluid_cascade_window.d.ts.map +1 -0
- package/src/shade/renderer/fluid/fluid_cascade_window.js +49 -0
- package/src/shade/renderer/fluid/forcing/FLUID_DATABASE_SPEC.d.ts +68 -0
- package/src/shade/renderer/fluid/forcing/FLUID_DATABASE_SPEC.d.ts.map +1 -0
- package/src/shade/renderer/fluid/forcing/FLUID_DATABASE_SPEC.js +103 -0
- package/src/shade/renderer/fluid/forcing/FLUID_FORCING.d.ts +71 -0
- package/src/shade/renderer/fluid/forcing/FLUID_FORCING.d.ts.map +1 -0
- package/src/shade/renderer/fluid/forcing/FLUID_FORCING.js +100 -0
- package/src/shade/renderer/fluid/forcing/FLUID_FORCING_APPLY_STRUCT.d.ts +21 -0
- package/src/shade/renderer/fluid/forcing/FLUID_FORCING_APPLY_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/fluid/forcing/FLUID_FORCING_APPLY_STRUCT.js +35 -0
- package/src/shade/renderer/fluid/forcing/FLUID_FORCING_EXTRACT_STRUCT.d.ts +18 -0
- package/src/shade/renderer/fluid/forcing/FLUID_FORCING_EXTRACT_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/fluid/forcing/FLUID_FORCING_EXTRACT_STRUCT.js +27 -0
- package/src/shade/renderer/fluid/forcing/FLUID_FORCING_QUERY_STRUCT.d.ts +17 -0
- package/src/shade/renderer/fluid/forcing/FLUID_FORCING_QUERY_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/fluid/forcing/FLUID_FORCING_QUERY_STRUCT.js +28 -0
- package/src/shade/renderer/fluid/forcing/FLUID_OBSTACLE_PLANE_STRUCT.d.ts +12 -0
- package/src/shade/renderer/fluid/forcing/FLUID_OBSTACLE_PLANE_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/fluid/forcing/FLUID_OBSTACLE_PLANE_STRUCT.js +16 -0
- package/src/shade/renderer/fluid/forcing/GPUFluidForcing.d.ts +289 -0
- package/src/shade/renderer/fluid/forcing/GPUFluidForcing.d.ts.map +1 -0
- package/src/shade/renderer/fluid/forcing/GPUFluidForcing.js +1487 -0
- package/src/shade/renderer/fluid/forcing/chunk_fluid_forcing_cell.d.ts +32 -0
- package/src/shade/renderer/fluid/forcing/chunk_fluid_forcing_cell.d.ts.map +1 -0
- package/src/shade/renderer/fluid/forcing/chunk_fluid_forcing_cell.js +87 -0
- package/src/shade/renderer/fluid/forcing/chunk_fluid_forcing_leaf.d.ts +28 -0
- package/src/shade/renderer/fluid/forcing/chunk_fluid_forcing_leaf.d.ts.map +1 -0
- package/src/shade/renderer/fluid/forcing/chunk_fluid_forcing_leaf.js +99 -0
- package/src/shade/renderer/fluid/forcing/chunk_fluid_forcing_query_select.d.ts +29 -0
- package/src/shade/renderer/fluid/forcing/chunk_fluid_forcing_query_select.d.ts.map +1 -0
- package/src/shade/renderer/fluid/forcing/chunk_fluid_forcing_query_select.js +67 -0
- package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_apply.d.ts +38 -0
- package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_apply.d.ts.map +1 -0
- package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_apply.js +287 -0
- package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_command.d.ts +18 -0
- package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_command.d.ts.map +1 -0
- package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_command.js +64 -0
- package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_extract.d.ts +22 -0
- package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_extract.d.ts.map +1 -0
- package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_extract.js +168 -0
- package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_query.d.ts +31 -0
- package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_query.d.ts.map +1 -0
- package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_query.js +208 -0
- package/src/shade/renderer/fluid/mac/FLUID_MAC_STEP_STRUCT.d.ts +35 -0
- package/src/shade/renderer/fluid/mac/FLUID_MAC_STEP_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/fluid/mac/FLUID_MAC_STEP_STRUCT.js +50 -0
- package/src/shade/renderer/fluid/mac/FluidMacPasses.d.ts +162 -0
- package/src/shade/renderer/fluid/mac/FluidMacPasses.d.ts.map +1 -0
- package/src/shade/renderer/fluid/mac/FluidMacPasses.js +384 -0
- package/src/shade/renderer/fluid/mac/FluidMacVelocitySet.d.ts +40 -0
- package/src/shade/renderer/fluid/mac/FluidMacVelocitySet.d.ts.map +1 -0
- package/src/shade/renderer/fluid/mac/FluidMacVelocitySet.js +77 -0
- package/src/shade/renderer/fluid/mac/V3_MAC_LATTICE_TAP_STRUCT.d.ts +14 -0
- package/src/shade/renderer/fluid/mac/V3_MAC_LATTICE_TAP_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/fluid/mac/V3_MAC_LATTICE_TAP_STRUCT.js +19 -0
- package/src/shade/renderer/fluid/mac/chunk_fluid_mac_seams.d.ts +35 -0
- package/src/shade/renderer/fluid/mac/chunk_fluid_mac_seams.d.ts.map +1 -0
- package/src/shade/renderer/fluid/mac/chunk_fluid_mac_seams.js +178 -0
- package/src/shade/renderer/fluid/mac/chunk_v3_mac_advect_maccormack.d.ts +17 -0
- package/src/shade/renderer/fluid/mac/chunk_v3_mac_advect_maccormack.d.ts.map +1 -0
- package/src/shade/renderer/fluid/mac/chunk_v3_mac_advect_maccormack.js +156 -0
- package/src/shade/renderer/fluid/mac/chunk_v3_mac_clip_trace.d.ts +31 -0
- package/src/shade/renderer/fluid/mac/chunk_v3_mac_clip_trace.d.ts.map +1 -0
- package/src/shade/renderer/fluid/mac/chunk_v3_mac_clip_trace.js +63 -0
- package/src/shade/renderer/fluid/mac/chunk_v3_mac_compute_divergence.d.ts +27 -0
- package/src/shade/renderer/fluid/mac/chunk_v3_mac_compute_divergence.d.ts.map +1 -0
- package/src/shade/renderer/fluid/mac/chunk_v3_mac_compute_divergence.js +42 -0
- package/src/shade/renderer/fluid/mac/chunk_v3_mac_face_carrier.d.ts +25 -0
- package/src/shade/renderer/fluid/mac/chunk_v3_mac_face_carrier.d.ts.map +1 -0
- package/src/shade/renderer/fluid/mac/chunk_v3_mac_face_carrier.js +67 -0
- package/src/shade/renderer/fluid/mac/chunk_v3_mac_face_pinned.d.ts +23 -0
- package/src/shade/renderer/fluid/mac/chunk_v3_mac_face_pinned.d.ts.map +1 -0
- package/src/shade/renderer/fluid/mac/chunk_v3_mac_face_pinned.js +38 -0
- package/src/shade/renderer/fluid/mac/chunk_v3_mac_lattice_corners.d.ts +33 -0
- package/src/shade/renderer/fluid/mac/chunk_v3_mac_lattice_corners.d.ts.map +1 -0
- package/src/shade/renderer/fluid/mac/chunk_v3_mac_lattice_corners.js +231 -0
- package/src/shade/renderer/fluid/mac/chunk_v3_mac_subtract_pressure_gradient.d.ts +30 -0
- package/src/shade/renderer/fluid/mac/chunk_v3_mac_subtract_pressure_gradient.d.ts.map +1 -0
- package/src/shade/renderer/fluid/mac/chunk_v3_mac_subtract_pressure_gradient.js +66 -0
- package/src/shade/renderer/fluid/mac/chunk_v3_mac_vorticity_confinement.d.ts +27 -0
- package/src/shade/renderer/fluid/mac/chunk_v3_mac_vorticity_confinement.d.ts.map +1 -0
- package/src/shade/renderer/fluid/mac/chunk_v3_mac_vorticity_confinement.js +65 -0
- package/src/shade/renderer/fluid/mac/shader_fluid_mac_advect_correct.d.ts +43 -0
- package/src/shade/renderer/fluid/mac/shader_fluid_mac_advect_correct.d.ts.map +1 -0
- package/src/shade/renderer/fluid/mac/shader_fluid_mac_advect_correct.js +245 -0
- package/src/shade/renderer/fluid/mac/shader_fluid_mac_advect_predict.d.ts +31 -0
- package/src/shade/renderer/fluid/mac/shader_fluid_mac_advect_predict.d.ts.map +1 -0
- package/src/shade/renderer/fluid/mac/shader_fluid_mac_advect_predict.js +109 -0
- package/src/shade/renderer/fluid/mac/shader_fluid_mac_curl.d.ts +38 -0
- package/src/shade/renderer/fluid/mac/shader_fluid_mac_curl.d.ts.map +1 -0
- package/src/shade/renderer/fluid/mac/shader_fluid_mac_curl.js +222 -0
- package/src/shade/renderer/fluid/mac/shader_fluid_mac_divergence.d.ts +26 -0
- package/src/shade/renderer/fluid/mac/shader_fluid_mac_divergence.d.ts.map +1 -0
- package/src/shade/renderer/fluid/mac/shader_fluid_mac_divergence.js +92 -0
- package/src/shade/renderer/fluid/mac/shader_fluid_mac_gradient.d.ts +32 -0
- package/src/shade/renderer/fluid/mac/shader_fluid_mac_gradient.d.ts.map +1 -0
- package/src/shade/renderer/fluid/mac/shader_fluid_mac_gradient.js +181 -0
- package/src/shade/renderer/fluid/pressure/FLUID_MG.d.ts +112 -0
- package/src/shade/renderer/fluid/pressure/FLUID_MG.d.ts.map +1 -0
- package/src/shade/renderer/fluid/pressure/FLUID_MG.js +140 -0
- package/src/shade/renderer/fluid/pressure/FLUID_MG_PASS_STRUCT.d.ts +29 -0
- package/src/shade/renderer/fluid/pressure/FLUID_MG_PASS_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/fluid/pressure/FLUID_MG_PASS_STRUCT.js +45 -0
- package/src/shade/renderer/fluid/pressure/GPUFluidPressureSolve.d.ts +156 -0
- package/src/shade/renderer/fluid/pressure/GPUFluidPressureSolve.d.ts.map +1 -0
- package/src/shade/renderer/fluid/pressure/GPUFluidPressureSolve.js +605 -0
- package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_coarse_word.d.ts +18 -0
- package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_coarse_word.d.ts.map +1 -0
- package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_coarse_word.js +48 -0
- package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_level0_word.d.ts +17 -0
- package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_level0_word.d.ts.map +1 -0
- package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_level0_word.js +47 -0
- package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_prolong.d.ts +21 -0
- package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_prolong.d.ts.map +1 -0
- package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_prolong.js +47 -0
- package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_relax.d.ts +27 -0
- package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_relax.d.ts.map +1 -0
- package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_relax.js +79 -0
- package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_restrict.d.ts +18 -0
- package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_restrict.d.ts.map +1 -0
- package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_restrict.js +35 -0
- package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_word.d.ts +17 -0
- package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_word.d.ts.map +1 -0
- package/src/shade/renderer/fluid/pressure/chunk_fluid_mg_word.js +34 -0
- package/src/shade/renderer/fluid/pressure/chunk_fluid_pressure_ghost.d.ts +21 -0
- package/src/shade/renderer/fluid/pressure/chunk_fluid_pressure_ghost.d.ts.map +1 -0
- package/src/shade/renderer/fluid/pressure/chunk_fluid_pressure_ghost.js +34 -0
- package/src/shade/renderer/fluid/pressure/shader_fluid_mg_coarse_weights.d.ts +10 -0
- package/src/shade/renderer/fluid/pressure/shader_fluid_mg_coarse_weights.d.ts.map +1 -0
- package/src/shade/renderer/fluid/pressure/shader_fluid_mg_coarse_weights.js +45 -0
- package/src/shade/renderer/fluid/pressure/shader_fluid_mg_coarsest.d.ts +17 -0
- package/src/shade/renderer/fluid/pressure/shader_fluid_mg_coarsest.d.ts.map +1 -0
- package/src/shade/renderer/fluid/pressure/shader_fluid_mg_coarsest.js +126 -0
- package/src/shade/renderer/fluid/pressure/shader_fluid_mg_level0_weights.d.ts +10 -0
- package/src/shade/renderer/fluid/pressure/shader_fluid_mg_level0_weights.d.ts.map +1 -0
- package/src/shade/renderer/fluid/pressure/shader_fluid_mg_level0_weights.js +44 -0
- package/src/shade/renderer/fluid/pressure/shader_fluid_mg_residual_restrict.d.ts +18 -0
- package/src/shade/renderer/fluid/pressure/shader_fluid_mg_residual_restrict.d.ts.map +1 -0
- package/src/shade/renderer/fluid/pressure/shader_fluid_mg_residual_restrict.js +149 -0
- package/src/shade/renderer/fluid/pressure/shader_fluid_mg_smooth.d.ts +30 -0
- package/src/shade/renderer/fluid/pressure/shader_fluid_mg_smooth.d.ts.map +1 -0
- package/src/shade/renderer/fluid/pressure/shader_fluid_mg_smooth.js +183 -0
- package/src/shade/renderer/fluid/publish/FLUID_WIND_PUBLISH_STRUCT.d.ts +9 -0
- package/src/shade/renderer/fluid/publish/FLUID_WIND_PUBLISH_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/fluid/publish/FLUID_WIND_PUBLISH_STRUCT.js +12 -0
- package/src/shade/renderer/fluid/publish/FluidWindPublish.d.ts +49 -0
- package/src/shade/renderer/fluid/publish/FluidWindPublish.d.ts.map +1 -0
- package/src/shade/renderer/fluid/publish/FluidWindPublish.js +136 -0
- package/src/shade/renderer/fluid/publish/chunk_fluid_wind_publish_cell.d.ts +24 -0
- package/src/shade/renderer/fluid/publish/chunk_fluid_wind_publish_cell.d.ts.map +1 -0
- package/src/shade/renderer/fluid/publish/chunk_fluid_wind_publish_cell.js +37 -0
- package/src/shade/renderer/fluid/publish/shader_fluid_wind_publish.d.ts +41 -0
- package/src/shade/renderer/fluid/publish/shader_fluid_wind_publish.d.ts.map +1 -0
- package/src/shade/renderer/fluid/publish/shader_fluid_wind_publish.js +122 -0
- package/src/shade/renderer/fluid/query/FLUID_QUERY_DATABASE_SPEC.d.ts +66 -0
- package/src/shade/renderer/fluid/query/FLUID_QUERY_DATABASE_SPEC.d.ts.map +1 -0
- package/src/shade/renderer/fluid/query/FLUID_QUERY_DATABASE_SPEC.js +88 -0
- package/src/shade/renderer/fluid/query/GPUFluidQueries.d.ts +157 -0
- package/src/shade/renderer/fluid/query/GPUFluidQueries.d.ts.map +1 -0
- package/src/shade/renderer/fluid/query/GPUFluidQueries.js +709 -0
- package/src/shade/renderer/fluid/query/shader_fluid_query_gather.d.ts +47 -0
- package/src/shade/renderer/fluid/query/shader_fluid_query_gather.d.ts.map +1 -0
- package/src/shade/renderer/fluid/query/shader_fluid_query_gather.js +140 -0
- package/src/shade/renderer/geometry/GEOMETRY_ATTRIBUTE_DATA_RESOURCE.d.ts +7 -0
- package/src/shade/renderer/geometry/GEOMETRY_ATTRIBUTE_DATA_RESOURCE.d.ts.map +1 -0
- package/src/shade/renderer/geometry/GEOMETRY_ATTRIBUTE_DATA_RESOURCE.js +8 -0
- package/src/shade/renderer/geometry/bvh/BLAS_REFIT_BATCH_PLAN.md +619 -606
- package/src/shade/renderer/geometry/bvh/BLAS_REFIT_TARGET_STRUCT.d.ts +3 -2
- package/src/shade/renderer/geometry/bvh/BLAS_REFIT_TARGET_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/geometry/bvh/BLAS_REFIT_TARGET_STRUCT.js +50 -44
- package/src/shade/renderer/geometry/bvh/GPUBLASRefitBatch.d.ts +12 -9
- package/src/shade/renderer/geometry/bvh/GPUBLASRefitBatch.d.ts.map +1 -1
- package/src/shade/renderer/geometry/bvh/GPUBLASRefitBatch.js +447 -363
- package/src/shade/renderer/geometry/bvh/shader_blas_refit_batch.d.ts +7 -4
- package/src/shade/renderer/geometry/bvh/shader_blas_refit_batch.d.ts.map +1 -1
- package/src/shade/renderer/geometry/bvh/shader_blas_refit_batch.js +13 -6
- package/src/shade/renderer/geometry/bvh/shader_blas_refit_batch_seed.d.ts +21 -0
- package/src/shade/renderer/geometry/bvh/shader_blas_refit_batch_seed.d.ts.map +1 -0
- package/src/shade/renderer/geometry/bvh/shader_blas_refit_batch_seed.js +75 -0
- package/src/shade/renderer/geometry/meshlet/MESHLET_METADATA_RESOURCE.d.ts +7 -0
- package/src/shade/renderer/geometry/meshlet/MESHLET_METADATA_RESOURCE.d.ts.map +1 -0
- package/src/shade/renderer/geometry/meshlet/MESHLET_METADATA_RESOURCE.js +9 -0
- package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.d.ts +3 -3
- package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.d.ts.map +1 -1
- package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.js +11 -9
- package/src/shade/renderer/geometry/sdf/shader_build_sdf.d.ts.map +1 -1
- package/src/shade/renderer/geometry/sdf/shader_build_sdf.js +7 -3
- package/src/shade/renderer/geometry/sdf/shader_sdf_visualize.js +1 -1
- package/src/shade/renderer/global_illumination/brick4/gpu/BRICK4_RESOURCE.d.ts +7 -0
- package/src/shade/renderer/global_illumination/brick4/gpu/BRICK4_RESOURCE.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/brick4/gpu/BRICK4_RESOURCE.js +8 -0
- package/src/shade/renderer/global_illumination/brick4/gpu/bake/brick4_bake_basic.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/brick4/gpu/bake/brick4_bake_basic.js +2 -0
- package/src/shade/renderer/global_illumination/brick4/gpu/bake/shader_brick4_bake_probes.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/brick4/gpu/bake/shader_brick4_bake_probes.js +4 -2
- package/src/shade/renderer/global_illumination/brick4/gpu/draw/chunk_brick4_load_probe.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/brick4/gpu/draw/chunk_brick4_load_probe.js +4 -1
- package/src/shade/renderer/global_illumination/brick4/gpu/draw/chunk_brick4_node_by_position.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/brick4/gpu/draw/chunk_brick4_node_by_position.js +4 -1
- package/src/shade/renderer/global_illumination/brick4/gpu/draw/chunk_brick4_node_sample_probes.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/brick4/gpu/draw/chunk_brick4_node_sample_probes.js +3 -0
- package/src/shade/renderer/global_illumination/brick4/gpu/draw/chunk_brick4_probe_meta_pick2.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/brick4/gpu/draw/chunk_brick4_probe_meta_pick2.js +4 -1
- package/src/shade/renderer/global_illumination/brick4/gpu/draw/chunk_brick4_sample_forward_indirect.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/brick4/gpu/draw/chunk_brick4_sample_forward_indirect.js +3 -0
- package/src/shade/renderer/global_illumination/clipmap/shader_debug_clipmap.d.ts +15 -0
- package/src/shade/renderer/global_illumination/clipmap/shader_debug_clipmap.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/clipmap/shader_debug_clipmap.js +57 -57
- package/src/shade/renderer/global_illumination/lpv/bake/GPULightProbeVolumeRenderer.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/lpv/bake/GPULightProbeVolumeRenderer.js +2 -0
- package/src/shade/renderer/global_illumination/lpv/deprecated/chunk_lpv_get_visibility_mask.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/lpv/deprecated/chunk_lpv_get_visibility_mask.js +3 -0
- package/src/shade/renderer/global_illumination/lpv/deprecated/probe_trace_compute_shader_code.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/lpv/deprecated/probe_trace_compute_shader_code.js +4 -2
- package/src/shade/renderer/global_illumination/probe/octahedral/LPV_SHADER_RESOURCE_GROUP.d.ts +39 -0
- package/src/shade/renderer/global_illumination/probe/octahedral/LPV_SHADER_RESOURCE_GROUP.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe/octahedral/LPV_SHADER_RESOURCE_GROUP.js +57 -4
- package/src/shade/renderer/global_illumination/probe/octahedral/graph_lpv_shade.js +3 -3
- package/src/shade/renderer/global_illumination/probe/octahedral/sample/chunk_lpv_radiance_sample_reflection.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe/octahedral/sample/chunk_lpv_radiance_sample_reflection.js +3 -0
- package/src/shade/renderer/gpu_primitive/bvh/BVH_REFIT_DEFERRED_DEFINITION.d.ts +10 -0
- package/src/shade/renderer/gpu_primitive/bvh/BVH_REFIT_DEFERRED_DEFINITION.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh/BVH_REFIT_DEFERRED_DEFINITION.js +25 -0
- package/src/shade/renderer/gpu_primitive/bvh/BVH_REFIT_DEFERRED_LAYOUT.d.ts +55 -0
- package/src/shade/renderer/gpu_primitive/bvh/BVH_REFIT_DEFERRED_LAYOUT.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh/BVH_REFIT_DEFERRED_LAYOUT.js +63 -0
- package/src/shade/renderer/gpu_primitive/bvh/GPU_BVH_BUILD_PLAN.md +120 -4
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_refit_climb.d.ts +23 -11
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_refit_climb.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_refit_climb.js +171 -102
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_refit_repair.d.ts +23 -0
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_refit_repair.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_refit_repair.js +80 -0
- package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_build_lbvh.d.ts +5 -3
- package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_build_lbvh.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_build_lbvh.js +55 -5
- package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_refit_lbvh.d.ts +55 -0
- package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_refit_lbvh.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_refit_lbvh.js +197 -0
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_build_single_workgroup.d.ts +3 -1
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_build_single_workgroup.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_build_single_workgroup.js +45 -2
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_emit_hierarchy.d.ts +3 -2
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_emit_hierarchy.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_emit_hierarchy.js +13 -3
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit.d.ts +6 -6
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit.js +11 -8
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit_prepare.d.ts +24 -0
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit_prepare.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit_prepare.js +99 -0
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit_repair.d.ts +17 -0
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit_repair.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit_repair.js +63 -0
- package/src/shade/renderer/gpu_primitive/chunk_collection_u32_append.d.ts +19 -0
- package/src/shade/renderer/gpu_primitive/chunk_collection_u32_append.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/chunk_collection_u32_append.js +44 -0
- package/src/shade/renderer/light/LIGHT_DATA_RESOURCE.d.ts +7 -0
- package/src/shade/renderer/light/LIGHT_DATA_RESOURCE.d.ts.map +1 -0
- package/src/shade/renderer/light/LIGHT_DATA_RESOURCE.js +8 -0
- package/src/shade/renderer/light/cluster/CLUSTER_LIGHT_LIST.d.ts +7 -0
- package/src/shade/renderer/light/cluster/CLUSTER_LIGHT_LIST.d.ts.map +1 -0
- package/src/shade/renderer/light/cluster/CLUSTER_LIGHT_LIST.js +16 -0
- package/src/shade/renderer/light/cluster/CLUSTER_LIGHT_PROXY.d.ts +12 -0
- package/src/shade/renderer/light/cluster/CLUSTER_LIGHT_PROXY.d.ts.map +1 -0
- package/src/shade/renderer/light/cluster/CLUSTER_LIGHT_PROXY.js +33 -0
- package/src/shade/renderer/light/cluster/LIGHT_CLUSTER_ASSIGNMENT_SETTINGS.d.ts +7 -0
- package/src/shade/renderer/light/cluster/LIGHT_CLUSTER_ASSIGNMENT_SETTINGS.d.ts.map +1 -0
- package/src/shade/renderer/light/cluster/LIGHT_CLUSTER_ASSIGNMENT_SETTINGS.js +24 -0
- package/src/shade/renderer/light/cluster/LIGHT_CLUSTER_COARSE_BLOCK.d.ts +8 -0
- package/src/shade/renderer/light/cluster/LIGHT_CLUSTER_COARSE_BLOCK.d.ts.map +1 -0
- package/src/shade/renderer/light/cluster/LIGHT_CLUSTER_COARSE_BLOCK.js +7 -0
- package/src/shade/renderer/light/cluster/LIGHT_CLUSTER_METADATA.d.ts.map +1 -1
- package/src/shade/renderer/light/cluster/LIGHT_CLUSTER_METADATA.js +2 -3
- package/src/shade/renderer/light/cluster/LIGHT_CLUSTER_RESOURCES.d.ts +17 -0
- package/src/shade/renderer/light/cluster/LIGHT_CLUSTER_RESOURCES.d.ts.map +1 -0
- package/src/shade/renderer/light/cluster/LIGHT_CLUSTER_RESOURCES.js +22 -0
- package/src/shade/renderer/light/cluster/PROPOSAL_ALGORITHM_2026_10_16.md +524 -0
- package/src/shade/renderer/light/cluster/PROPOSAL_HIERARCHICAL_2026_10_16.md +1101 -0
- package/src/shade/renderer/light/cluster/chunk_cluster_cell.d.ts +19 -0
- package/src/shade/renderer/light/cluster/chunk_cluster_cell.d.ts.map +1 -0
- package/src/shade/renderer/light/cluster/chunk_cluster_cell.js +133 -0
- package/src/shade/renderer/light/cluster/chunk_cluster_from_fragment_coord.d.ts.map +1 -1
- package/src/shade/renderer/light/cluster/chunk_cluster_from_fragment_coord.js +6 -1
- package/src/shade/renderer/light/cluster/chunk_cluster_light_proxy.d.ts +19 -0
- package/src/shade/renderer/light/cluster/chunk_cluster_light_proxy.d.ts.map +1 -0
- package/src/shade/renderer/light/cluster/chunk_cluster_light_proxy.js +95 -0
- package/src/shade/renderer/light/cluster/chunk_light_cluster_counts.d.ts +6 -4
- package/src/shade/renderer/light/cluster/chunk_light_cluster_counts.d.ts.map +1 -1
- package/src/shade/renderer/light/cluster/chunk_light_cluster_counts.js +10 -8
- package/src/shade/renderer/light/cluster/chunk_light_cluster_metadata_by_position.d.ts.map +1 -1
- package/src/shade/renderer/light/cluster/chunk_light_cluster_metadata_by_position.js +4 -1
- package/src/shade/renderer/light/cluster/cull/graph_cull_lights.d.ts +8 -0
- package/src/shade/renderer/light/cluster/cull/graph_cull_lights.d.ts.map +1 -1
- package/src/shade/renderer/light/cluster/cull/graph_cull_lights.js +1 -1
- package/src/shade/renderer/light/cluster/graph_assign_clsuters.d.ts +27 -2
- package/src/shade/renderer/light/cluster/graph_assign_clsuters.d.ts.map +1 -1
- package/src/shade/renderer/light/cluster/graph_assign_clsuters.js +174 -76
- package/src/shade/renderer/light/cluster/graph_build_light_clusters.d.ts +3 -1
- package/src/shade/renderer/light/cluster/graph_build_light_clusters.d.ts.map +1 -1
- package/src/shade/renderer/light/cluster/graph_build_light_clusters.js +3 -0
- package/src/shade/renderer/light/cluster/shader_cluster_assign_lights.d.ts +14 -2
- package/src/shade/renderer/light/cluster/shader_cluster_assign_lights.d.ts.map +1 -1
- package/src/shade/renderer/light/cluster/shader_cluster_assign_lights.js +230 -139
- package/src/shade/renderer/light/cluster/shader_cluster_coarse_mark.d.ts +19 -0
- package/src/shade/renderer/light/cluster/shader_cluster_coarse_mark.d.ts.map +1 -0
- package/src/shade/renderer/light/cluster/shader_cluster_coarse_mark.js +134 -0
- package/src/shade/renderer/light/cluster/shader_cluster_light_compact.d.ts +11 -0
- package/src/shade/renderer/light/cluster/shader_cluster_light_compact.d.ts.map +1 -0
- package/src/shade/renderer/light/cluster/shader_cluster_light_compact.js +114 -0
- package/src/shade/renderer/light/cluster/shader_cluster_light_mark.d.ts +9 -0
- package/src/shade/renderer/light/cluster/shader_cluster_light_mark.d.ts.map +1 -0
- package/src/shade/renderer/light/cluster/shader_cluster_light_mark.js +59 -0
- package/src/shade/renderer/light/cluster/shader_cluster_light_prepare.d.ts +14 -0
- package/src/shade/renderer/light/cluster/shader_cluster_light_prepare.d.ts.map +1 -0
- package/src/shade/renderer/light/cluster/shader_cluster_light_prepare.js +142 -0
- package/src/shade/renderer/light/environment/ENVIRONMENT_MAP_RESOURCE.d.ts +7 -0
- package/src/shade/renderer/light/environment/ENVIRONMENT_MAP_RESOURCE.d.ts.map +1 -0
- package/src/shade/renderer/light/environment/ENVIRONMENT_MAP_RESOURCE.js +7 -0
- package/src/shade/renderer/light/environment/ENVIRONMENT_SH_RESOURCE.d.ts +7 -0
- package/src/shade/renderer/light/environment/ENVIRONMENT_SH_RESOURCE.d.ts.map +1 -0
- package/src/shade/renderer/light/environment/ENVIRONMENT_SH_RESOURCE.js +8 -0
- package/src/shade/renderer/light/environment/sh_exponential/README.md +2 -1
- package/src/shade/renderer/lightmap/GPULightMap.d.ts.map +1 -1
- package/src/shade/renderer/lightmap/GPULightMap.js +2 -0
- package/src/shade/renderer/lightmap/bake/shader_lightmap_viz_to_irradiance_flat.d.ts.map +1 -1
- package/src/shade/renderer/lightmap/bake/shader_lightmap_viz_to_irradiance_flat.js +4 -2
- package/src/shade/renderer/lightmap/bake/shader_lightmap_viz_to_sh.d.ts.map +1 -1
- package/src/shade/renderer/lightmap/bake/shader_lightmap_viz_to_sh.js +4 -2
- package/src/shade/renderer/lightmap/debug/shader_lightmap_debug_density.d.ts.map +1 -1
- package/src/shade/renderer/lightmap/debug/shader_lightmap_debug_density.js +4 -0
- package/src/shade/renderer/lightmap/debug/shader_lightmap_debug_uv_checker.d.ts.map +1 -1
- package/src/shade/renderer/lightmap/debug/shader_lightmap_debug_uv_checker.js +4 -0
- package/src/shade/renderer/lightmap/debug/shader_lightmap_debug_view_flat.d.ts.map +1 -1
- package/src/shade/renderer/lightmap/debug/shader_lightmap_debug_view_flat.js +4 -0
- package/src/shade/renderer/lightmap/debug/shader_lightmap_debug_view_sh.d.ts.map +1 -1
- package/src/shade/renderer/lightmap/debug/shader_lightmap_debug_view_sh.js +4 -0
- package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
- package/src/shade/renderer/material/standard/SHADING_MATERIAL_RESOURCE_GROUP.d.ts +22 -0
- package/src/shade/renderer/material/standard/SHADING_MATERIAL_RESOURCE_GROUP.d.ts.map +1 -1
- package/src/shade/renderer/material/standard/SHADING_MATERIAL_RESOURCE_GROUP.js +33 -9
- package/src/shade/renderer/particles/DESIGN.md +16 -2
- package/src/shade/renderer/particles/GPUParticleSystem.d.ts.map +1 -1
- package/src/shade/renderer/particles/GPUParticleSystem.js +3 -0
- package/src/shade/renderer/particles/graph/ParticleNodeRegistry.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/ParticleNodeRegistry.js +21 -9
- package/src/shade/renderer/particles/graph/particle_node_parameters.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/particle_node_parameters.js +1 -0
- package/src/shade/renderer/particles/graph/particle_node_presentation.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/particle_node_presentation.js +8 -0
- package/src/shade/renderer/particles/graph_particles.d.ts +4 -1
- package/src/shade/renderer/particles/graph_particles.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph_particles.js +13 -0
- package/src/shade/renderer/particles/isa/InstructionStream.d.ts +13 -0
- package/src/shade/renderer/particles/isa/InstructionStream.d.ts.map +1 -1
- package/src/shade/renderer/particles/isa/InstructionStream.js +13 -0
- package/src/shade/renderer/particles/isa/ParticleVMISA.d.ts +1 -0
- package/src/shade/renderer/particles/isa/ParticleVMISA.d.ts.map +1 -1
- package/src/shade/renderer/particles/isa/ParticleVMISA.js +8 -0
- package/src/shade/renderer/particles/optimizer/particle_program_equivalence.d.ts +2 -1
- package/src/shade/renderer/particles/optimizer/particle_program_equivalence.d.ts.map +1 -1
- package/src/shade/renderer/particles/optimizer/particle_program_equivalence.js +28 -6
- package/src/shade/renderer/particles/optimizer/particle_program_fuzz.js +1 -1
- package/src/shade/renderer/particles/optimizer/particle_vm_semantics.d.ts.map +1 -1
- package/src/shade/renderer/particles/optimizer/particle_vm_semantics.js +7 -0
- package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.js +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_emit.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_emit.js +5 -2
- package/src/shade/renderer/particles/shaders/shader_particle_emit_wide.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_emit_wide.js +5 -2
- package/src/shade/renderer/particles/shaders/shader_particle_simulate.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_simulate.js +5 -2
- package/src/shade/renderer/particles/shaders/shader_particle_simulate_wide.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_simulate_wide.js +5 -2
- package/src/shade/renderer/particles/vm/ParticleVMReference.d.ts +16 -1
- package/src/shade/renderer/particles/vm/ParticleVMReference.d.ts.map +1 -1
- package/src/shade/renderer/particles/vm/ParticleVMReference.js +35 -2
- package/src/shade/renderer/particles/vm/chunk_particle_vm.d.ts.map +1 -1
- package/src/shade/renderer/particles/vm/chunk_particle_vm.js +8 -0
- package/src/shade/renderer/particles/vm/chunk_particle_vm_wind_field.d.ts +20 -0
- package/src/shade/renderer/particles/vm/chunk_particle_vm_wind_field.d.ts.map +1 -0
- package/src/shade/renderer/particles/vm/chunk_particle_vm_wind_field.js +25 -0
- package/src/shade/renderer/particles/warmup/graph_particle_warmup.d.ts +4 -1
- package/src/shade/renderer/particles/warmup/graph_particle_warmup.d.ts.map +1 -1
- package/src/shade/renderer/particles/warmup/graph_particle_warmup.js +8 -0
- package/src/shade/renderer/particles/warmup/shader_particle_warmup_advance.d.ts.map +1 -1
- package/src/shade/renderer/particles/warmup/shader_particle_warmup_advance.js +109 -106
- package/src/shade/renderer/particles/warmup/shader_particle_warmup_advance_wide.d.ts.map +1 -1
- package/src/shade/renderer/particles/warmup/shader_particle_warmup_advance_wide.js +71 -68
- package/src/shade/renderer/path_tracer/accumulating/AccumulatingPathTracer.d.ts.map +1 -1
- package/src/shade/renderer/path_tracer/accumulating/AccumulatingPathTracer.js +3 -8
- package/src/shade/renderer/path_tracer/accumulating/shader_accumulating_path_tracer.d.ts.map +1 -1
- package/src/shade/renderer/path_tracer/accumulating/shader_accumulating_path_tracer.js +4 -2
- package/src/shade/renderer/path_tracer/graph_path_trace_scene.d.ts.map +1 -1
- package/src/shade/renderer/path_tracer/graph_path_trace_scene.js +6 -2
- package/src/shade/renderer/path_tracer/shader/chunk_render_trace_path.js +4 -4
- package/src/shade/renderer/path_tracer/shader/chunk_sample_material_data.js +3 -3
- package/src/shade/renderer/postprocess/nss/NSS.d.ts +1 -1
- package/src/shade/renderer/postprocess/ssr/SSR.d.ts +11 -8
- package/src/shade/renderer/postprocess/ssr/SSR.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/ssr/SSR.js +49 -52
- package/src/shade/renderer/postprocess/ssr/resolve/chunk_ssr_add_hit_irradiance.d.ts +28 -0
- package/src/shade/renderer/postprocess/ssr/resolve/chunk_ssr_add_hit_irradiance.d.ts.map +1 -0
- package/src/shade/renderer/postprocess/ssr/resolve/chunk_ssr_add_hit_irradiance.js +79 -0
- package/src/shade/renderer/postprocess/ssr/resolve/chunk_ssr_sample_radiance.d.ts +30 -0
- package/src/shade/renderer/postprocess/ssr/resolve/chunk_ssr_sample_radiance.d.ts.map +1 -0
- package/src/shade/renderer/postprocess/ssr/resolve/chunk_ssr_sample_radiance.js +66 -0
- package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader.d.ts +11 -0
- package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader.d.ts.map +1 -0
- package/src/shade/renderer/postprocess/ssr/resolve/{build_ssr_resolve_shader.js → ssr_resolve_shader.js} +93 -85
- package/src/shade/renderer/rasterize/expand/GPUCollectionLimits.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/GPUCollectionLimits.js +4 -0
- package/src/shade/renderer/rasterize/expand/RasterizationCollectionType.d.ts +1 -0
- package/src/shade/renderer/rasterize/expand/RasterizationCollectionType.js +5 -0
- package/src/shade/renderer/rasterize/forward/chunk_forward_sample_indirect.d.ts +25 -0
- package/src/shade/renderer/rasterize/forward/chunk_forward_sample_indirect.d.ts.map +1 -0
- package/src/shade/renderer/rasterize/forward/chunk_forward_sample_indirect.js +33 -0
- package/src/shade/renderer/rasterize/forward/chunk_forward_sample_indirect_brick4.d.ts +10 -0
- package/src/shade/renderer/rasterize/forward/chunk_forward_sample_indirect_brick4.d.ts.map +1 -0
- package/src/shade/renderer/rasterize/forward/chunk_forward_sample_indirect_brick4.js +38 -0
- package/src/shade/renderer/rasterize/forward/chunk_forward_sample_indirect_environment.d.ts +9 -0
- package/src/shade/renderer/rasterize/forward/chunk_forward_sample_indirect_environment.d.ts.map +1 -0
- package/src/shade/renderer/rasterize/forward/chunk_forward_sample_indirect_environment.js +30 -0
- package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment.d.ts +10 -0
- package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment.d.ts.map +1 -0
- package/src/shade/renderer/rasterize/forward/{chunk_forward_shade_standard_fragment_brick4.js → chunk_forward_shade_standard_fragment.js} +60 -33
- package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts +2 -3
- package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.js +2 -3
- package/src/shade/renderer/rasterize/native/avboit/avboit_draw_fragment_body.d.ts +9 -4
- package/src/shade/renderer/rasterize/native/avboit/avboit_draw_fragment_body.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/avboit/avboit_draw_fragment_body.js +11 -5
- package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.d.ts +4 -7
- package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.js +19 -45
- package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw.d.ts +18 -0
- package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw.d.ts.map +1 -0
- package/src/shade/renderer/rasterize/native/avboit/{shader_avboit_draw_brick4.js → shader_avboit_draw.js} +23 -19
- package/src/shade/renderer/rasterize/native/avboit/shader_avboit_splat.js +3 -3
- package/src/shade/renderer/rasterize/native/oit/graph_rasterize_meshes_transparent_oit.d.ts +3 -3
- package/src/shade/renderer/rasterize/native/oit/graph_rasterize_meshes_transparent_oit.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/oit/graph_rasterize_meshes_transparent_oit.js +18 -47
- package/src/shade/renderer/rasterize/native/oit/oit_resolve_fragment_body.d.ts +12 -8
- package/src/shade/renderer/rasterize/native/oit/oit_resolve_fragment_body.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/oit/oit_resolve_fragment_body.js +128 -123
- package/src/shade/renderer/rasterize/native/oit/shader_oit_generate_moments.js +3 -3
- package/src/shade/renderer/rasterize/native/oit/shader_oit_resolve_moments.d.ts +11 -2
- package/src/shade/renderer/rasterize/native/oit/shader_oit_resolve_moments.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/oit/shader_oit_resolve_moments.js +17 -10
- package/src/shade/renderer/restir/di/RESTIR_RADIANCE_RESOURCE.d.ts +7 -0
- package/src/shade/renderer/restir/di/RESTIR_RADIANCE_RESOURCE.d.ts.map +1 -0
- package/src/shade/renderer/restir/di/RESTIR_RADIANCE_RESOURCE.js +7 -0
- package/src/shade/renderer/scene/GPUSceneContext.d.ts +9 -1
- package/src/shade/renderer/scene/GPUSceneContext.d.ts.map +1 -1
- package/src/shade/renderer/scene/GPUSceneContext.js +21 -1
- package/src/shade/renderer/scene/MESH_INSTANCE_METADATA_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/scene/MESH_INSTANCE_METADATA_STRUCT.js +5 -0
- package/src/shade/renderer/scene/SCENE_DATABASE_RESOURCE.d.ts +7 -0
- package/src/shade/renderer/scene/SCENE_DATABASE_RESOURCE.d.ts.map +1 -0
- package/src/shade/renderer/scene/SCENE_DATABASE_RESOURCE.js +8 -0
- package/src/shade/renderer/scene/rows/GPUSceneRows.d.ts +14 -0
- package/src/shade/renderer/scene/rows/GPUSceneRows.d.ts.map +1 -1
- package/src/shade/renderer/scene/rows/GPUSceneRows.js +114 -10
- package/src/shade/renderer/shader/ComputeShader.d.ts +21 -0
- package/src/shade/renderer/shader/ComputeShader.d.ts.map +1 -1
- package/src/shade/renderer/shader/ComputeShader.js +54 -0
- package/src/shade/renderer/shader/ShaderDescriptor.d.ts +10 -4
- package/src/shade/renderer/shader/ShaderDescriptor.d.ts.map +1 -1
- package/src/shade/renderer/shader/ShaderDescriptor.js +78 -0
- package/src/shade/renderer/shader/chunk/brdf/FRESNEL_BRIEF_2026_10_16.md +394 -0
- package/src/shade/renderer/shader/chunk/brdf/chunk_BRDF_GGX.d.ts +4 -1
- package/src/shade/renderer/shader/chunk/brdf/chunk_BRDF_GGX.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/brdf/chunk_BRDF_GGX.js +7 -4
- package/src/shade/renderer/shader/chunk/brdf/dfg/chunk_integrate_brdf.d.ts +4 -1
- package/src/shade/renderer/shader/chunk/brdf/dfg/chunk_integrate_brdf.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/brdf/dfg/chunk_integrate_brdf.js +9 -9
- package/src/shade/renderer/shader/chunk/brdf/fresnel/chunk_F_Schlick.d.ts +10 -1
- package/src/shade/renderer/shader/chunk/brdf/fresnel/chunk_F_Schlick.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/brdf/fresnel/chunk_F_Schlick.js +16 -5
- package/src/shade/renderer/shader/chunk/bvh/chunk_bvh_query_aabb_cooperative.d.ts +82 -0
- package/src/shade/renderer/shader/chunk/bvh/chunk_bvh_query_aabb_cooperative.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/bvh/chunk_bvh_query_aabb_cooperative.js +286 -0
- package/src/shade/renderer/shader/chunk/bvh/chunk_bvh_query_aabb_frontier.d.ts +47 -0
- package/src/shade/renderer/shader/chunk/bvh/chunk_bvh_query_aabb_frontier.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/bvh/chunk_bvh_query_aabb_frontier.js +121 -0
- package/src/shade/renderer/shader/chunk/clipmap/CLIPMAP_LEVEL_STRUCT.d.ts +22 -0
- package/src/shade/renderer/shader/chunk/clipmap/CLIPMAP_LEVEL_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/clipmap/CLIPMAP_LEVEL_STRUCT.js +38 -0
- package/src/shade/renderer/shader/chunk/clipmap/chunk_clipmap_contains.d.ts +11 -0
- package/src/shade/renderer/shader/chunk/clipmap/chunk_clipmap_contains.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/clipmap/chunk_clipmap_contains.js +20 -0
- package/src/shade/renderer/shader/chunk/clipmap/chunk_clipmap_select_finest.d.ts +19 -0
- package/src/shade/renderer/shader/chunk/clipmap/chunk_clipmap_select_finest.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/clipmap/chunk_clipmap_select_finest.js +71 -0
- package/src/shade/renderer/shader/chunk/clipmap/chunk_clipmap_storage_coord.d.ts +15 -0
- package/src/shade/renderer/shader/chunk/clipmap/chunk_clipmap_storage_coord.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/clipmap/chunk_clipmap_storage_coord.js +25 -0
- package/src/shade/renderer/shader/chunk/color/conversion/chunk_CRM_FROM_REC709_TO_P3.d.ts +17 -0
- package/src/shade/renderer/shader/chunk/color/conversion/chunk_CRM_FROM_REC709_TO_P3.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/color/conversion/chunk_CRM_FROM_REC709_TO_P3.js +26 -0
- package/src/shade/renderer/shader/chunk/color/tonemap/gt7/chunk_tonemap_gt7.d.ts +8 -4
- package/src/shade/renderer/shader/chunk/color/tonemap/gt7/chunk_tonemap_gt7.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/color/tonemap/gt7/chunk_tonemap_gt7.js +13 -19
- package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_intersects_aabb3.d.ts +14 -0
- package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_intersects_aabb3.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_intersects_aabb3.js +24 -0
- package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_signed_distance_to_point.d.ts +3 -0
- package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_signed_distance_to_point.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_signed_distance_to_point.js +9 -10
- package/src/shade/renderer/shader/chunk/geometry/chunk_point_closest_on_line.d.ts +11 -0
- package/src/shade/renderer/shader/chunk/geometry/chunk_point_closest_on_line.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/geometry/chunk_point_closest_on_line.js +28 -0
- package/src/shade/renderer/shader/chunk/geometry/chunk_point_distance_to_line.d.ts +3 -2
- package/src/shade/renderer/shader/chunk/geometry/chunk_point_distance_to_line.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/geometry/chunk_point_distance_to_line.js +8 -17
- package/src/shade/renderer/shader/chunk/geometry/meshlet/chunk_read_meshlet_attribute_u32.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/geometry/meshlet/chunk_read_meshlet_attribute_u32.js +3 -0
- package/src/shade/renderer/shader/chunk/geometry/meshlet/chunk_read_meshlet_attribute_vec2f.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/geometry/meshlet/chunk_read_meshlet_attribute_vec2f.js +4 -1
- package/src/shade/renderer/shader/chunk/geometry/meshlet/chunk_read_meshlet_attribute_vec3f.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/geometry/meshlet/chunk_read_meshlet_attribute_vec3f.js +4 -1
- package/src/shade/renderer/shader/chunk/geometry/plane/chunk_point_distance_above_plane.d.ts +8 -0
- package/src/shade/renderer/shader/chunk/geometry/plane/chunk_point_distance_above_plane.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/geometry/plane/chunk_point_distance_above_plane.js +8 -0
- package/src/shade/renderer/shader/chunk/geometry/vec3/chunk_v3_angle_stable.d.ts +14 -0
- package/src/shade/renderer/shader/chunk/geometry/vec3/chunk_v3_angle_stable.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/geometry/vec3/chunk_v3_angle_stable.js +21 -0
- package/src/shade/renderer/shader/chunk/geometry/vec3/chunk_v3_clamp_to_cone.d.ts +21 -0
- package/src/shade/renderer/shader/chunk/geometry/vec3/chunk_v3_clamp_to_cone.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/geometry/vec3/chunk_v3_clamp_to_cone.js +49 -0
- package/src/shade/renderer/shader/chunk/geometry/vec3/chunk_v3_slerp.d.ts +29 -0
- package/src/shade/renderer/shader/chunk/geometry/vec3/chunk_v3_slerp.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/geometry/vec3/chunk_v3_slerp.js +86 -0
- package/src/shade/renderer/shader/chunk/grid/GRID_TILE_WINDOW_STRUCT.d.ts +24 -0
- package/src/shade/renderer/shader/chunk/grid/GRID_TILE_WINDOW_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/grid/GRID_TILE_WINDOW_STRUCT.js +30 -0
- package/src/shade/renderer/shader/chunk/grid/chunk_grid_tile_halo_f32.d.ts +55 -0
- package/src/shade/renderer/shader/chunk/grid/chunk_grid_tile_halo_f32.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/grid/chunk_grid_tile_halo_f32.js +101 -0
- package/src/shade/renderer/shader/chunk/grid/chunk_grid_tile_halo_vec4.d.ts +24 -0
- package/src/shade/renderer/shader/chunk/grid/chunk_grid_tile_halo_vec4.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/grid/chunk_grid_tile_halo_vec4.js +70 -0
- package/src/shade/renderer/shader/chunk/grid/chunk_grid_tile_window.d.ts +42 -0
- package/src/shade/renderer/shader/chunk/grid/chunk_grid_tile_window.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/grid/chunk_grid_tile_window.js +88 -0
- package/src/shade/renderer/shader/chunk/light/lpv/chunk_lpv_mesh_get_vertices.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/light/lpv/chunk_lpv_mesh_get_vertices.js +4 -1
- package/src/shade/renderer/shader/chunk/light/lpv/chunk_lpv_mesh_lookup_nearest_cell.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/light/lpv/chunk_lpv_mesh_lookup_nearest_cell.js +4 -1
- package/src/shade/renderer/shader/chunk/light/lpv/chunk_lpv_probe_get_data.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/light/lpv/chunk_lpv_probe_get_data.js +4 -1
- package/src/shade/renderer/shader/chunk/light/lpv/chunk_lpv_probe_get_position.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/light/lpv/chunk_lpv_probe_get_position.js +4 -1
- package/src/shade/renderer/shader/chunk/light/lpv/chunk_lpv_sample_radiance.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/light/lpv/chunk_lpv_sample_radiance.js +4 -1
- package/src/shade/renderer/shader/chunk/light/lpv/depth/chunk_lpv_mask_weights_by_visibility.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/light/lpv/depth/chunk_lpv_mask_weights_by_visibility.js +6 -1
- package/src/shade/renderer/shader/chunk/light/lpv/depth/chunk_lpv_sample_depth_atlas.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/light/lpv/depth/chunk_lpv_sample_depth_atlas.js +13 -1
- package/src/shade/renderer/shader/chunk/material/MULTISCATTER.md +67 -16
- package/src/shade/renderer/shader/chunk/material/chunk_compute_indirect_specular.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/material/chunk_compute_indirect_specular.js +6 -1
- package/src/shade/renderer/shader/chunk/material/chunk_re_direct_multiscatter.d.ts +7 -1
- package/src/shade/renderer/shader/chunk/material/chunk_re_direct_multiscatter.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/material/chunk_re_direct_multiscatter.js +29 -1
- package/src/shade/renderer/shader/chunk/math/chunk_falloff_quadratic.d.ts +11 -0
- package/src/shade/renderer/shader/chunk/math/chunk_falloff_quadratic.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/math/chunk_falloff_quadratic.js +20 -0
- package/src/shade/renderer/shader/chunk/noise/chunk_stbn_sample_vec2.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/noise/chunk_stbn_sample_vec2.js +4 -1
- package/src/shade/renderer/shader/chunk/noise/chunk_stbn_sample_vec3.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/noise/chunk_stbn_sample_vec3.js +3 -0
- package/src/shade/renderer/shader/chunk/physics/fluid/chunk_vortex_swirl.d.ts +20 -0
- package/src/shade/renderer/shader/chunk/physics/fluid/chunk_vortex_swirl.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/physics/fluid/chunk_vortex_swirl.js +39 -0
- package/src/shade/renderer/shader/chunk/physics/kinematics/chunk_rigid_velocity_at_point.d.ts +12 -0
- package/src/shade/renderer/shader/chunk/physics/kinematics/chunk_rigid_velocity_at_point.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/physics/kinematics/chunk_rigid_velocity_at_point.js +21 -0
- package/src/shade/renderer/shader/chunk/screen_space/SCREEN_SPACE_RESOURCES.d.ts +17 -0
- package/src/shade/renderer/shader/chunk/screen_space/SCREEN_SPACE_RESOURCES.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/screen_space/SCREEN_SPACE_RESOURCES.js +19 -0
- package/src/shade/renderer/shader/chunk/screen_space/chunk_ffx_sssr_load_depth.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/screen_space/chunk_ffx_sssr_load_depth.js +5 -1
- package/src/shade/renderer/shader/chunk/screen_space/chunk_ffx_sssr_load_world_space_normal.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/screen_space/chunk_ffx_sssr_load_world_space_normal.js +4 -1
- package/src/shade/renderer/shader/chunk/screen_space/chunk_ffx_sssr_screen_space_to_view_space.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/screen_space/chunk_ffx_sssr_screen_space_to_view_space.js +4 -1
- package/src/shade/renderer/shader/chunk/screen_space/chunk_ffx_sssr_validate_hit.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/screen_space/chunk_ffx_sssr_validate_hit.js +3 -0
- package/src/shade/renderer/shader/chunk/sdf/chunk_scene_sdf_raymarch.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/sdf/chunk_scene_sdf_raymarch.js +3 -5
- package/src/shade/renderer/shader/chunk/sdf/chunk_sdf3_box.d.ts +16 -0
- package/src/shade/renderer/shader/chunk/sdf/chunk_sdf3_box.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/sdf/chunk_sdf3_box.js +28 -0
- package/src/shade/renderer/shader/chunk/sdf/chunk_sdf3_capsule.d.ts +18 -0
- package/src/shade/renderer/shader/chunk/sdf/chunk_sdf3_capsule.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/sdf/chunk_sdf3_capsule.js +30 -0
- package/src/shade/renderer/shader/chunk/sdf/chunk_sdf3_cylinder.d.ts +18 -0
- package/src/shade/renderer/shader/chunk/sdf/chunk_sdf3_cylinder.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/sdf/chunk_sdf3_cylinder.js +28 -0
- package/src/shade/renderer/shader/chunk/sdf/chunk_sdf3_sphere.d.ts +13 -0
- package/src/shade/renderer/shader/chunk/sdf/chunk_sdf3_sphere.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/sdf/chunk_sdf3_sphere.js +20 -0
- package/src/shade/renderer/shader/chunk/sdf/chunk_sdf_texture_region_sample_linear_uv.d.ts +7 -0
- package/src/shade/renderer/shader/chunk/sdf/chunk_sdf_texture_region_sample_linear_uv.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/sdf/chunk_sdf_texture_region_sample_linear_uv.js +16 -41
- package/src/shade/renderer/shader/chunk/sdf/chunk_shape_record_kind.d.ts +10 -0
- package/src/shade/renderer/shader/chunk/sdf/chunk_shape_record_kind.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/sdf/chunk_shape_record_kind.js +24 -0
- package/src/shade/renderer/shader/chunk/sdf/chunk_shape_record_local_bounds.d.ts +20 -0
- package/src/shade/renderer/shader/chunk/sdf/chunk_shape_record_local_bounds.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/sdf/chunk_shape_record_local_bounds.js +54 -0
- package/src/shade/renderer/shader/chunk/sdf/chunk_shape_record_signed_distance.d.ts +23 -0
- package/src/shade/renderer/shader/chunk/sdf/chunk_shape_record_signed_distance.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/sdf/chunk_shape_record_signed_distance.js +82 -0
- package/src/shade/renderer/shader/chunk/spherical_harmonics/exponential/chunk_sh_exp_split_sum.d.ts +4 -3
- package/src/shade/renderer/shader/chunk/spherical_harmonics/exponential/chunk_sh_exp_split_sum.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/spherical_harmonics/exponential/chunk_sh_exp_split_sum.js +4 -3
- package/src/shade/renderer/shader/chunk/subgroup/chunk_subgroup_append_slot.d.ts +31 -0
- package/src/shade/renderer/shader/chunk/subgroup/chunk_subgroup_append_slot.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/subgroup/chunk_subgroup_append_slot.js +60 -0
- package/src/shade/renderer/shader/chunk/subgroup/chunk_subgroup_atomic_add.d.ts +15 -0
- package/src/shade/renderer/shader/chunk/subgroup/chunk_subgroup_atomic_add.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/subgroup/chunk_subgroup_atomic_add.js +29 -0
- package/src/shade/renderer/shader/chunk/texture/TEXTURE3D_TRILINEAR_CORNERS_STRUCT.d.ts +15 -0
- package/src/shade/renderer/shader/chunk/texture/TEXTURE3D_TRILINEAR_CORNERS_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/texture/TEXTURE3D_TRILINEAR_CORNERS_STRUCT.js +20 -0
- package/src/shade/renderer/shader/chunk/texture/chunk_texel_coordinate_to_uv3.d.ts +11 -0
- package/src/shade/renderer/shader/chunk/texture/chunk_texel_coordinate_to_uv3.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/texture/chunk_texel_coordinate_to_uv3.js +18 -0
- package/src/shade/renderer/shader/chunk/texture/chunk_uv3_to_texel_coordinate.d.ts +11 -0
- package/src/shade/renderer/shader/chunk/texture/chunk_uv3_to_texel_coordinate.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/texture/chunk_uv3_to_texel_coordinate.js +18 -0
- package/src/shade/renderer/shader/chunk/texture/sample/chunk_texture3d_trilinear_corners.d.ts +35 -0
- package/src/shade/renderer/shader/chunk/texture/sample/chunk_texture3d_trilinear_corners.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/texture/sample/chunk_texture3d_trilinear_corners.js +159 -0
- package/src/shade/renderer/shader/compiler/CodeChunk.d.ts +35 -2
- package/src/shade/renderer/shader/compiler/CodeChunk.d.ts.map +1 -1
- package/src/shade/renderer/shader/compiler/CodeChunk.js +65 -2
- package/src/shade/renderer/shader/compiler/CodeChunkChoice.d.ts +2 -0
- package/src/shade/renderer/shader/compiler/CodeChunkChoice.d.ts.map +1 -1
- package/src/shade/renderer/shader/compiler/CodeChunkChoice.js +10 -0
- package/src/shade/renderer/shader/compiler/SHADER_SWITCH_PROPOSAL_2026_10_16.md +272 -20
- package/src/shade/renderer/shader/compiler/ShaderSwitch.d.ts +1 -1
- package/src/shade/renderer/shader/compiler/ShaderSwitchSet.d.ts +1 -1
- package/src/shade/renderer/shader/compiler/ShaderSwitchSet.d.ts.map +1 -1
- package/src/shade/renderer/shader/compiler/ShaderSwitchSet.js +26 -2
- package/src/shade/renderer/shader/graph/graph_prepare_bindings.d.ts.map +1 -1
- package/src/shade/renderer/shader/graph/graph_prepare_bindings.js +69 -0
- package/src/shade/renderer/shader/resource/ShaderResourceDescriptor.d.ts +94 -2
- package/src/shade/renderer/shader/resource/ShaderResourceDescriptor.d.ts.map +1 -1
- package/src/shade/renderer/shader/resource/ShaderResourceDescriptor.js +333 -2
- package/src/shade/renderer/shader/resource/ShaderResourceGroupDescriptor.d.ts +14 -1
- package/src/shade/renderer/shader/resource/ShaderResourceGroupDescriptor.d.ts.map +1 -1
- package/src/shade/renderer/shader/resource/ShaderResourceGroupDescriptor.js +28 -150
- package/src/shade/renderer/shader/resource/encoder_prepare_shader_bindings_defaults.d.ts +5 -0
- package/src/shade/renderer/shader/resource/encoder_prepare_shader_bindings_defaults.d.ts.map +1 -1
- package/src/shade/renderer/shader/resource/encoder_prepare_shader_bindings_defaults.js +11 -1
- package/src/shade/renderer/shadow/map/SHADOWMAP_RESOURCES.d.ts +12 -0
- package/src/shade/renderer/shadow/map/SHADOWMAP_RESOURCES.d.ts.map +1 -0
- package/src/shade/renderer/shadow/map/SHADOWMAP_RESOURCES.js +14 -0
- package/src/shade/renderer/shadow/map/shader/chunk_sample_shadowmap_atlas_for_light.d.ts.map +1 -1
- package/src/shade/renderer/shadow/map/shader/chunk_sample_shadowmap_atlas_for_light.js +3 -0
- package/src/shade/renderer/shadow/map/shader/chunk_shadowmap_sample_filtered.d.ts.map +1 -1
- package/src/shade/renderer/shadow/map/shader/chunk_shadowmap_sample_filtered.js +8 -1
- package/src/shade/renderer/shadow/map/shader/chunk_shadowmap_sample_point2.d.ts.map +1 -1
- package/src/shade/renderer/shadow/map/shader/chunk_shadowmap_sample_point2.js +3 -0
- package/src/shade/renderer/shadow/ray/shader_screens_space_shadows.d.ts.map +1 -1
- package/src/shade/renderer/shadow/ray/shader_screens_space_shadows.js +3 -0
- package/src/shade/renderer/shadow/sdf/chunk_geometry_sdf_query_distance.d.ts.map +1 -1
- package/src/shade/renderer/shadow/sdf/chunk_geometry_sdf_query_distance.js +3 -3
- package/src/shade/renderer/shadow/sdf/chunk_sdf_geometry_raymarch.d.ts.map +1 -1
- package/src/shade/renderer/shadow/sdf/chunk_sdf_geometry_raymarch.js +3 -3
- package/src/shade/renderer/shadow/vsm/VSMPageManager.d.ts +5 -3
- package/src/shade/renderer/shadow/vsm/VSMPageManager.d.ts.map +1 -1
- package/src/shade/renderer/shadow/vsm/VSMPageManager.js +86 -89
- package/src/shade/renderer/shadow/vsm/VirtualShadowMap.d.ts.map +1 -1
- package/src/shade/renderer/shadow/vsm/VirtualShadowMap.js +12 -9
- package/src/shade/renderer/shadow/vsm/shader/chunk_vsm_append_mover.d.ts +2 -2
- package/src/shade/renderer/shadow/vsm/shader/chunk_vsm_append_mover.d.ts.map +1 -1
- package/src/shade/renderer/shadow/vsm/shader/chunk_vsm_append_mover.js +13 -26
- package/src/shade/renderer/texture/SAMPLER_LINEAR_RESOURCE.d.ts +7 -0
- package/src/shade/renderer/texture/SAMPLER_LINEAR_RESOURCE.d.ts.map +1 -0
- package/src/shade/renderer/texture/SAMPLER_LINEAR_RESOURCE.js +8 -0
- package/src/shade/renderer/texture/atlas/GPUTileAtlas3D.d.ts +66 -47
- package/src/shade/renderer/texture/atlas/GPUTileAtlas3D.d.ts.map +1 -1
- package/src/shade/renderer/texture/atlas/GPUTileAtlas3D.js +193 -117
- package/src/shade/renderer/texture/atlas/chunk_tile_atlas_slot_origin.d.ts +20 -0
- package/src/shade/renderer/texture/atlas/chunk_tile_atlas_slot_origin.d.ts.map +1 -0
- package/src/shade/renderer/texture/atlas/chunk_tile_atlas_slot_origin.js +30 -0
- package/src/shade/renderer/texture/draw_texture_as_rgba.d.ts +2 -0
- package/src/shade/renderer/texture/draw_texture_as_rgba.d.ts.map +1 -1
- package/src/shade/renderer/texture/draw_texture_as_rgba.js +2 -0
- package/src/shade/renderer/texture/graph_draw_texture_3d_slice_as_rgba.d.ts +31 -0
- package/src/shade/renderer/texture/graph_draw_texture_3d_slice_as_rgba.d.ts.map +1 -0
- package/src/shade/renderer/texture/graph_draw_texture_3d_slice_as_rgba.js +116 -0
- package/src/shade/renderer/texture/shader_draw_texture_3d_slice_as_rgba.d.ts +33 -0
- package/src/shade/renderer/texture/shader_draw_texture_3d_slice_as_rgba.d.ts.map +1 -0
- package/src/shade/renderer/texture/shader_draw_texture_3d_slice_as_rgba.js +90 -0
- package/src/shade/renderer/texture/util/ZERO_UINT_PIXEL_TEXTURE.d.ts +10 -0
- package/src/shade/renderer/texture/util/ZERO_UINT_PIXEL_TEXTURE.d.ts.map +1 -0
- package/src/shade/renderer/texture/util/ZERO_UINT_PIXEL_TEXTURE.js +33 -0
- package/src/shade/renderer/view/VIEW_RESOURCE.d.ts +7 -0
- package/src/shade/renderer/view/VIEW_RESOURCE.d.ts.map +1 -0
- package/src/shade/renderer/view/VIEW_RESOURCE.js +8 -0
- package/src/shade/renderer/volumetrics/GPUSceneVolumetrics.d.ts +7 -4
- package/src/shade/renderer/volumetrics/GPUSceneVolumetrics.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/GPUSceneVolumetrics.js +192 -13
- package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts +8 -5
- package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/GPUViewVolumetrics.js +9 -5
- package/src/shade/renderer/volumetrics/NOTES.md +47 -0
- package/src/shade/renderer/volumetrics/PARTICIPATING_MEDIA_VOLUME_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/PARTICIPATING_MEDIA_VOLUME_STRUCT.js +12 -0
- package/src/shade/renderer/volumetrics/ParticipatingMediaVolume.d.ts +31 -5
- package/src/shade/renderer/volumetrics/ParticipatingMediaVolume.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/ParticipatingMediaVolume.js +53 -12
- package/src/shade/renderer/volumetrics/SceneVolumetrics.d.ts +27 -11
- package/src/shade/renderer/volumetrics/SceneVolumetrics.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/SceneVolumetrics.js +30 -11
- package/src/shade/renderer/volumetrics/VOLUMETRICS_RESOURCES.d.ts +17 -0
- package/src/shade/renderer/volumetrics/VOLUMETRICS_RESOURCES.d.ts.map +1 -0
- package/src/shade/renderer/volumetrics/VOLUMETRICS_RESOURCES.js +20 -0
- package/src/shade/renderer/volumetrics/VOLUMETRIC_NOISE_PLAN_2026_10_15.md +13 -3
- package/src/shade/renderer/volumetrics/chunk_integrate_optical_depth.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/chunk_integrate_optical_depth.js +82 -76
- package/src/shade/renderer/volumetrics/chunk_participating_media_volume_sample.d.ts +4 -3
- package/src/shade/renderer/volumetrics/chunk_participating_media_volume_sample.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/chunk_participating_media_volume_sample.js +4 -3
- package/src/shade/renderer/volumetrics/chunk_volumetrics_froxel_uvw_from_clip.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/chunk_volumetrics_froxel_uvw_from_clip.js +3 -0
- package/src/shade/renderer/volumetrics/chunk_volumetrics_local_light_shadow.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/chunk_volumetrics_local_light_shadow.js +3 -0
- package/src/shade/renderer/volumetrics/chunk_volumetrics_sun_optical_depth.d.ts +7 -0
- package/src/shade/renderer/volumetrics/chunk_volumetrics_sun_optical_depth.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/chunk_volumetrics_sun_optical_depth.js +152 -130
- package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_froxel_centre_ws.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_froxel_centre_ws.js +5 -0
- package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_gi.d.ts +7 -9
- package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_gi.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_gi.js +11 -9
- package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_gi_sample.d.ts +35 -0
- package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_gi_sample.d.ts.map +1 -0
- package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_gi_sample.js +105 -0
- package/src/shade/renderer/volumetrics/gi/graph_build_froxel_gi.d.ts +15 -9
- package/src/shade/renderer/volumetrics/gi/graph_build_froxel_gi.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/gi/graph_build_froxel_gi.js +26 -36
- package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi.d.ts +10 -0
- package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi.d.ts.map +1 -0
- package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi.js +51 -0
- package/src/shade/renderer/volumetrics/gi/volumetrics_gi_resources.d.ts +11 -0
- package/src/shade/renderer/volumetrics/gi/volumetrics_gi_resources.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/gi/volumetrics_gi_resources.js +19 -6
- package/src/shade/renderer/volumetrics/graph_build_froxel_irradiance.d.ts +9 -5
- package/src/shade/renderer/volumetrics/graph_build_froxel_irradiance.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/graph_build_froxel_irradiance.js +11 -5
- package/src/shade/renderer/volumetrics/graph_build_volumetrics.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/graph_build_volumetrics.js +25 -12
- package/src/shade/renderer/volumetrics/noise/PARTICIPATING_MEDIA_NOISE.d.ts +35 -0
- package/src/shade/renderer/volumetrics/noise/PARTICIPATING_MEDIA_NOISE.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/noise/PARTICIPATING_MEDIA_NOISE.js +37 -0
- package/src/shade/renderer/volumetrics/noise/bake_volumetrics_noise_tile.d.ts +2 -1
- package/src/shade/renderer/volumetrics/noise/bake_volumetrics_noise_tile.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/noise/bake_volumetrics_noise_tile.js +8 -3
- package/src/shade/renderer/volumetrics/noise/chunk_participating_media_noise.d.ts +45 -13
- package/src/shade/renderer/volumetrics/noise/chunk_participating_media_noise.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/noise/chunk_participating_media_noise.js +50 -69
- package/src/shade/renderer/volumetrics/noise/chunk_participating_media_noise_carried.d.ts +14 -0
- package/src/shade/renderer/volumetrics/noise/chunk_participating_media_noise_carried.d.ts.map +1 -0
- package/src/shade/renderer/volumetrics/noise/chunk_participating_media_noise_carried.js +76 -0
- package/src/shade/renderer/volumetrics/noise/chunk_participating_media_noise_scrolled.d.ts +14 -0
- package/src/shade/renderer/volumetrics/noise/chunk_participating_media_noise_scrolled.d.ts.map +1 -0
- package/src/shade/renderer/volumetrics/noise/chunk_participating_media_noise_scrolled.js +38 -0
- package/src/shade/renderer/volumetrics/noise/chunk_participating_media_noise_tap.d.ts +21 -0
- package/src/shade/renderer/volumetrics/noise/chunk_participating_media_noise_tap.d.ts.map +1 -0
- package/src/shade/renderer/volumetrics/noise/chunk_participating_media_noise_tap.js +74 -0
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_irradiance.d.ts +6 -0
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_irradiance.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_irradiance.js +11 -2
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_lighting.d.ts +7 -0
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_lighting.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_lighting.js +14 -4
- 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 +17 -3
- package/src/shade/renderer/volumetrics/volumetrics_position_world_to_froxel_uvw.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/volumetrics_position_world_to_froxel_uvw.js +5 -0
- package/src/shade/renderer/water/GPUWaterRenderer.d.ts +1 -2
- package/src/shade/renderer/water/GPUWaterRenderer.d.ts.map +1 -1
- package/src/shade/renderer/water/GPUWaterRenderer.js +15 -24
- package/src/shade/renderer/water/chunk_water_gi.d.ts +10 -2
- package/src/shade/renderer/water/chunk_water_gi.d.ts.map +1 -1
- package/src/shade/renderer/water/chunk_water_gi.js +70 -56
- package/src/shade/renderer/water/optics/chunk_water_inscatter.d.ts +2 -2
- package/src/shade/renderer/water/optics/chunk_water_inscatter.d.ts.map +1 -1
- package/src/shade/renderer/water/optics/chunk_water_inscatter.js +5 -2
- package/src/shade/renderer/water/optics/chunk_water_receiver_downwelling.d.ts +1 -2
- package/src/shade/renderer/water/optics/chunk_water_receiver_downwelling.d.ts.map +1 -1
- package/src/shade/renderer/water/optics/chunk_water_receiver_downwelling.js +4 -2
- package/src/shade/renderer/water/shader_water.d.ts +9 -12
- package/src/shade/renderer/water/shader_water.d.ts.map +1 -1
- package/src/shade/renderer/water/shader_water.js +69 -47
- package/src/shade/renderer/water/surface/GPUWaterSurface.d.ts +4 -1
- package/src/shade/renderer/water/surface/GPUWaterSurface.d.ts.map +1 -1
- package/src/shade/renderer/water/surface/GPUWaterSurface.js +9 -3
- package/src/shade/renderer/water/surface/WATER_SURFACE_RESOURCES.d.ts +15 -0
- package/src/shade/renderer/water/surface/WATER_SURFACE_RESOURCES.d.ts.map +1 -0
- package/src/shade/renderer/water/surface/WATER_SURFACE_RESOURCES.js +27 -0
- package/src/shade/renderer/water/surface/WATER_WAVE_RECORD_STRUCT.d.ts +2 -1
- package/src/shade/renderer/water/surface/WATER_WAVE_RECORD_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/water/surface/WATER_WAVE_RECORD_STRUCT.js +18 -9
- package/src/shade/renderer/water/surface/chunk_water_surface_sample.d.ts +0 -3
- package/src/shade/renderer/water/surface/chunk_water_surface_sample.d.ts.map +1 -1
- package/src/shade/renderer/water/surface/chunk_water_surface_sample.js +15 -3
- package/src/shade/renderer/water/surface/particles/shader_water_particles.js +2 -2
- package/src/shade/renderer/water/surface/shader_water_cull.d.ts +9 -3
- package/src/shade/renderer/water/surface/shader_water_cull.d.ts.map +1 -1
- package/src/shade/renderer/water/surface/shader_water_cull.js +46 -22
- package/src/shade/renderer/water/surface/shader_water_waves_derive.d.ts +26 -1
- package/src/shade/renderer/water/surface/shader_water_waves_derive.d.ts.map +1 -1
- package/src/shade/renderer/water/surface/shader_water_waves_derive.js +73 -9
- package/src/shade/renderer/wind/GPUSceneWind.d.ts +127 -0
- package/src/shade/renderer/wind/GPUSceneWind.d.ts.map +1 -0
- package/src/shade/renderer/wind/GPUSceneWind.js +410 -0
- package/src/shade/renderer/wind/WIND_FIELD.d.ts +53 -0
- package/src/shade/renderer/wind/WIND_FIELD.d.ts.map +1 -0
- package/src/shade/renderer/wind/WIND_FIELD.js +60 -0
- package/src/shade/renderer/wind/WIND_FIELD_STRUCT.d.ts +36 -0
- package/src/shade/renderer/wind/WIND_FIELD_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/wind/WIND_FIELD_STRUCT.js +61 -0
- package/src/shade/renderer/wind/WIND_FIELD_UNIFORM.d.ts +17 -0
- package/src/shade/renderer/wind/WIND_FIELD_UNIFORM.d.ts.map +1 -0
- package/src/shade/renderer/wind/WIND_FIELD_UNIFORM.js +17 -0
- package/src/shade/renderer/wind/chunk_wind_field_sample.d.ts +20 -0
- package/src/shade/renderer/wind/chunk_wind_field_sample.d.ts.map +1 -0
- package/src/shade/renderer/wind/chunk_wind_field_sample.js +26 -0
- package/src/shade/renderer/wind/chunk_wind_field_sample_cascades.d.ts +40 -0
- package/src/shade/renderer/wind/chunk_wind_field_sample_cascades.d.ts.map +1 -0
- package/src/shade/renderer/wind/chunk_wind_field_sample_cascades.js +92 -0
- package/src/shade/renderer/wind/chunk_wind_field_sample_uniform.d.ts +12 -0
- package/src/shade/renderer/wind/chunk_wind_field_sample_uniform.d.ts.map +1 -0
- package/src/shade/renderer/wind/chunk_wind_field_sample_uniform.js +22 -0
- package/src/shade/renderer/wind/wind_field_add_resources.d.ts +15 -0
- package/src/shade/renderer/wind/wind_field_add_resources.d.ts.map +1 -0
- package/src/shade/renderer/wind/wind_field_add_resources.js +22 -0
- package/src/shade/wgsl/emulator/CPUBitmapData.d.ts +5 -2
- package/src/shade/wgsl/emulator/CPUBitmapData.d.ts.map +1 -1
- package/src/shade/wgsl/emulator/CPUBitmapData.js +5 -2
- package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.d.ts +5 -1
- package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.d.ts.map +1 -1
- package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.js +75 -22
- package/src/shade/wgsl/emulator/WGSLLanguageCore.d.ts.map +1 -1
- package/src/shade/wgsl/emulator/WGSLLanguageCore.js +90 -22
- package/src/engine/physics/cloth/wind/ClothAmbientWind.d.ts +0 -87
- package/src/engine/physics/cloth/wind/ClothAmbientWind.d.ts.map +0 -1
- package/src/engine/physics/cloth/wind/ClothAmbientWind.js +0 -185
- package/src/shade/renderer/geometry/sdf/chunk_sdf_slot_index_to_texture_offset.d.ts +0 -7
- package/src/shade/renderer/geometry/sdf/chunk_sdf_slot_index_to_texture_offset.d.ts.map +0 -1
- package/src/shade/renderer/geometry/sdf/chunk_sdf_slot_index_to_texture_offset.js +0 -25
- package/src/shade/renderer/global_illumination/clipmap/GPUClipMap3D.d.ts +0 -43
- package/src/shade/renderer/global_illumination/clipmap/GPUClipMap3D.d.ts.map +0 -1
- package/src/shade/renderer/global_illumination/clipmap/GPUClipMap3D.js +0 -207
- package/src/shade/renderer/global_illumination/clipmap/RadianceField.d.ts +0 -21
- package/src/shade/renderer/global_illumination/clipmap/RadianceField.d.ts.map +0 -1
- package/src/shade/renderer/global_illumination/clipmap/RadianceField.js +0 -40
- package/src/shade/renderer/global_illumination/clipmap/chunk_clip_cascade_wrap_coord.d.ts +0 -13
- package/src/shade/renderer/global_illumination/clipmap/chunk_clip_cascade_wrap_coord.d.ts.map +0 -1
- package/src/shade/renderer/global_illumination/clipmap/chunk_clip_cascade_wrap_coord.js +0 -47
- package/src/shade/renderer/global_illumination/clipmap/shader_update_clipmap_cascade.d.ts +0 -7
- package/src/shade/renderer/global_illumination/clipmap/shader_update_clipmap_cascade.d.ts.map +0 -1
- package/src/shade/renderer/global_illumination/clipmap/shader_update_clipmap_cascade.js +0 -115
- package/src/shade/renderer/light/cluster/LIGHT_CLUSTER_LOCAL_LIGHT_LIMIT.d.ts +0 -7
- package/src/shade/renderer/light/cluster/LIGHT_CLUSTER_LOCAL_LIGHT_LIMIT.d.ts.map +0 -1
- package/src/shade/renderer/light/cluster/LIGHT_CLUSTER_LOCAL_LIGHT_LIMIT.js +0 -6
- package/src/shade/renderer/light/cluster/chunk_cluster_keep_smallest.d.ts +0 -21
- package/src/shade/renderer/light/cluster/chunk_cluster_keep_smallest.d.ts.map +0 -1
- package/src/shade/renderer/light/cluster/chunk_cluster_keep_smallest.js +0 -47
- package/src/shade/renderer/postprocess/ssr/resolve/build_ssr_resolve_shader.d.ts +0 -21
- package/src/shade/renderer/postprocess/ssr/resolve/build_ssr_resolve_shader.d.ts.map +0 -1
- package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_Brick4.d.ts +0 -2
- package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_Brick4.d.ts.map +0 -1
- package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_Brick4.js +0 -24
- package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_IBL.d.ts +0 -2
- package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_IBL.d.ts.map +0 -1
- package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_IBL.js +0 -21
- package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_LPV.d.ts +0 -2
- package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_LPV.d.ts.map +0 -1
- package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_LPV.js +0 -34
- package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment_brick4.d.ts +0 -3
- package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment_brick4.d.ts.map +0 -1
- package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment_ibl.d.ts +0 -7
- package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment_ibl.d.ts.map +0 -1
- package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment_ibl.js +0 -184
- package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_brick4.d.ts +0 -9
- package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_brick4.d.ts.map +0 -1
- package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_ibl.d.ts +0 -9
- package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_ibl.d.ts.map +0 -1
- package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_ibl.js +0 -111
- package/src/shade/renderer/rasterize/native/oit/shader_oit_resolve_moments_ibl.d.ts +0 -9
- package/src/shade/renderer/rasterize/native/oit/shader_oit_resolve_moments_ibl.d.ts.map +0 -1
- package/src/shade/renderer/rasterize/native/oit/shader_oit_resolve_moments_ibl.js +0 -111
- package/src/shade/renderer/shader/chunk/brdf/fresnel/chunk_F_Hauber.d.ts +0 -9
- package/src/shade/renderer/shader/chunk/brdf/fresnel/chunk_F_Hauber.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/brdf/fresnel/chunk_F_Hauber.js +0 -22
- package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_brick4.d.ts +0 -10
- package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_brick4.d.ts.map +0 -1
- package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_brick4.js +0 -55
- package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_ibl.d.ts +0 -10
- package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_ibl.d.ts.map +0 -1
- package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_ibl.js +0 -47
- package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_lpv.d.ts +0 -10
- package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_lpv.d.ts.map +0 -1
- package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_lpv.js +0 -63
|
@@ -20,12 +20,14 @@ import { m4_invert } from "../../core/geom/3d/mat4/m4_invert.js";
|
|
|
20
20
|
import { generate_record_writer } from "../../shade/renderer/buffer/table/serde/generate_record_writer.js";
|
|
21
21
|
import { WATER_WAVE_IMPULSE_LIMIT, WATER_WAVE_RECORD_STRUCT } from "../../shade/renderer/water/surface/WATER_WAVE_RECORD_STRUCT.js";
|
|
22
22
|
import { WATER_SPECTRUM_BAND_COUNT } from "../../shade/renderer/water/surface/spectrum/WATER_SPECTRUM.js";
|
|
23
|
+
import { GPUFluidComponent } from "../physics/fluid/ecs/GPUFluidComponent.js";
|
|
24
|
+
import { GPUFluidSystem } from "./GPUFluidSystem.js";
|
|
23
25
|
|
|
24
26
|
// Only the authored fields: a whole-record write would undo what the GPU derives into the row.
|
|
25
|
-
const AUTHORED_WRITER = generate_record_writer(WATER_WAVE_RECORD_STRUCT, ['
|
|
27
|
+
const AUTHORED_WRITER = generate_record_writer(WATER_WAVE_RECORD_STRUCT, ['upwind_fetch', 'shore_reflection', 'node', 'geometry', 'simulate_hidden']);
|
|
26
28
|
const IMPULSE_WRITER = generate_record_writer(WATER_WAVE_RECORD_STRUCT, ['impulses', 'impulse_count']);
|
|
27
29
|
/** The WaterWaves fields a body's row follows. */
|
|
28
|
-
const WAVE_FIELDS = ['
|
|
30
|
+
const WAVE_FIELDS = ['upwindFetch', 'shoreReflection'];
|
|
29
31
|
/** A splash's world-to-local matrix: rain can splash hundreds of times a second. */
|
|
30
32
|
const SPLASH_INVERSE = new Float64Array(16);
|
|
31
33
|
|
|
@@ -34,14 +36,22 @@ const SPLASH_INVERSE = new Float64Array(16);
|
|
|
34
36
|
* edits queue writes; idle frames never walk bodies. Transform rows follow the same change events
|
|
35
37
|
* and GPU hierarchy as shaded geometry. Water does not enter the opaque mesh table or its TLAS.
|
|
36
38
|
*
|
|
37
|
-
* Every body has a surface row (WATER_SURFACE_SIMULATION_PLAN_2026_10_06.md §6.1): its
|
|
39
|
+
* Every body has a surface row (WATER_SURFACE_SIMULATION_PLAN_2026_10_06.md §6.1): its fetch and shore from an
|
|
38
40
|
* optional {@link WaterWaves}, its queued splashes, and what the GPU derives from them each frame. The GPU culls
|
|
39
41
|
* every body against the frame's view before simulating; a hidden body is paused unless
|
|
40
42
|
* {@link Water#simulateWhenHidden} (WATER_SURFACE_DISTANCE_LOD_PROPOSAL_2026_10_06.md §3).
|
|
43
|
+
*
|
|
44
|
+
* **The wind is the scene's** (GPU_FLUID_CASCADES_PROPOSAL_2026_10_16.md §6, the Water row): the culling pass
|
|
45
|
+
* samples the published wind field 10 m above each body's origin and low-passes it per body, on the GPU. What the
|
|
46
|
+
* system decides on the CPU is only whether that field can hold wind at all ({@link GPUWaterSurface#windy}, which
|
|
47
|
+
* animates the shared bands): while any enabled {@link GPUFluidComponent} steps a fluid, or the far field
|
|
48
|
+
* ({@link GPUFluidSystem#far_field}) is not still. Asked every update, allocating nothing.
|
|
41
49
|
*/
|
|
42
50
|
export class WaterSystem extends System {
|
|
43
51
|
dependencies = [Water, MeshletGeometry, Transform64];
|
|
44
|
-
components_used = [ResourceAccessSpecification.from(WaterWaves, ResourceAccessKind.Read)
|
|
52
|
+
components_used = [ResourceAccessSpecification.from(WaterWaves, ResourceAccessKind.Read),
|
|
53
|
+
// whether the scene's wind field has a fluid behind it
|
|
54
|
+
ResourceAccessSpecification.from(GPUFluidComponent, ResourceAccessKind.Read)];
|
|
45
55
|
#graphics;
|
|
46
56
|
#scene;
|
|
47
57
|
#context = null;
|
|
@@ -51,8 +61,15 @@ export class WaterSystem extends System {
|
|
|
51
61
|
#entries = new Map();
|
|
52
62
|
#dirty = new Set();
|
|
53
63
|
#impulses = new Set();
|
|
54
|
-
|
|
55
|
-
#
|
|
64
|
+
/** @type {GPUFluidSystem|null} the far field's source, once found */
|
|
65
|
+
#fluid = null;
|
|
66
|
+
#far = new Float64Array(3);
|
|
67
|
+
/** Whether {@link #visit_domain} met an enabled component. */
|
|
68
|
+
#enabled_found = false;
|
|
69
|
+
#visit_domain = component => {
|
|
70
|
+
if (component.enabled) { this.#enabled_found = true; return false; }
|
|
71
|
+
return true;
|
|
72
|
+
};
|
|
56
73
|
#extensions = [];
|
|
57
74
|
#time = 0;
|
|
58
75
|
get settings() { return this.#renderer.settings; }
|
|
@@ -143,13 +160,13 @@ export class WaterSystem extends System {
|
|
|
143
160
|
entry.context.rows.release(entity);
|
|
144
161
|
}
|
|
145
162
|
this.#entries.delete(entity); this.#dirty.delete(entry); this.#impulses.delete(entry);
|
|
146
|
-
this.#windy.delete(entry); this.#waves.windy = this.#windy.size > 0;
|
|
147
163
|
this.#renderer.body_count--;
|
|
148
164
|
if (entry.context !== null) { this.#renderer.meshlet_capacity -= entry.geometry.meshlets.count; }
|
|
149
165
|
}
|
|
150
166
|
|
|
151
167
|
update(dt) {
|
|
152
168
|
this.#time += dt; this.#renderer.time = this.#time; this.#waves.advance(dt);
|
|
169
|
+
this.#waves.windy = this.#wind_can_blow();
|
|
153
170
|
const context = this.#graphics.scene_context(this.#scene);
|
|
154
171
|
if (context === null) { return; }
|
|
155
172
|
if (context !== this.#context) {
|
|
@@ -170,6 +187,31 @@ export class WaterSystem extends System {
|
|
|
170
187
|
for (const entry of this.#impulses) { this.#stage(entry, context); }
|
|
171
188
|
}
|
|
172
189
|
|
|
190
|
+
/**
|
|
191
|
+
* Whether the scene's wind field can hold wind: an enabled {@link GPUFluidComponent} on any entity, or a far
|
|
192
|
+
* field that is not still. The lowest holder of the component answers without a walk; only when it is disabled
|
|
193
|
+
* are the others visited.
|
|
194
|
+
* @returns {boolean}
|
|
195
|
+
*/
|
|
196
|
+
#wind_can_blow() {
|
|
197
|
+
const em = this.entityManager, dataset = em.dataset;
|
|
198
|
+
if (dataset !== null) {
|
|
199
|
+
const lowest = dataset.getAnyComponentInstance(GPUFluidComponent);
|
|
200
|
+
if (lowest !== null) {
|
|
201
|
+
if (lowest.enabled) { return true; }
|
|
202
|
+
this.#enabled_found = false;
|
|
203
|
+
dataset.traverseComponents(GPUFluidComponent, this.#visit_domain);
|
|
204
|
+
if (this.#enabled_found) { return true; }
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
// registered later than this system, or never
|
|
208
|
+
const fluid = this.#fluid ??= em.getSystem(GPUFluidSystem);
|
|
209
|
+
if (fluid === null) { return false; }
|
|
210
|
+
const far = this.#far;
|
|
211
|
+
fluid.far_field(far);
|
|
212
|
+
return far[0] !== 0 || far[1] !== 0 || far[2] !== 0;
|
|
213
|
+
}
|
|
214
|
+
|
|
173
215
|
/** Top up a body's batch on its surface row from its queue, up to the row's limit. */
|
|
174
216
|
#stage(entry, context) {
|
|
175
217
|
const staged = entry.staged, queue = entry.queue;
|
|
@@ -197,21 +239,17 @@ export class WaterSystem extends System {
|
|
|
197
239
|
}
|
|
198
240
|
const geometry = context.geometries.getAddress(entry.geometry);
|
|
199
241
|
if (entry.wave === -1) {
|
|
200
|
-
|
|
242
|
+
// the GPU seeds the wind from its first sample, and derives the weights for it
|
|
243
|
+
entry.wave = waves.add({ upwind_fetch: 0, shore_reflection: WATER_WAVES_SHORE_REFLECTION_DEFAULT,
|
|
201
244
|
impulses: Array.from({ length: WATER_WAVE_IMPULSE_LIMIT }, () => [0, 0, 0, 0]), impulse_count: 0,
|
|
202
|
-
node: entry.entity + 1, geometry, simulate_hidden: 0, derived_for: [-1, -1],
|
|
245
|
+
node: entry.entity + 1, geometry, simulate_hidden: 0, wind: [0, 0, 0], wind_seeded: 0, derived_for: [-1, -1, 0, 0],
|
|
203
246
|
weights: new Array(WATER_SPECTRUM_BAND_COUNT).fill(0), slope_variance: 0,
|
|
204
247
|
wind_from: [0, 0], wind_to: [0, 0], wind_blend: 1, displacement_bounds: [0, 0, 0, 0], particle_levels: 0 });
|
|
205
248
|
}
|
|
206
249
|
const waves_component = entry.waves;
|
|
207
|
-
const speed = Math.max(0, waves_component?.windSpeed.getValue() ?? 0);
|
|
208
|
-
const direction = waves_component?.windDirection.getValue() ?? 0;
|
|
209
250
|
const reflection = Math.min(1, Math.max(0, waves_component?.shoreReflection.getValue() ?? WATER_WAVES_SHORE_REFLECTION_DEFAULT));
|
|
210
|
-
waves.set_fields(entry.wave, {
|
|
211
|
-
upwind_fetch: Math.max(0, waves_component?.upwindFetch.getValue() ?? 0), node: entry.entity + 1, geometry,
|
|
251
|
+
waves.set_fields(entry.wave, { upwind_fetch: Math.max(0, waves_component?.upwindFetch.getValue() ?? 0), shore_reflection: reflection, node: entry.entity + 1, geometry,
|
|
212
252
|
simulate_hidden: entry.water.simulateWhenHidden.getValue() ? 1 : 0 }, AUTHORED_WRITER);
|
|
213
|
-
if (speed > 0) { this.#windy.add(entry); } else { this.#windy.delete(entry); }
|
|
214
|
-
this.#waves.windy = this.#windy.size > 0;
|
|
215
253
|
const water = entry.water;
|
|
216
254
|
const record = { geometry, node: entry.entity + 1,
|
|
217
255
|
dirty: 1,
|
|
@@ -5263,3 +5263,42 @@ as above, red on one radius per cloth. `check-types` 18 against 19. The A/B is `
|
|
|
5263
5263
|
with `ab_scenes.mjs` in the session scratchpad, the control `ribbon_determinism.probe.js` and
|
|
5264
5264
|
`ribbon_diff.probe.js`, and the slow spec's old arm an alias of `cloth_self_radius.js` that flattens
|
|
5265
5265
|
(`vitest.slow_flat.config.mjs`).
|
|
5266
|
+
|
|
5267
|
+
---
|
|
5268
|
+
|
|
5269
|
+
## 69. The gust on the scene's clock, and the parity gate restated
|
|
5270
|
+
|
|
5271
|
+
The GPU wind fluid's S5 (`../fluid/GPU_FLUID_CASCADES_PROPOSAL_2026_10_16.md` §12, G2, F4) took cloth's
|
|
5272
|
+
air off cloth's own ambient and onto the scene's one wind. `ClothAmbientWind` is retired: its gust,
|
|
5273
|
+
term for term, is `GlobalFluidEffector#gust`, integrated once a tick by `FluidEffectorsSystem`, and
|
|
5274
|
+
cloth reads it through the far field — `ClothGPUFluidWind` (lattices of the GPU wind, read back
|
|
5275
|
+
through `GPUFluidSystem#request`; the far field before one lands and wherever none reaches) or
|
|
5276
|
+
`ClothFluidWind` (the CPU fields, the far field outside them). §57's clock, each cloth's own age, is
|
|
5277
|
+
no longer read by any engine source.
|
|
5278
|
+
|
|
5279
|
+
**What that costs the parity gate, measured.** The gust is now a function of the scene's tick, and
|
|
5280
|
+
the worker advances a cloth from the tick its registration is acknowledged (§39). Each row is a scene
|
|
5281
|
+
of `WorkerClothSystem.spec.js` with one line changed, the gate reading the whole `ClothState` buffer
|
|
5282
|
+
after every step:
|
|
5283
|
+
|
|
5284
|
+
```
|
|
5285
|
+
scene wind first difference
|
|
5286
|
+
second cloth spawned after the first, under latency steady (gust 0) none in 60 steps
|
|
5287
|
+
(registered 3 ticks later by the worker) gust 3 m/s, period 0.7 s the second cloth's step 1, byte 0 (216 against 247)
|
|
5288
|
+
one cloth, both registered on the same tick gust 3 m/s, period 0.7 s none in 180 steps (far field moving on > 100 of them)
|
|
5289
|
+
the reference spawned a tick before the worker's gust 3 m/s, period 0.7 s step 1, byte 0 (246 against 86)
|
|
5290
|
+
§10's field scene, a garment walked out of a volume steady far field none in 200 steps
|
|
5291
|
+
far field gusting 1.5 m/s step 1, byte 0 (27 against 30)
|
|
5292
|
+
```
|
|
5293
|
+
|
|
5294
|
+
So **the gate is restated**: worker and inline cloth agree for cloths **registered on the same tick**,
|
|
5295
|
+
under any deterministic wind, and for any registration **under a time-invariant wind**. The specs hold
|
|
5296
|
+
it to those cases, through the GPU wind with no device (lattices answered from the far field) and
|
|
5297
|
+
through lattices a spec injects (`ClothGPUFluidWind.spec.js`, `ecs/cloth_wind.spec.js`). Under the
|
|
5298
|
+
GPU wind on a device, lattices land when the GPU answers, so two runs of a scene need not read the
|
|
5299
|
+
same air: **run-to-run repeatability under the GPU wind is given up** (F4, accepted). Every other cloth
|
|
5300
|
+
gate is unchanged: the parity scenes without wind, §7's table, the pathology spec.
|
|
5301
|
+
|
|
5302
|
+
*Reproduce:* the probe that edits one line of the spec and prints the first difference is
|
|
5303
|
+
`s5_probe_gust.mjs` in the GPU-fluid session's scratchpad.
|
|
5304
|
+
|
|
@@ -340,8 +340,8 @@ engine/physics/cloth/
|
|
|
340
340
|
cloth_collider_sdf.js pose interpolation, localisation, and the field dispatch
|
|
341
341
|
wind/
|
|
342
342
|
AbstractClothWind.js §10's one interface: sample the air, and say whether it varies
|
|
343
|
-
|
|
344
|
-
ClothFluidWind.js every live FluidComponent, with the
|
|
343
|
+
ClothGPUFluidWind.js the GPU wind: lattices read back from GPUFluidSystem, the far field elsewhere
|
|
344
|
+
ClothFluidWind.js every live FluidComponent, with the scene's far field underneath it
|
|
345
345
|
cloth_sample_air.js the air into the cloth's own frame, on the main thread
|
|
346
346
|
solver/
|
|
347
347
|
ClothState.js SoA particle + topology + constraint storage over one buffer
|
|
@@ -1365,6 +1365,16 @@ Fallback when there is no fluid field in range: a `GlobalFluidEffector`-shaped a
|
|
|
1365
1365
|
constant `wind` vector plus a small band-limited noise for gusting — read from the same interface, so
|
|
1366
1366
|
the cloth code has one path and does not branch on whether a simulation is present.
|
|
1367
1367
|
|
|
1368
|
+
*Corrected by the GPU wind fluid's S5 (`../fluid/GPU_FLUID_CASCADES_PROPOSAL_2026_10_16.md` §12, G2):*
|
|
1369
|
+
the fallback is no longer cloth's own. It is the scene's **far field** — its `GlobalFluidEffector`s,
|
|
1370
|
+
gust included, folded by `FluidEffectorsSystem` once a tick — which is what the shape above was
|
|
1371
|
+
always copying. `ClothAmbientWind` is retired; `ClothGPUFluidWind` reads the GPU wind and
|
|
1372
|
+
`ClothFluidWind` the CPU fields, each with the far field underneath. `MEASUREMENTS.md` §69.
|
|
1373
|
+
And cloth reads it **by default**: with nothing assigned, `ClothWorld#wind` is a `ClothGPUFluidWind`
|
|
1374
|
+
while the scene has an enabled `GPUFluidComponent`, else a `ClothFluidWind` while the far field is not
|
|
1375
|
+
zero, else `null` as before — decided again every tick from those facts, so a scene without wind gains
|
|
1376
|
+
no drag. An assigned source, `null` included, always wins.
|
|
1377
|
+
|
|
1368
1378
|
Cost control: sampling is per particle per *step*, not per iteration, and a cloth outside every fluid
|
|
1369
1379
|
field's bounds skips it entirely. Sleep (P5) wakes on a wind change so a settled banner does not stay
|
|
1370
1380
|
asleep through a gust.
|
|
@@ -1748,6 +1758,15 @@ walk it. The visible consequence is that two garments spawned a second apart are
|
|
|
1748
1758
|
the gust rather than in phase with it; for a bounded sum of sinusoids that is indistinguishable from
|
|
1749
1759
|
weather, which is why this is free. `MEASUREMENTS.md` §57.
|
|
1750
1760
|
|
|
1761
|
+
**G2 (the GPU wind fluid's S5): the clock is the scene's, and the gate is restated.** The gust moved
|
|
1762
|
+
onto `GlobalFluidEffector` and runs on the scene's tick, so every consumer of the wind reads one
|
|
1763
|
+
weather — and a cloth steps in the weather of the tick it is advanced on. The worker advances a cloth
|
|
1764
|
+
from the tick its registration is acknowledged, so the gate now reads: **worker and inline agree for
|
|
1765
|
+
cloths registered on the same tick, and for any registration under a time-invariant wind.** Measured:
|
|
1766
|
+
the staggered spawn under a 3 m/s gust differs at the second cloth's step 1, byte 0; registered on
|
|
1767
|
+
the same tick, none in 180 steps. Under the GPU wind on a device, lattices land when the GPU answers,
|
|
1768
|
+
so run-to-run repeatability is given up too (F4). `MEASUREMENTS.md` §69.
|
|
1769
|
+
|
|
1751
1770
|
**And post-M6 found the other one, which is not a clock: the two systems ran a tick's phases in
|
|
1752
1771
|
different orders.** `ClothSystem` ran advance, step and finish per cloth, in hierarchy-depth order, so
|
|
1753
1772
|
a **nested** cloth advanced against an anchor the cloth above it had already written *this* step;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClothColliderKind.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/physics/cloth/collider/ClothColliderKind.js"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ClothColliderKind.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/physics/cloth/collider/ClothColliderKind.js"],"names":[],"mappings":";;;gCAsBU,MAAM"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { ShapeRecordKind } from "../../../../core/geom/3d/shape/record/ShapeRecordKind.js";
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* The shapes cloth collides against.
|
|
3
5
|
*
|
|
@@ -9,8 +11,13 @@
|
|
|
9
11
|
* answer is to add primitive `ClothCollider` children, which is what an author
|
|
10
12
|
* would do for a character anyway.
|
|
11
13
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
+
* A collider's kind and parameters are a core shape record
|
|
15
|
+
* (`core/geom/3d/shape/record/`), so the values are core's
|
|
16
|
+
* {@link ShapeRecordKind} and this is the subset of it cloth takes. Core also
|
|
17
|
+
* packs a rigid `TransformedShape3D` (with a pose offset), a `UnionShape3D`
|
|
18
|
+
* (as a run of records) and a `ConvexHullShape3D` (as planes in a table of
|
|
19
|
+
* their own); cloth refuses all three, as it always has, until it has somewhere
|
|
20
|
+
* to keep what each brings beyond a kind and four parameters.
|
|
14
21
|
*
|
|
15
22
|
* @readonly
|
|
16
23
|
* @enum {number}
|
|
@@ -20,19 +27,19 @@
|
|
|
20
27
|
*/
|
|
21
28
|
export const ClothColliderKind = {
|
|
22
29
|
/** Radius in `CCR_PARAM_0`. */
|
|
23
|
-
Sphere:
|
|
30
|
+
Sphere: ShapeRecordKind.Sphere,
|
|
24
31
|
|
|
25
32
|
/** Radius in `CCR_PARAM_0`, segment length in `CCR_PARAM_1`, about local Y. */
|
|
26
|
-
Capsule:
|
|
33
|
+
Capsule: ShapeRecordKind.Capsule,
|
|
27
34
|
|
|
28
35
|
/** Half-extents in `CCR_PARAM_0..2`. */
|
|
29
|
-
Box:
|
|
36
|
+
Box: ShapeRecordKind.Box,
|
|
30
37
|
|
|
31
38
|
/** Radius in `CCR_PARAM_0`, height in `CCR_PARAM_1`, about local Y. */
|
|
32
|
-
Cylinder:
|
|
39
|
+
Cylinder: ShapeRecordKind.Cylinder,
|
|
33
40
|
|
|
34
41
|
/** Outward unit normal in `CCR_PARAM_0..2`, offset in `CCR_PARAM_3`. */
|
|
35
|
-
Plane:
|
|
42
|
+
Plane: ShapeRecordKind.Plane
|
|
36
43
|
};
|
|
37
44
|
|
|
38
45
|
Object.freeze(ClothColliderKind);
|
|
@@ -18,6 +18,13 @@
|
|
|
18
18
|
* One layout, so the conversion between them is a loop over slots rather than
|
|
19
19
|
* two structures that have to be kept in agreement.
|
|
20
20
|
*
|
|
21
|
+
* ## The shape is a core shape record
|
|
22
|
+
*
|
|
23
|
+
* The kind and its four parameters are `core/geom/3d/shape/record/`'s layout,
|
|
24
|
+
* held at {@link CCR_SHAPE}, and core packs, bounds and evaluates them. What
|
|
25
|
+
* follows them — the feature size, friction, inflation, the poses and the
|
|
26
|
+
* bounds — is cloth's.
|
|
27
|
+
*
|
|
21
28
|
* ## The pose is a translation and a quaternion, not a matrix
|
|
22
29
|
*
|
|
23
30
|
* §8.2 says swept collision comes from "interpolating the collider's pose
|
|
@@ -37,16 +44,21 @@
|
|
|
37
44
|
* @author Alex Goldring
|
|
38
45
|
* @copyright Company Named Limited (c) 2026
|
|
39
46
|
*/
|
|
47
|
+
/**
|
|
48
|
+
* Where the core shape record starts: its kind, then its four parameters. The
|
|
49
|
+
* offset core's pack, bounds and field take.
|
|
50
|
+
*/
|
|
51
|
+
export const CCR_SHAPE: 0;
|
|
40
52
|
/** Shape kind — a {@link ClothColliderKind}. */
|
|
41
|
-
export const CCR_KIND:
|
|
53
|
+
export const CCR_KIND: number;
|
|
42
54
|
/** Shape parameter 0: radius, or half-extent x, or plane normal x. */
|
|
43
|
-
export const CCR_PARAM_0:
|
|
55
|
+
export const CCR_PARAM_0: number;
|
|
44
56
|
/** Shape parameter 1: height, or half-extent y, or plane normal y. */
|
|
45
|
-
export const CCR_PARAM_1:
|
|
57
|
+
export const CCR_PARAM_1: number;
|
|
46
58
|
/** Shape parameter 2: half-extent z, or plane normal z. */
|
|
47
|
-
export const CCR_PARAM_2:
|
|
59
|
+
export const CCR_PARAM_2: number;
|
|
48
60
|
/** Shape parameter 3: the plane's offset. Unused by every other kind. */
|
|
49
|
-
export const CCR_PARAM_3:
|
|
61
|
+
export const CCR_PARAM_3: number;
|
|
50
62
|
/**
|
|
51
63
|
* The shape's smallest curvature radius, metres — `Infinity` for a plane.
|
|
52
64
|
*
|
|
@@ -56,6 +68,8 @@ export const CCR_PARAM_3: 4;
|
|
|
56
68
|
* description of a surface over the surface's own curvature radius and a poor
|
|
57
69
|
* one beyond it, so this is that distance, measured from the shape rather than
|
|
58
70
|
* tuned.
|
|
71
|
+
*
|
|
72
|
+
* The first of cloth's own slots, past the shape record's `SHAPE_RECORD_STRIDE`.
|
|
59
73
|
*/
|
|
60
74
|
export const CCR_FEATURE: 5;
|
|
61
75
|
/** Combined Coulomb friction coefficient for this collider against cloth. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClothColliderRecord.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/physics/cloth/collider/ClothColliderRecord.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ClothColliderRecord.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/physics/cloth/collider/ClothColliderRecord.js"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH;;;GAGG;AACH,0BAA2B;AAE3B,gDAAgD;AAChD,8BAAsD;AAEtD,sEAAsE;AACtE,iCAA4D;AAE5D,sEAAsE;AACtE,iCAA4D;AAE5D,2DAA2D;AAC3D,iCAA4D;AAE5D,yEAAyE;AACzE,iCAA4D;AAE5D;;;;;;;;;;;GAWG;AACH,4BAA6B;AAE7B,6EAA6E;AAC7E,6BAA8B;AAE9B,sEAAsE;AACtE,8BAA+B;AAE/B,iCAAiC;AACjC,uBAAwB;AACxB,uBAAwB;AACxB,wBAAyB;AAEzB,2CAA2C;AAC3C,wBAAyB;AACzB,wBAAyB;AACzB,wBAAyB;AACzB,wBAAyB;AAEzB,yCAAyC;AACzC,6BAA8B;AAC9B,6BAA8B;AAC9B,6BAA8B;AAE9B,mDAAmD;AACnD,6BAA8B;AAC9B,6BAA8B;AAC9B,6BAA8B;AAC9B,6BAA8B;AAE9B;;;;GAIG;AACH,gCAAiC;AACjC,gCAAiC;AACjC,gCAAiC;AACjC,gCAAiC;AACjC,gCAAiC;AACjC,gCAAiC;AAEjC;;;;GAIG;AACH,+BAAgC;AAChC,+BAAgC;AAChC,+BAAgC;AAEhC,+EAA+E;AAC/E,+BAAgC;AAChC,+BAAgC;AAChC,+BAAgC;AAChC,+BAAgC;AAEhC,4BAA4B;AAC5B,4BAA6B;AAE7B;;;;;GAKG;AACH,+BAAgC;AAChC,8BAA+B;AAC/B,gCAAiC;AAEjC,qCAAqC;AACrC,gCAAiC"}
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
import {
|
|
2
|
+
SHAPE_RECORD_KIND,
|
|
3
|
+
SHAPE_RECORD_PARAM_0,
|
|
4
|
+
SHAPE_RECORD_PARAM_1,
|
|
5
|
+
SHAPE_RECORD_PARAM_2,
|
|
6
|
+
SHAPE_RECORD_PARAM_3
|
|
7
|
+
} from "../../../../core/geom/3d/shape/record/ShapeRecord.js";
|
|
8
|
+
|
|
1
9
|
/**
|
|
2
10
|
* # One packed collider — the layout, and nothing else
|
|
3
11
|
*
|
|
@@ -18,6 +26,13 @@
|
|
|
18
26
|
* One layout, so the conversion between them is a loop over slots rather than
|
|
19
27
|
* two structures that have to be kept in agreement.
|
|
20
28
|
*
|
|
29
|
+
* ## The shape is a core shape record
|
|
30
|
+
*
|
|
31
|
+
* The kind and its four parameters are `core/geom/3d/shape/record/`'s layout,
|
|
32
|
+
* held at {@link CCR_SHAPE}, and core packs, bounds and evaluates them. What
|
|
33
|
+
* follows them — the feature size, friction, inflation, the poses and the
|
|
34
|
+
* bounds — is cloth's.
|
|
35
|
+
*
|
|
21
36
|
* ## The pose is a translation and a quaternion, not a matrix
|
|
22
37
|
*
|
|
23
38
|
* §8.2 says swept collision comes from "interpolating the collider's pose
|
|
@@ -38,20 +53,26 @@
|
|
|
38
53
|
* @copyright Company Named Limited (c) 2026
|
|
39
54
|
*/
|
|
40
55
|
|
|
56
|
+
/**
|
|
57
|
+
* Where the core shape record starts: its kind, then its four parameters. The
|
|
58
|
+
* offset core's pack, bounds and field take.
|
|
59
|
+
*/
|
|
60
|
+
export const CCR_SHAPE = 0;
|
|
61
|
+
|
|
41
62
|
/** Shape kind — a {@link ClothColliderKind}. */
|
|
42
|
-
export const CCR_KIND =
|
|
63
|
+
export const CCR_KIND = CCR_SHAPE + SHAPE_RECORD_KIND;
|
|
43
64
|
|
|
44
65
|
/** Shape parameter 0: radius, or half-extent x, or plane normal x. */
|
|
45
|
-
export const CCR_PARAM_0 =
|
|
66
|
+
export const CCR_PARAM_0 = CCR_SHAPE + SHAPE_RECORD_PARAM_0;
|
|
46
67
|
|
|
47
68
|
/** Shape parameter 1: height, or half-extent y, or plane normal y. */
|
|
48
|
-
export const CCR_PARAM_1 =
|
|
69
|
+
export const CCR_PARAM_1 = CCR_SHAPE + SHAPE_RECORD_PARAM_1;
|
|
49
70
|
|
|
50
71
|
/** Shape parameter 2: half-extent z, or plane normal z. */
|
|
51
|
-
export const CCR_PARAM_2 =
|
|
72
|
+
export const CCR_PARAM_2 = CCR_SHAPE + SHAPE_RECORD_PARAM_2;
|
|
52
73
|
|
|
53
74
|
/** Shape parameter 3: the plane's offset. Unused by every other kind. */
|
|
54
|
-
export const CCR_PARAM_3 =
|
|
75
|
+
export const CCR_PARAM_3 = CCR_SHAPE + SHAPE_RECORD_PARAM_3;
|
|
55
76
|
|
|
56
77
|
/**
|
|
57
78
|
* The shape's smallest curvature radius, metres — `Infinity` for a plane.
|
|
@@ -62,6 +83,8 @@ export const CCR_PARAM_3 = 4;
|
|
|
62
83
|
* description of a surface over the surface's own curvature radius and a poor
|
|
63
84
|
* one beyond it, so this is that distance, measured from the shape rather than
|
|
64
85
|
* tuned.
|
|
86
|
+
*
|
|
87
|
+
* The first of cloth's own slots, past the shape record's `SHAPE_RECORD_STRIDE`.
|
|
65
88
|
*/
|
|
66
89
|
export const CCR_FEATURE = 5;
|
|
67
90
|
|
|
@@ -5,8 +5,9 @@
|
|
|
5
5
|
* It runs when a `ClothCollider` is linked or its shape changes, never per step
|
|
6
6
|
* and never per particle.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
8
|
+
* The kind and parameters are a core shape record, written by core's analytic
|
|
9
|
+
* pack, which asks each kind by its prototype marker as the physics
|
|
10
|
+
* narrowphase does. What cloth adds is the feature size.
|
|
10
11
|
*
|
|
11
12
|
* @author Alex Goldring
|
|
12
13
|
* @copyright Company Named Limited (c) 2026
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloth_collider_pack.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/physics/cloth/collider/cloth_collider_pack.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cloth_collider_pack.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/physics/cloth/collider/cloth_collider_pack.js"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;GAaG;AAEH;;;;;;;;;GASG;AACH,2CAPW,YAAY,GAAC,YAAY,UACzB,MAAM,kCAEN,MAAM,GACJ,OAAO,CAoCnB;AAED;;;;;;;;;;;;;;GAcG;AACH,iDANW,YAAY,GAAC,MAAM,EAAE,SACrB,YAAY,GAAC,YAAY,UACzB,MAAM,UACN,MAAM,GACJ,OAAO,CAInB"}
|
|
@@ -1,12 +1,7 @@
|
|
|
1
|
+
import { shape_record_local_bounds } from "../../../../core/geom/3d/shape/record/shape_record_local_bounds.js";
|
|
2
|
+
import { shape_record_pack_analytic } from "../../../../core/geom/3d/shape/record/shape_record_pack.js";
|
|
1
3
|
import { ClothColliderKind } from "./ClothColliderKind.js";
|
|
2
|
-
import {
|
|
3
|
-
CCR_FEATURE,
|
|
4
|
-
CCR_KIND,
|
|
5
|
-
CCR_PARAM_0,
|
|
6
|
-
CCR_PARAM_1,
|
|
7
|
-
CCR_PARAM_2,
|
|
8
|
-
CCR_PARAM_3
|
|
9
|
-
} from "./ClothColliderRecord.js";
|
|
4
|
+
import { CCR_FEATURE, CCR_KIND, CCR_PARAM_0, CCR_PARAM_1, CCR_PARAM_2, CCR_SHAPE } from "./ClothColliderRecord.js";
|
|
10
5
|
|
|
11
6
|
/**
|
|
12
7
|
* # `AbstractShape3D` → a packed record's geometry
|
|
@@ -15,8 +10,9 @@ import {
|
|
|
15
10
|
* It runs when a `ClothCollider` is linked or its shape changes, never per step
|
|
16
11
|
* and never per particle.
|
|
17
12
|
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
13
|
+
* The kind and parameters are a core shape record, written by core's analytic
|
|
14
|
+
* pack, which asks each kind by its prototype marker as the physics
|
|
15
|
+
* narrowphase does. What cloth adds is the feature size.
|
|
20
16
|
*
|
|
21
17
|
* @author Alex Goldring
|
|
22
18
|
* @copyright Company Named Limited (c) 2026
|
|
@@ -35,81 +31,36 @@ import {
|
|
|
35
31
|
export function cloth_collider_pack(table, record, shape, stride) {
|
|
36
32
|
const r = record * stride;
|
|
37
33
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
table[r + CCR_KIND] = ClothColliderKind.Sphere;
|
|
43
|
-
table[r + CCR_PARAM_0] = radius;
|
|
44
|
-
table[r + CCR_PARAM_1] = 0;
|
|
45
|
-
table[r + CCR_PARAM_2] = 0;
|
|
46
|
-
table[r + CCR_PARAM_3] = 0;
|
|
47
|
-
table[r + CCR_FEATURE] = radius;
|
|
48
|
-
|
|
49
|
-
return true;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
if (shape.isCapsuleShape3D === true) {
|
|
53
|
-
const radius = shape.radius;
|
|
54
|
-
|
|
55
|
-
table[r + CCR_KIND] = ClothColliderKind.Capsule;
|
|
56
|
-
table[r + CCR_PARAM_0] = radius;
|
|
57
|
-
table[r + CCR_PARAM_1] = shape.height;
|
|
58
|
-
table[r + CCR_PARAM_2] = 0;
|
|
59
|
-
table[r + CCR_PARAM_3] = 0;
|
|
60
|
-
|
|
61
|
-
// A capsule's tightest curvature is its cap, which is its own radius.
|
|
62
|
-
table[r + CCR_FEATURE] = radius;
|
|
63
|
-
|
|
64
|
-
return true;
|
|
34
|
+
// Core's analytic kinds and nothing else; see ClothColliderKind for the
|
|
35
|
+
// ones core packs and cloth does not take.
|
|
36
|
+
if (!shape_record_pack_analytic(table, r + CCR_SHAPE, shape)) {
|
|
37
|
+
return false;
|
|
65
38
|
}
|
|
66
39
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
table[r + CCR_PARAM_0] = h.x;
|
|
73
|
-
table[r + CCR_PARAM_1] = h.y;
|
|
74
|
-
table[r + CCR_PARAM_2] = h.z;
|
|
75
|
-
table[r + CCR_PARAM_3] = 0;
|
|
40
|
+
// The feature size is read back from the parameters just written. In a
|
|
41
|
+
// Float32 table that is the same number as from the shape: rounding is
|
|
42
|
+
// monotonic, so the smallest rounded half-extent is the rounded smallest,
|
|
43
|
+
// and halving a float is exact.
|
|
44
|
+
const kind = table[r + CCR_KIND];
|
|
76
45
|
|
|
46
|
+
if (kind === ClothColliderKind.Sphere || kind === ClothColliderKind.Capsule) {
|
|
47
|
+
// A sphere's curvature radius is its radius; a capsule's tightest
|
|
48
|
+
// curvature is its cap, which is its own radius.
|
|
49
|
+
table[r + CCR_FEATURE] = table[r + CCR_PARAM_0];
|
|
50
|
+
} else if (kind === ClothColliderKind.Box) {
|
|
77
51
|
// A box has no curvature; its edges are creases, and the distance over
|
|
78
52
|
// which "the nearest face's normal" describes the surface is how far
|
|
79
53
|
// the nearest face extends — its smallest half-extent, conservatively.
|
|
80
|
-
table[r + CCR_FEATURE] = Math.min(
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
if (shape.isCylinderShape3D === true) {
|
|
86
|
-
const radius = shape.radius;
|
|
87
|
-
|
|
88
|
-
table[r + CCR_KIND] = ClothColliderKind.Cylinder;
|
|
89
|
-
table[r + CCR_PARAM_0] = radius;
|
|
90
|
-
table[r + CCR_PARAM_1] = shape.height;
|
|
91
|
-
table[r + CCR_PARAM_2] = 0;
|
|
92
|
-
table[r + CCR_PARAM_3] = 0;
|
|
93
|
-
table[r + CCR_FEATURE] = Math.min(radius, shape.height * 0.5);
|
|
94
|
-
|
|
95
|
-
return true;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
if (shape.isPlaneShape3D === true) {
|
|
99
|
-
table[r + CCR_KIND] = ClothColliderKind.Plane;
|
|
100
|
-
table[r + CCR_PARAM_0] = shape.normal_x;
|
|
101
|
-
table[r + CCR_PARAM_1] = shape.normal_y;
|
|
102
|
-
table[r + CCR_PARAM_2] = shape.normal_z;
|
|
103
|
-
table[r + CCR_PARAM_3] = shape.offset;
|
|
104
|
-
|
|
54
|
+
table[r + CCR_FEATURE] = Math.min(table[r + CCR_PARAM_0], Math.min(table[r + CCR_PARAM_1], table[r + CCR_PARAM_2]));
|
|
55
|
+
} else if (kind === ClothColliderKind.Cylinder) {
|
|
56
|
+
table[r + CCR_FEATURE] = Math.min(table[r + CCR_PARAM_0], table[r + CCR_PARAM_1] * 0.5);
|
|
57
|
+
} else {
|
|
105
58
|
// A plane is flat everywhere, so its normal describes it at any
|
|
106
59
|
// distance and it never narrows a trust region.
|
|
107
60
|
table[r + CCR_FEATURE] = Infinity;
|
|
108
|
-
|
|
109
|
-
return true;
|
|
110
61
|
}
|
|
111
62
|
|
|
112
|
-
return
|
|
63
|
+
return true;
|
|
113
64
|
}
|
|
114
65
|
|
|
115
66
|
/**
|
|
@@ -128,38 +79,5 @@ export function cloth_collider_pack(table, record, shape, stride) {
|
|
|
128
79
|
* @returns {boolean} `false` for an unbounded kind, in which case `out` is untouched
|
|
129
80
|
*/
|
|
130
81
|
export function cloth_collider_local_bounds(out, table, record, stride) {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
const kind = table[r + CCR_KIND];
|
|
134
|
-
|
|
135
|
-
let hx;
|
|
136
|
-
let hy;
|
|
137
|
-
let hz;
|
|
138
|
-
|
|
139
|
-
if (kind === ClothColliderKind.Sphere) {
|
|
140
|
-
hx = hy = hz = table[r + CCR_PARAM_0];
|
|
141
|
-
} else if (kind === ClothColliderKind.Capsule) {
|
|
142
|
-
const radius = table[r + CCR_PARAM_0];
|
|
143
|
-
|
|
144
|
-
hx = hz = radius;
|
|
145
|
-
hy = radius + table[r + CCR_PARAM_1] * 0.5;
|
|
146
|
-
} else if (kind === ClothColliderKind.Box) {
|
|
147
|
-
hx = table[r + CCR_PARAM_0];
|
|
148
|
-
hy = table[r + CCR_PARAM_1];
|
|
149
|
-
hz = table[r + CCR_PARAM_2];
|
|
150
|
-
} else if (kind === ClothColliderKind.Cylinder) {
|
|
151
|
-
hx = hz = table[r + CCR_PARAM_0];
|
|
152
|
-
hy = table[r + CCR_PARAM_1] * 0.5;
|
|
153
|
-
} else {
|
|
154
|
-
return false;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
out[0] = -hx;
|
|
158
|
-
out[1] = -hy;
|
|
159
|
-
out[2] = -hz;
|
|
160
|
-
out[3] = hx;
|
|
161
|
-
out[4] = hy;
|
|
162
|
-
out[5] = hz;
|
|
163
|
-
|
|
164
|
-
return true;
|
|
82
|
+
return shape_record_local_bounds(out, table, record * stride + CCR_SHAPE);
|
|
165
83
|
}
|
|
@@ -12,11 +12,12 @@
|
|
|
12
12
|
* costs less than storing an inverse and is exact rather than cached.
|
|
13
13
|
*
|
|
14
14
|
* The fields themselves live in `core/geom/3d/shape/sdf/` as free functions,
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* (§14.1). Before
|
|
18
|
-
*
|
|
19
|
-
* normalise, for shapes whose gradients are two
|
|
15
|
+
* and the dispatch over a record's kind in `core/geom/3d/shape/record/`, so
|
|
16
|
+
* this, through their array forms, and {@link SphereShape3D} and the rest,
|
|
17
|
+
* through their scalar forms, are calling one implementation (§14.1). Before
|
|
18
|
+
* M2 those shapes fell back to `compute_signed_distance_gradient_by_sampling`
|
|
19
|
+
* — four field evaluations and a normalise, for shapes whose gradients are two
|
|
20
|
+
* lines of algebra.
|
|
20
21
|
*
|
|
21
22
|
* @author Alex Goldring
|
|
22
23
|
* @copyright Company Named Limited (c) 2026
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloth_collider_sdf.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/physics/cloth/collider/cloth_collider_sdf.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cloth_collider_sdf.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/physics/cloth/collider/cloth_collider_sdf.js"],"names":[],"mappings":"AAsBA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,8CALW,YAAY,GAAC,YAAY,SACzB,MAAM,KACN,MAAM,GACJ,IAAI,CAmBhB;AAED;;;;;;;;;;;;;;GAcG;AACH,yDATW,YAAY,GAAC,YAAY,GAAC,MAAM,EAAE,mBAClC,MAAM,SACN,YAAY,GAAC,YAAY,UACzB,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,GACJ,MAAM,CAclB;AAED;;;;;;;;;;;;;;GAcG;AACH,0DATW,YAAY,GAAC,YAAY,GAAC,MAAM,EAAE,cAElC,MAAM,SACN,YAAY,GAAC,YAAY,UACzB,MAAM,SACN,YAAY,GAAC,YAAY,GAAC,MAAM,EAAE,gBAClC,MAAM,GACJ,IAAI,CAoBhB;AAED;;;;;;;;;;;;;;;GAeG;AACH,+CATW,YAAY,GAAC,YAAY,GAAC,MAAM,EAAE,cAClC,MAAM,SACN,YAAY,GAAC,YAAY,UACzB,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,GACJ,IAAI,CAQhB;AAED;;;;;;;;;;;GAWG;AACH,qDARW,YAAY,GAAC,YAAY,GAAC,MAAM,EAAE,cAClC,MAAM,SACN,YAAY,GAAC,YAAY,UACzB,MAAM,SACN,YAAY,GAAC,YAAY,GAAC,MAAM,EAAE,gBAClC,MAAM,GACJ,IAAI,CAMhB;AAED;;;;;;;;;;;;;GAaG;AACH,6CATW,YAAY,GAAC,YAAY,GAAC,MAAM,EAAE,cAClC,MAAM,SACN,YAAY,GAAC,YAAY,UACzB,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,GACJ,IAAI,CAQhB;AAED;;;;;;;;;;;GAWG;AACH,mDARW,YAAY,GAAC,YAAY,GAAC,MAAM,EAAE,cAClC,MAAM,SACN,YAAY,GAAC,YAAY,UACzB,MAAM,SACN,YAAY,GAAC,YAAY,GAAC,MAAM,EAAE,gBAClC,MAAM,GACJ,IAAI,CAMhB"}
|