@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
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { chunk_clipmap_select_finest } from "../shader/chunk/clipmap/chunk_clipmap_select_finest.js";
|
|
2
2
|
import { CodeChunk } from "../shader/compiler/CodeChunk.js";
|
|
3
3
|
import { WIND_FIELD_BAND_WIDTH, WIND_FIELD_CASCADE_LIMIT } from "./WIND_FIELD.js";
|
|
4
|
+
import { chunk_fluid_turbulence } from "./chunk_fluid_turbulence.js";
|
|
4
5
|
import { WIND_FIELD_STRUCT } from "./WIND_FIELD_STRUCT.js";
|
|
5
6
|
|
|
6
7
|
/**
|
|
@@ -8,21 +9,24 @@ import { WIND_FIELD_STRUCT } from "./WIND_FIELD_STRUCT.js";
|
|
|
8
9
|
* `chunk_wind_field_sample` links for a field as it is ({@link WIND_FIELD_UNIFORM} `false`), any
|
|
9
10
|
* number of cascades, none included.
|
|
10
11
|
*
|
|
11
|
-
* Reads `wind_field` ({@link WIND_FIELD_STRUCT}), `wind_field_atlas` and
|
|
12
|
-
* {@link wind_field_add_resources} declares them. `wind_field_sample_in(field, position_ws)` is the
|
|
12
|
+
* Reads `wind_field` ({@link WIND_FIELD_STRUCT}), `wind_field_atlas`, `wind_field_sampler` and the
|
|
13
|
+
* turbulence tile, as {@link wind_field_add_resources} declares them. `wind_field_sample_in(field, position_ws)` is the
|
|
13
14
|
* same read through any table over that atlas, the previous frame's for one.
|
|
14
15
|
*
|
|
15
16
|
* **The read:**
|
|
16
17
|
* - the cascades' windows are walked finest first, each by `clipmap_level_select`, and the first holding
|
|
17
18
|
* the point answers, with how far into its edge band of {@link WIND_FIELD_BAND_WIDTH} cells the point is;
|
|
18
|
-
* -
|
|
19
|
-
*
|
|
19
|
+
* - the far field at the point, `v_far(t, p)`: its mean, plus its turbulence's one tap when it has any
|
|
20
|
+
* (`wind_field_far`), band-limited inside a cascade to the cascade's cell, as the cascade's own far
|
|
21
|
+
* field is, and whole beyond every cascade;
|
|
22
|
+
* - a cascade's read is the atmosphere identity, `v_far(t, p) + tap · k_c`: one trilinear tap of its
|
|
23
|
+
* tile, which holds `v − v_far(t_s,c)` at cell centres, times its decay;
|
|
20
24
|
* - in the band, a second read blends in linearly, all of it on the window's face: the parent's
|
|
21
|
-
* identity read, or `v_far(t)` for the coarsest; deeper than the band, one read;
|
|
22
|
-
* - outside every cascade, `v_far(t)`.
|
|
25
|
+
* identity read, or `v_far(t, p)` for the coarsest; deeper than the band, one read;
|
|
26
|
+
* - outside every cascade, `v_far(t, p)`.
|
|
23
27
|
*
|
|
24
28
|
* The blend and the decay are taken now, at the sample, so a cascade that last stepped ticks ago reads
|
|
25
|
-
* the far field's current
|
|
29
|
+
* the far field's current mean, turbulence and drag. Air at the far field publishes a deviation of 0 and reads
|
|
26
30
|
* back `v_far(t)` exactly, on every cascade, in every band, at every instant: the blend is written as
|
|
27
31
|
* `inner + (outer − inner)·w`, which leaves equal reads as they are.
|
|
28
32
|
*
|
|
@@ -46,10 +50,26 @@ export const chunk_wind_field_sample_cascades = CodeChunk.from(
|
|
|
46
50
|
`
|
|
47
51
|
const WIND_FIELD_BAND_WIDTH: f32 = ${WIND_FIELD_BAND_WIDTH}.0;
|
|
48
52
|
|
|
49
|
-
//
|
|
53
|
+
// the far field at a world point, band-limited to what a lattice of that cell holds: its mean, and its
|
|
54
|
+
// turbulence there when it has any; a cell of 0 reads the tile whole
|
|
55
|
+
fn wind_field_far(field: ptr<uniform, ${WIND_FIELD_STRUCT.wgsl_ref}>, position_ws: vec3<f32>, cell: f32) -> vec3<f32> {
|
|
56
|
+
let sigma = (*field).turbulence_sigma;
|
|
57
|
+
|
|
58
|
+
if (sigma == 0.0) {
|
|
59
|
+
return (*field).far_velocity;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
let lod = fluid_turbulence_lod(cell, (*field).turbulence_inverse_texel);
|
|
63
|
+
|
|
64
|
+
return (*field).far_velocity + sigma * fluid_turbulence_at(position_ws * (*field).turbulence_scale + (*field).turbulence_origin, lod);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// cascade c's identity read at a world point its window holds: its far field at its own level, which is
|
|
68
|
+
// what its tile is a deviation from
|
|
50
69
|
fn wind_field_cascade_read(field: ptr<uniform, ${WIND_FIELD_STRUCT.wgsl_ref}>, c: u32, position_ws: vec3<f32>) -> vec3<f32> {
|
|
51
70
|
let level = (*field).levels[c];
|
|
52
71
|
let cascade = (*field).cascades[c];
|
|
72
|
+
let far = wind_field_far(field, position_ws, level.cell_size);
|
|
53
73
|
|
|
54
74
|
// window-local position in the cascade's cells, which is a texel offset from the tile's content
|
|
55
75
|
let local = position_ws / level.cell_size - vec3<f32>(level.corner);
|
|
@@ -57,7 +77,7 @@ fn wind_field_cascade_read(field: ptr<uniform, ${WIND_FIELD_STRUCT.wgsl_ref}>, c
|
|
|
57
77
|
|
|
58
78
|
let deviation = textureSampleLevel(wind_field_atlas, wind_field_sampler, uvw, 0.0).xyz;
|
|
59
79
|
|
|
60
|
-
return
|
|
80
|
+
return far + deviation * cascade.decay;
|
|
61
81
|
}
|
|
62
82
|
|
|
63
83
|
fn wind_field_sample_in(field: ptr<uniform, ${WIND_FIELD_STRUCT.wgsl_ref}>, position_ws: vec3<f32>) -> vec3<f32> {
|
|
@@ -75,7 +95,7 @@ fn wind_field_sample_in(field: ptr<uniform, ${WIND_FIELD_STRUCT.wgsl_ref}>, posi
|
|
|
75
95
|
}
|
|
76
96
|
|
|
77
97
|
if (selection.level == CLIPMAP_LEVEL_NONE) {
|
|
78
|
-
return (
|
|
98
|
+
return wind_field_far(field, position_ws, 0.0);
|
|
79
99
|
}
|
|
80
100
|
|
|
81
101
|
let inner = wind_field_cascade_read(field, selection.level, position_ws);
|
|
@@ -86,10 +106,12 @@ fn wind_field_sample_in(field: ptr<uniform, ${WIND_FIELD_STRUCT.wgsl_ref}>, posi
|
|
|
86
106
|
|
|
87
107
|
let parent = selection.level + 1u;
|
|
88
108
|
|
|
89
|
-
var outer
|
|
109
|
+
var outer: vec3<f32>;
|
|
90
110
|
|
|
91
111
|
if (parent < count) {
|
|
92
112
|
outer = wind_field_cascade_read(field, parent, position_ws);
|
|
113
|
+
} else {
|
|
114
|
+
outer = wind_field_far(field, position_ws, 0.0);
|
|
93
115
|
}
|
|
94
116
|
|
|
95
117
|
// mix's form, written so that equal reads blend to themselves exactly
|
|
@@ -102,5 +124,6 @@ fn wind_field_sample(position_ws: vec3<f32>) -> vec3<f32> {
|
|
|
102
124
|
`, [
|
|
103
125
|
WIND_FIELD_STRUCT.declaration_chunk,
|
|
104
126
|
chunk_clipmap_select_finest,
|
|
127
|
+
chunk_fluid_turbulence,
|
|
105
128
|
]
|
|
106
129
|
);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `wind_field_sample(position_ws)` in a uniform field ({@link WIND_FIELD_UNIFORM} `true`): one with no
|
|
3
|
-
* cascades, where the wind is `v_far(t)` at every point, which is what the cascaded
|
|
4
|
-
* exactly, having found no window that holds the point.
|
|
3
|
+
* cascades and no turbulence, where the wind is `v_far(t)` at every point, which is what the cascaded
|
|
4
|
+
* read returns there, exactly, having found no window that holds the point.
|
|
5
5
|
*
|
|
6
6
|
* Reads `wind_field.far_velocity` and nothing else; the atlas and its sampler stay bound and unread.
|
|
7
7
|
* `wind_field_sample_in(field, position_ws)` is the same read of any table with no cascades.
|
|
@@ -3,8 +3,8 @@ import { WIND_FIELD_STRUCT } from "./WIND_FIELD_STRUCT.js";
|
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* `wind_field_sample(position_ws)` in a uniform field ({@link WIND_FIELD_UNIFORM} `true`): one with no
|
|
6
|
-
* cascades, where the wind is `v_far(t)` at every point, which is what the cascaded
|
|
7
|
-
* exactly, having found no window that holds the point.
|
|
6
|
+
* cascades and no turbulence, where the wind is `v_far(t)` at every point, which is what the cascaded
|
|
7
|
+
* read returns there, exactly, having found no window that holds the point.
|
|
8
8
|
*
|
|
9
9
|
* Reads `wind_field.far_velocity` and nothing else; the atlas and its sampler stay bound and unread.
|
|
10
10
|
* `wind_field_sample_in(field, position_ws)` is the same read of any table with no cascades.
|
|
@@ -3,10 +3,12 @@
|
|
|
3
3
|
* `chunk_wind_field_sample` reads:
|
|
4
4
|
* - `wind_field`: the uniform {@link WIND_FIELD_STRUCT};
|
|
5
5
|
* - `wind_field_atlas`: the tiles, `texture_3d<f32>`, filterable;
|
|
6
|
-
* - `wind_field_sampler`: linear and clamped, by default the field's own
|
|
7
|
-
*
|
|
6
|
+
* - `wind_field_sampler`: linear and clamped, by default the field's own;
|
|
7
|
+
* - `fluid_turbulence`, `fluid_turbulence_sampler`: the far field's turbulence tile and its repeating
|
|
8
|
+
* sampler (`fluid_turbulence_add_resources`), the sampler by default.
|
|
8
9
|
*
|
|
9
|
-
*
|
|
10
|
+
* A host binds the uniform and the two textures (`GPUSceneWind.bind`). One uniform, two textures, two
|
|
11
|
+
* samplers, and no storage buffer.
|
|
10
12
|
*
|
|
11
13
|
* @param {import("../shader/resource/ShaderResourceGroupDescriptor.js").ShaderResourceGroupDescriptor} group
|
|
12
14
|
* @returns {import("../shader/resource/ShaderResourceGroupDescriptor.js").ShaderResourceGroupDescriptor} group
|
|
@@ -17,7 +19,7 @@ export function wind_field_add_resources(group: import("../shader/resource/Shade
|
|
|
17
19
|
* samples both (`chunk_wind_field_sample_previous`): `wind_field_previous`, a second uniform
|
|
18
20
|
* {@link WIND_FIELD_STRUCT} over the same atlas. `GPUSceneWind.bind_history` fills them.
|
|
19
21
|
*
|
|
20
|
-
* Two uniforms,
|
|
22
|
+
* Two uniforms, two textures, two samplers, and no storage buffer.
|
|
21
23
|
*
|
|
22
24
|
* @param {import("../shader/resource/ShaderResourceGroupDescriptor.js").ShaderResourceGroupDescriptor} group
|
|
23
25
|
* @returns {import("../shader/resource/ShaderResourceGroupDescriptor.js").ShaderResourceGroupDescriptor} group
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wind_field_add_resources.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/wind/wind_field_add_resources.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wind_field_add_resources.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/wind/wind_field_add_resources.js"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AACH,gDAHW,OAAO,qDAAqD,EAAE,6BAA6B,GACzF,OAAO,qDAAqD,EAAE,6BAA6B,CAOvG;AAED;;;;;;;;;GASG;AACH,wDAHW,OAAO,qDAAqD,EAAE,6BAA6B,GACzF,OAAO,qDAAqD,EAAE,6BAA6B,CAKvG"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { fluid_turbulence_add_resources } from "./chunk_fluid_turbulence.js";
|
|
1
2
|
import { WIND_FIELD_SAMPLER_DESCRIPTOR } from "./WIND_FIELD.js";
|
|
2
3
|
import { WIND_FIELD_STRUCT } from "./WIND_FIELD_STRUCT.js";
|
|
3
4
|
|
|
@@ -6,19 +7,21 @@ import { WIND_FIELD_STRUCT } from "./WIND_FIELD_STRUCT.js";
|
|
|
6
7
|
* `chunk_wind_field_sample` reads:
|
|
7
8
|
* - `wind_field`: the uniform {@link WIND_FIELD_STRUCT};
|
|
8
9
|
* - `wind_field_atlas`: the tiles, `texture_3d<f32>`, filterable;
|
|
9
|
-
* - `wind_field_sampler`: linear and clamped, by default the field's own
|
|
10
|
-
*
|
|
10
|
+
* - `wind_field_sampler`: linear and clamped, by default the field's own;
|
|
11
|
+
* - `fluid_turbulence`, `fluid_turbulence_sampler`: the far field's turbulence tile and its repeating
|
|
12
|
+
* sampler (`fluid_turbulence_add_resources`), the sampler by default.
|
|
11
13
|
*
|
|
12
|
-
*
|
|
14
|
+
* A host binds the uniform and the two textures (`GPUSceneWind.bind`). One uniform, two textures, two
|
|
15
|
+
* samplers, and no storage buffer.
|
|
13
16
|
*
|
|
14
17
|
* @param {import("../shader/resource/ShaderResourceGroupDescriptor.js").ShaderResourceGroupDescriptor} group
|
|
15
18
|
* @returns {import("../shader/resource/ShaderResourceGroupDescriptor.js").ShaderResourceGroupDescriptor} group
|
|
16
19
|
*/
|
|
17
20
|
export function wind_field_add_resources(group) {
|
|
18
|
-
return group
|
|
21
|
+
return fluid_turbulence_add_resources(group
|
|
19
22
|
.addUniform("wind_field", WIND_FIELD_STRUCT)
|
|
20
23
|
.addTexture("wind_field_atlas", "float", "3d")
|
|
21
|
-
.addSampler("wind_field_sampler", "filtering", WIND_FIELD_SAMPLER_DESCRIPTOR);
|
|
24
|
+
.addSampler("wind_field_sampler", "filtering", WIND_FIELD_SAMPLER_DESCRIPTOR));
|
|
22
25
|
}
|
|
23
26
|
|
|
24
27
|
/**
|
|
@@ -26,7 +29,7 @@ export function wind_field_add_resources(group) {
|
|
|
26
29
|
* samples both (`chunk_wind_field_sample_previous`): `wind_field_previous`, a second uniform
|
|
27
30
|
* {@link WIND_FIELD_STRUCT} over the same atlas. `GPUSceneWind.bind_history` fills them.
|
|
28
31
|
*
|
|
29
|
-
* Two uniforms,
|
|
32
|
+
* Two uniforms, two textures, two samplers, and no storage buffer.
|
|
30
33
|
*
|
|
31
34
|
* @param {import("../shader/resource/ShaderResourceGroupDescriptor.js").ShaderResourceGroupDescriptor} group
|
|
32
35
|
* @returns {import("../shader/resource/ShaderResourceGroupDescriptor.js").ShaderResourceGroupDescriptor} group
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Age a trail by one frame and put its head where the entity is.
|
|
3
|
-
*
|
|
4
|
-
* **Renderer-neutral**, like {@link seed_trail_tube}: what a backend does afterwards is turn the
|
|
5
|
-
* knots into vertices, and the knots themselves are the same either way.
|
|
6
|
-
*
|
|
7
|
-
* {@link Trail3DFlags.BoundsNeedUpdate} is left set for the caller, because what wants bounds
|
|
8
|
-
* differs by renderer — the legacy path keeps a CPU BVH of trails and Shade culls on the GPU.
|
|
9
|
-
*
|
|
10
|
-
* @param {Trail3D} trail
|
|
11
|
-
* @param {Transform} transform
|
|
12
|
-
* @param {number} timeDelta seconds
|
|
13
|
-
* @param {TubeXFixedPhysicsSimulator} simulator ages the knots and fades them; stateless, so whose
|
|
14
|
-
* it is does not matter, only that the caller owns one
|
|
15
|
-
* @returns {void}
|
|
16
|
-
*/
|
|
17
|
-
export function advance_trail(trail: Trail3D, transform: Transform, timeDelta: number, simulator: TubeXFixedPhysicsSimulator): void;
|
|
18
|
-
//# sourceMappingURL=advance_trail.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"advance_trail.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/trail3d/advance_trail.js"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;;GAeG;AACH,+EALW,MAAM,0CAGJ,IAAI,CAiBhB"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import Vector3 from "../../../../core/geom/Vector3.js";
|
|
2
|
-
import { max2 } from "../../../../core/math/max2.js";
|
|
3
|
-
import { compute_trail_head_position } from "./trail_head_position.js";
|
|
4
|
-
import { Trail3DFlags } from "./Trail3DFlags.js";
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* @type {Vector3}
|
|
8
|
-
*/
|
|
9
|
-
const v3_head = new Vector3();
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Age a trail by one frame and put its head where the entity is.
|
|
13
|
-
*
|
|
14
|
-
* **Renderer-neutral**, like {@link seed_trail_tube}: what a backend does afterwards is turn the
|
|
15
|
-
* knots into vertices, and the knots themselves are the same either way.
|
|
16
|
-
*
|
|
17
|
-
* {@link Trail3DFlags.BoundsNeedUpdate} is left set for the caller, because what wants bounds
|
|
18
|
-
* differs by renderer — the legacy path keeps a CPU BVH of trails and Shade culls on the GPU.
|
|
19
|
-
*
|
|
20
|
-
* @param {Trail3D} trail
|
|
21
|
-
* @param {Transform} transform
|
|
22
|
-
* @param {number} timeDelta seconds
|
|
23
|
-
* @param {TubeXFixedPhysicsSimulator} simulator ages the knots and fades them; stateless, so whose
|
|
24
|
-
* it is does not matter, only that the caller owns one
|
|
25
|
-
* @returns {void}
|
|
26
|
-
*/
|
|
27
|
-
export function advance_trail(trail, transform, timeDelta, simulator) {
|
|
28
|
-
const tube = trail.tube;
|
|
29
|
-
|
|
30
|
-
compute_trail_head_position(v3_head, trail, transform);
|
|
31
|
-
|
|
32
|
-
trail.timeSinceLastUpdate += timeDelta;
|
|
33
|
-
trail.time += timeDelta;
|
|
34
|
-
|
|
35
|
-
const age_offset = max2(0, trail.maxAge - trail.time);
|
|
36
|
-
|
|
37
|
-
simulator.update(tube, trail.maxAge, timeDelta, trail.color.w, trail.fade);
|
|
38
|
-
|
|
39
|
-
if (trail.getFlag(Trail3DFlags.Spawning)) {
|
|
40
|
-
trail.updateHead(v3_head.x, v3_head.y, v3_head.z, age_offset);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Build a trail's knots and collapse them onto the head, ready to be drawn by whichever renderer
|
|
3
|
-
* owns the entity.
|
|
4
|
-
*
|
|
5
|
-
* **Renderer-neutral on purpose.** A trail is a simulation with a picture attached, and the
|
|
6
|
-
* simulation is the same one under either backend — what differs is only what the knots are turned
|
|
7
|
-
* into. Two copies of this would be two trails that age differently.
|
|
8
|
-
*
|
|
9
|
-
* @param {Trail3D} trail
|
|
10
|
-
* @param {Transform} transform
|
|
11
|
-
* @returns {void}
|
|
12
|
-
*/
|
|
13
|
-
export function seed_trail_tube(trail: Trail3D, transform: Transform): void;
|
|
14
|
-
//# sourceMappingURL=seed_trail_tube.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"seed_trail_tube.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/trail3d/seed_trail_tube.js"],"names":[],"mappings":"AAwBA;;;;;;;;;;;GAWG;AACH,uEAFa,IAAI,CAwChB"}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import Vector3 from "../../../../core/geom/Vector3.js";
|
|
2
|
-
import { clamp } from "../../../../core/math/clamp.js";
|
|
3
|
-
import { TUBE_ATTRIBUTE_ADDRESS_AGE, TUBE_ATTRIBUTE_ADDRESS_UV_V } from "../../trail/tube/tube_attributes_spec.js";
|
|
4
|
-
import { compute_trail_head_position } from "./trail_head_position.js";
|
|
5
|
-
import { Trail3DFlags } from "./Trail3DFlags.js";
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Knots laid down per second of trail life. The tube is a fixed-capacity ring, so this is what
|
|
9
|
-
* turns an age into a length.
|
|
10
|
-
*
|
|
11
|
-
* @type {number}
|
|
12
|
-
*/
|
|
13
|
-
const SEGMENTS_PER_SECOND = 60;
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* @type {number}
|
|
17
|
-
*/
|
|
18
|
-
const MAX_SEGMENTS = 1024;
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* @type {Vector3}
|
|
22
|
-
*/
|
|
23
|
-
const v3_head = new Vector3();
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Build a trail's knots and collapse them onto the head, ready to be drawn by whichever renderer
|
|
27
|
-
* owns the entity.
|
|
28
|
-
*
|
|
29
|
-
* **Renderer-neutral on purpose.** A trail is a simulation with a picture attached, and the
|
|
30
|
-
* simulation is the same one under either backend — what differs is only what the knots are turned
|
|
31
|
-
* into. Two copies of this would be two trails that age differently.
|
|
32
|
-
*
|
|
33
|
-
* @param {Trail3D} trail
|
|
34
|
-
* @param {Transform} transform
|
|
35
|
-
* @returns {void}
|
|
36
|
-
*/
|
|
37
|
-
export function seed_trail_tube(trail, transform) {
|
|
38
|
-
const segment_count = Math.ceil(clamp(trail.maxAge * SEGMENTS_PER_SECOND, 2, MAX_SEGMENTS));
|
|
39
|
-
|
|
40
|
-
trail.build(segment_count);
|
|
41
|
-
|
|
42
|
-
const tube = trail.tube;
|
|
43
|
-
|
|
44
|
-
trail.time = 0;
|
|
45
|
-
trail.trailingIndex = 0;
|
|
46
|
-
trail.timeSinceLastUpdate = 0;
|
|
47
|
-
trail.distanceSinceLastUpdate = 0;
|
|
48
|
-
|
|
49
|
-
// seed exactly where the per-frame update will place the head, or the first head move bridges
|
|
50
|
-
// the gap with a visible segment
|
|
51
|
-
compute_trail_head_position(v3_head, trail, transform);
|
|
52
|
-
|
|
53
|
-
const position_x = v3_head.x;
|
|
54
|
-
const position_y = v3_head.y;
|
|
55
|
-
const position_z = v3_head.z;
|
|
56
|
-
|
|
57
|
-
const color = trail.color;
|
|
58
|
-
|
|
59
|
-
// initialize knots. setCount has already seeded a valid default frame on every knot, so the
|
|
60
|
-
// freshly built (collapsed) tube is well-formed — a zero-length, invisible point — until the
|
|
61
|
-
// head starts moving and supplies real tangents.
|
|
62
|
-
for (let i = 0; i < segment_count; i++) {
|
|
63
|
-
const f = i / (segment_count - 1);
|
|
64
|
-
|
|
65
|
-
tube.setKnotColor(i, color.x, color.y, color.z);
|
|
66
|
-
tube.setKnotPosition(i, position_x, position_y, position_z);
|
|
67
|
-
tube.setKnotThickness(i, trail.width);
|
|
68
|
-
tube.setKnotAttribute_Scalar(i, TUBE_ATTRIBUTE_ADDRESS_UV_V, f);
|
|
69
|
-
// seeded age = maxAge means "already expired", so alpha follows the fade law: 0
|
|
70
|
-
tube.setKnotAlpha(i, 0);
|
|
71
|
-
tube.setKnotAttribute_Scalar(i, TUBE_ATTRIBUTE_ADDRESS_AGE, trail.maxAge);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
trail.setFlag(Trail3DFlags.Built);
|
|
75
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* World point the trail's head tracks: the component's {@link Trail3D#offset}, which lives in the
|
|
3
|
-
* entity's LOCAL frame, carried through the entity's full transform — so it rides the entity's
|
|
4
|
-
* rotation and scales with it.
|
|
5
|
-
*
|
|
6
|
-
* Seeding and the per-frame head update must agree on this, whichever renderer is drawing. If they
|
|
7
|
-
* disagree, the freshly built tube sits collapsed somewhere the head never visits, and the head's
|
|
8
|
-
* first move draws a segment bridging the two — a one-frame streak as long as the disagreement, in
|
|
9
|
-
* a direction fixed by the offset rather than by travel.
|
|
10
|
-
*
|
|
11
|
-
* @param {Vector3} result
|
|
12
|
-
* @param {Trail3D} trail
|
|
13
|
-
* @param {Transform} transform
|
|
14
|
-
* @returns {void}
|
|
15
|
-
*/
|
|
16
|
-
export function compute_trail_head_position(result: Vector3, trail: Trail3D, transform: Transform): void;
|
|
17
|
-
//# sourceMappingURL=trail_head_position.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"trail_head_position.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/trail3d/trail_head_position.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,oGAFa,IAAI,CAKhB"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* World point the trail's head tracks: the component's {@link Trail3D#offset}, which lives in the
|
|
3
|
-
* entity's LOCAL frame, carried through the entity's full transform — so it rides the entity's
|
|
4
|
-
* rotation and scales with it.
|
|
5
|
-
*
|
|
6
|
-
* Seeding and the per-frame head update must agree on this, whichever renderer is drawing. If they
|
|
7
|
-
* disagree, the freshly built tube sits collapsed somewhere the head never visits, and the head's
|
|
8
|
-
* first move draws a segment bridging the two — a one-frame streak as long as the disagreement, in
|
|
9
|
-
* a direction fixed by the offset rather than by travel.
|
|
10
|
-
*
|
|
11
|
-
* @param {Vector3} result
|
|
12
|
-
* @param {Trail3D} trail
|
|
13
|
-
* @param {Transform} transform
|
|
14
|
-
* @returns {void}
|
|
15
|
-
*/
|
|
16
|
-
export function compute_trail_head_position(result, trail, transform) {
|
|
17
|
-
result.copy(trail.offset);
|
|
18
|
-
result.applyMatrix4(transform.matrix);
|
|
19
|
-
}
|
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Dynamic, non-allocating 3D tube geometry — the volumetric analogue of
|
|
3
|
-
* {@link RibbonX}.
|
|
4
|
-
*
|
|
5
|
-
* A tube is a ring buffer of `count` KNOTS along a centre-line. Each knot owns a
|
|
6
|
-
* ring of `radial + 1` vertices: the extra vertex duplicates vertex 0 so the UV
|
|
7
|
-
* seam (u = 0 meeting u = 1) closes cleanly when the texture wraps the tube.
|
|
8
|
-
* Vertices are extruded in the vertex shader from the knot's stored tangent
|
|
9
|
-
* frame, so the CPU only ever writes per-knot data (centre, frame, colour, …) —
|
|
10
|
-
* never per-triangle.
|
|
11
|
-
*
|
|
12
|
-
* Like {@link RibbonX} the geometry is a fixed-capacity ring: {@link rotate}
|
|
13
|
-
* recycles the oldest knot as the new head and rewrites a single segment's worth
|
|
14
|
-
* of indices, so steady-state updates allocate nothing.
|
|
15
|
-
*
|
|
16
|
-
* **The knots are the tube; a drawable is what a renderer makes of them.** Nothing
|
|
17
|
-
* here belongs to a renderer: {@link TubeXGeometry} wraps this data in three
|
|
18
|
-
* attribute views for the legacy path, and the Shade path extrudes the same rows
|
|
19
|
-
* into dynamic-mesh vertices. The three versions below are what tells either one
|
|
20
|
-
* that its copy is stale.
|
|
21
|
-
*/
|
|
22
|
-
export class TubeX {
|
|
23
|
-
/**
|
|
24
|
-
* The knot rows, interleaved per {@link tube_attributes_spec} — `vertex_count`
|
|
25
|
-
* records of `bytes_per_vertex` bytes, one per ring vertex.
|
|
26
|
-
*
|
|
27
|
-
* @returns {RowFirstTable}
|
|
28
|
-
*/
|
|
29
|
-
get table(): RowFirstTable;
|
|
30
|
-
/**
|
|
31
|
-
* Triangle indices over the ring vertices, sized by {@link setCount} and
|
|
32
|
-
* rewritten one segment at a time by {@link rotate}.
|
|
33
|
-
*
|
|
34
|
-
* @returns {Uint32Array}
|
|
35
|
-
*/
|
|
36
|
-
get indices(): Uint32Array;
|
|
37
|
-
/**
|
|
38
|
-
* @returns {number} bytes one ring vertex occupies in {@link table}
|
|
39
|
-
*/
|
|
40
|
-
get bytes_per_vertex(): number;
|
|
41
|
-
/**
|
|
42
|
-
* @returns {number} ring vertices across the whole tube — `count * (radial + 1)`
|
|
43
|
-
*/
|
|
44
|
-
get vertex_count(): number;
|
|
45
|
-
/**
|
|
46
|
-
* @returns {number}
|
|
47
|
-
*/
|
|
48
|
-
get data_version(): number;
|
|
49
|
-
/**
|
|
50
|
-
* @returns {number}
|
|
51
|
-
*/
|
|
52
|
-
get index_version(): number;
|
|
53
|
-
/**
|
|
54
|
-
* @returns {number}
|
|
55
|
-
*/
|
|
56
|
-
get layout_version(): number;
|
|
57
|
-
/**
|
|
58
|
-
* @returns {number} number of knots
|
|
59
|
-
*/
|
|
60
|
-
getCount(): number;
|
|
61
|
-
/**
|
|
62
|
-
* @returns {number} radial subdivisions
|
|
63
|
-
*/
|
|
64
|
-
getRadialSegments(): number;
|
|
65
|
-
getHeadIndex(): number;
|
|
66
|
-
getTailIndex(): number;
|
|
67
|
-
/**
|
|
68
|
-
* @param {number[]|Float32Array|Float64Array} result
|
|
69
|
-
* @param {number} knot_index
|
|
70
|
-
*/
|
|
71
|
-
getKnotPosition(result: number[] | Float32Array | Float64Array, knot_index: number): void;
|
|
72
|
-
/**
|
|
73
|
-
* Read the stored ring normal of a knot. Used by the head to parallel-transport
|
|
74
|
-
* its frame from the previous knot.
|
|
75
|
-
* @param {number[]|Float32Array|Float64Array} result
|
|
76
|
-
* @param {number} knot_index
|
|
77
|
-
*/
|
|
78
|
-
getKnotNormal(result: number[] | Float32Array | Float64Array, knot_index: number): void;
|
|
79
|
-
/**
|
|
80
|
-
* Read the stored ring binormal of a knot.
|
|
81
|
-
* @param {number[]|Float32Array|Float64Array} result
|
|
82
|
-
* @param {number} knot_index
|
|
83
|
-
*/
|
|
84
|
-
getKnotBinormal(result: number[] | Float32Array | Float64Array, knot_index: number): void;
|
|
85
|
-
/**
|
|
86
|
-
* Read a scalar attribute of a knot. Every vertex of the ring carries the same
|
|
87
|
-
* value, so the first one answers for the knot.
|
|
88
|
-
*
|
|
89
|
-
* @param {number} knot_index
|
|
90
|
-
* @param {number} attribute_index
|
|
91
|
-
* @returns {number}
|
|
92
|
-
*/
|
|
93
|
-
getKnotAttribute_Scalar(knot_index: number, attribute_index: number): number;
|
|
94
|
-
/**
|
|
95
|
-
* Write a vec3 attribute to all ring vertices of a knot.
|
|
96
|
-
* @param {number} knot_index
|
|
97
|
-
* @param {number} attribute_index
|
|
98
|
-
* @param {number} x
|
|
99
|
-
* @param {number} y
|
|
100
|
-
* @param {number} z
|
|
101
|
-
*/
|
|
102
|
-
setKnotAttribute_Vector3(knot_index: number, attribute_index: number, x: number, y: number, z: number): void;
|
|
103
|
-
/**
|
|
104
|
-
* Write a scalar attribute to all ring vertices of a knot.
|
|
105
|
-
* @param {number} knot_index
|
|
106
|
-
* @param {number} attribute_index
|
|
107
|
-
* @param {number} value
|
|
108
|
-
*/
|
|
109
|
-
setKnotAttribute_Scalar(knot_index: number, attribute_index: number, value: number): void;
|
|
110
|
-
/**
|
|
111
|
-
* Add `delta` to a scalar attribute on every ring vertex of a knot.
|
|
112
|
-
* @param {number} knot_index
|
|
113
|
-
* @param {number} attribute_index
|
|
114
|
-
* @param {number} delta
|
|
115
|
-
* @returns {number} incremented value
|
|
116
|
-
*/
|
|
117
|
-
incrementKnotAttribute_Scalar(knot_index: number, attribute_index: number, delta: number): number;
|
|
118
|
-
/**
|
|
119
|
-
* @param {number} knot_index
|
|
120
|
-
* @param {number} x
|
|
121
|
-
* @param {number} y
|
|
122
|
-
* @param {number} z
|
|
123
|
-
*/
|
|
124
|
-
setKnotPosition(knot_index: number, x: number, y: number, z: number): void;
|
|
125
|
-
/**
|
|
126
|
-
* Set the orienting tangent frame of a knot. `nx,ny,nz` and `bx,by,bz` must be
|
|
127
|
-
* unit vectors, mutually orthogonal and perpendicular to the local tangent.
|
|
128
|
-
* @param {number} knot_index
|
|
129
|
-
* @param {number} nx
|
|
130
|
-
* @param {number} ny
|
|
131
|
-
* @param {number} nz
|
|
132
|
-
* @param {number} bx
|
|
133
|
-
* @param {number} by
|
|
134
|
-
* @param {number} bz
|
|
135
|
-
*/
|
|
136
|
-
setKnotFrame(knot_index: number, nx: number, ny: number, nz: number, bx: number, by: number, bz: number): void;
|
|
137
|
-
/**
|
|
138
|
-
* Linear colour, stored at half precision. Not limited to 0..1: values above 1 are HDR.
|
|
139
|
-
*
|
|
140
|
-
* @param {number} knot_index
|
|
141
|
-
* @param {number} r
|
|
142
|
-
* @param {number} g
|
|
143
|
-
* @param {number} b
|
|
144
|
-
*/
|
|
145
|
-
setKnotColor(knot_index: number, r: number, g: number, b: number): void;
|
|
146
|
-
/**
|
|
147
|
-
* @param {number} knot_index
|
|
148
|
-
* @param {number} value
|
|
149
|
-
*/
|
|
150
|
-
setKnotAlpha(knot_index: number, value: number): void;
|
|
151
|
-
/**
|
|
152
|
-
* @param {number} knot_index
|
|
153
|
-
* @param {number} value tube diameter
|
|
154
|
-
*/
|
|
155
|
-
setKnotThickness(knot_index: number, value: number): void;
|
|
156
|
-
/**
|
|
157
|
-
* @param {number} count number of knots (>= 2)
|
|
158
|
-
* @param {number} [radial] radial subdivisions (>= 3)
|
|
159
|
-
*/
|
|
160
|
-
setCount(count: number, radial?: number): void;
|
|
161
|
-
/**
|
|
162
|
-
* NOTE: takes tube thickness into account.
|
|
163
|
-
* @param {AABB3|ArrayLike<number>} result
|
|
164
|
-
*/
|
|
165
|
-
computeBoundingBox(result: AABB3 | ArrayLike<number>): void;
|
|
166
|
-
/**
|
|
167
|
-
* Recycle the oldest knot as the new head, in O(radial). Mirrors
|
|
168
|
-
* {@link RibbonX#rotate}: the head/tail pointers decrement together (preserving
|
|
169
|
-
* `head === (tail + 1) mod count`), and the single tail segment's indices are
|
|
170
|
-
* rewritten to bridge the previous head's ring to the recycled (new head) ring.
|
|
171
|
-
*/
|
|
172
|
-
rotate(): void;
|
|
173
|
-
#private;
|
|
174
|
-
}
|
|
175
|
-
export namespace TubeX {
|
|
176
|
-
export { DEFAULT_RADIAL_SEGMENTS };
|
|
177
|
-
}
|
|
178
|
-
import { RowFirstTable } from "../../../../core/collection/table/RowFirstTable.js";
|
|
179
|
-
/**
|
|
180
|
-
* Default number of radial subdivisions around the tube. Overridable per-tube
|
|
181
|
-
* via {@link TubeX#setCount}; never hard-coded into the geometry.
|
|
182
|
-
* @type {number}
|
|
183
|
-
*/
|
|
184
|
-
declare const DEFAULT_RADIAL_SEGMENTS: number;
|
|
185
|
-
export {};
|
|
186
|
-
//# sourceMappingURL=TubeX.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TubeX.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/trail/tube/TubeX.js"],"names":[],"mappings":"AA+BA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH;IAoEI;;;;;OAKG;IACH,2BAEC;IAED;;;;;OAKG;IACH,2BAEC;IAED;;OAEG;IACH,+BAEC;IAED;;OAEG;IACH,2BAEC;IAED;;OAEG;IACH,2BAEC;IAED;;OAEG;IACH,4BAEC;IAED;;OAEG;IACH,6BAEC;IAED;;OAEG;IACH,YAFa,MAAM,CAIlB;IAED;;OAEG;IACH,qBAFa,MAAM,CAIlB;IAED,uBAEC;IAED,uBAEC;IAiGD;;;OAGG;IACH,wBAHW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,cAClC,MAAM,QAShB;IAED;;;;;OAKG;IACH,sBAHW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,cAClC,MAAM,QAShB;IAED;;;;OAIG;IACH,wBAHW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,cAClC,MAAM,QAShB;IAED;;;;;;;OAOG;IACH,oCAJW,MAAM,mBACN,MAAM,GACJ,MAAM,CAIlB;IAED;;;;;;;OAOG;IACH,qCANW,MAAM,mBACN,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,QAehB;IAED;;;;;OAKG;IACH,oCAJW,MAAM,mBACN,MAAM,SACN,MAAM,QAYhB;IAED;;;;;;OAMG;IACH,0CALW,MAAM,mBACN,MAAM,SACN,MAAM,GACJ,MAAM,CAgBlB;IAED;;;;;OAKG;IACH,4BALW,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,QAMhB;IAED;;;;;;;;;;OAUG;IACH,yBARW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,QAKhB;IAED;;;;;;;OAOG;IACH,yBALW,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,QAMhB;IAED;;;OAGG;IACH,yBAHW,MAAM,SACN,MAAM,QAIhB;IAED;;;OAGG;IACH,6BAHW,MAAM,SACN,MAAM,QAIhB;IAED;;;OAGG;IACH,gBAHW,MAAM,WACN,MAAM,QAuChB;IAED;;;OAGG;IACH,2BAFW,QAAM,UAAU,MAAM,CAAC,QA4BjC;IAED;;;;;OAKG;IACH,eAsBC;;CACJ;;;;8BA3jB6B,oDAAoD;AAgBlF;;;;GAIG;AACH,uCAFU,MAAM,CAEkB"}
|