@woosh/meep-engine 3.68.0 → 3.70.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/CHANGELOG.md +74 -0
- package/build/bundle-worker-terrain.js +1 -1
- package/editor/ecs/component/editors/ecs/Trail3DEditor.d.ts +2 -17
- package/editor/ecs/component/editors/ecs/Trail3DEditor.d.ts.map +1 -1
- package/editor/ecs/component/editors/ecs/Trail3DEditor.js +3 -18
- package/package.json +1 -1
- package/src/core/bvh8/build/BVH8Converter.d.ts +16 -0
- package/src/core/bvh8/build/BVH8Converter.d.ts.map +1 -1
- package/src/core/bvh8/build/BVH8Converter.js +64 -37
- package/src/core/bvh8/build/bvh8_assign_slots_greedy.d.ts +25 -0
- package/src/core/bvh8/build/bvh8_assign_slots_greedy.d.ts.map +1 -0
- package/src/core/bvh8/build/bvh8_assign_slots_greedy.js +68 -0
- package/src/core/bvh8/build/bvh8_from_proxy.d.ts.map +1 -1
- package/src/core/bvh8/build/bvh8_from_proxy.js +2 -33
- package/src/core/bvh8/build/bvh8_node_fit_slots.d.ts +22 -0
- package/src/core/bvh8/build/bvh8_node_fit_slots.d.ts.map +1 -0
- package/src/core/bvh8/build/bvh8_node_fit_slots.js +115 -0
- package/src/core/bvh8/bvh8_depth.d.ts +8 -0
- package/src/core/bvh8/bvh8_depth.d.ts.map +1 -0
- package/src/core/bvh8/bvh8_depth.js +39 -0
- package/src/core/math/complex/complex_fft_radix2.d.ts +19 -0
- package/src/core/math/complex/complex_fft_radix2.d.ts.map +1 -0
- package/src/core/math/complex/complex_fft_radix2.js +71 -0
- package/src/engine/graphics/ecs/trail3d/Trail3D.d.ts +33 -65
- package/src/engine/graphics/ecs/trail3d/Trail3D.d.ts.map +1 -1
- package/src/engine/graphics/ecs/trail3d/Trail3D.js +37 -245
- package/src/engine/graphics/ecs/trail3d/Trail3DFlags.d.ts +0 -4
- package/src/engine/graphics/ecs/trail3d/Trail3DFlags.js +4 -10
- package/src/engine/graphics/ecs/trail3d/seed_trail_stroke.d.ts +13 -10
- package/src/engine/graphics/ecs/trail3d/seed_trail_stroke.d.ts.map +1 -1
- package/src/engine/graphics/ecs/trail3d/seed_trail_stroke.js +28 -37
- package/src/engine/graphics/ecs/trail3d/trail_knot_count.d.ts +10 -0
- package/src/engine/graphics/ecs/trail3d/trail_knot_count.d.ts.map +1 -0
- package/src/engine/graphics/ecs/trail3d/trail_knot_count.js +27 -0
- package/src/engine/graphics/trail/TrailKnots.d.ts +62 -0
- package/src/engine/graphics/trail/TrailKnots.d.ts.map +1 -0
- package/src/engine/graphics/trail/TrailKnots.js +137 -0
- package/src/engine/graphics/trail/tube/TubeXMaterialSpec.d.ts +1 -1
- package/src/engine/graphics/trail/tube/TubeXMaterialSpec.js +1 -1
- package/src/engine/graphics3/EntityRowHold.d.ts +48 -0
- package/src/engine/graphics3/EntityRowHold.d.ts.map +1 -0
- package/src/engine/graphics3/EntityRowHold.js +128 -0
- package/src/engine/graphics3/GPUFluidSystem.d.ts +17 -4
- package/src/engine/graphics3/GPUFluidSystem.d.ts.map +1 -1
- package/src/engine/graphics3/GPUFluidSystem.js +113 -16
- package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts +6 -2
- package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts.map +1 -1
- package/src/engine/graphics3/GPUParticleEmitterSystem.js +11 -44
- package/src/engine/graphics3/Trail3DSystem.d.ts +69 -35
- package/src/engine/graphics3/Trail3DSystem.d.ts.map +1 -1
- package/src/engine/graphics3/Trail3DSystem.js +380 -81
- package/src/engine/physics/cloth/playground/wind_main.js +7 -6
- package/src/engine/physics/cloth/wind/AbstractClothWind.d.ts +2 -2
- package/src/engine/physics/cloth/wind/AbstractClothWind.js +2 -2
- package/src/engine/physics/cloth/wind/ClothFluidWind.d.ts +3 -3
- package/src/engine/physics/cloth/wind/ClothFluidWind.d.ts.map +1 -1
- package/src/engine/physics/cloth/wind/ClothFluidWind.js +7 -9
- package/src/engine/physics/cloth/wind/ClothGPUFluidWind.d.ts +10 -10
- package/src/engine/physics/cloth/wind/ClothGPUFluidWind.d.ts.map +1 -1
- package/src/engine/physics/cloth/wind/ClothGPUFluidWind.js +14 -22
- package/src/engine/physics/fluid/FluidAtmosphere.d.ts +16 -2
- package/src/engine/physics/fluid/FluidAtmosphere.d.ts.map +1 -1
- package/src/engine/physics/fluid/FluidAtmosphere.js +17 -3
- package/src/engine/physics/fluid/ecs/FluidEffectorsComponentSerializationAdapter.d.ts +1 -2
- package/src/engine/physics/fluid/ecs/FluidEffectorsComponentSerializationAdapter.d.ts.map +1 -1
- package/src/engine/physics/fluid/ecs/FluidEffectorsComponentSerializationAdapter.js +1 -2
- package/src/engine/physics/fluid/ecs/FluidEffectorsSystem.d.ts +8 -5
- package/src/engine/physics/fluid/ecs/FluidEffectorsSystem.d.ts.map +1 -1
- package/src/engine/physics/fluid/ecs/FluidEffectorsSystem.js +60 -17
- package/src/engine/physics/fluid/ecs/FluidObstacle.d.ts +17 -0
- package/src/engine/physics/fluid/ecs/FluidObstacle.d.ts.map +1 -1
- package/src/engine/physics/fluid/ecs/FluidObstacle.js +22 -2
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +6 -5
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts.map +1 -1
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.js +14 -3
- package/src/engine/physics/fluid/effector/AbstractFluidEffector.d.ts +1 -1
- package/src/engine/physics/fluid/effector/AbstractFluidEffector.js +1 -1
- package/src/engine/physics/fluid/effector/GlobalFluidEffector.d.ts +33 -47
- package/src/engine/physics/fluid/effector/GlobalFluidEffector.d.ts.map +1 -1
- package/src/engine/physics/fluid/effector/GlobalFluidEffector.js +38 -176
- package/src/engine/physics/fluid/effector/GlobalFluidEffectorSerializationAdapter.d.ts +8 -11
- package/src/engine/physics/fluid/effector/GlobalFluidEffectorSerializationAdapter.d.ts.map +1 -1
- package/src/engine/physics/fluid/effector/GlobalFluidEffectorSerializationAdapter.js +13 -24
- package/src/engine/physics/fluid/effector/GlobalFluidEffectorSerializationUpgrader_0_1.d.ts +16 -0
- package/src/engine/physics/fluid/effector/GlobalFluidEffectorSerializationUpgrader_0_1.d.ts.map +1 -0
- package/src/engine/physics/fluid/effector/GlobalFluidEffectorSerializationUpgrader_0_1.js +35 -0
- package/src/engine/physics/fluid/fluid_apply_atmosphere.d.ts +1 -1
- package/src/engine/physics/fluid/fluid_apply_atmosphere.js +1 -1
- package/src/engine/physics/fluid/obstacle/FLUID_OBSTACLE_RECORD_STRUCT.d.ts +9 -1
- package/src/engine/physics/fluid/obstacle/FLUID_OBSTACLE_RECORD_STRUCT.d.ts.map +1 -1
- package/src/engine/physics/fluid/obstacle/FLUID_OBSTACLE_RECORD_STRUCT.js +11 -1
- package/src/engine/physics/fluid/obstacle/fluid_obstacle_record_create.d.ts +5 -0
- package/src/engine/physics/fluid/obstacle/fluid_obstacle_record_create.d.ts.map +1 -1
- package/src/engine/physics/fluid/obstacle/fluid_obstacle_record_create.js +2 -0
- package/src/engine/physics/fluid/obstacle/fluid_obstacle_write_gpu_record.d.ts +4 -3
- package/src/engine/physics/fluid/obstacle/fluid_obstacle_write_gpu_record.d.ts.map +1 -1
- package/src/engine/physics/fluid/obstacle/fluid_obstacle_write_gpu_record.js +11 -3
- package/src/engine/physics/fluid/turbulence/FLUID_TURBULENCE_TILE.d.ts +28 -0
- package/src/engine/physics/fluid/turbulence/FLUID_TURBULENCE_TILE.d.ts.map +1 -0
- package/src/engine/physics/fluid/turbulence/FLUID_TURBULENCE_TILE.js +29 -0
- package/src/engine/physics/fluid/turbulence/fluid_atmosphere_velocity_at.d.ts +16 -0
- package/src/engine/physics/fluid/turbulence/fluid_atmosphere_velocity_at.d.ts.map +1 -0
- package/src/engine/physics/fluid/turbulence/fluid_atmosphere_velocity_at.js +49 -0
- package/src/engine/physics/fluid/turbulence/fluid_turbulence_inverse_tile_size.d.ts +11 -0
- package/src/engine/physics/fluid/turbulence/fluid_turbulence_inverse_tile_size.d.ts.map +1 -0
- package/src/engine/physics/fluid/turbulence/fluid_turbulence_inverse_tile_size.js +18 -0
- package/src/engine/physics/fluid/turbulence/fluid_turbulence_tile_data.d.ts +25 -0
- package/src/engine/physics/fluid/turbulence/fluid_turbulence_tile_data.d.ts.map +1 -0
- package/src/engine/physics/fluid/turbulence/fluid_turbulence_tile_data.js +65 -0
- package/src/engine/physics/fluid/turbulence/fluid_turbulence_tile_generate.d.ts +56 -0
- package/src/engine/physics/fluid/turbulence/fluid_turbulence_tile_generate.d.ts.map +1 -0
- package/src/engine/physics/fluid/turbulence/fluid_turbulence_tile_generate.js +313 -0
- package/src/engine/physics/fluid/turbulence/fluid_turbulence_tile_sample.d.ts +16 -0
- package/src/engine/physics/fluid/turbulence/fluid_turbulence_tile_sample.d.ts.map +1 -0
- package/src/engine/physics/fluid/turbulence/fluid_turbulence_tile_sample.js +69 -0
- package/src/generation/foliage/mesh/branch_ring_triangulate.d.ts +1 -1
- package/src/generation/foliage/mesh/branch_ring_triangulate.js +1 -1
- package/src/shade/playground/bvh_repro/README.md +8 -6
- package/src/shade/playground/bvh_repro/index.html +125 -124
- package/src/shade/playground/bvh_repro/main.js +259 -254
- package/src/shade/playground/foliage_wind/foliage_world.d.ts.map +1 -1
- package/src/shade/playground/foliage_wind/foliage_world.js +7 -4
- package/src/shade/playground/grass_surfaces/main.js +3 -2
- package/src/shade/playground/particle_ecs/bonfire_wind.d.ts +23 -13
- package/src/shade/playground/particle_ecs/bonfire_wind.d.ts.map +1 -1
- package/src/shade/playground/particle_ecs/bonfire_wind.js +30 -33
- package/src/shade/playground/skinned_blas_refit/README.md +26 -14
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_leaf_triangles.d.ts +14 -9
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_leaf_triangles.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_leaf_triangles.js +126 -127
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_points.js +95 -95
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_visibility.d.ts +9 -1
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_visibility.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_visibility.js +146 -135
- package/src/shade/playground/skinned_blas_refit/verify_clone_leaves.d.ts +6 -6
- package/src/shade/playground/skinned_blas_refit/verify_clone_leaves.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/verify_clone_leaves.js +148 -134
- package/src/shade/playground/skinned_blas_refit/verify_leaf_triangles.d.ts +11 -8
- package/src/shade/playground/skinned_blas_refit/verify_leaf_triangles.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/verify_leaf_triangles.js +342 -202
- package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.d.ts +12 -13
- 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 +136 -116
- package/src/shade/playground/skinned_blas_refit/verify_traversal_reachability.d.ts +4 -4
- package/src/shade/playground/skinned_blas_refit/verify_traversal_reachability.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/verify_traversal_reachability.js +255 -249
- package/src/shade/playground/trails/index.html +50 -0
- package/src/shade/playground/trails/main.d.ts +2 -0
- package/src/shade/playground/trails/main.d.ts.map +1 -0
- package/src/shade/playground/trails/main.js +258 -0
- package/src/shade/playground/water_surface/main.js +6 -3
- package/src/shade/renderer/animation/GPUAnimationManager.js +2 -2
- package/src/shade/renderer/animation/animation_curve_write_keys.d.ts +18 -0
- package/src/shade/renderer/animation/animation_curve_write_keys.d.ts.map +1 -0
- package/src/shade/renderer/animation/animation_curve_write_keys.js +34 -0
- package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.d.ts.map +1 -1
- package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.js +7 -8
- package/src/shade/renderer/deferred/tonemap/ColorGrade.d.ts.map +1 -1
- package/src/shade/renderer/deferred/tonemap/ColorGrade.js +13 -36
- package/src/shade/renderer/dynamic/GPUDynamicMeshResidency.js +2 -2
- package/src/shade/renderer/dynamic/chunk_dynamic_mesh_avboit_vertex.d.ts +2 -13
- package/src/shade/renderer/dynamic/chunk_dynamic_mesh_avboit_vertex.d.ts.map +1 -1
- package/src/shade/renderer/dynamic/chunk_dynamic_mesh_avboit_vertex.js +6 -21
- package/src/shade/renderer/dynamic/graph_dynamic_mesh_avboit.d.ts +17 -6
- package/src/shade/renderer/dynamic/graph_dynamic_mesh_avboit.d.ts.map +1 -1
- package/src/shade/renderer/dynamic/graph_dynamic_mesh_avboit.js +38 -178
- package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_draw.d.ts +7 -9
- package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_draw.d.ts.map +1 -1
- package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_draw.js +17 -106
- package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_splat.d.ts +7 -17
- package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_splat.d.ts.map +1 -1
- package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_splat.js +18 -118
- package/src/shade/renderer/fluid/FLUID_FAR_FIELD_STRUCT.d.ts +111 -0
- package/src/shade/renderer/fluid/FLUID_FAR_FIELD_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/fluid/FLUID_FAR_FIELD_STRUCT.js +162 -0
- package/src/shade/renderer/fluid/GPUFluidCascade.d.ts +37 -8
- package/src/shade/renderer/fluid/GPUFluidCascade.d.ts.map +1 -1
- package/src/shade/renderer/fluid/GPUFluidCascade.js +149 -47
- package/src/shade/renderer/fluid/GPUFluidCascadeStack.d.ts +10 -3
- package/src/shade/renderer/fluid/GPUFluidCascadeStack.d.ts.map +1 -1
- package/src/shade/renderer/fluid/GPUFluidCascadeStack.js +69 -10
- package/src/shade/renderer/fluid/chunk_fluid_far_field.d.ts +19 -0
- package/src/shade/renderer/fluid/chunk_fluid_far_field.d.ts.map +1 -0
- package/src/shade/renderer/fluid/chunk_fluid_far_field.js +43 -0
- package/src/shade/renderer/fluid/coupling/FLUID_CASCADE_PARENT_STRUCT.d.ts +10 -9
- package/src/shade/renderer/fluid/coupling/FLUID_CASCADE_PARENT_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/fluid/coupling/FLUID_CASCADE_PARENT_STRUCT.js +14 -12
- package/src/shade/renderer/fluid/coupling/FLUID_CASCADE_RESTRICT_STRUCT.d.ts +3 -2
- package/src/shade/renderer/fluid/coupling/FLUID_CASCADE_RESTRICT_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/fluid/coupling/FLUID_CASCADE_RESTRICT_STRUCT.js +7 -5
- package/src/shade/renderer/fluid/coupling/chunk_fluid_cascade_epilogue.d.ts +17 -9
- package/src/shade/renderer/fluid/coupling/chunk_fluid_cascade_epilogue.d.ts.map +1 -1
- package/src/shade/renderer/fluid/coupling/chunk_fluid_cascade_epilogue.js +58 -18
- package/src/shade/renderer/fluid/coupling/chunk_fluid_cascade_parent.d.ts +23 -11
- package/src/shade/renderer/fluid/coupling/chunk_fluid_cascade_parent.d.ts.map +1 -1
- package/src/shade/renderer/fluid/coupling/chunk_fluid_cascade_parent.js +371 -335
- package/src/shade/renderer/fluid/coupling/shader_fluid_cascade_fill.d.ts.map +1 -1
- package/src/shade/renderer/fluid/coupling/shader_fluid_cascade_fill.js +2 -1
- package/src/shade/renderer/fluid/coupling/shader_fluid_cascade_ghosts.d.ts.map +1 -1
- package/src/shade/renderer/fluid/coupling/shader_fluid_cascade_ghosts.js +109 -108
- package/src/shade/renderer/fluid/coupling/shader_fluid_cascade_restrict.d.ts +5 -3
- package/src/shade/renderer/fluid/coupling/shader_fluid_cascade_restrict.d.ts.map +1 -1
- package/src/shade/renderer/fluid/coupling/shader_fluid_cascade_restrict.js +24 -12
- package/src/shade/renderer/fluid/forcing/FLUID_FORCING.d.ts +14 -0
- package/src/shade/renderer/fluid/forcing/FLUID_FORCING.d.ts.map +1 -1
- package/src/shade/renderer/fluid/forcing/FLUID_FORCING.js +18 -0
- package/src/shade/renderer/fluid/forcing/FLUID_FORCING_APPLY_STRUCT.d.ts +3 -1
- package/src/shade/renderer/fluid/forcing/FLUID_FORCING_APPLY_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/fluid/forcing/FLUID_FORCING_APPLY_STRUCT.js +4 -1
- package/src/shade/renderer/fluid/forcing/GPUFluidForcing.d.ts +9 -0
- package/src/shade/renderer/fluid/forcing/GPUFluidForcing.d.ts.map +1 -1
- package/src/shade/renderer/fluid/forcing/GPUFluidForcing.js +20 -4
- package/src/shade/renderer/fluid/forcing/chunk_fluid_forcing_cell.d.ts +11 -2
- package/src/shade/renderer/fluid/forcing/chunk_fluid_forcing_cell.d.ts.map +1 -1
- package/src/shade/renderer/fluid/forcing/chunk_fluid_forcing_cell.js +59 -2
- package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_apply.d.ts +4 -1
- package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_apply.d.ts.map +1 -1
- package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_apply.js +367 -341
- package/src/shade/renderer/fluid/mac/FLUID_MAC_STEP_STRUCT.d.ts +6 -2
- package/src/shade/renderer/fluid/mac/FLUID_MAC_STEP_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/fluid/mac/FLUID_MAC_STEP_STRUCT.js +10 -5
- package/src/shade/renderer/fluid/mac/FluidMacPasses.d.ts +20 -21
- package/src/shade/renderer/fluid/mac/FluidMacPasses.d.ts.map +1 -1
- package/src/shade/renderer/fluid/mac/FluidMacPasses.js +453 -427
- package/src/shade/renderer/fluid/mac/shader_fluid_mac_advect_correct.d.ts +6 -2
- package/src/shade/renderer/fluid/mac/shader_fluid_mac_advect_correct.d.ts.map +1 -1
- package/src/shade/renderer/fluid/mac/shader_fluid_mac_advect_correct.js +340 -282
- package/src/shade/renderer/fluid/publish/FluidWindPublish.d.ts +13 -5
- package/src/shade/renderer/fluid/publish/FluidWindPublish.d.ts.map +1 -1
- package/src/shade/renderer/fluid/publish/FluidWindPublish.js +20 -10
- package/src/shade/renderer/fluid/publish/chunk_fluid_wind_publish_cell.d.ts +2 -2
- package/src/shade/renderer/fluid/publish/chunk_fluid_wind_publish_cell.js +2 -2
- package/src/shade/renderer/fluid/publish/shader_fluid_wind_publish.d.ts +5 -3
- package/src/shade/renderer/fluid/publish/shader_fluid_wind_publish.d.ts.map +1 -1
- package/src/shade/renderer/fluid/publish/shader_fluid_wind_publish.js +147 -142
- package/src/shade/renderer/fluid/query/GPUFluidQueries.js +2 -2
- package/src/shade/renderer/geometry/GPUGeometryManager.d.ts.map +1 -1
- package/src/shade/renderer/geometry/GPUGeometryManager.js +5 -7
- package/src/shade/renderer/geometry/MeshletGeometry.d.ts +4 -1
- package/src/shade/renderer/geometry/MeshletGeometry.d.ts.map +1 -1
- package/src/shade/renderer/geometry/MeshletGeometry.js +4 -1
- package/src/shade/renderer/geometry/MeshletGeometrySerializationAdapter.d.ts +20 -0
- package/src/shade/renderer/geometry/MeshletGeometrySerializationAdapter.d.ts.map +1 -1
- package/src/shade/renderer/geometry/MeshletGeometrySerializationAdapter.js +35 -3
- package/src/shade/renderer/geometry/blas_from_meshlets.d.ts +9 -3
- package/src/shade/renderer/geometry/blas_from_meshlets.d.ts.map +1 -1
- package/src/shade/renderer/geometry/blas_from_meshlets.js +16 -30
- package/src/shade/renderer/geometry/bvh/BLAS8_REFIT_TARGET_STRUCT.d.ts +14 -0
- package/src/shade/renderer/geometry/bvh/BLAS8_REFIT_TARGET_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/geometry/bvh/BLAS8_REFIT_TARGET_STRUCT.js +33 -0
- package/src/shade/renderer/geometry/bvh/GPUBLASRefitBatch.d.ts +18 -21
- package/src/shade/renderer/geometry/bvh/GPUBLASRefitBatch.d.ts.map +1 -1
- package/src/shade/renderer/geometry/bvh/GPUBLASRefitBatch.js +78 -158
- package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.d.ts +18 -39
- package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.d.ts.map +1 -1
- package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.js +39 -398
- package/src/shade/renderer/geometry/bvh/GPUGeometryMeshletsBVH.d.ts +6 -7
- package/src/shade/renderer/geometry/bvh/GPUGeometryMeshletsBVH.d.ts.map +1 -1
- package/src/shade/renderer/geometry/bvh/GPUGeometryMeshletsBVH.js +5 -7
- package/src/shade/renderer/geometry/bvh/bvh8_build_for_meshlets.d.ts +36 -0
- package/src/shade/renderer/geometry/bvh/bvh8_build_for_meshlets.d.ts.map +1 -0
- package/src/shade/renderer/geometry/bvh/bvh8_build_for_meshlets.js +179 -0
- package/src/shade/renderer/geometry/bvh/meshlet_batch_to_clustered_bvh.d.ts +30 -0
- package/src/shade/renderer/geometry/bvh/meshlet_batch_to_clustered_bvh.d.ts.map +1 -0
- package/src/shade/renderer/geometry/bvh/meshlet_batch_to_clustered_bvh.js +207 -0
- package/src/shade/renderer/geometry/bvh/shader_blas8_refit_batch.d.ts +52 -0
- package/src/shade/renderer/geometry/bvh/shader_blas8_refit_batch.d.ts.map +1 -0
- package/src/shade/renderer/geometry/bvh/shader_blas8_refit_batch.js +464 -0
- package/src/shade/renderer/geometry/meshlet/MeshletBatch.d.ts +12 -0
- package/src/shade/renderer/geometry/meshlet/MeshletBatch.d.ts.map +1 -1
- package/src/shade/renderer/geometry/meshlet/MeshletBatch.js +37 -0
- package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_classify.d.ts.map +1 -1
- package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_classify.js +4 -4
- package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_evaluate.d.ts.map +1 -1
- package/src/shade/renderer/geometry/sdf/bake/shader_mesh_sdf_evaluate.js +2 -2
- package/src/shade/renderer/geometry/sdf/chunk_blas_query_band_sdf.d.ts.map +1 -1
- package/src/shade/renderer/geometry/sdf/chunk_blas_query_band_sdf.js +2 -2
- package/src/shade/renderer/geometry/sdf/shader_sdf_visualize.d.ts.map +1 -1
- package/src/shade/renderer/geometry/sdf/shader_sdf_visualize.js +4 -4
- package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_trace.d.ts.map +1 -1
- package/src/shade/renderer/geometry/sdf/surface/shader_mesh_surface_trace.js +2 -2
- package/src/shade/renderer/geometry/sr_create_group_RTX.d.ts.map +1 -1
- package/src/shade/renderer/geometry/sr_create_group_RTX.js +4 -4
- 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 +1 -0
- package/src/shade/renderer/global_illumination/lpv/bake/GPULightProbeVolumeRenderer.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/lpv/bake/GPULightProbeVolumeRenderer.js +1 -0
- package/src/shade/renderer/global_illumination/lpv/placement/graph_generate_probe_locations.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/lpv/placement/graph_generate_probe_locations.js +372 -376
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/MESH_BRICK.d.ts +9 -10
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/MESH_BRICK.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/MESH_BRICK.js +10 -11
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/chunk_mesh_brick_walk.d.ts +2 -2
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/chunk_mesh_brick_walk.js +2 -2
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/shader_mesh_brick_gather.d.ts +12 -8
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/shader_mesh_brick_gather.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/brick/mesh/shader_mesh_brick_gather.js +109 -60
- package/src/shade/renderer/global_illumination/probe_clipmap/debug/graph_probe_clipmap_debug_mesh_sdf.js +2 -2
- package/src/shade/renderer/global_illumination/probe_clipmap/debug/graph_probe_clipmap_debug_mesh_surfaces.js +2 -2
- package/src/shade/renderer/gpu_primitive/bvh/BVH_BUFFER_LAYOUT.d.ts +2 -2
- package/src/shade/renderer/gpu_primitive/bvh/BVH_BUFFER_LAYOUT.js +70 -70
- package/src/shade/renderer/gpu_primitive/bvh/BVH_BUILD_SETTINGS_STRUCT.d.ts +6 -7
- package/src/shade/renderer/gpu_primitive/bvh/BVH_BUILD_SETTINGS_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/bvh/BVH_BUILD_SETTINGS_STRUCT.js +6 -7
- package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_build_lbvh.d.ts +3 -3
- package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_build_lbvh.js +3 -3
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_build_single_workgroup.js +1 -1
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_emit_hierarchy.d.ts +2 -2
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_emit_hierarchy.js +3 -3
- package/src/shade/renderer/gpu_primitive/bvh8/BVH8_TREE_BUFFER_LAYOUT.d.ts +69 -0
- package/src/shade/renderer/gpu_primitive/bvh8/BVH8_TREE_BUFFER_LAYOUT.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh8/BVH8_TREE_BUFFER_LAYOUT.js +89 -0
- package/src/shade/renderer/gpu_primitive/bvh8/bvh8_encode_from_bvh2.d.ts +41 -0
- package/src/shade/renderer/gpu_primitive/bvh8/bvh8_encode_from_bvh2.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh8/bvh8_encode_from_bvh2.js +348 -0
- package/src/shade/renderer/gpu_primitive/bvh8/check_bvh8_tree.d.ts +34 -0
- package/src/shade/renderer/gpu_primitive/bvh8/check_bvh8_tree.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh8/check_bvh8_tree.js +291 -0
- package/src/shade/renderer/gpu_primitive/bvh8/chunk_bvh8_encode_assign.d.ts +31 -0
- package/src/shade/renderer/gpu_primitive/bvh8/chunk_bvh8_encode_assign.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh8/chunk_bvh8_encode_assign.js +175 -0
- package/src/shade/renderer/gpu_primitive/bvh8/chunk_bvh8_encode_depth.d.ts +27 -0
- package/src/shade/renderer/gpu_primitive/bvh8/chunk_bvh8_encode_depth.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh8/chunk_bvh8_encode_depth.js +48 -0
- package/src/shade/renderer/gpu_primitive/bvh8/chunk_bvh8_encode_gather.d.ts +26 -0
- package/src/shade/renderer/gpu_primitive/bvh8/chunk_bvh8_encode_gather.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh8/chunk_bvh8_encode_gather.js +118 -0
- package/src/shade/renderer/gpu_primitive/bvh8/chunk_bvh8_encode_node.d.ts +22 -0
- package/src/shade/renderer/gpu_primitive/bvh8/chunk_bvh8_encode_node.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh8/chunk_bvh8_encode_node.js +143 -0
- package/src/shade/renderer/gpu_primitive/bvh8/chunk_bvh8_encode_sums.d.ts +36 -0
- package/src/shade/renderer/gpu_primitive/bvh8/chunk_bvh8_encode_sums.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh8/chunk_bvh8_encode_sums.js +97 -0
- package/src/shade/renderer/gpu_primitive/bvh8/graph_bvh8_encode_from_bvh2.d.ts +49 -0
- package/src/shade/renderer/gpu_primitive/bvh8/graph_bvh8_encode_from_bvh2.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh8/graph_bvh8_encode_from_bvh2.js +265 -0
- package/src/shade/renderer/gpu_primitive/bvh8/shader_bvh8_encode_assign.d.ts +37 -0
- package/src/shade/renderer/gpu_primitive/bvh8/shader_bvh8_encode_assign.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh8/shader_bvh8_encode_assign.js +109 -0
- package/src/shade/renderer/gpu_primitive/bvh8/shader_bvh8_encode_count.d.ts +15 -0
- package/src/shade/renderer/gpu_primitive/bvh8/shader_bvh8_encode_count.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh8/shader_bvh8_encode_count.js +85 -0
- package/src/shade/renderer/gpu_primitive/bvh8/shader_bvh8_encode_count_single_workgroup.d.ts +26 -0
- package/src/shade/renderer/gpu_primitive/bvh8/shader_bvh8_encode_count_single_workgroup.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh8/shader_bvh8_encode_count_single_workgroup.js +200 -0
- package/src/shade/renderer/gpu_primitive/bvh8/shader_bvh8_encode_parents.d.ts +19 -0
- package/src/shade/renderer/gpu_primitive/bvh8/shader_bvh8_encode_parents.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh8/shader_bvh8_encode_parents.js +81 -0
- package/src/shade/renderer/gpu_primitive/bvh8/shader_bvh8_encode_write.d.ts +14 -0
- package/src/shade/renderer/gpu_primitive/bvh8/shader_bvh8_encode_write.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh8/shader_bvh8_encode_write.js +101 -0
- package/src/shade/renderer/gpu_primitive/bvh8/verify_gpu_bvh8_encode.d.ts +19 -0
- package/src/shade/renderer/gpu_primitive/bvh8/verify_gpu_bvh8_encode.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh8/verify_gpu_bvh8_encode.js +361 -0
- package/src/shade/renderer/grass/press/shader_grass_press_mark.d.ts +3 -2
- package/src/shade/renderer/grass/press/shader_grass_press_mark.d.ts.map +1 -1
- package/src/shade/renderer/grass/press/shader_grass_press_mark.js +5 -3
- package/src/shade/renderer/grass/surface/shader_grass_surface_bake.d.ts.map +1 -1
- package/src/shade/renderer/grass/surface/shader_grass_surface_bake.js +5 -6
- package/src/shade/renderer/lightmap/GPULightMap.d.ts.map +1 -1
- package/src/shade/renderer/lightmap/GPULightMap.js +1 -0
- package/src/shade/renderer/path_tracer/accumulating/AccumulatingPathTracer.d.ts.map +1 -1
- package/src/shade/renderer/path_tracer/accumulating/AccumulatingPathTracer.js +1 -0
- 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 +1 -0
- package/src/shade/renderer/rasterize/native/avboit/avboit_unlit_draw.d.ts +49 -0
- package/src/shade/renderer/rasterize/native/avboit/avboit_unlit_draw.d.ts.map +1 -0
- package/src/shade/renderer/rasterize/native/avboit/avboit_unlit_draw.js +144 -0
- package/src/shade/renderer/rasterize/native/avboit/avboit_unlit_splat.d.ts +71 -0
- package/src/shade/renderer/rasterize/native/avboit/avboit_unlit_splat.d.ts.map +1 -0
- package/src/shade/renderer/rasterize/native/avboit/avboit_unlit_splat.js +152 -0
- package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_unlit_varyings.d.ts +21 -0
- package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_unlit_varyings.d.ts.map +1 -0
- package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_unlit_varyings.js +30 -0
- package/src/shade/renderer/rasterize/native/avboit/graph_avboit_unlit.d.ts +101 -0
- package/src/shade/renderer/rasterize/native/avboit/graph_avboit_unlit.d.ts.map +1 -0
- package/src/shade/renderer/rasterize/native/avboit/graph_avboit_unlit.js +306 -0
- package/src/shade/renderer/rasterize/native/avboit/shader_avboit_splat.d.ts +9 -0
- package/src/shade/renderer/rasterize/native/avboit/shader_avboit_splat.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/avboit/shader_avboit_splat.js +11 -4
- package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.d.ts +8 -4
- package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.d.ts.map +1 -1
- package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.js +60 -33
- package/src/shade/renderer/scene/verify_gpu_tlas_build.d.ts +6 -6
- package/src/shade/renderer/scene/verify_gpu_tlas_build.d.ts.map +1 -1
- package/src/shade/renderer/scene/verify_gpu_tlas_build.js +23 -53
- package/src/shade/renderer/shader/chunk/bvh/bvh8/webgpu/BVH8_INODE_STRUCT.d.ts +3 -1
- package/src/shade/renderer/shader/chunk/bvh/bvh8/webgpu/BVH8_INODE_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/bvh/bvh8/webgpu/BVH8_INODE_STRUCT.js +5 -3
- package/src/shade/renderer/shader/chunk/bvh/bvh8/webgpu/BVH8_MAX_DEPTH.d.ts +28 -0
- package/src/shade/renderer/shader/chunk/bvh/bvh8/webgpu/BVH8_MAX_DEPTH.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/bvh/bvh8/webgpu/BVH8_MAX_DEPTH.js +29 -0
- package/src/shade/renderer/shader/chunk/bvh/bvh8/webgpu/chunk_bvh8_node_grid.d.ts +25 -0
- package/src/shade/renderer/shader/chunk/bvh/bvh8/webgpu/chunk_bvh8_node_grid.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/bvh/bvh8/webgpu/chunk_bvh8_node_grid.js +97 -0
- package/src/shade/renderer/shader/chunk/bvh/bvh8/webgpu/chunk_bvh8_node_intersect.d.ts +8 -0
- package/src/shade/renderer/shader/chunk/bvh/bvh8/webgpu/chunk_bvh8_node_intersect.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/bvh/bvh8/webgpu/chunk_bvh8_node_intersect.js +23 -14
- package/src/shade/renderer/shader/chunk/bvh/bvh8/webgpu/chunk_bvh8_node_slot_distances.d.ts +36 -0
- package/src/shade/renderer/shader/chunk/bvh/bvh8/webgpu/chunk_bvh8_node_slot_distances.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/bvh/bvh8/webgpu/chunk_bvh8_node_slot_distances.js +222 -0
- package/src/shade/renderer/shader/chunk/bvh/bvh8/webgpu/chunk_bvh8_ray_direction_rcp.d.ts +20 -0
- package/src/shade/renderer/shader/chunk/bvh/bvh8/webgpu/chunk_bvh8_ray_direction_rcp.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/bvh/bvh8/webgpu/chunk_bvh8_ray_direction_rcp.js +30 -0
- package/src/shade/renderer/shader/chunk/bvh/bvh8/webgpu/chunk_bvh8_tree_read.d.ts +30 -0
- package/src/shade/renderer/shader/chunk/bvh/bvh8/webgpu/chunk_bvh8_tree_read.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/bvh/bvh8/webgpu/chunk_bvh8_tree_read.js +91 -0
- package/src/shade/renderer/shader/chunk/bvh/bvh8/webgpu/chunk_bvh8_waiting_slots.d.ts +23 -0
- package/src/shade/renderer/shader/chunk/bvh/bvh8/webgpu/chunk_bvh8_waiting_slots.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/bvh/bvh8/webgpu/chunk_bvh8_waiting_slots.js +40 -0
- package/src/shade/renderer/shader/chunk/geometry/ray/chunk_ray_query_blas_nearest.d.ts +22 -0
- package/src/shade/renderer/shader/chunk/geometry/ray/chunk_ray_query_blas_nearest.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/geometry/ray/chunk_ray_query_blas_nearest.js +121 -70
- package/src/shade/renderer/shader/chunk/geometry/ray/chunk_ray_query_blas_occluded.d.ts +13 -1
- package/src/shade/renderer/shader/chunk/geometry/ray/chunk_ray_query_blas_occluded.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/geometry/ray/chunk_ray_query_blas_occluded.js +117 -61
- package/src/shade/renderer/shader/chunk/geometry/ray/chunk_ray_query_nearest.d.ts +21 -0
- package/src/shade/renderer/shader/chunk/geometry/ray/chunk_ray_query_nearest.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/geometry/ray/chunk_ray_query_nearest.js +111 -72
- package/src/shade/renderer/shader/chunk/geometry/ray/chunk_ray_query_nearest_among.d.ts +1 -2
- package/src/shade/renderer/shader/chunk/geometry/ray/chunk_ray_query_nearest_among.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/geometry/ray/chunk_ray_query_nearest_among.js +83 -54
- package/src/shade/renderer/shader/chunk/geometry/ray/chunk_ray_query_occluded.d.ts +14 -0
- package/src/shade/renderer/shader/chunk/geometry/ray/chunk_ray_query_occluded.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/geometry/ray/chunk_ray_query_occluded.js +92 -60
- package/src/shade/renderer/shader/chunk/sdf/chunk_point_query_blas_nearest.d.ts +22 -0
- package/src/shade/renderer/shader/chunk/sdf/chunk_point_query_blas_nearest.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/sdf/chunk_point_query_blas_nearest.js +153 -106
- package/src/shade/renderer/shader/chunk/sdf/chunk_scene_point_query_nearest.d.ts +21 -0
- package/src/shade/renderer/shader/chunk/sdf/chunk_scene_point_query_nearest.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/sdf/chunk_scene_point_query_nearest.js +115 -74
- package/src/shade/renderer/shader/chunk/sdf/chunk_scene_sdf_raymarch.d.ts +5 -2
- 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 +89 -63
- package/src/shade/renderer/shader/chunk/sdf/chunk_sdf_query_distance.d.ts +15 -0
- package/src/shade/renderer/shader/chunk/sdf/chunk_sdf_query_distance.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/sdf/chunk_sdf_query_distance.js +108 -63
- package/src/shade/renderer/shadow/sdf/chunk_ray_query_sdf_raycast.d.ts +14 -0
- package/src/shade/renderer/shadow/sdf/chunk_ray_query_sdf_raycast.d.ts.map +1 -1
- package/src/shade/renderer/shadow/sdf/chunk_ray_query_sdf_raycast.js +94 -60
- package/src/shade/renderer/shadow/sdf/graph_draw_sdf_shadows.d.ts.map +1 -1
- package/src/shade/renderer/shadow/sdf/graph_draw_sdf_shadows.js +4 -4
- package/src/shade/renderer/trails/GPUTrailAVBOITChannel.d.ts +69 -0
- package/src/shade/renderer/trails/GPUTrailAVBOITChannel.d.ts.map +1 -0
- package/src/shade/renderer/trails/GPUTrailAVBOITChannel.js +129 -0
- package/src/shade/renderer/trails/GPUTrailSystem.d.ts +164 -0
- package/src/shade/renderer/trails/GPUTrailSystem.d.ts.map +1 -0
- package/src/shade/renderer/trails/GPUTrailSystem.js +725 -0
- package/src/shade/renderer/trails/data/TRAIL_DATABASE_SPEC.d.ts +14 -0
- package/src/shade/renderer/trails/data/TRAIL_DATABASE_SPEC.d.ts.map +1 -0
- package/src/shade/renderer/trails/data/TRAIL_DATABASE_SPEC.js +38 -0
- package/src/shade/renderer/trails/data/TRAIL_KNOT.d.ts +66 -0
- package/src/shade/renderer/trails/data/TRAIL_KNOT.d.ts.map +1 -0
- package/src/shade/renderer/trails/data/TRAIL_KNOT.js +154 -0
- package/src/shade/renderer/trails/data/TRAIL_RECORD.d.ts +19 -0
- package/src/shade/renderer/trails/data/TRAIL_RECORD.d.ts.map +1 -0
- package/src/shade/renderer/trails/data/TRAIL_RECORD.js +68 -0
- package/src/shade/renderer/trails/data/TRAIL_STATE.d.ts +18 -0
- package/src/shade/renderer/trails/data/TRAIL_STATE.d.ts.map +1 -0
- package/src/shade/renderer/trails/data/TRAIL_STATE.js +43 -0
- package/src/shade/renderer/trails/graph_trails.d.ts +58 -0
- package/src/shade/renderer/trails/graph_trails.d.ts.map +1 -0
- package/src/shade/renderer/trails/graph_trails.js +155 -0
- package/src/shade/renderer/trails/graph_trails_avboit.d.ts +126 -0
- package/src/shade/renderer/trails/graph_trails_avboit.d.ts.map +1 -0
- package/src/shade/renderer/trails/graph_trails_avboit.js +300 -0
- package/src/shade/renderer/trails/runtime/TrailFadeCurves.d.ts +56 -0
- package/src/shade/renderer/trails/runtime/TrailFadeCurves.d.ts.map +1 -0
- package/src/shade/renderer/trails/runtime/TrailFadeCurves.js +220 -0
- package/src/shade/renderer/trails/runtime/TrailKnotPool.d.ts +49 -0
- package/src/shade/renderer/trails/runtime/TrailKnotPool.d.ts.map +1 -0
- package/src/shade/renderer/trails/runtime/TrailKnotPool.js +162 -0
- package/src/shade/renderer/trails/runtime/TrailParameters.d.ts +52 -0
- package/src/shade/renderer/trails/runtime/TrailParameters.d.ts.map +1 -0
- package/src/shade/renderer/trails/runtime/TrailParameters.js +126 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_frame_transport.d.ts +23 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_frame_transport.d.ts.map +1 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_frame_transport.js +57 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_knot_alpha.d.ts +14 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_knot_alpha.d.ts.map +1 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_knot_alpha.js +40 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_seed.d.ts +18 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_seed.d.ts.map +1 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_seed.js +64 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_segment.d.ts +14 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_segment.d.ts.map +1 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_segment.js +51 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_update.d.ts +48 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_update.d.ts.map +1 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_update.js +197 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_vertex.d.ts +34 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_vertex.d.ts.map +1 -0
- package/src/shade/renderer/trails/shaders/chunk_trail_vertex.js +111 -0
- package/src/shade/renderer/trails/shaders/shader_trail_avboit.d.ts +24 -0
- package/src/shade/renderer/trails/shaders/shader_trail_avboit.d.ts.map +1 -0
- package/src/shade/renderer/trails/shaders/shader_trail_avboit.js +78 -0
- package/src/shade/renderer/trails/shaders/shader_trail_avboit_segments.d.ts +23 -0
- package/src/shade/renderer/trails/shaders/shader_trail_avboit_segments.d.ts.map +1 -0
- package/src/shade/renderer/trails/shaders/shader_trail_avboit_segments.js +130 -0
- package/src/shade/renderer/trails/shaders/shader_trail_draw_args.d.ts +29 -0
- package/src/shade/renderer/trails/shaders/shader_trail_draw_args.d.ts.map +1 -0
- package/src/shade/renderer/trails/shaders/shader_trail_draw_args.js +78 -0
- package/src/shade/renderer/trails/shaders/shader_trail_seed.d.ts +18 -0
- package/src/shade/renderer/trails/shaders/shader_trail_seed.d.ts.map +1 -0
- package/src/shade/renderer/trails/shaders/shader_trail_seed.js +79 -0
- package/src/shade/renderer/trails/shaders/shader_trail_update.d.ts +20 -0
- package/src/shade/renderer/trails/shaders/shader_trail_update.d.ts.map +1 -0
- package/src/shade/renderer/trails/shaders/shader_trail_update.js +101 -0
- package/src/shade/renderer/volumetrics/graph_build_volumetrics.js +2 -2
- package/src/shade/renderer/water/query/shader_water_surface_query.d.ts.map +1 -1
- package/src/shade/renderer/water/query/shader_water_surface_query.js +227 -227
- package/src/shade/renderer/water/surface/particles/chunk_water_particle_step.d.ts.map +1 -1
- package/src/shade/renderer/water/surface/particles/chunk_water_particle_step.js +7 -4
- package/src/shade/renderer/water/surface/particles/shader_water_particles.js +2 -2
- package/src/shade/renderer/wind/GPUSceneWind.d.ts +36 -4
- package/src/shade/renderer/wind/GPUSceneWind.d.ts.map +1 -1
- package/src/shade/renderer/wind/GPUSceneWind.js +150 -4
- package/src/shade/renderer/wind/WIND_FIELD_STRUCT.d.ts +9 -3
- package/src/shade/renderer/wind/WIND_FIELD_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/wind/WIND_FIELD_STRUCT.js +13 -3
- package/src/shade/renderer/wind/WIND_FIELD_UNIFORM.d.ts +6 -6
- package/src/shade/renderer/wind/WIND_FIELD_UNIFORM.js +6 -6
- package/src/shade/renderer/wind/chunk_fluid_turbulence.d.ts +39 -0
- package/src/shade/renderer/wind/chunk_fluid_turbulence.d.ts.map +1 -0
- package/src/shade/renderer/wind/chunk_fluid_turbulence.js +63 -0
- package/src/shade/renderer/wind/chunk_wind_field_sample_cascades.d.ts +10 -7
- package/src/shade/renderer/wind/chunk_wind_field_sample_cascades.d.ts.map +1 -1
- package/src/shade/renderer/wind/chunk_wind_field_sample_cascades.js +34 -11
- package/src/shade/renderer/wind/chunk_wind_field_sample_uniform.d.ts +2 -2
- package/src/shade/renderer/wind/chunk_wind_field_sample_uniform.js +2 -2
- package/src/shade/renderer/wind/wind_field_add_resources.d.ts +6 -4
- package/src/shade/renderer/wind/wind_field_add_resources.d.ts.map +1 -1
- package/src/shade/renderer/wind/wind_field_add_resources.js +9 -6
- package/src/engine/graphics/ecs/trail3d/advance_trail.d.ts +0 -18
- package/src/engine/graphics/ecs/trail3d/advance_trail.d.ts.map +0 -1
- package/src/engine/graphics/ecs/trail3d/advance_trail.js +0 -42
- package/src/engine/graphics/ecs/trail3d/seed_trail_tube.d.ts +0 -14
- package/src/engine/graphics/ecs/trail3d/seed_trail_tube.d.ts.map +0 -1
- package/src/engine/graphics/ecs/trail3d/seed_trail_tube.js +0 -75
- package/src/engine/graphics/ecs/trail3d/trail_head_position.d.ts +0 -17
- package/src/engine/graphics/ecs/trail3d/trail_head_position.d.ts.map +0 -1
- package/src/engine/graphics/ecs/trail3d/trail_head_position.js +0 -19
- package/src/engine/graphics/trail/tube/TubeX.d.ts +0 -186
- package/src/engine/graphics/trail/tube/TubeX.d.ts.map +0 -1
- package/src/engine/graphics/trail/tube/TubeX.js +0 -575
- package/src/engine/graphics/trail/tube/simulator/TubeXFixedPhysicsSimulator.d.ts +0 -16
- package/src/engine/graphics/trail/tube/simulator/TubeXFixedPhysicsSimulator.d.ts.map +0 -1
- package/src/engine/graphics/trail/tube/simulator/TubeXFixedPhysicsSimulator.js +0 -34
- package/src/engine/graphics/trail/tube/tube_attributes_spec.d.ts +0 -27
- package/src/engine/graphics/trail/tube/tube_attributes_spec.d.ts.map +0 -1
- package/src/engine/graphics/trail/tube/tube_attributes_spec.js +0 -70
- package/src/engine/graphics3/trail/trail_tube_write_geometry.d.ts +0 -38
- package/src/engine/graphics3/trail/trail_tube_write_geometry.d.ts.map +0 -1
- package/src/engine/graphics3/trail/trail_tube_write_geometry.js +0 -119
- package/src/shade/renderer/geometry/bvh/BLAS_REFIT_TARGET_STRUCT.d.ts +0 -18
- package/src/shade/renderer/geometry/bvh/BLAS_REFIT_TARGET_STRUCT.d.ts.map +0 -1
- package/src/shade/renderer/geometry/bvh/BLAS_REFIT_TARGET_STRUCT.js +0 -50
- package/src/shade/renderer/geometry/bvh/bvh2_derive_topology.d.ts +0 -23
- package/src/shade/renderer/geometry/bvh/bvh2_derive_topology.d.ts.map +0 -1
- package/src/shade/renderer/geometry/bvh/bvh2_derive_topology.js +0 -87
- package/src/shade/renderer/geometry/bvh/shader_blas_refit_batch.d.ts +0 -42
- package/src/shade/renderer/geometry/bvh/shader_blas_refit_batch.d.ts.map +0 -1
- package/src/shade/renderer/geometry/bvh/shader_blas_refit_batch.js +0 -141
- package/src/shade/renderer/geometry/bvh/shader_blas_refit_batch_seed.d.ts +0 -21
- package/src/shade/renderer/geometry/bvh/shader_blas_refit_batch_seed.d.ts.map +0 -1
- package/src/shade/renderer/geometry/bvh/shader_blas_refit_batch_seed.js +0 -75
- package/src/shade/renderer/geometry/meshlet_batch_to_bvh.d.ts +0 -17
- package/src/shade/renderer/geometry/meshlet_batch_to_bvh.d.ts.map +0 -1
- package/src/shade/renderer/geometry/meshlet_batch_to_bvh.js +0 -247
- package/src/shade/renderer/shader/chunk/bvh/bvh8/webgpu/chunk_bvh8_ray_query_blas_occlusion.d.ts +0 -7
- package/src/shade/renderer/shader/chunk/bvh/bvh8/webgpu/chunk_bvh8_ray_query_blas_occlusion.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/bvh/bvh8/webgpu/chunk_bvh8_ray_query_blas_occlusion.js +0 -226
- package/src/shade/renderer/shader/chunk/light/lpv/chunk_lpv_mask_visibility_via_rays.d.ts +0 -8
- package/src/shade/renderer/shader/chunk/light/lpv/chunk_lpv_mask_visibility_via_rays.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/light/lpv/chunk_lpv_mask_visibility_via_rays.js +0 -45
- package/src/shade/renderer/shader/chunk/light/sample/chunk_ray_sample_light.d.ts +0 -3
- package/src/shade/renderer/shader/chunk/light/sample/chunk_ray_sample_light.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/light/sample/chunk_ray_sample_light.js +0 -105
- package/src/shade/renderer/shadow/sdf/chunk_ray_query_sdf_distance.d.ts +0 -6
- package/src/shade/renderer/shadow/sdf/chunk_ray_query_sdf_distance.d.ts.map +0 -1
- package/src/shade/renderer/shadow/sdf/chunk_ray_query_sdf_distance.js +0 -86
- package/src/shade/renderer/shadow/sdf/chunk_ray_query_sdf_raycast_traversal_count.d.ts +0 -2
- package/src/shade/renderer/shadow/sdf/chunk_ray_query_sdf_raycast_traversal_count.d.ts.map +0 -1
- package/src/shade/renderer/shadow/sdf/chunk_ray_query_sdf_raycast_traversal_count.js +0 -136
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
* {@link FluidComponent}: the collider's shape — posed rigidly at the
|
|
10
10
|
* transform's position/rotation via {@link PosedShape3D} — is sampled at the
|
|
11
11
|
* centre of every fluid cell inside its world AABB, and cells whose signed
|
|
12
|
-
* distance is `<= obstacle.inflation` become solid.
|
|
12
|
+
* distance is `<= obstacle.inflation` become solid. A porous obstacle (`FluidObstacle.drag` above 0)
|
|
13
|
+
* is the GPU fluid's alone and is left out here. The fluid then treats
|
|
13
14
|
* those cells exactly like hand-authored walls: faces pinned, pressure
|
|
14
15
|
* Neumann, traces clipped.
|
|
15
16
|
*
|
|
@@ -66,11 +67,11 @@ export class FluidObstacleSystem extends System<any> {
|
|
|
66
67
|
/**
|
|
67
68
|
* @param {FluidComponent} fluid
|
|
68
69
|
*/
|
|
69
|
-
static "__#
|
|
70
|
+
static "__#504@#refresh_masks"(fluid: FluidComponent): void;
|
|
70
71
|
/**
|
|
71
72
|
* @param {FluidComponent} fluid
|
|
72
73
|
*/
|
|
73
|
-
static "__#
|
|
74
|
+
static "__#504@#clear_field"(fluid: FluidComponent): void;
|
|
74
75
|
/**
|
|
75
76
|
* Mark every cell of `fluid` whose centre lies within `inflation` of the
|
|
76
77
|
* posed shape as solid. Iteration is clipped to the shape's world AABB
|
|
@@ -82,7 +83,7 @@ export class FluidObstacleSystem extends System<any> {
|
|
|
82
83
|
* @param {number} inflation world-units SDF threshold
|
|
83
84
|
* @param {Float64Array} point length-3 scratch
|
|
84
85
|
*/
|
|
85
|
-
static "__#
|
|
86
|
+
static "__#504@#voxelize"(fluid: FluidComponent, posed: PosedShape3D, aabb: Float64Array, inflation: number, point: Float64Array): void;
|
|
86
87
|
/**
|
|
87
88
|
* Write the obstacle's translation velocity onto every face of every cell
|
|
88
89
|
* it voxelized — the moving-wall boundary condition. Runs AFTER the mask
|
|
@@ -102,7 +103,7 @@ export class FluidObstacleSystem extends System<any> {
|
|
|
102
103
|
* @param {number} wvy
|
|
103
104
|
* @param {number} wvz
|
|
104
105
|
*/
|
|
105
|
-
static "__#
|
|
106
|
+
static "__#504@#stamp_wall_velocity"(fluid: FluidComponent, posed: PosedShape3D, aabb: Float64Array, inflation: number, point: Float64Array, wvx: number, wvy: number, wvz: number): void;
|
|
106
107
|
constructor();
|
|
107
108
|
dependencies: (typeof FluidObstacle)[];
|
|
108
109
|
components_used: (ResourceAccessSpecification<typeof Transform64> | ResourceAccessSpecification<typeof FluidObstacle> | ResourceAccessSpecification<typeof Collider> | ResourceAccessSpecification<typeof RigidBody> | ResourceAccessSpecification<typeof FluidComponent>)[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FluidObstacleSystem.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/physics/fluid/ecs/FluidObstacleSystem.js"],"names":[],"mappings":"AAUA
|
|
1
|
+
{"version":3,"file":"FluidObstacleSystem.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/physics/fluid/ecs/FluidObstacleSystem.js"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AACH;IAiII;;OAEG;IACH,sCAFW,cAAc,QAIxB;IAED;;OAEG;IACH,oCAFW,cAAc,QAOxB;IAED;;;;;;;;;;OAUG;IACH,iCANW,cAAc,SACd,YAAY,QACZ,YAAY,aACZ,MAAM,SACN,YAAY,QAiDtB;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,4CATW,cAAc,SACd,YAAY,QACZ,YAAY,aACZ,MAAM,SACN,YAAY,OACZ,MAAM,OACN,MAAM,OACN,MAAM,QAqEhB;;IAlSD,uCAA+B;IAE/B,6QAOE;;CA0RL;uBA7WsB,wBAAwB;8BAKjB,oBAAoB;4BAJtB,uCAAuC;4CAFvB,uDAAuD;yBAG1E,uBAAuB;0BACtB,wBAAwB;+BACnB,qBAAqB;6BAPvB,gDAAgD"}
|
|
@@ -19,7 +19,8 @@ import { FluidObstacle } from "./FluidObstacle.js";
|
|
|
19
19
|
* {@link FluidComponent}: the collider's shape — posed rigidly at the
|
|
20
20
|
* transform's position/rotation via {@link PosedShape3D} — is sampled at the
|
|
21
21
|
* centre of every fluid cell inside its world AABB, and cells whose signed
|
|
22
|
-
* distance is `<= obstacle.inflation` become solid.
|
|
22
|
+
* distance is `<= obstacle.inflation` become solid. A porous obstacle (`FluidObstacle.drag` above 0)
|
|
23
|
+
* is the GPU fluid's alone and is left out here. The fluid then treats
|
|
23
24
|
* those cells exactly like hand-authored walls: faces pinned, pressure
|
|
24
25
|
* Neumann, traces clipped.
|
|
25
26
|
*
|
|
@@ -119,8 +120,10 @@ export class FluidObstacleSystem extends System {
|
|
|
119
120
|
// With no obstacles the system must not touch any mask — fields with
|
|
120
121
|
// hand-authored solids keep them.
|
|
121
122
|
let obstacle_count = 0;
|
|
122
|
-
ecd.traverseEntities([FluidObstacle, Collider, RigidBody, Transform64], function () {
|
|
123
|
-
|
|
123
|
+
ecd.traverseEntities([FluidObstacle, Collider, RigidBody, Transform64], function (obstacle) {
|
|
124
|
+
if (obstacle.drag === 0) {
|
|
125
|
+
obstacle_count++;
|
|
126
|
+
}
|
|
124
127
|
});
|
|
125
128
|
if (obstacle_count === 0) {
|
|
126
129
|
return;
|
|
@@ -136,6 +139,10 @@ export class FluidObstacleSystem extends System {
|
|
|
136
139
|
const point = this.#point;
|
|
137
140
|
|
|
138
141
|
ecd.traverseEntities([FluidObstacle, Collider, RigidBody, Transform64], function (obstacle, collider, body, transform) {
|
|
142
|
+
if (obstacle.drag !== 0) {
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
|
|
139
146
|
posed.setup_components(
|
|
140
147
|
collider.shape,
|
|
141
148
|
transform.translation_x, transform.translation_y, transform.translation_z,
|
|
@@ -161,6 +168,10 @@ export class FluidObstacleSystem extends System {
|
|
|
161
168
|
// (and pulls) the surrounding fluid. The source is the solver's own
|
|
162
169
|
// linearVelocity, NOT a pose delta — teleports stamp nothing.
|
|
163
170
|
ecd.traverseEntities([FluidObstacle, Collider, RigidBody, Transform64], function (obstacle, collider, body, transform) {
|
|
171
|
+
if (obstacle.drag !== 0) {
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
|
|
164
175
|
const lv = body.linearVelocity;
|
|
165
176
|
const vx = lv[0];
|
|
166
177
|
const vy = lv[1];
|
|
@@ -53,7 +53,7 @@ export class AbstractFluidEffector {
|
|
|
53
53
|
* The per-tick hook: called by {@link FluidEffectorsSystem} exactly once per fixed
|
|
54
54
|
* step for every effector, with or without a `Transform64` on its entity, after
|
|
55
55
|
* {@link syncFromTransform} and before any fluid system applies it. Default: no-op.
|
|
56
|
-
* Effectors whose state evolves with time on their own
|
|
56
|
+
* Effectors whose state evolves with time on their own override
|
|
57
57
|
* this to advance it; `apply` then reads that state, and every field stepped this
|
|
58
58
|
* tick sees the same.
|
|
59
59
|
*
|
|
@@ -60,7 +60,7 @@ export class AbstractFluidEffector {
|
|
|
60
60
|
* The per-tick hook: called by {@link FluidEffectorsSystem} exactly once per fixed
|
|
61
61
|
* step for every effector, with or without a `Transform64` on its entity, after
|
|
62
62
|
* {@link syncFromTransform} and before any fluid system applies it. Default: no-op.
|
|
63
|
-
* Effectors whose state evolves with time on their own
|
|
63
|
+
* Effectors whose state evolves with time on their own override
|
|
64
64
|
* this to advance it; `apply` then reads that state, and every field stepped this
|
|
65
65
|
* tick sees the same.
|
|
66
66
|
*
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* dv/dt = force + drag · (wind − v)
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
* with turbulence carried on top of the wind.
|
|
8
8
|
*
|
|
9
9
|
* One effector covers the whole family of "push everything" behaviours —
|
|
10
10
|
* pick the regime by which fields you set:
|
|
@@ -28,9 +28,9 @@
|
|
|
28
28
|
* is the solver-level stability knob that exists even when no effectors
|
|
29
29
|
* are wired.)
|
|
30
30
|
*
|
|
31
|
-
* - **`
|
|
32
|
-
*
|
|
33
|
-
* {@link
|
|
31
|
+
* - **`turbulence_intensity`** — weather on top of the wind: a field of eddies, the
|
|
32
|
+
* wind's speed times the intensity in rms, carried along by the wind. See
|
|
33
|
+
* {@link turbulence_intensity}.
|
|
34
34
|
*
|
|
35
35
|
* `wind` only enters through the drag term — with `drag = 0` it is inert by
|
|
36
36
|
* construction (the model degenerates to dv/dt = force).
|
|
@@ -38,20 +38,21 @@
|
|
|
38
38
|
* ## The far field
|
|
39
39
|
*
|
|
40
40
|
* In a scene, globals act through {@link FluidEffectorsSystem}: once a tick it folds
|
|
41
|
-
* every global into one far field — `D = Σ drag`, the drag-weighted
|
|
42
|
-
* winds, the
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
41
|
+
* every global into one far field — `D = Σ drag`, the drag-weighted means of the
|
|
42
|
+
* winds, of the turbulence intensities and of the length scales, and the sum of the
|
|
43
|
+
* forces — and integrates `u`, the far field's mean, toward the mean wind at `D`. The
|
|
44
|
+
* far field is `u` plus its turbulence, `σ = intensity · |u|` in rms, carried by `u`.
|
|
45
|
+
* {@link FluidSystem} and {@link WorkerFluidSystem} then bring every field to the mean
|
|
46
|
+
* once a step through the atmosphere identity (`fluid_apply_atmosphere`); the GPU fluid
|
|
47
|
+
* brings every cascade to the whole far field, turbulence and all. Several globals act
|
|
48
|
+
* as one, whatever order they are in. A global has no `apply` of its own: it acts only through the far field, and
|
|
48
49
|
* `FluidSimulator#step` refuses one handed to it in its effector list.
|
|
49
50
|
*
|
|
50
51
|
* `force` is not part of the far field: it is a term inside CPU fields, applied exactly
|
|
51
52
|
* in the same step.
|
|
52
53
|
*
|
|
53
|
-
* All quantities are WORLD-space: `force` in units/s², `wind`
|
|
54
|
-
* `
|
|
54
|
+
* All quantities are WORLD-space: `force` in units/s², `wind` in units/s, `drag` in
|
|
55
|
+
* 1/s, `turbulence_length` in units. The `world_to_grid` matrix's linear part converts the vectors per
|
|
55
56
|
* field, so one instance produces the same world-space atmosphere on fields of any
|
|
56
57
|
* `cell_size` — gravity stays gravity.
|
|
57
58
|
*
|
|
@@ -84,49 +85,34 @@ export class GlobalFluidEffector extends AbstractFluidEffector {
|
|
|
84
85
|
*/
|
|
85
86
|
drag: number;
|
|
86
87
|
/**
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
88
|
+
* Turbulence intensity, `σ_u / |U|`: the rms of the far field's eddies on each axis, as a share
|
|
89
|
+
* of the far field's mean speed `|U|`. 0, the default, is no turbulence. Over grass and crops
|
|
90
|
+
* the near-ground wind measures 0.15 to 0.2; MIL-F-8785C's low-altitude model gives 0.19 at
|
|
91
|
+
* 20 ft.
|
|
91
92
|
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
* g_axis = gust · Σ_k a_k · sin(2π·phase_k + (k+1)·φ_axis)
|
|
97
|
-
*
|
|
98
|
-
* The air carries the gust; it does not relax toward it, so `drag` does not filter
|
|
99
|
-
* it. `0` (default) is no gust.
|
|
93
|
+
* The eddies are isotropic von Kármán turbulence, frozen and carried by the mean wind
|
|
94
|
+
* (Taylor's hypothesis), from one repeating tile (`FLUID_TURBULENCE_TILE_RESOLUTION`). The
|
|
95
|
+
* fluid then shapes them: the ground's shear stretches them into streaks, a canopy's drag
|
|
96
|
+
* rolls them up. Read through `GPUFluidSystem#far_field_at`; `far_field` is the mean.
|
|
100
97
|
*
|
|
101
98
|
* @type {number}
|
|
102
99
|
*/
|
|
103
|
-
|
|
100
|
+
turbulence_intensity: number;
|
|
104
101
|
/**
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
*
|
|
102
|
+
* The turbulence's length scale `L`, WORLD units, > 0: the von Kármán spectrum's, whose most
|
|
103
|
+
* energetic wavelength is about `4.05·L` and whose longitudinal integral scale is `0.747·L`.
|
|
104
|
+
* The tile repeats every `16·L` across and `4·L` up, and holds wavelengths down to `L/4`.
|
|
108
105
|
*
|
|
109
|
-
* The
|
|
110
|
-
*
|
|
111
|
-
*
|
|
106
|
+
* The default, 58.6 m, is MIL-F-8785C's low-altitude integral scale at 20 ft (43.8 m),
|
|
107
|
+
* divided by 0.747. Smaller scales reach down to a canopy's own eddies at the cost of a
|
|
108
|
+
* shorter repeat.
|
|
112
109
|
*
|
|
113
|
-
*
|
|
114
|
-
|
|
115
|
-
gust_period: number;
|
|
116
|
-
/**
|
|
117
|
-
* The gust's three phases, in turns, each in `[0, 1)`: state, advanced once a tick
|
|
118
|
-
* by {@link advance}. Written by hand only to restore a saved gust.
|
|
110
|
+
* Changing it rescales the eddies about the world's origin, so the air there jumps; it is a
|
|
111
|
+
* property of a scene's weather, set once.
|
|
119
112
|
*
|
|
120
|
-
* @type {
|
|
121
|
-
*/
|
|
122
|
-
gust_phase: Float64Array;
|
|
123
|
-
/**
|
|
124
|
-
* The gust at the current phases, WORLD units per second.
|
|
125
|
-
*
|
|
126
|
-
* @param {Float64Array|number[]} out written at 0..2
|
|
127
|
-
* @returns {Float64Array|number[]} `out`
|
|
113
|
+
* @type {number}
|
|
128
114
|
*/
|
|
129
|
-
|
|
115
|
+
turbulence_length: number;
|
|
130
116
|
}
|
|
131
117
|
export namespace GlobalFluidEffector {
|
|
132
118
|
let typeName: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GlobalFluidEffector.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/physics/fluid/effector/GlobalFluidEffector.js"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"GlobalFluidEffector.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/physics/fluid/effector/GlobalFluidEffector.js"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AACH;IAEI;;;;;OAKG;IACH,OAFU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAEhB;IAElB;;;;;OAKG;IACH,MAFU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAEjB;IAEjB;;;;;;;OAOG;IACH,MAFU,MAAM,CAEP;IAET;;;;;;;;;;;;OAYG;IACH,sBAFU,MAAM,CAES;IAEzB;;;;;;;;;;;;;OAaG;IACH,mBAFU,MAAM,CAES;CAyD5B;;kBAIS,MAAM;;sCAtLsB,4BAA4B"}
|
|
@@ -8,7 +8,7 @@ import { AbstractFluidEffector } from "./AbstractFluidEffector.js";
|
|
|
8
8
|
*
|
|
9
9
|
* dv/dt = force + drag · (wind − v)
|
|
10
10
|
*
|
|
11
|
-
*
|
|
11
|
+
* with turbulence carried on top of the wind.
|
|
12
12
|
*
|
|
13
13
|
* One effector covers the whole family of "push everything" behaviours —
|
|
14
14
|
* pick the regime by which fields you set:
|
|
@@ -32,9 +32,9 @@ import { AbstractFluidEffector } from "./AbstractFluidEffector.js";
|
|
|
32
32
|
* is the solver-level stability knob that exists even when no effectors
|
|
33
33
|
* are wired.)
|
|
34
34
|
*
|
|
35
|
-
* - **`
|
|
36
|
-
*
|
|
37
|
-
* {@link
|
|
35
|
+
* - **`turbulence_intensity`** — weather on top of the wind: a field of eddies, the
|
|
36
|
+
* wind's speed times the intensity in rms, carried along by the wind. See
|
|
37
|
+
* {@link turbulence_intensity}.
|
|
38
38
|
*
|
|
39
39
|
* `wind` only enters through the drag term — with `drag = 0` it is inert by
|
|
40
40
|
* construction (the model degenerates to dv/dt = force).
|
|
@@ -42,20 +42,21 @@ import { AbstractFluidEffector } from "./AbstractFluidEffector.js";
|
|
|
42
42
|
* ## The far field
|
|
43
43
|
*
|
|
44
44
|
* In a scene, globals act through {@link FluidEffectorsSystem}: once a tick it folds
|
|
45
|
-
* every global into one far field — `D = Σ drag`, the drag-weighted
|
|
46
|
-
* winds, the
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
45
|
+
* every global into one far field — `D = Σ drag`, the drag-weighted means of the
|
|
46
|
+
* winds, of the turbulence intensities and of the length scales, and the sum of the
|
|
47
|
+
* forces — and integrates `u`, the far field's mean, toward the mean wind at `D`. The
|
|
48
|
+
* far field is `u` plus its turbulence, `σ = intensity · |u|` in rms, carried by `u`.
|
|
49
|
+
* {@link FluidSystem} and {@link WorkerFluidSystem} then bring every field to the mean
|
|
50
|
+
* once a step through the atmosphere identity (`fluid_apply_atmosphere`); the GPU fluid
|
|
51
|
+
* brings every cascade to the whole far field, turbulence and all. Several globals act
|
|
52
|
+
* as one, whatever order they are in. A global has no `apply` of its own: it acts only through the far field, and
|
|
52
53
|
* `FluidSimulator#step` refuses one handed to it in its effector list.
|
|
53
54
|
*
|
|
54
55
|
* `force` is not part of the far field: it is a term inside CPU fields, applied exactly
|
|
55
56
|
* in the same step.
|
|
56
57
|
*
|
|
57
|
-
* All quantities are WORLD-space: `force` in units/s², `wind`
|
|
58
|
-
* `
|
|
58
|
+
* All quantities are WORLD-space: `force` in units/s², `wind` in units/s, `drag` in
|
|
59
|
+
* 1/s, `turbulence_length` in units. The `world_to_grid` matrix's linear part converts the vectors per
|
|
59
60
|
* field, so one instance produces the same world-space atmosphere on fields of any
|
|
60
61
|
* `cell_size` — gravity stays gravity.
|
|
61
62
|
*
|
|
@@ -92,110 +93,38 @@ export class GlobalFluidEffector extends AbstractFluidEffector {
|
|
|
92
93
|
drag = 0;
|
|
93
94
|
|
|
94
95
|
/**
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
96
|
+
* Turbulence intensity, `σ_u / |U|`: the rms of the far field's eddies on each axis, as a share
|
|
97
|
+
* of the far field's mean speed `|U|`. 0, the default, is no turbulence. Over grass and crops
|
|
98
|
+
* the near-ground wind measures 0.15 to 0.2; MIL-F-8785C's low-altitude model gives 0.19 at
|
|
99
|
+
* 20 ft.
|
|
99
100
|
*
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
* g_axis = gust · Σ_k a_k · sin(2π·phase_k + (k+1)·φ_axis)
|
|
105
|
-
*
|
|
106
|
-
* The air carries the gust; it does not relax toward it, so `drag` does not filter
|
|
107
|
-
* it. `0` (default) is no gust.
|
|
101
|
+
* The eddies are isotropic von Kármán turbulence, frozen and carried by the mean wind
|
|
102
|
+
* (Taylor's hypothesis), from one repeating tile (`FLUID_TURBULENCE_TILE_RESOLUTION`). The
|
|
103
|
+
* fluid then shapes them: the ground's shear stretches them into streaks, a canopy's drag
|
|
104
|
+
* rolls them up. Read through `GPUFluidSystem#far_field_at`; `far_field` is the mean.
|
|
108
105
|
*
|
|
109
106
|
* @type {number}
|
|
110
107
|
*/
|
|
111
|
-
|
|
108
|
+
turbulence_intensity = 0;
|
|
112
109
|
|
|
113
110
|
/**
|
|
114
|
-
*
|
|
115
|
-
*
|
|
116
|
-
*
|
|
111
|
+
* The turbulence's length scale `L`, WORLD units, > 0: the von Kármán spectrum's, whose most
|
|
112
|
+
* energetic wavelength is about `4.05·L` and whose longitudinal integral scale is `0.747·L`.
|
|
113
|
+
* The tile repeats every `16·L` across and `4·L` up, and holds wavelengths down to `L/4`.
|
|
117
114
|
*
|
|
118
|
-
* The
|
|
119
|
-
*
|
|
120
|
-
*
|
|
121
|
-
*
|
|
122
|
-
* @type {number}
|
|
123
|
-
*/
|
|
124
|
-
gust_period = 4;
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
* The gust's three phases, in turns, each in `[0, 1)`: state, advanced once a tick
|
|
128
|
-
* by {@link advance}. Written by hand only to restore a saved gust.
|
|
115
|
+
* The default, 58.6 m, is MIL-F-8785C's low-altitude integral scale at 20 ft (43.8 m),
|
|
116
|
+
* divided by 0.747. Smaller scales reach down to a canopy's own eddies at the cost of a
|
|
117
|
+
* shorter repeat.
|
|
129
118
|
*
|
|
130
|
-
*
|
|
131
|
-
|
|
132
|
-
gust_phase = new Float64Array(3);
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
* Advance the gust's phases by `dt`: `phase_k ← frac(phase_k + dt·rate_k / gust_period)`.
|
|
136
|
-
* {@link FluidEffectorsSystem} calls it exactly once a tick.
|
|
119
|
+
* Changing it rescales the eddies about the world's origin, so the air there jumps; it is a
|
|
120
|
+
* property of a scene's weather, set once.
|
|
137
121
|
*
|
|
138
|
-
* @
|
|
139
|
-
*/
|
|
140
|
-
advance(dt) {
|
|
141
|
-
const period = this.gust_period > 0 ? this.gust_period : 1;
|
|
142
|
-
|
|
143
|
-
const phase = this.gust_phase;
|
|
144
|
-
|
|
145
|
-
const p0 = phase[0] + dt * RATE_0 / period;
|
|
146
|
-
const p1 = phase[1] + dt * RATE_1 / period;
|
|
147
|
-
const p2 = phase[2] + dt * RATE_2 / period;
|
|
148
|
-
|
|
149
|
-
phase[0] = p0 - Math.floor(p0);
|
|
150
|
-
phase[1] = p1 - Math.floor(p1);
|
|
151
|
-
phase[2] = p2 - Math.floor(p2);
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
/**
|
|
155
|
-
* The gust at the current phases, WORLD units per second.
|
|
156
|
-
*
|
|
157
|
-
* @param {Float64Array|number[]} out written at 0..2
|
|
158
|
-
* @returns {Float64Array|number[]} `out`
|
|
122
|
+
* @type {number}
|
|
159
123
|
*/
|
|
160
|
-
|
|
161
|
-
const gust = this.gust;
|
|
162
|
-
|
|
163
|
-
if (gust === 0) {
|
|
164
|
-
out[0] = 0;
|
|
165
|
-
out[1] = 0;
|
|
166
|
-
out[2] = 0;
|
|
167
|
-
|
|
168
|
-
return out;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
const phase = this.gust_phase;
|
|
172
|
-
|
|
173
|
-
const a0 = TAU * phase[0];
|
|
174
|
-
const a1 = TAU * phase[1];
|
|
175
|
-
const a2 = TAU * phase[2];
|
|
176
|
-
|
|
177
|
-
out[0] = gust * (
|
|
178
|
-
AMPLITUDE_0 * Math.sin(a0 + AXIS_PHASE_X)
|
|
179
|
-
+ AMPLITUDE_1 * Math.sin(a1 + AXIS_PHASE_X * 2)
|
|
180
|
-
+ AMPLITUDE_2 * Math.sin(a2 + AXIS_PHASE_X * 3)
|
|
181
|
-
);
|
|
182
|
-
out[1] = gust * (
|
|
183
|
-
AMPLITUDE_0 * Math.sin(a0 + AXIS_PHASE_Y)
|
|
184
|
-
+ AMPLITUDE_1 * Math.sin(a1 + AXIS_PHASE_Y * 2)
|
|
185
|
-
+ AMPLITUDE_2 * Math.sin(a2 + AXIS_PHASE_Y * 3)
|
|
186
|
-
);
|
|
187
|
-
out[2] = gust * (
|
|
188
|
-
AMPLITUDE_0 * Math.sin(a0 + AXIS_PHASE_Z)
|
|
189
|
-
+ AMPLITUDE_1 * Math.sin(a1 + AXIS_PHASE_Z * 2)
|
|
190
|
-
+ AMPLITUDE_2 * Math.sin(a2 + AXIS_PHASE_Z * 3)
|
|
191
|
-
);
|
|
192
|
-
|
|
193
|
-
return out;
|
|
194
|
-
}
|
|
124
|
+
turbulence_length = 58.6;
|
|
195
125
|
|
|
196
126
|
/**
|
|
197
|
-
* Every field
|
|
198
|
-
* same air from now on.
|
|
127
|
+
* Every field: two globals are equal when they make the same air.
|
|
199
128
|
*
|
|
200
129
|
* @param {AbstractFluidEffector} other
|
|
201
130
|
* @return {boolean}
|
|
@@ -214,11 +143,8 @@ export class GlobalFluidEffector extends AbstractFluidEffector {
|
|
|
214
143
|
&& this.wind[0] === other.wind[0]
|
|
215
144
|
&& this.wind[1] === other.wind[1]
|
|
216
145
|
&& this.wind[2] === other.wind[2]
|
|
217
|
-
&& this.
|
|
218
|
-
&& this.
|
|
219
|
-
&& this.gust_phase[0] === other.gust_phase[0]
|
|
220
|
-
&& this.gust_phase[1] === other.gust_phase[1]
|
|
221
|
-
&& this.gust_phase[2] === other.gust_phase[2];
|
|
146
|
+
&& this.turbulence_intensity === other.turbulence_intensity
|
|
147
|
+
&& this.turbulence_length === other.turbulence_length;
|
|
222
148
|
}
|
|
223
149
|
|
|
224
150
|
/**
|
|
@@ -238,17 +164,9 @@ export class GlobalFluidEffector extends AbstractFluidEffector {
|
|
|
238
164
|
hash_mix3(
|
|
239
165
|
computeHashFloat(this.wind[2]),
|
|
240
166
|
computeHashFloat(this.drag),
|
|
241
|
-
computeHashFloat(this.
|
|
167
|
+
computeHashFloat(this.turbulence_intensity)
|
|
242
168
|
),
|
|
243
|
-
|
|
244
|
-
computeHashFloat(this.gust_period),
|
|
245
|
-
computeHashFloat(this.gust_phase[0]),
|
|
246
|
-
hash_mix3(
|
|
247
|
-
computeHashFloat(this.gust_phase[1]),
|
|
248
|
-
computeHashFloat(this.gust_phase[2]),
|
|
249
|
-
0
|
|
250
|
-
)
|
|
251
|
-
)
|
|
169
|
+
computeHashFloat(this.turbulence_length)
|
|
252
170
|
);
|
|
253
171
|
}
|
|
254
172
|
|
|
@@ -267,59 +185,3 @@ export class GlobalFluidEffector extends AbstractFluidEffector {
|
|
|
267
185
|
* @type {string}
|
|
268
186
|
*/
|
|
269
187
|
GlobalFluidEffector.typeName = "GlobalFluidEffector";
|
|
270
|
-
|
|
271
|
-
/**
|
|
272
|
-
* @type {number}
|
|
273
|
-
*/
|
|
274
|
-
const TAU = 2 * Math.PI;
|
|
275
|
-
|
|
276
|
-
/**
|
|
277
|
-
* Component rates, as multiples of the base frequency `1 / gust_period`: mutually
|
|
278
|
-
* irrational enough that the sum does not visibly repeat.
|
|
279
|
-
* @type {number}
|
|
280
|
-
*/
|
|
281
|
-
const RATE_0 = 1;
|
|
282
|
-
|
|
283
|
-
/**
|
|
284
|
-
* @type {number}
|
|
285
|
-
*/
|
|
286
|
-
const RATE_1 = 2.41;
|
|
287
|
-
|
|
288
|
-
/**
|
|
289
|
-
* @type {number}
|
|
290
|
-
*/
|
|
291
|
-
const RATE_2 = 5.83;
|
|
292
|
-
|
|
293
|
-
/**
|
|
294
|
-
* Component amplitudes. They sum to exactly one, which is what makes
|
|
295
|
-
* {@link GlobalFluidEffector#gust} a bound rather than a scale.
|
|
296
|
-
* @type {number}
|
|
297
|
-
*/
|
|
298
|
-
const AMPLITUDE_0 = 4 / 7;
|
|
299
|
-
|
|
300
|
-
/**
|
|
301
|
-
* @type {number}
|
|
302
|
-
*/
|
|
303
|
-
const AMPLITUDE_1 = 2 / 7;
|
|
304
|
-
|
|
305
|
-
/**
|
|
306
|
-
* @type {number}
|
|
307
|
-
*/
|
|
308
|
-
const AMPLITUDE_2 = 1 / 7;
|
|
309
|
-
|
|
310
|
-
/**
|
|
311
|
-
* Per-axis phase offsets φ_axis, thirds of a turn; component k takes `(k+1)·φ_axis`,
|
|
312
|
-
* so the axes stay apart at every rate.
|
|
313
|
-
* @type {number}
|
|
314
|
-
*/
|
|
315
|
-
const AXIS_PHASE_X = 0;
|
|
316
|
-
|
|
317
|
-
/**
|
|
318
|
-
* @type {number}
|
|
319
|
-
*/
|
|
320
|
-
const AXIS_PHASE_Y = 2 * Math.PI / 3;
|
|
321
|
-
|
|
322
|
-
/**
|
|
323
|
-
* @type {number}
|
|
324
|
-
*/
|
|
325
|
-
const AXIS_PHASE_Z = 4 * Math.PI / 3;
|
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Binary serialization for {@link GlobalFluidEffector}: `force`, `wind`, `drag`,
|
|
3
|
-
* `
|
|
2
|
+
* Binary serialization for {@link GlobalFluidEffector}: `force`, `wind`, `drag`,
|
|
3
|
+
* `turbulence_intensity` and `turbulence_length`, every one an f64.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* a loaded global advanced from the load makes the same air, to the bit, as the saved one
|
|
7
|
-
* advanced from the save. Written as f64 for that reason; a phase rounded to f32 would put the
|
|
8
|
-
* gust a 1e-7 turn off.
|
|
5
|
+
* ## Version 1
|
|
9
6
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
7
|
+
* Version 0 carried a gust (`gust`, `gust_period` and three phases) where version 1 carries the
|
|
8
|
+
* turbulence; {@link GlobalFluidEffectorSerializationUpgrader_0_1} reads a version-0 stream as
|
|
9
|
+
* version 1, the gust dropped (it has no turbulence equivalent) and no turbulence. A host that
|
|
10
|
+
* loads version-0 saves registers it beside this adapter. The spec's exact byte count is what makes
|
|
11
|
+
* a field added without a bump fail rather than shift every component after this one.
|
|
15
12
|
*
|
|
16
13
|
* @author Alex Goldring
|
|
17
14
|
* @copyright Company Named Limited (c) 2026
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GlobalFluidEffectorSerializationAdapter.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/physics/fluid/effector/GlobalFluidEffectorSerializationAdapter.js"],"names":[],"mappings":"AAGA
|
|
1
|
+
{"version":3,"file":"GlobalFluidEffectorSerializationAdapter.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/physics/fluid/effector/GlobalFluidEffectorSerializationAdapter.js"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;GAcG;AACH;;IAEI,kCAA4B;IAG5B;;;OAGG;IACH,uCAFW,mBAAmB,QAe7B;IAED;;;OAGG;IACH,yCAFW,mBAAmB,QAe7B;CACJ;gDA5D+C,gEAAgE;oCAC5E,0BAA0B"}
|
|
@@ -2,19 +2,16 @@ import { BinaryClassSerializationAdapter } from "../../../ecs/storage/binary/Bin
|
|
|
2
2
|
import { GlobalFluidEffector } from "./GlobalFluidEffector.js";
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
* Binary serialization for {@link GlobalFluidEffector}: `force`, `wind`, `drag`,
|
|
6
|
-
* `
|
|
5
|
+
* Binary serialization for {@link GlobalFluidEffector}: `force`, `wind`, `drag`,
|
|
6
|
+
* `turbulence_intensity` and `turbulence_length`, every one an f64.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
* a loaded global advanced from the load makes the same air, to the bit, as the saved one
|
|
10
|
-
* advanced from the save. Written as f64 for that reason; a phase rounded to f32 would put the
|
|
11
|
-
* gust a 1e-7 turn off.
|
|
8
|
+
* ## Version 1
|
|
12
9
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
10
|
+
* Version 0 carried a gust (`gust`, `gust_period` and three phases) where version 1 carries the
|
|
11
|
+
* turbulence; {@link GlobalFluidEffectorSerializationUpgrader_0_1} reads a version-0 stream as
|
|
12
|
+
* version 1, the gust dropped (it has no turbulence equivalent) and no turbulence. A host that
|
|
13
|
+
* loads version-0 saves registers it beside this adapter. The spec's exact byte count is what makes
|
|
14
|
+
* a field added without a bump fail rather than shift every component after this one.
|
|
18
15
|
*
|
|
19
16
|
* @author Alex Goldring
|
|
20
17
|
* @copyright Company Named Limited (c) 2026
|
|
@@ -22,7 +19,7 @@ import { GlobalFluidEffector } from "./GlobalFluidEffector.js";
|
|
|
22
19
|
export class GlobalFluidEffectorSerializationAdapter extends BinaryClassSerializationAdapter {
|
|
23
20
|
|
|
24
21
|
klass = GlobalFluidEffector;
|
|
25
|
-
version =
|
|
22
|
+
version = 1;
|
|
26
23
|
|
|
27
24
|
/**
|
|
28
25
|
* @param {BinaryBuffer} buffer
|
|
@@ -39,12 +36,8 @@ export class GlobalFluidEffectorSerializationAdapter extends BinaryClassSerializ
|
|
|
39
36
|
|
|
40
37
|
buffer.writeFloat64(value.drag);
|
|
41
38
|
|
|
42
|
-
buffer.writeFloat64(value.
|
|
43
|
-
buffer.writeFloat64(value.
|
|
44
|
-
|
|
45
|
-
buffer.writeFloat64(value.gust_phase[0]);
|
|
46
|
-
buffer.writeFloat64(value.gust_phase[1]);
|
|
47
|
-
buffer.writeFloat64(value.gust_phase[2]);
|
|
39
|
+
buffer.writeFloat64(value.turbulence_intensity);
|
|
40
|
+
buffer.writeFloat64(value.turbulence_length);
|
|
48
41
|
}
|
|
49
42
|
|
|
50
43
|
/**
|
|
@@ -62,11 +55,7 @@ export class GlobalFluidEffectorSerializationAdapter extends BinaryClassSerializ
|
|
|
62
55
|
|
|
63
56
|
value.drag = buffer.readFloat64();
|
|
64
57
|
|
|
65
|
-
value.
|
|
66
|
-
value.
|
|
67
|
-
|
|
68
|
-
value.gust_phase[0] = buffer.readFloat64();
|
|
69
|
-
value.gust_phase[1] = buffer.readFloat64();
|
|
70
|
-
value.gust_phase[2] = buffer.readFloat64();
|
|
58
|
+
value.turbulence_intensity = buffer.readFloat64();
|
|
59
|
+
value.turbulence_length = buffer.readFloat64();
|
|
71
60
|
}
|
|
72
61
|
}
|