@woosh/meep-engine 3.67.0 → 3.69.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 +45 -0
- 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/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/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/GraphicsEngine.d.ts.map +1 -1
- package/src/engine/graphics3/GraphicsEngine.js +4 -9
- 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/graphics3/load_cube_environment.js +3 -3
- 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/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/shade/playground/probe_clipmap/index.html +43 -0
- package/src/shade/playground/probe_clipmap/main.d.ts.map +1 -1
- package/src/shade/playground/probe_clipmap/main.js +29 -0
- 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/renderer/Renderer.d.ts +7 -0
- package/src/shade/renderer/Renderer.d.ts.map +1 -1
- package/src/shade/renderer/Renderer.js +213 -15
- package/src/shade/renderer/ShadeIndirectLightingMode.d.ts +1 -0
- package/src/shade/renderer/ShadeIndirectLightingMode.js +9 -0
- 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/atmosphere/ATMOSPHERE_PARAMETERS_STRUCT.d.ts +22 -0
- package/src/shade/renderer/atmosphere/ATMOSPHERE_PARAMETERS_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/atmosphere/ATMOSPHERE_PARAMETERS_STRUCT.js +160 -0
- package/src/shade/renderer/atmosphere/ATMOSPHERE_UNIT_SCALE.d.ts +45 -0
- package/src/shade/renderer/atmosphere/ATMOSPHERE_UNIT_SCALE.d.ts.map +1 -0
- package/src/shade/renderer/atmosphere/ATMOSPHERE_UNIT_SCALE.js +57 -0
- package/src/shade/renderer/atmosphere/GPUSky.d.ts +23 -8
- package/src/shade/renderer/atmosphere/GPUSky.d.ts.map +1 -1
- package/src/shade/renderer/atmosphere/GPUSky.js +91 -34
- package/src/shade/renderer/atmosphere/SAMPLER_SKY_LUT.d.ts +17 -0
- package/src/shade/renderer/atmosphere/SAMPLER_SKY_LUT.d.ts.map +1 -1
- package/src/shade/renderer/atmosphere/SAMPLER_SKY_LUT.js +55 -25
- package/src/shade/renderer/atmosphere/SceneAtmosphere.d.ts +164 -0
- package/src/shade/renderer/atmosphere/SceneAtmosphere.d.ts.map +1 -0
- package/src/shade/renderer/atmosphere/SceneAtmosphere.js +308 -0
- package/src/shade/renderer/atmosphere/chunk_get_multiscatter_values.d.ts +3 -12
- package/src/shade/renderer/atmosphere/chunk_get_multiscatter_values.d.ts.map +1 -1
- package/src/shade/renderer/atmosphere/chunk_get_multiscatter_values.js +52 -89
- package/src/shade/renderer/atmosphere/chunk_raymarch_sky_scattering.d.ts +14 -0
- package/src/shade/renderer/atmosphere/chunk_raymarch_sky_scattering.d.ts.map +1 -0
- package/src/shade/renderer/atmosphere/chunk_raymarch_sky_scattering.js +103 -0
- package/src/shade/renderer/atmosphere/chunk_sample_multiscatter_lut.d.ts +10 -4
- package/src/shade/renderer/atmosphere/chunk_sample_multiscatter_lut.d.ts.map +1 -1
- package/src/shade/renderer/atmosphere/chunk_sample_multiscatter_lut.js +95 -57
- package/src/shade/renderer/atmosphere/chunk_sample_transmittance_lut.d.ts +10 -14
- package/src/shade/renderer/atmosphere/chunk_sample_transmittance_lut.d.ts.map +1 -1
- package/src/shade/renderer/atmosphere/chunk_sample_transmittance_lut.js +97 -69
- package/src/shade/renderer/atmosphere/chunk_sky_irradiance_lut_encode_uv.d.ts +17 -0
- package/src/shade/renderer/atmosphere/chunk_sky_irradiance_lut_encode_uv.d.ts.map +1 -1
- package/src/shade/renderer/atmosphere/chunk_sky_irradiance_lut_encode_uv.js +117 -48
- package/src/shade/renderer/atmosphere/chunk_sky_lut_compute_uv.d.ts +8 -0
- package/src/shade/renderer/atmosphere/chunk_sky_lut_compute_uv.d.ts.map +1 -1
- package/src/shade/renderer/atmosphere/chunk_sky_lut_compute_uv.js +65 -35
- package/src/shade/renderer/atmosphere/compute_mie_absorption.d.ts +2 -1
- package/src/shade/renderer/atmosphere/compute_mie_absorption.d.ts.map +1 -1
- package/src/shade/renderer/atmosphere/compute_mie_absorption.js +6 -6
- package/src/shade/renderer/atmosphere/resolve_atmosphere_sun.d.ts +41 -0
- package/src/shade/renderer/atmosphere/resolve_atmosphere_sun.d.ts.map +1 -0
- package/src/shade/renderer/atmosphere/resolve_atmosphere_sun.js +123 -0
- package/src/shade/renderer/atmosphere/shader_multiscatter_lut.d.ts.map +1 -1
- package/src/shade/renderer/atmosphere/shader_multiscatter_lut.js +21 -64
- package/src/shade/renderer/atmosphere/shader_sky_irradiance_lut.d.ts +6 -2
- package/src/shade/renderer/atmosphere/shader_sky_irradiance_lut.d.ts.map +1 -1
- package/src/shade/renderer/atmosphere/shader_sky_irradiance_lut.js +55 -179
- package/src/shade/renderer/atmosphere/shader_sky_view_lut.d.ts +7 -0
- package/src/shade/renderer/atmosphere/shader_sky_view_lut.d.ts.map +1 -0
- package/src/shade/renderer/atmosphere/shader_sky_view_lut.js +111 -0
- package/src/shade/renderer/atmosphere/shader_transmittance_lut.d.ts +0 -1
- package/src/shade/renderer/atmosphere/shader_transmittance_lut.d.ts.map +1 -1
- package/src/shade/renderer/atmosphere/shader_transmittance_lut.js +68 -79
- package/src/shade/renderer/deferred/shader_background.js +1 -1
- package/src/shade/renderer/deferred/shader_background_sky.d.ts +5 -0
- package/src/shade/renderer/deferred/shader_background_sky.d.ts.map +1 -0
- package/src/shade/renderer/deferred/shader_background_sky.js +130 -0
- 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/deferred/tonemap/chunk_tonemap_purkinje.d.ts +2 -1
- package/src/shade/renderer/deferred/tonemap/chunk_tonemap_purkinje.d.ts.map +1 -1
- package/src/shade/renderer/deferred/tonemap/chunk_tonemap_purkinje.js +6 -2
- 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/extension/ViewTextures.d.ts +3 -2
- package/src/shade/renderer/extension/ViewTextures.d.ts.map +1 -1
- package/src/shade/renderer/extension/ViewTextures.js +3 -2
- package/src/shade/renderer/fluid/GPUFluidCascade.d.ts +3 -3
- package/src/shade/renderer/fluid/GPUFluidCascadeStack.d.ts +1 -1
- package/src/shade/renderer/fluid/forcing/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 +15 -6
- 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/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 +339 -282
- package/src/shade/renderer/fluid/pressure/GPUFluidPressureSolve.d.ts +1 -1
- package/src/shade/renderer/fluid/query/GPUFluidQueries.d.ts +1 -1
- package/src/shade/renderer/global_illumination/probe/octahedral/shader_lpv_build_gbuffer.js +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/GPUProbeClipmapGI.d.ts +20 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/GPUProbeClipmapGI.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/GPUProbeClipmapGI.js +29 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_hit_light.d.ts +47 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_hit_light.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_hit_light.js +246 -0
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_light.d.ts +4 -15
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_light.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_light.js +8 -148
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_trace.d.ts +4 -9
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_trace.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_trace.js +9 -58
- package/src/shade/renderer/global_illumination/screen_probe/GPUScreenProbeGI.d.ts +142 -0
- package/src/shade/renderer/global_illumination/screen_probe/GPUScreenProbeGI.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/screen_probe/GPUScreenProbeGI.js +938 -0
- package/src/shade/renderer/global_illumination/screen_probe/SCREEN_PROBE.d.ts +192 -0
- package/src/shade/renderer/global_illumination/screen_probe/SCREEN_PROBE.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/screen_probe/SCREEN_PROBE.js +231 -0
- package/src/shade/renderer/global_illumination/screen_probe/ScreenProbeDebugView.d.ts +11 -0
- package/src/shade/renderer/global_illumination/screen_probe/ScreenProbeDebugView.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/screen_probe/ScreenProbeDebugView.js +25 -0
- package/src/shade/renderer/global_illumination/screen_probe/ScreenProbeSettings.d.ts +110 -0
- package/src/shade/renderer/global_illumination/screen_probe/ScreenProbeSettings.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/screen_probe/ScreenProbeSettings.js +197 -0
- package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe.d.ts +150 -0
- package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe.js +408 -0
- package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_brdf_density.d.ts +23 -0
- package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_brdf_density.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_brdf_density.js +63 -0
- package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_brick_origin.d.ts +24 -0
- package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_brick_origin.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_brick_origin.js +61 -0
- package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_interpolate.d.ts +39 -0
- package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_interpolate.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_interpolate.js +126 -0
- package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_lighting_history.d.ts +21 -0
- package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_lighting_history.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_lighting_history.js +74 -0
- package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_march_distance.d.ts +20 -0
- package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_march_distance.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_march_distance.js +26 -0
- package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_ray_sort.d.ts +24 -0
- package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_ray_sort.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_ray_sort.js +57 -0
- package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_screen_march.d.ts +22 -0
- package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_screen_march.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_screen_march.js +53 -0
- package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_surface.d.ts +62 -0
- package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_surface.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_surface.js +156 -0
- package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_workgroup_sum.d.ts +18 -0
- package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_workgroup_sum.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_workgroup_sum.js +50 -0
- package/src/shade/renderer/global_illumination/screen_probe/graph_screen_probe_debug_view.d.ts +21 -0
- package/src/shade/renderer/global_illumination/screen_probe/graph_screen_probe_debug_view.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/screen_probe/graph_screen_probe_debug_view.js +54 -0
- package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_brick.d.ts +67 -0
- package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_brick.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_brick.js +509 -0
- package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_debug.d.ts +20 -0
- package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_debug.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_debug.js +128 -0
- package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_gather.d.ts +62 -0
- package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_gather.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_gather.js +478 -0
- package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_importance.d.ts +69 -0
- package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_importance.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_importance.js +457 -0
- package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_indirect_lighting.d.ts +27 -0
- package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_indirect_lighting.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_indirect_lighting.js +219 -0
- package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_pick.d.ts +22 -0
- package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_pick.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_pick.js +151 -0
- package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_place.d.ts +66 -0
- package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_place.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_place.js +301 -0
- package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_resolve.d.ts +59 -0
- package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_resolve.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_resolve.js +364 -0
- package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_trace_screen.d.ts +40 -0
- package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_trace_screen.d.ts.map +1 -0
- package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_trace_screen.js +275 -0
- package/src/shade/renderer/grass/blade/GPUGrassBlades.d.ts.map +1 -1
- package/src/shade/renderer/grass/blade/GPUGrassBlades.js +17 -2
- package/src/shade/renderer/grass/blade/grass_blade_resolve.d.ts +18 -8
- package/src/shade/renderer/grass/blade/grass_blade_resolve.d.ts.map +1 -1
- package/src/shade/renderer/grass/blade/grass_blade_resolve.js +114 -32
- 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/light/GPULightCollection.d.ts +1 -1
- package/src/shade/renderer/light/GPULightCollection.d.ts.map +1 -1
- package/src/shade/renderer/light/GPULightCollection.js +213 -80
- package/src/shade/renderer/{atmosphere → light/environment}/chunk_sample_environment_color.d.ts +1 -2
- package/src/shade/renderer/light/environment/chunk_sample_environment_color.d.ts.map +1 -0
- package/src/shade/renderer/{atmosphere → light/environment}/chunk_sample_environment_color.js +3 -4
- package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
- package/src/shade/renderer/path_tracer/shader/chunk_render_trace_path.js +1 -1
- package/src/shade/renderer/postprocess/denoise/debug/graph_pass_debug_reprojection.js +1 -1
- package/src/shade/renderer/postprocess/motion_blur/MotionBlur.d.ts +1 -1
- package/src/shade/renderer/postprocess/motion_blur/MotionBlur.js +1 -1
- package/src/shade/renderer/postprocess/motion_blur/graph_postprocess_motion_blur.d.ts +1 -1
- package/src/shade/renderer/postprocess/motion_blur/graph_postprocess_motion_blur.js +1 -1
- package/src/shade/renderer/postprocess/motion_blur/shader_motion_blur_reconstruct.js +1 -1
- package/src/shade/renderer/postprocess/nss/NSS.d.ts +1 -1
- package/src/shade/renderer/postprocess/ssr/resolve/chunk_ssr_add_hit_irradiance.js +2 -0
- package/src/shade/renderer/postprocess/ssr/resolve/chunk_ssr_sample_radiance.js +2 -0
- package/src/shade/renderer/postprocess/taa/chunk_fsr2_compute_depth_clip.d.ts +6 -0
- package/src/shade/renderer/postprocess/taa/chunk_fsr2_compute_depth_clip.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/taa/chunk_fsr2_compute_depth_clip.js +9 -1
- package/src/shade/renderer/postprocess/taa/shader_depth_occlusion_clip.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/taa/shader_depth_occlusion_clip.js +4 -3
- package/src/shade/renderer/postprocess/velocity/VELOCITY_BUFFER.d.ts +17 -0
- package/src/shade/renderer/postprocess/velocity/VELOCITY_BUFFER.d.ts.map +1 -0
- package/src/shade/renderer/postprocess/velocity/VELOCITY_BUFFER.js +16 -0
- package/src/shade/renderer/postprocess/velocity/chunk_velocity_texel.d.ts +21 -0
- package/src/shade/renderer/postprocess/velocity/chunk_velocity_texel.d.ts.map +1 -0
- package/src/shade/renderer/postprocess/velocity/chunk_velocity_texel.js +30 -0
- package/src/shade/renderer/postprocess/velocity/graph_add_per_object_velocity.d.ts +7 -5
- package/src/shade/renderer/postprocess/velocity/graph_add_per_object_velocity.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/velocity/graph_add_per_object_velocity.js +19 -17
- package/src/shade/renderer/rasterize/forward/chunk_forward_sample_indirect.js +2 -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/GPUSceneContext.d.ts.map +1 -1
- package/src/shade/renderer/scene/GPUSceneContext.js +2 -1
- package/src/shade/renderer/scene/Scene.d.ts +9 -2
- package/src/shade/renderer/scene/Scene.d.ts.map +1 -1
- package/src/shade/renderer/scene/Scene.js +10 -2
- package/src/shade/renderer/shader/ImageShader.d.ts +24 -12
- package/src/shade/renderer/shader/ImageShader.d.ts.map +1 -1
- package/src/shade/renderer/shader/ImageShader.js +11 -8
- package/src/shade/renderer/shader/chunk/atmosphere/ATMOSPHERE_HEIGHT_DECLARATION.d.ts +3 -1
- package/src/shade/renderer/shader/chunk/atmosphere/ATMOSPHERE_HEIGHT_DECLARATION.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/atmosphere/ATMOSPHERE_HEIGHT_DECLARATION.js +11 -3
- package/src/shade/renderer/shader/chunk/atmosphere/ATMOSPHERE_RADII_DECLARATION.d.ts +2 -11
- package/src/shade/renderer/shader/chunk/atmosphere/ATMOSPHERE_RADII_DECLARATION.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/atmosphere/ATMOSPHERE_RADII_DECLARATION.js +23 -32
- package/src/shade/renderer/shader/chunk/atmosphere/PLANET_RADIUS_DECLARATION.d.ts +6 -0
- package/src/shade/renderer/shader/chunk/atmosphere/PLANET_RADIUS_DECLARATION.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/atmosphere/PLANET_RADIUS_DECLARATION.js +14 -2
- package/src/shade/renderer/shader/chunk/atmosphere/chunk_atmosphere_height.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/atmosphere/chunk_atmosphere_height.js +4 -2
- package/src/shade/renderer/shader/chunk/atmosphere/chunk_atmosphere_intersection.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/atmosphere/chunk_atmosphere_intersection.js +11 -3
- package/src/shade/renderer/shader/chunk/atmosphere/chunk_atmosphere_ray_bounds.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/atmosphere/chunk_atmosphere_ray_bounds.js +68 -69
- package/src/shade/renderer/shader/chunk/atmosphere/chunk_get_sun_transmittance.d.ts +4 -1
- package/src/shade/renderer/shader/chunk/atmosphere/chunk_get_sun_transmittance.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/atmosphere/chunk_get_sun_transmittance.js +46 -39
- package/src/shade/renderer/shader/chunk/atmosphere/chunk_position_relative_to_planet_center.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/atmosphere/chunk_position_relative_to_planet_center.js +5 -3
- package/src/shade/renderer/shader/chunk/color/tonemap/purkinje/chunk_apply_purkinje_shift.d.ts +18 -10
- package/src/shade/renderer/shader/chunk/color/tonemap/purkinje/chunk_apply_purkinje_shift.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/color/tonemap/purkinje/chunk_apply_purkinje_shift.js +30 -27
- package/src/shade/renderer/shader/chunk/depth/chunk_get_device_depth.d.ts +14 -0
- package/src/shade/renderer/shader/chunk/depth/chunk_get_device_depth.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/depth/chunk_get_device_depth.js +30 -0
- package/src/shade/renderer/shader/chunk/geometry/octahedron/chunk_uv_equal_area_sphere.d.ts +21 -0
- package/src/shade/renderer/shader/chunk/geometry/octahedron/chunk_uv_equal_area_sphere.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/geometry/octahedron/chunk_uv_equal_area_sphere.js +60 -0
- package/src/shade/renderer/shader/chunk/light/{sky/chunk_sample_sky_color.d.ts → io/chunk_light_get_sun.d.ts} +3 -6
- package/src/shade/renderer/shader/chunk/light/io/chunk_light_get_sun.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/light/{sky/chunk_sample_sky_color.js → io/chunk_light_get_sun.js} +6 -26
- package/src/shade/renderer/shadow/sdf/cascade/shader_scene_sdf_soft_shadows.js +1 -1
- 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/GPUViewVolumetrics.d.ts +3 -1
- package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/GPUViewVolumetrics.js +4 -2
- package/src/shade/renderer/volumetrics/graph_build_volumetrics.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/graph_build_volumetrics.js +743 -739
- package/src/shade/renderer/volumetrics/irradiance_clipmap/chunk_irradiance_clipmap_gi_sample.js +2 -0
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_lighting.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_lighting.js +19 -17
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_scattering_lut.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_scattering_lut.js +5 -3
- package/src/shade/renderer/water/chunk_water_gi.js +2 -0
- package/src/shade/renderer/water/query/GPUWaterQueries.d.ts +1 -1
- package/src/shade/renderer/wind/GPUSceneWind.d.ts +1 -1
- 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/sh3/path_tracer/make_sky_hosek.d.ts +0 -2
- package/src/engine/graphics/sh3/path_tracer/make_sky_hosek.d.ts.map +0 -1
- package/src/engine/graphics/sh3/path_tracer/make_sky_hosek.js +0 -45
- package/src/engine/graphics/sh3/path_tracer/make_sky_rtiw.d.ts +0 -2
- package/src/engine/graphics/sh3/path_tracer/make_sky_rtiw.d.ts.map +0 -1
- package/src/engine/graphics/sh3/path_tracer/make_sky_rtiw.js +0 -17
- package/src/engine/graphics/sh3/sky/hosek/README.md +0 -4
- package/src/engine/graphics/sh3/sky/hosek/data.d.ts +0 -17
- package/src/engine/graphics/sh3/sky/hosek/data.d.ts.map +0 -1
- package/src/engine/graphics/sh3/sky/hosek/data.js +0 -3744
- package/src/engine/graphics/sh3/sky/hosek/prototype_hosek.d.ts +0 -2
- package/src/engine/graphics/sh3/sky/hosek/prototype_hosek.d.ts.map +0 -1
- package/src/engine/graphics/sh3/sky/hosek/prototype_hosek.js +0 -71
- package/src/engine/graphics/sh3/sky/hosek/render_hosek_sky_to_equirectangular.d.ts +0 -26
- package/src/engine/graphics/sh3/sky/hosek/render_hosek_sky_to_equirectangular.d.ts.map +0 -1
- package/src/engine/graphics/sh3/sky/hosek/render_hosek_sky_to_equirectangular.js +0 -70
- package/src/engine/graphics/sh3/sky/hosek/sky_hosek_compute_irradiance_by_direction.d.ts +0 -22
- package/src/engine/graphics/sh3/sky/hosek/sky_hosek_compute_irradiance_by_direction.d.ts.map +0 -1
- package/src/engine/graphics/sh3/sky/hosek/sky_hosek_compute_irradiance_by_direction.js +0 -388
- 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/make_default_environment.d.ts +0 -15
- package/src/engine/graphics3/make_default_environment.d.ts.map +0 -1
- package/src/engine/graphics3/make_default_environment.js +0 -111
- 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/atmosphere/MIE_G.d.ts +0 -6
- package/src/shade/renderer/atmosphere/MIE_G.d.ts.map +0 -1
- package/src/shade/renderer/atmosphere/MIE_G.js +0 -5
- package/src/shade/renderer/atmosphere/chunk_sample_environment_color.d.ts.map +0 -1
- package/src/shade/renderer/atmosphere/hillaire/ATMOSPHERE_EARTH.d.ts +0 -4
- package/src/shade/renderer/atmosphere/hillaire/ATMOSPHERE_EARTH.d.ts.map +0 -1
- package/src/shade/renderer/atmosphere/hillaire/ATMOSPHERE_EARTH.js +0 -44
- package/src/shade/renderer/atmosphere/hillaire/ATMOSPHERE_PARAMETERS_STRUCT.d.ts +0 -2
- package/src/shade/renderer/atmosphere/hillaire/ATMOSPHERE_PARAMETERS_STRUCT.d.ts.map +0 -1
- package/src/shade/renderer/atmosphere/hillaire/ATMOSPHERE_PARAMETERS_STRUCT.js +0 -43
- package/src/shade/renderer/shader/chunk/atmosphere/ATMOSPHERE_DENSITY_DECLARATION.d.ts +0 -3
- package/src/shade/renderer/shader/chunk/atmosphere/ATMOSPHERE_DENSITY_DECLARATION.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/atmosphere/ATMOSPHERE_DENSITY_DECLARATION.js +0 -6
- package/src/shade/renderer/shader/chunk/atmosphere/chunk_absorb.d.ts +0 -3
- package/src/shade/renderer/shader/chunk/atmosphere/chunk_absorb.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/atmosphere/chunk_absorb.js +0 -18
- package/src/shade/renderer/shader/chunk/atmosphere/chunk_integrate_optical_depth.d.ts +0 -14
- package/src/shade/renderer/shader/chunk/atmosphere/chunk_integrate_optical_depth.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/atmosphere/chunk_integrate_optical_depth.js +0 -86
- package/src/shade/renderer/shader/chunk/atmosphere/chunk_integrate_scattering.d.ts +0 -8
- package/src/shade/renderer/shader/chunk/atmosphere/chunk_integrate_scattering.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/atmosphere/chunk_integrate_scattering.js +0 -125
- package/src/shade/renderer/shader/chunk/atmosphere/chunk_planet_intersection.d.ts +0 -3
- package/src/shade/renderer/shader/chunk/atmosphere/chunk_planet_intersection.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/atmosphere/chunk_planet_intersection.js +0 -17
- package/src/shade/renderer/shader/chunk/atmosphere/chunk_sphere_intersection_nearest.d.ts +0 -3
- package/src/shade/renderer/shader/chunk/atmosphere/chunk_sphere_intersection_nearest.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/atmosphere/chunk_sphere_intersection_nearest.js +0 -38
- package/src/shade/renderer/shader/chunk/atmosphere/hillaire/DENSITY_PROFILE_LAYER_STRUCT.d.ts +0 -16
- package/src/shade/renderer/shader/chunk/atmosphere/hillaire/DENSITY_PROFILE_LAYER_STRUCT.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/atmosphere/hillaire/DENSITY_PROFILE_LAYER_STRUCT.js +0 -28
- package/src/shade/renderer/shader/chunk/light/sky/chunk_sample_sky_color.d.ts.map +0 -1
- package/src/shade/renderer/view/GPUViewSkyContext.d.ts +0 -26
- package/src/shade/renderer/view/GPUViewSkyContext.d.ts.map +0 -1
- package/src/shade/renderer/view/GPUViewSkyContext.js +0 -170
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A trail laid down whole by its author instead of by an entity's travel: a stroke, a helix. Each knot
|
|
3
|
+
* has a position, the frame its ring stands in, a thickness and the age it starts with. The knots never
|
|
4
|
+
* move; they only age, and fade by the trail's curve as they do.
|
|
5
|
+
*
|
|
6
|
+
* Plain data on the component: whatever draws the trail uploads it when the trail is linked, and again
|
|
7
|
+
* when {@link version} moves. Ages are seconds, as `Trail3D.maxAge` is.
|
|
8
|
+
*/
|
|
9
|
+
export class TrailKnots {
|
|
10
|
+
/**
|
|
11
|
+
* Moved by every write, so a consumer holding an upload can tell it is stale.
|
|
12
|
+
* @type {number}
|
|
13
|
+
*/
|
|
14
|
+
version: number;
|
|
15
|
+
/**
|
|
16
|
+
* @returns {number} knots
|
|
17
|
+
*/
|
|
18
|
+
get count(): number;
|
|
19
|
+
/**
|
|
20
|
+
* Resize to `count` knots. Knots kept keep their values; new ones are zero.
|
|
21
|
+
*
|
|
22
|
+
* @param {number} count at least 2, the two ends of one segment
|
|
23
|
+
*/
|
|
24
|
+
setCount(count: number): void;
|
|
25
|
+
/**
|
|
26
|
+
* @param {number} index
|
|
27
|
+
* @param {number} x
|
|
28
|
+
* @param {number} y
|
|
29
|
+
* @param {number} z
|
|
30
|
+
* @param {number} nx ring frame's first axis, unit
|
|
31
|
+
* @param {number} ny
|
|
32
|
+
* @param {number} nz
|
|
33
|
+
* @param {number} bx second axis, unit, orthogonal to the first and to the tube's direction
|
|
34
|
+
* @param {number} by
|
|
35
|
+
* @param {number} bz
|
|
36
|
+
* @param {number} thickness tube diameter
|
|
37
|
+
* @param {number} age seconds the knot is born having lived
|
|
38
|
+
*/
|
|
39
|
+
setKnot(index: number, x: number, y: number, z: number, nx: number, ny: number, nz: number, bx: number, by: number, bz: number, thickness: number, age: number): void;
|
|
40
|
+
/**
|
|
41
|
+
* @param {number[]|Float32Array|Float64Array} out
|
|
42
|
+
* @param {number} index
|
|
43
|
+
*/
|
|
44
|
+
getPosition(out: number[] | Float32Array | Float64Array, index: number): void;
|
|
45
|
+
/**
|
|
46
|
+
* @param {number[]|Float32Array|Float64Array} out `[nx, ny, nz, bx, by, bz]`
|
|
47
|
+
* @param {number} index
|
|
48
|
+
*/
|
|
49
|
+
getFrame(out: number[] | Float32Array | Float64Array, index: number): void;
|
|
50
|
+
/**
|
|
51
|
+
* @param {number} index
|
|
52
|
+
* @returns {number}
|
|
53
|
+
*/
|
|
54
|
+
getThickness(index: number): number;
|
|
55
|
+
/**
|
|
56
|
+
* @param {number} index
|
|
57
|
+
* @returns {number} seconds
|
|
58
|
+
*/
|
|
59
|
+
getAge(index: number): number;
|
|
60
|
+
#private;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=TrailKnots.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TrailKnots.d.ts","sourceRoot":"","sources":["../../../../../src/engine/graphics/trail/TrailKnots.js"],"names":[],"mappings":"AAQA;;;;;;;GAOG;AACH;IAWI;;;OAGG;IACH,SAFU,MAAM,CAEJ;IAEZ;;OAEG;IACH,oBAEC;IAED;;;;OAIG;IACH,gBAFW,MAAM,QAgBhB;IAED;;;;;;;;;;;;;OAaG;IACH,eAbW,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,aACN,MAAM,OACN,MAAM,QAsBhB;IAED;;;OAGG;IACH,iBAHW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,SAClC,MAAM,QAQhB;IAED;;;OAGG;IACH,cAHW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,SAClC,MAAM,QAQhB;IAED;;;OAGG;IACH,oBAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;OAGG;IACH,cAHW,MAAM,GACJ,MAAM,CAIlB;;CACJ"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { assert } from "../../../core/assert.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Numbers per knot: position (3), normal (3), binormal (3), thickness, age.
|
|
5
|
+
* @type {number}
|
|
6
|
+
*/
|
|
7
|
+
const KNOT_STRIDE = 11;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* A trail laid down whole by its author instead of by an entity's travel: a stroke, a helix. Each knot
|
|
11
|
+
* has a position, the frame its ring stands in, a thickness and the age it starts with. The knots never
|
|
12
|
+
* move; they only age, and fade by the trail's curve as they do.
|
|
13
|
+
*
|
|
14
|
+
* Plain data on the component: whatever draws the trail uploads it when the trail is linked, and again
|
|
15
|
+
* when {@link version} moves. Ages are seconds, as `Trail3D.maxAge` is.
|
|
16
|
+
*/
|
|
17
|
+
export class TrailKnots {
|
|
18
|
+
/**
|
|
19
|
+
* @type {Float64Array}
|
|
20
|
+
*/
|
|
21
|
+
#data = new Float64Array(0);
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* @type {number}
|
|
25
|
+
*/
|
|
26
|
+
#count = 0;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Moved by every write, so a consumer holding an upload can tell it is stale.
|
|
30
|
+
* @type {number}
|
|
31
|
+
*/
|
|
32
|
+
version = 0;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* @returns {number} knots
|
|
36
|
+
*/
|
|
37
|
+
get count() {
|
|
38
|
+
return this.#count;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Resize to `count` knots. Knots kept keep their values; new ones are zero.
|
|
43
|
+
*
|
|
44
|
+
* @param {number} count at least 2, the two ends of one segment
|
|
45
|
+
*/
|
|
46
|
+
setCount(count) {
|
|
47
|
+
assert.isNonNegativeInteger(count, 'count');
|
|
48
|
+
assert.greaterThanOrEqual(count, 2, 'a trail needs at least two knots');
|
|
49
|
+
|
|
50
|
+
if (this.#data.length < count * KNOT_STRIDE) {
|
|
51
|
+
const data = new Float64Array(count * KNOT_STRIDE);
|
|
52
|
+
|
|
53
|
+
data.set(this.#data.subarray(0, this.#count * KNOT_STRIDE));
|
|
54
|
+
|
|
55
|
+
this.#data = data;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
this.#count = count;
|
|
59
|
+
this.version++;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* @param {number} index
|
|
64
|
+
* @param {number} x
|
|
65
|
+
* @param {number} y
|
|
66
|
+
* @param {number} z
|
|
67
|
+
* @param {number} nx ring frame's first axis, unit
|
|
68
|
+
* @param {number} ny
|
|
69
|
+
* @param {number} nz
|
|
70
|
+
* @param {number} bx second axis, unit, orthogonal to the first and to the tube's direction
|
|
71
|
+
* @param {number} by
|
|
72
|
+
* @param {number} bz
|
|
73
|
+
* @param {number} thickness tube diameter
|
|
74
|
+
* @param {number} age seconds the knot is born having lived
|
|
75
|
+
*/
|
|
76
|
+
setKnot(index, x, y, z, nx, ny, nz, bx, by, bz, thickness, age) {
|
|
77
|
+
assert.isNonNegativeInteger(index, 'index');
|
|
78
|
+
assert.lessThan(index, this.#count, 'index');
|
|
79
|
+
|
|
80
|
+
const d = this.#data;
|
|
81
|
+
const at = index * KNOT_STRIDE;
|
|
82
|
+
|
|
83
|
+
d[at] = x;
|
|
84
|
+
d[at + 1] = y;
|
|
85
|
+
d[at + 2] = z;
|
|
86
|
+
d[at + 3] = nx;
|
|
87
|
+
d[at + 4] = ny;
|
|
88
|
+
d[at + 5] = nz;
|
|
89
|
+
d[at + 6] = bx;
|
|
90
|
+
d[at + 7] = by;
|
|
91
|
+
d[at + 8] = bz;
|
|
92
|
+
d[at + 9] = thickness;
|
|
93
|
+
d[at + 10] = age;
|
|
94
|
+
|
|
95
|
+
this.version++;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* @param {number[]|Float32Array|Float64Array} out
|
|
100
|
+
* @param {number} index
|
|
101
|
+
*/
|
|
102
|
+
getPosition(out, index) {
|
|
103
|
+
const at = index * KNOT_STRIDE;
|
|
104
|
+
|
|
105
|
+
out[0] = this.#data[at];
|
|
106
|
+
out[1] = this.#data[at + 1];
|
|
107
|
+
out[2] = this.#data[at + 2];
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* @param {number[]|Float32Array|Float64Array} out `[nx, ny, nz, bx, by, bz]`
|
|
112
|
+
* @param {number} index
|
|
113
|
+
*/
|
|
114
|
+
getFrame(out, index) {
|
|
115
|
+
const at = index * KNOT_STRIDE + 3;
|
|
116
|
+
|
|
117
|
+
for (let i = 0; i < 6; i++) {
|
|
118
|
+
out[i] = this.#data[at + i];
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* @param {number} index
|
|
124
|
+
* @returns {number}
|
|
125
|
+
*/
|
|
126
|
+
getThickness(index) {
|
|
127
|
+
return this.#data[index * KNOT_STRIDE + 9];
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* @param {number} index
|
|
132
|
+
* @returns {number} seconds
|
|
133
|
+
*/
|
|
134
|
+
getAge(index) {
|
|
135
|
+
return this.#data[index * KNOT_STRIDE + 10];
|
|
136
|
+
}
|
|
137
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Material configuration for a {@link
|
|
2
|
+
* Material configuration for a {@link Trail3D}'s tube. Used as a cache key in
|
|
3
3
|
* {@link TubeXPlugin}, so any field that changes the compiled material (texture,
|
|
4
4
|
* depth-write mode, lighting) participates in {@link equals}/{@link hash}.
|
|
5
5
|
*/
|
|
@@ -2,7 +2,7 @@ import { assert } from "../../../../core/assert.js";
|
|
|
2
2
|
import { computeStringHash } from "../../../../core/primitives/strings/computeStringHash.js";
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
* Material configuration for a {@link
|
|
5
|
+
* Material configuration for a {@link Trail3D}'s tube. Used as a cache key in
|
|
6
6
|
* {@link TubeXPlugin}, so any field that changes the compiled material (texture,
|
|
7
7
|
* depth-write mode, lighting) participates in {@link equals}/{@link hash}.
|
|
8
8
|
*/
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One system's hold on an entity's `transforms` row in a scene context, kept current as the entity
|
|
3
|
+
* moves: for a system whose GPU work reads where an entity is — a particle emitter, a trail's head.
|
|
4
|
+
*
|
|
5
|
+
* The listener on {@link TRANSFORM64_EVENT_CHANGE} stands from construction to {@link dispose}, whether
|
|
6
|
+
* or not a row is held, because an entity is linked before there is a scene context to hold a row in: a
|
|
7
|
+
* level loads before the device is up, and a device restart replaces the context under every entity.
|
|
8
|
+
* While a row is held in the context that is current, a move marks it, and the context's next build
|
|
9
|
+
* rewrites it from the transform. A Transform64 has no signals of its own; whoever writes it announces
|
|
10
|
+
* the change, and this wakes on that.
|
|
11
|
+
*
|
|
12
|
+
* {@link acquire} and {@link release} are the hold itself. A hold in a context that has since been
|
|
13
|
+
* replaced went with that context, so releasing it gives nothing back.
|
|
14
|
+
*/
|
|
15
|
+
export class EntityRowHold {
|
|
16
|
+
/**
|
|
17
|
+
* @param {import("../ecs/EntityComponentDataset.js").EntityComponentDataset} dataset
|
|
18
|
+
* @param {number} entity
|
|
19
|
+
* @param {function(): (import("../../shade/renderer/scene/GPUSceneContext.js").GPUSceneContext|null)} current
|
|
20
|
+
* the scene context the entity's scene renders through now
|
|
21
|
+
*/
|
|
22
|
+
constructor(dataset: import("../ecs/EntityComponentDataset.js").EntityComponentDataset, entity: number, current: () => (import("../../shade/renderer/scene/GPUSceneContext.js").GPUSceneContext | null));
|
|
23
|
+
/**
|
|
24
|
+
* @returns {number}
|
|
25
|
+
*/
|
|
26
|
+
get entity(): number;
|
|
27
|
+
/**
|
|
28
|
+
* @returns {import("../../shade/renderer/scene/GPUSceneContext.js").GPUSceneContext|null} where the row
|
|
29
|
+
* is held, or null when it is not
|
|
30
|
+
*/
|
|
31
|
+
get context(): import("../../shade/renderer/scene/GPUSceneContext.js").GPUSceneContext;
|
|
32
|
+
/**
|
|
33
|
+
* Hold the entity's row in `context`, letting go of any hold in another.
|
|
34
|
+
*
|
|
35
|
+
* @param {import("../../shade/renderer/scene/GPUSceneContext.js").GPUSceneContext} context
|
|
36
|
+
*/
|
|
37
|
+
acquire(context: import("../../shade/renderer/scene/GPUSceneContext.js").GPUSceneContext): void;
|
|
38
|
+
/**
|
|
39
|
+
* Let go of the row, if one is held in the context that is current.
|
|
40
|
+
*/
|
|
41
|
+
release(): void;
|
|
42
|
+
/**
|
|
43
|
+
* Release, and stop listening.
|
|
44
|
+
*/
|
|
45
|
+
dispose(): void;
|
|
46
|
+
#private;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=EntityRowHold.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntityRowHold.d.ts","sourceRoot":"","sources":["../../../../src/engine/graphics3/EntityRowHold.js"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;GAaG;AACH;IAuBI;;;;;OAKG;IACH,qBALW,OAAO,kCAAkC,EAAE,sBAAsB,UACjE,MAAM,iBACM,CAAC,OAAO,+CAA+C,EAAE,eAAe,GAAC,IAAI,CAAC,EAapG;IAED;;OAEG;IACH,qBAEC;IAED;;;OAGG;IACH,uFAEC;IAED;;;;OAIG;IACH,iBAFW,OAAO,+CAA+C,EAAE,eAAe,QAcjF;IAED;;OAEG;IACH,gBAYC;IAED;;OAEG;IACH,gBAIC;;CAWJ"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { assert } from "../../core/assert.js";
|
|
2
|
+
import { TRANSFORM64_EVENT_CHANGE } from "../ecs/transform/TRANSFORM64_EVENT_CHANGE.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* One system's hold on an entity's `transforms` row in a scene context, kept current as the entity
|
|
6
|
+
* moves: for a system whose GPU work reads where an entity is — a particle emitter, a trail's head.
|
|
7
|
+
*
|
|
8
|
+
* The listener on {@link TRANSFORM64_EVENT_CHANGE} stands from construction to {@link dispose}, whether
|
|
9
|
+
* or not a row is held, because an entity is linked before there is a scene context to hold a row in: a
|
|
10
|
+
* level loads before the device is up, and a device restart replaces the context under every entity.
|
|
11
|
+
* While a row is held in the context that is current, a move marks it, and the context's next build
|
|
12
|
+
* rewrites it from the transform. A Transform64 has no signals of its own; whoever writes it announces
|
|
13
|
+
* the change, and this wakes on that.
|
|
14
|
+
*
|
|
15
|
+
* {@link acquire} and {@link release} are the hold itself. A hold in a context that has since been
|
|
16
|
+
* replaced went with that context, so releasing it gives nothing back.
|
|
17
|
+
*/
|
|
18
|
+
export class EntityRowHold {
|
|
19
|
+
/**
|
|
20
|
+
* @type {import("../ecs/EntityComponentDataset.js").EntityComponentDataset}
|
|
21
|
+
*/
|
|
22
|
+
#dataset;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* @type {number}
|
|
26
|
+
*/
|
|
27
|
+
#entity;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Answers which scene context is current.
|
|
31
|
+
* @type {function(): (import("../../shade/renderer/scene/GPUSceneContext.js").GPUSceneContext|null)}
|
|
32
|
+
*/
|
|
33
|
+
#current;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* The context the row is held in, or null.
|
|
37
|
+
* @type {import("../../shade/renderer/scene/GPUSceneContext.js").GPUSceneContext|null}
|
|
38
|
+
*/
|
|
39
|
+
#context = null;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* @param {import("../ecs/EntityComponentDataset.js").EntityComponentDataset} dataset
|
|
43
|
+
* @param {number} entity
|
|
44
|
+
* @param {function(): (import("../../shade/renderer/scene/GPUSceneContext.js").GPUSceneContext|null)} current
|
|
45
|
+
* the scene context the entity's scene renders through now
|
|
46
|
+
*/
|
|
47
|
+
constructor(dataset, entity, current) {
|
|
48
|
+
assert.defined(dataset, 'dataset');
|
|
49
|
+
assert.isNonNegativeInteger(entity, 'entity');
|
|
50
|
+
assert.isFunction(current, 'current');
|
|
51
|
+
|
|
52
|
+
this.#dataset = dataset;
|
|
53
|
+
this.#entity = entity;
|
|
54
|
+
this.#current = current;
|
|
55
|
+
|
|
56
|
+
dataset.addEntityEventListener(entity, TRANSFORM64_EVENT_CHANGE, this.#moved, this);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* @returns {number}
|
|
61
|
+
*/
|
|
62
|
+
get entity() {
|
|
63
|
+
return this.#entity;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* @returns {import("../../shade/renderer/scene/GPUSceneContext.js").GPUSceneContext|null} where the row
|
|
68
|
+
* is held, or null when it is not
|
|
69
|
+
*/
|
|
70
|
+
get context() {
|
|
71
|
+
return this.#context;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Hold the entity's row in `context`, letting go of any hold in another.
|
|
76
|
+
*
|
|
77
|
+
* @param {import("../../shade/renderer/scene/GPUSceneContext.js").GPUSceneContext} context
|
|
78
|
+
*/
|
|
79
|
+
acquire(context) {
|
|
80
|
+
assert.defined(context, 'context');
|
|
81
|
+
|
|
82
|
+
if (this.#context === context) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
this.release();
|
|
87
|
+
|
|
88
|
+
context.rows.acquire(this.#entity);
|
|
89
|
+
|
|
90
|
+
this.#context = context;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Let go of the row, if one is held in the context that is current.
|
|
95
|
+
*/
|
|
96
|
+
release() {
|
|
97
|
+
const context = this.#context;
|
|
98
|
+
|
|
99
|
+
if (context === null) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
if (context === this.#current()) {
|
|
104
|
+
context.rows.release(this.#entity);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
this.#context = null;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Release, and stop listening.
|
|
112
|
+
*/
|
|
113
|
+
dispose() {
|
|
114
|
+
this.release();
|
|
115
|
+
|
|
116
|
+
this.#dataset.removeEntityEventListener(this.#entity, TRANSFORM64_EVENT_CHANGE, this.#moved, this);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
#moved() {
|
|
120
|
+
const context = this.#context;
|
|
121
|
+
|
|
122
|
+
if (context === null || context !== this.#current()) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
context.rows.mark_world(this.#entity);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
@@ -32,7 +32,7 @@ export function apply_particle_effect(emitter: ParticleEmitter, effect: Particle
|
|
|
32
32
|
* @property {import("../../shade/renderer/scene/GPUSceneContext.js").GPUSceneContext|null} context
|
|
33
33
|
* the scene context the emitter is registered with, at the entity's row; null until a frame has
|
|
34
34
|
* registered it, or after a device restart took that context away
|
|
35
|
-
* @property {
|
|
35
|
+
* @property {EntityRowHold} hold the entity's row, held in {@link context} while the emitter is registered
|
|
36
36
|
* @property {string|null} url last observed {@link ParticleEffect#texture}
|
|
37
37
|
* @property {import("../graphics/texture/atlas/ManagedTextureAtlas.js").ManagedAtlasReference|null} texture shared image reference, or null for an untextured effect
|
|
38
38
|
* @property {Map<string, {entity: number, channel: number, live: boolean, on_removed: function|null, layout: import("../../shade/renderer/particles/layout/ParticleLayout.js").ParticleLayout|null}>} bound
|
|
@@ -248,7 +248,10 @@ export type ParticleEmitterEntry = {
|
|
|
248
248
|
* registered it, or after a device restart took that context away
|
|
249
249
|
*/
|
|
250
250
|
context: import("../../shade/renderer/scene/GPUSceneContext.js").GPUSceneContext | null;
|
|
251
|
-
|
|
251
|
+
/**
|
|
252
|
+
* the entity's row, held in {@link context } while the emitter is registered
|
|
253
|
+
*/
|
|
254
|
+
hold: EntityRowHold;
|
|
252
255
|
/**
|
|
253
256
|
* last observed {@link ParticleEffecttexture }
|
|
254
257
|
*/
|
|
@@ -280,4 +283,5 @@ import { ParticleEffect } from "../graphics/ecs/particles/ParticleEffect.js";
|
|
|
280
283
|
import { System } from "../ecs/System.js";
|
|
281
284
|
import { Transform64 } from "../ecs/transform/Transform64.js";
|
|
282
285
|
import { SpriteAtlas } from "../graphics/texture/atlas/SpriteAtlas.js";
|
|
286
|
+
import { EntityRowHold } from "./EntityRowHold.js";
|
|
283
287
|
//# sourceMappingURL=GPUParticleEmitterSystem.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GPUParticleEmitterSystem.d.ts","sourceRoot":"","sources":["../../../../src/engine/graphics3/GPUParticleEmitterSystem.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GPUParticleEmitterSystem.d.ts","sourceRoot":"","sources":["../../../../src/engine/graphics3/GPUParticleEmitterSystem.js"],"names":[],"mappings":"AA4rCA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,+CAJW,eAAe,UACf,cAAc,GACZ,OAAO,CAyGnB;AAzxCD;;;;;;;;;;;;;;;;;;;GAmBG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH;IA4FI;;;;;OAKG;IACH,sBALW,OAAO,qBAAqB,EAAE,cAAc,SAC5C,OAAO,qCAAqC,EAAE,KAAK,gEAoB7D;IAjHD,6DAA6C;IAE7C;;;OAGG;IACH,OAFU,WAAW,CAEkC;IA6GvD;;;;;;OAMG;IACH,iEAEC;IAED;;;;;OAKG;IACH,kCAEC;IAED;;;;;;;;;;OAUG;IACH,mBAJW,MAAM,GACJ,eAAe,GAAC,IAAI,CAWhC;IAED;;;;;;;;;;;OAWG;IACH,cAHW,MAAM,SACN,MAAM,QA4BhB;IAED;;;;;;;;;;;;OAYG;IACH,uBAHW,MAAM,UACN,UAAU,MAAM,CAAC,QA8B3B;IAED;;;;;;;;;;;;;OAaG;IACH,wBAJW,MAAM,UACN,MAAM,WACN,MAAM,QAOhB;IAED;;;;;OAKG;IACH,0BAFW,MAAM,QAIhB;IA8PD,+BAA+B;IAC/B,YADc,QAAQ,IAAI,CAAC,CAuB1B;IA0ED;;;;OAIG;IACH,aAJW,cAAc,aACd,WAAW,UACX,MAAM,QA6BhB;IAED;;;;OAIG;IACH,eAJW,cAAc,aACd,WAAW,UACX,MAAM,QAIhB;IAED;;;;;;;OAOG;IACH,4BAHW,MAAM,GACJ,IAAI,CAgBhB;IAoCD;;;;;;;;;;;;OAYG;IACH,eAHW,OAAO,gDAAgD,EAAE,YAAY,GACnE,IAAI,CAgDhB;;CA6TJ;;YAtpCa,MAAM;;;;YACN,cAAc;;;;eACd,WAAW;;;;aACX,eAAe,GAAC,IAAI;;;;;aACpB,OAAO,+CAA+C,EAAE,eAAe,GAAC,IAAI;;;;UAG5E,aAAa;;;;SACb,MAAM,GAAC,IAAI;;;;aACX,OAAO,kDAAkD,EAAE,qBAAqB,GAAC,IAAI;;;;;;;WACrF,IAAI,MAAM,EAAE;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,WAAS,IAAI,CAAC;QAAC,MAAM,EAAE,OAAO,yDAAyD,EAAE,cAAc,GAAC,IAAI,CAAA;KAAC,CAAC;;;;qBAKvL,OAAO,uDAAuD,EAAE,eAAe,GAAC,IAAI;;gCA/ClE,2DAA2D;+BAU5D,6CAA6C;uBARrD,kBAAkB;4BAGb,iCAAiC;4BAOjC,0CAA0C;8BATxC,oBAAoB"}
|
|
@@ -5,10 +5,10 @@ import { RenderExtension } from "../../shade/renderer/extension/RenderExtension.
|
|
|
5
5
|
import { ParticleEmitter } from "../../shade/renderer/particles/runtime/ParticleEmitter.js";
|
|
6
6
|
import { GPUTextureContext } from "../../shade/renderer/texture/GPUTextureContext.js";
|
|
7
7
|
import { System } from "../ecs/System.js";
|
|
8
|
+
import { EntityRowHold } from "./EntityRowHold.js";
|
|
8
9
|
import Name from "../ecs/name/Name.js";
|
|
9
10
|
import { Transform64 } from "../ecs/transform/Transform64.js";
|
|
10
11
|
import { EventType } from "../ecs/EventType.js";
|
|
11
|
-
import { TRANSFORM64_EVENT_CHANGE } from "../ecs/transform/TRANSFORM64_EVENT_CHANGE.js";
|
|
12
12
|
import { row_of_entity } from "../../shade/renderer/scene/rows/GPUSceneRows.js";
|
|
13
13
|
import { GameAssetType } from "../asset/GameAssetType.js";
|
|
14
14
|
import { ImageRGBADataLoader } from "../asset/loaders/image/ImageRGBADataLoader.js";
|
|
@@ -41,7 +41,7 @@ const BURST_QUEUE_LIMIT = 256;
|
|
|
41
41
|
* @property {import("../../shade/renderer/scene/GPUSceneContext.js").GPUSceneContext|null} context
|
|
42
42
|
* the scene context the emitter is registered with, at the entity's row; null until a frame has
|
|
43
43
|
* registered it, or after a device restart took that context away
|
|
44
|
-
* @property {
|
|
44
|
+
* @property {EntityRowHold} hold the entity's row, held in {@link context} while the emitter is registered
|
|
45
45
|
* @property {string|null} url last observed {@link ParticleEffect#texture}
|
|
46
46
|
* @property {import("../graphics/texture/atlas/ManagedTextureAtlas.js").ManagedAtlasReference|null} texture shared image reference, or null for an untextured effect
|
|
47
47
|
* @property {Map<string, {entity: number, channel: number, live: boolean, on_removed: function|null, layout: import("../../shade/renderer/particles/layout/ParticleLayout.js").ParticleLayout|null}>} bound
|
|
@@ -744,7 +744,7 @@ export class GPUParticleEmitterSystem extends System {
|
|
|
744
744
|
transform,
|
|
745
745
|
emitter: null,
|
|
746
746
|
context: null,
|
|
747
|
-
|
|
747
|
+
hold: null,
|
|
748
748
|
url: null,
|
|
749
749
|
texture: null,
|
|
750
750
|
bound: new Map(),
|
|
@@ -753,18 +753,8 @@ export class GPUParticleEmitterSystem extends System {
|
|
|
753
753
|
|
|
754
754
|
this.#entries.set(entity, entry);
|
|
755
755
|
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
has no signals of its own, so the announcement comes from the dataset: whoever wrote the
|
|
759
|
-
transform sends TRANSFORM64_EVENT_CHANGE and this wakes on it. Coarser than watching
|
|
760
|
-
position, rotation and scale separately — a scale write wakes a placement that reads the
|
|
761
|
-
whole transform anyway — and that is the trade the type makes everywhere.
|
|
762
|
-
*/
|
|
763
|
-
entry.on_transform_changed = () => this.#place(entry);
|
|
764
|
-
|
|
765
|
-
this.#dataset.addEntityEventListener(
|
|
766
|
-
entity, TRANSFORM64_EVENT_CHANGE, entry.on_transform_changed
|
|
767
|
-
);
|
|
756
|
+
// The emitter is placed the moment its transform moves rather than on a poll: see EntityRowHold.
|
|
757
|
+
entry.hold = new EntityRowHold(this.#dataset, entity, () => this.#graphics.scene_context(this.#scene));
|
|
768
758
|
|
|
769
759
|
// Everything else — building the emitter, acquiring the texture — is what a frame does
|
|
770
760
|
// anyway, and doing it here as well would be a second copy of it that has to stay in step.
|
|
@@ -916,14 +906,12 @@ export class GPUParticleEmitterSystem extends System {
|
|
|
916
906
|
* @param {import("../../shade/renderer/scene/GPUSceneContext.js").GPUSceneContext} scene_context
|
|
917
907
|
*/
|
|
918
908
|
#register(particles, scene_context) {
|
|
919
|
-
const rows = scene_context.rows;
|
|
920
|
-
|
|
921
909
|
for (const entry of this.#entries.values()) {
|
|
922
910
|
if (entry.emitter === null || entry.context === scene_context || entry.emitter.program === entry.refused_program) {
|
|
923
911
|
continue;
|
|
924
912
|
}
|
|
925
913
|
|
|
926
|
-
|
|
914
|
+
entry.hold.acquire(scene_context);
|
|
927
915
|
|
|
928
916
|
try {
|
|
929
917
|
particles.add_emitter(entry.emitter, row_of_entity(entry.entity));
|
|
@@ -931,7 +919,7 @@ export class GPUParticleEmitterSystem extends System {
|
|
|
931
919
|
// The program's global imports do not link against the scene's global fields. One
|
|
932
920
|
// effect must not stop every other one: it is reported, and not tried again until
|
|
933
921
|
// its program changes.
|
|
934
|
-
|
|
922
|
+
entry.hold.release();
|
|
935
923
|
entry.refused_program = entry.emitter.program;
|
|
936
924
|
warn_limited(`GPUParticleEmitterSystem: an effect was refused: ${e.message}`);
|
|
937
925
|
continue;
|
|
@@ -1073,21 +1061,6 @@ export class GPUParticleEmitterSystem extends System {
|
|
|
1073
1061
|
}
|
|
1074
1062
|
}
|
|
1075
1063
|
|
|
1076
|
-
/**
|
|
1077
|
-
* The entity moved: its row is rewritten from its transform by the context that holds it.
|
|
1078
|
-
*
|
|
1079
|
-
* @param {ParticleEmitterEntry} entry
|
|
1080
|
-
*/
|
|
1081
|
-
#place(entry) {
|
|
1082
|
-
const context = entry.context;
|
|
1083
|
-
|
|
1084
|
-
if (context === null || context !== this.#graphics.scene_context(this.#scene)) {
|
|
1085
|
-
return;
|
|
1086
|
-
}
|
|
1087
|
-
|
|
1088
|
-
context.rows.mark_world(entry.entity);
|
|
1089
|
-
}
|
|
1090
|
-
|
|
1091
1064
|
/**
|
|
1092
1065
|
* Retire an entity's emitter and let go of its row, leaving the entry linked.
|
|
1093
1066
|
*
|
|
@@ -1111,14 +1084,15 @@ export class GPUParticleEmitterSystem extends System {
|
|
|
1111
1084
|
particles.remove_emitter(emitter);
|
|
1112
1085
|
}
|
|
1113
1086
|
|
|
1114
|
-
context.rows.release(entry.entity);
|
|
1115
|
-
|
|
1116
1087
|
// the registry dropped the bindings with the emitter; the rows they held go too
|
|
1117
1088
|
for (const binding of entry.bound.values()) {
|
|
1118
1089
|
this.#let_go(context, binding);
|
|
1119
1090
|
}
|
|
1120
1091
|
}
|
|
1121
1092
|
|
|
1093
|
+
// a hold in a context that has been replaced went with it, and releasing it gives nothing back
|
|
1094
|
+
entry.hold.release();
|
|
1095
|
+
|
|
1122
1096
|
entry.context = null;
|
|
1123
1097
|
this.#forget_bindings(entry);
|
|
1124
1098
|
|
|
@@ -1137,15 +1111,8 @@ export class GPUParticleEmitterSystem extends System {
|
|
|
1137
1111
|
return;
|
|
1138
1112
|
}
|
|
1139
1113
|
|
|
1140
|
-
if (entry.on_transform_changed !== null) {
|
|
1141
|
-
this.#dataset.removeEntityEventListener(
|
|
1142
|
-
entity, TRANSFORM64_EVENT_CHANGE, entry.on_transform_changed
|
|
1143
|
-
);
|
|
1144
|
-
|
|
1145
|
-
entry.on_transform_changed = null;
|
|
1146
|
-
}
|
|
1147
|
-
|
|
1148
1114
|
this.#detach_emitter(entry);
|
|
1115
|
+
entry.hold.dispose();
|
|
1149
1116
|
entry.texture?.release();
|
|
1150
1117
|
|
|
1151
1118
|
entry.url = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GraphicsEngine.d.ts","sourceRoot":"","sources":["../../../../src/engine/graphics3/GraphicsEngine.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GraphicsEngine.d.ts","sourceRoot":"","sources":["../../../../src/engine/graphics3/GraphicsEngine.js"],"names":[],"mappings":"AA0DA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH;IACI;;;;;OAKG;IACH,gCAEC;IAUD;;;;OAIG;IACH,yBAEC;IAmEG;;;;;;OAMG;IACH,QAFU,kBAAkB,CAEsB;IAElD;QACI;;;;;;;;WAQG;mBADO,MAAM;QAIhB;;;;;WAKG;oBADO,MAAM;QAIhB;;;;WAIG;qBADO,MAAM;QAIhB;;;;;;;WAOG;;QAGH;;;;;WAKG;;MAEN;IAID;;;;;OAKG;IACH,4BAFU,OAAO,CAEyB;IAE1C;;;;;;OAMG;IACH,UAFU,SAAS,CAEY;IAG/B;;OAEG;IACH,YAFU,iBAAiB,GAAC,IAAI,CAEV;IAEtB;;;;;OAKG;IACH,UAFU,OAAO,CAEG;IAEpB;;;;;OAKG;IACH,UAFU,OAAO,CAEG;IAEpB;;OAEG;IACH,YAFU,MAAM,CAEG;IAoBvB;;;;;;;;;;;;OAYG;IACH,mDAEC;IAED;;;;;;;;OAQG;IACH,iBAFW,KAAK,QAgBf;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,6BAFW,YAAY,QAStB;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,yBAHW,eAAe,GACb,eAAe,CAa3B;IAED;;;;;;;;;;OAUG;IACH,uBAHW,UAAU,GACR,MAAM,CAclB;IAED;;;;;;OAMG;IACH,4BAHW,eAAe,GACb,OAAO,CAgBnB;IAED;;;;;;;;;;;;;OAaG;IACH,kCAHW,iBAAiB,GACf,iBAAiB,CAqB7B;IAED;;;;;;OAMG;IACH,8BAFa,MAAM,CAIlB;IAED;;;;;OAKG;IACH,qCAHW,iBAAiB,GACf,OAAO,CAgBnB;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,qBALW,KAAK,GACH,eAAe,GAAC,IAAI,CAehC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,yBARW,KAAK,UACL,MAAM,SACN,MAAM,UACN,MAAM,GACJ,QAAQ,SAAS,CAAC,CAwD9B;IAED;;;;OAIG;IACH,0BAEC;IAED;;;;;;;;;;OAUG;IACH,SAFa,QAAQ,IAAI,CAAC,CAuDzB;IAED;;;;;;;;;;;;;;;OAeG;IACH,qBAFW,iBAAiB,QAc3B;IAED;;;;;OAKG;IACH,aAiBC;IASD;;;;;;;;OAQG;IACH,8BAHW,OAAO,GAAC,OAAO,UACf,OAAO,GAAC,OAAO,QAQzB;IAED;;;;;;;;;;;;;;;OAeG;IACH,yBALW,MAAM,KACN,MAAM,UACN,OAAO,aACP,OAAO,QAIjB;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,mBAyBC;IAED;;;;;;;;;OASG;IACH,4BAPW,MAAM,GAKJ,OAAO,CA2DnB;;CACJ;sBAz4BY,OAAO,4BAA4B,EAAE,OAAO;yBAC5C,OAAO,8CAA8C,EAAE,UAAU;8BACjE,OAAO,mDAAmD,EAAE,eAAe;gCAC3E,OAAO,mEAAmE,EAAE,iBAAiB;8BAC7F,OAAO,+CAA+C,EAAE,eAAe;2BACvE,OAAO,8CAA8C,EAAE,YAAY;qBACnE,OAAO,kCAAkC,EAAE,MAAM;yBAdrC,kCAAkC;mCAKxB,yBAAyB;mBAXzC,oCAAoC;wBAC/B,4BAA4B;sBAQ9B,kCAAkC;yCAJf,kDAAkD;sBAErE,qCAAqC;0BACjC,0CAA0C"}
|
|
@@ -9,7 +9,6 @@ import { Renderer } from "../../shade/renderer/Renderer.js";
|
|
|
9
9
|
import { Scene } from "../../shade/renderer/scene/Scene.js";
|
|
10
10
|
import { Sampler2D } from "../graphics/texture/sampler/Sampler2D.js";
|
|
11
11
|
import EmptyView from "../../view/elements/EmptyView.js";
|
|
12
|
-
import { make_default_environment } from "./make_default_environment.js";
|
|
13
12
|
import { shade_camera_projection_ray } from "./shade_camera_projection_ray.js";
|
|
14
13
|
import { ShadeCameraAdapter } from "./ShadeCameraAdapter.js";
|
|
15
14
|
|
|
@@ -334,16 +333,12 @@ export class GraphicsEngine {
|
|
|
334
333
|
this.#scene = scene;
|
|
335
334
|
|
|
336
335
|
/*
|
|
337
|
-
Shade lights with indirect by default and a scene
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
A scene that arrives with an environment keeps it: the scene owns its lighting and this only
|
|
342
|
-
fills in what is missing. Otherwise handing over a scene would silently discard the
|
|
343
|
-
environment it was built with, and the fix would be to call things in a particular order.
|
|
336
|
+
Shade lights with indirect by default and a scene with neither an authored environment nor
|
|
337
|
+
an active procedural atmosphere renders unlit, so the engine enables Hillaire sky/IBL on
|
|
338
|
+
scenes that arrive without an explicit environment or explicit `atmosphere.enabled = false`.
|
|
344
339
|
*/
|
|
345
340
|
if (scene.lights.environment === undefined) {
|
|
346
|
-
scene.
|
|
341
|
+
scene.atmosphere.enable_by_default();
|
|
347
342
|
}
|
|
348
343
|
}
|
|
349
344
|
|