@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,258 @@
|
|
|
1
|
+
import Vector3 from "../../../core/geom/Vector3.js";
|
|
2
|
+
import { DEG_TO_RAD } from "../../../core/math/DEG_TO_RAD.js";
|
|
3
|
+
import { Entity } from "../../../engine/ecs/Entity.js";
|
|
4
|
+
import { EntityComponentDataset } from "../../../engine/ecs/EntityComponentDataset.js";
|
|
5
|
+
import { EntityManager } from "../../../engine/ecs/EntityManager.js";
|
|
6
|
+
import { t64_announce_change } from "../../../engine/ecs/transform/t64_announce_change.js";
|
|
7
|
+
import { Transform64 } from "../../../engine/ecs/transform/Transform64.js";
|
|
8
|
+
import Trail3D from "../../../engine/graphics/ecs/trail3d/Trail3D.js";
|
|
9
|
+
import { GraphicsEngine } from "../../../engine/graphics3/GraphicsEngine.js";
|
|
10
|
+
import { Trail3DSystem } from "../../../engine/graphics3/Trail3DSystem.js";
|
|
11
|
+
import { OrbitalCameraController } from "../../renderer/camera/orbital/OrbitalCameraController.js";
|
|
12
|
+
import { create_frame_loop } from "../../renderer/create_frame_loop.js";
|
|
13
|
+
import { Scene } from "../../renderer/scene/Scene.js";
|
|
14
|
+
import { ShadeTransparencyMode } from "../../renderer/ShadeTransparencyMode.js";
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* A field of trails on figures-of-eight, simulated in compute and extruded in the vertex stage by
|
|
18
|
+
* `Trail3DSystem`, drawn through AVBOIT.
|
|
19
|
+
*
|
|
20
|
+
* Query: `n` trails (64), `age` maxAge in seconds (2), `radial` (8, or a list such as
|
|
21
|
+
* `4,8,16` taken in turn), `width` (0.08), `debug` to drive frames by hand through `__step(n, dt)`
|
|
22
|
+
* instead of the frame loop.
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
const query = new URLSearchParams(location.search);
|
|
26
|
+
|
|
27
|
+
const number = (name, fallback) => {
|
|
28
|
+
const value = Number(query.get(name));
|
|
29
|
+
|
|
30
|
+
return query.has(name) && Number.isFinite(value) ? value : fallback;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
const COUNT = Math.max(1, Math.floor(number("n", 64)));
|
|
34
|
+
const MAX_AGE = number("age", 2);
|
|
35
|
+
/** Radial segments, one value or a comma list the trails take in turn: each distinct value is its own draw. */
|
|
36
|
+
const RADIALS = (query.get("radial") ?? "8").split(",").map(v => Math.max(3, Math.floor(Number(v) || 8)));
|
|
37
|
+
const WIDTH = number("width", 0.08);
|
|
38
|
+
|
|
39
|
+
/** Trails per row of the field. */
|
|
40
|
+
const ROW = Math.ceil(Math.sqrt(COUNT));
|
|
41
|
+
|
|
42
|
+
/** Spacing of the field. */
|
|
43
|
+
const SPACING = 3;
|
|
44
|
+
|
|
45
|
+
const element = id => document.getElementById(id);
|
|
46
|
+
|
|
47
|
+
const view_size = () => [Math.max(1, window.innerWidth), Math.max(1, window.innerHeight)];
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Where trail `i` is at time `t`: a figure-of-eight round its own place in the field, each at its own
|
|
51
|
+
* phase, rising and falling.
|
|
52
|
+
*
|
|
53
|
+
* @param {number} i
|
|
54
|
+
* @param {number} t
|
|
55
|
+
* @param {number[]} out
|
|
56
|
+
*/
|
|
57
|
+
function place(i, t, out) {
|
|
58
|
+
const column = i % ROW;
|
|
59
|
+
const row = Math.floor(i / ROW);
|
|
60
|
+
|
|
61
|
+
const phase = i * 0.6180339 * Math.PI * 2;
|
|
62
|
+
const a = phase + t * 1.3;
|
|
63
|
+
|
|
64
|
+
out[0] = (column - (ROW - 1) * 0.5) * SPACING + Math.sin(a) * 1.2;
|
|
65
|
+
out[1] = 1.5 + Math.sin(a * 2 + phase) * 0.5;
|
|
66
|
+
out[2] = (row - (ROW - 1) * 0.5) * SPACING + Math.sin(a * 2) * 0.8;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* A colour per trail, bright and linear.
|
|
71
|
+
*
|
|
72
|
+
* @param {number} i
|
|
73
|
+
* @returns {number[]}
|
|
74
|
+
*/
|
|
75
|
+
function tint(i) {
|
|
76
|
+
const h = (i * 0.137) % 1;
|
|
77
|
+
const k = n => (n + h * 6) % 6;
|
|
78
|
+
const f = n => 1 - Math.max(0, Math.min(k(n), 4 - k(n), 1));
|
|
79
|
+
|
|
80
|
+
return [f(5) * 2, f(3) * 2, f(1) * 2];
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
async function main() {
|
|
84
|
+
const graphics = new GraphicsEngine();
|
|
85
|
+
const scene = new Scene();
|
|
86
|
+
|
|
87
|
+
graphics.set_scene(scene);
|
|
88
|
+
|
|
89
|
+
element("viewport").appendChild(graphics.viewport.el);
|
|
90
|
+
|
|
91
|
+
const [width, height] = view_size();
|
|
92
|
+
|
|
93
|
+
graphics.viewport.size.set(width, height);
|
|
94
|
+
|
|
95
|
+
const dataset = new EntityComponentDataset();
|
|
96
|
+
const entities = new EntityManager();
|
|
97
|
+
|
|
98
|
+
const system = new Trail3DSystem(graphics, scene);
|
|
99
|
+
|
|
100
|
+
entities.addSystem(system);
|
|
101
|
+
entities.attachDataset(dataset);
|
|
102
|
+
|
|
103
|
+
await new Promise((resolve, reject) => entities.startup(resolve, reject));
|
|
104
|
+
|
|
105
|
+
const transforms = [];
|
|
106
|
+
const position = [0, 0, 0];
|
|
107
|
+
|
|
108
|
+
for (let i = 0; i < COUNT; i++) {
|
|
109
|
+
const trail = new Trail3D();
|
|
110
|
+
|
|
111
|
+
trail.maxAge = MAX_AGE;
|
|
112
|
+
trail.width = WIDTH;
|
|
113
|
+
trail.radialSegments = RADIALS[i % RADIALS.length];
|
|
114
|
+
|
|
115
|
+
const [r, g, b] = tint(i);
|
|
116
|
+
|
|
117
|
+
trail.color.set(r, g, b, 0.9);
|
|
118
|
+
|
|
119
|
+
const transform = new Transform64();
|
|
120
|
+
|
|
121
|
+
place(i, 0, position);
|
|
122
|
+
transform.setTranslation(position[0], position[1], position[2]);
|
|
123
|
+
transform.updateMatrix();
|
|
124
|
+
|
|
125
|
+
const entity = new Entity().add(transform).add(trail).build(dataset);
|
|
126
|
+
|
|
127
|
+
transforms.push({ entity, transform });
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
const camera = graphics.camera.camera;
|
|
131
|
+
const extent = ROW * SPACING;
|
|
132
|
+
|
|
133
|
+
camera.near = 0.05;
|
|
134
|
+
camera.far = 1000;
|
|
135
|
+
camera.fov = 50 * DEG_TO_RAD;
|
|
136
|
+
|
|
137
|
+
const controller = new OrbitalCameraController(camera, document.body);
|
|
138
|
+
|
|
139
|
+
controller.look(new Vector3(0, extent * 0.55 + 4, extent * 0.75 + 6), new Vector3(0, 1.5, 0));
|
|
140
|
+
|
|
141
|
+
graphics.on.contextFailed.add(failure => show_message("There will be no rendering.\n\n" + failure.message));
|
|
142
|
+
|
|
143
|
+
try {
|
|
144
|
+
await graphics.start();
|
|
145
|
+
} catch (e) {
|
|
146
|
+
console.error(e);
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
const renderer = graphics.renderer;
|
|
151
|
+
|
|
152
|
+
/** What the device reported on its own: validation failures and the like. */
|
|
153
|
+
const gpu_errors = [];
|
|
154
|
+
|
|
155
|
+
renderer.graphics.device.addEventListener("uncapturederror", event => {
|
|
156
|
+
gpu_errors.push(event.error.message);
|
|
157
|
+
console.error(event.error.message);
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
renderer.transparency_mode = ShadeTransparencyMode.AVBOIT;
|
|
161
|
+
renderer.feature_automatic_exposure_enabled = false;
|
|
162
|
+
renderer.exposure_compensation = 0;
|
|
163
|
+
|
|
164
|
+
let time = 0;
|
|
165
|
+
let frame_index = 0;
|
|
166
|
+
|
|
167
|
+
/** Frames the renderer drew: none while its pipelines compile. */
|
|
168
|
+
let drawn = 0;
|
|
169
|
+
|
|
170
|
+
/** CPU milliseconds of the last frames: the tick and the render call. */
|
|
171
|
+
const cpu_ms = [];
|
|
172
|
+
|
|
173
|
+
function frame(dt) {
|
|
174
|
+
const [w, h] = view_size();
|
|
175
|
+
|
|
176
|
+
if (w !== graphics.viewport.size.x || h !== graphics.viewport.size.y) {
|
|
177
|
+
graphics.viewport.size.set(w, h);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
time += dt;
|
|
181
|
+
|
|
182
|
+
for (let i = 0; i < transforms.length; i++) {
|
|
183
|
+
const { entity, transform } = transforms[i];
|
|
184
|
+
|
|
185
|
+
place(i, time, position);
|
|
186
|
+
transform.setTranslation(position[0], position[1], position[2]);
|
|
187
|
+
transform.updateMatrix();
|
|
188
|
+
|
|
189
|
+
t64_announce_change(dataset, entity);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
controller.update();
|
|
193
|
+
|
|
194
|
+
const t0 = performance.now();
|
|
195
|
+
|
|
196
|
+
entities.update(dt);
|
|
197
|
+
if (graphics.render(dt)) {
|
|
198
|
+
drawn++;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
cpu_ms.push(performance.now() - t0);
|
|
202
|
+
|
|
203
|
+
if (cpu_ms.length > 600) {
|
|
204
|
+
cpu_ms.shift();
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
frame_index++;
|
|
208
|
+
|
|
209
|
+
if (frame_index % 30 === 0) {
|
|
210
|
+
const sorted = [...cpu_ms].sort((a, b) => a - b);
|
|
211
|
+
|
|
212
|
+
element("hud").textContent = `${COUNT} trails · ${MAX_AGE} s · radial ${RADIALS.join(",")} · `
|
|
213
|
+
+ `CPU ${sorted[Math.floor(sorted.length / 2)].toFixed(2)} ms/frame (median)`;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
Object.assign(globalThis, {
|
|
218
|
+
graphics, renderer, scene, dataset, entities, system, camera, controller, Vector3,
|
|
219
|
+
__cpu_ms: cpu_ms,
|
|
220
|
+
__gpu_errors: gpu_errors,
|
|
221
|
+
__frame_index: () => frame_index,
|
|
222
|
+
__drawn: () => drawn,
|
|
223
|
+
__seek: t => {
|
|
224
|
+
time = t;
|
|
225
|
+
},
|
|
226
|
+
});
|
|
227
|
+
|
|
228
|
+
if (query.has("debug")) {
|
|
229
|
+
globalThis.__step = (n = 1, dt = 1 / 60) => {
|
|
230
|
+
for (let i = 0; i < n; i++) {
|
|
231
|
+
frame(dt);
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
return frame_index;
|
|
235
|
+
};
|
|
236
|
+
|
|
237
|
+
globalThis.__ready = true;
|
|
238
|
+
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
globalThis.__ready = true;
|
|
243
|
+
|
|
244
|
+
create_frame_loop(dt => frame(Math.min(dt, 0.05)));
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
function show_message(text) {
|
|
248
|
+
const node = element("message");
|
|
249
|
+
|
|
250
|
+
if (node !== null) {
|
|
251
|
+
node.textContent = text;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
main().catch(e => {
|
|
256
|
+
console.error(e);
|
|
257
|
+
show_message("The trails playground failed to start — see the console.\n\n" + e.message);
|
|
258
|
+
});
|
|
@@ -44,6 +44,12 @@ export class Renderer {
|
|
|
44
44
|
* @type {ProbeClipmapSettings}
|
|
45
45
|
*/
|
|
46
46
|
probe_clipmap: ProbeClipmapSettings;
|
|
47
|
+
/**
|
|
48
|
+
* Settings of {@link ShadeIndirectLightingMode.ScreenProbes}, read every frame it runs; its world, the bricks and
|
|
49
|
+
* the world-space probes, is set by {@link probe_clipmap}. See {@link ScreenProbeSettings}.
|
|
50
|
+
* @type {ScreenProbeSettings}
|
|
51
|
+
*/
|
|
52
|
+
screen_probes: ScreenProbeSettings;
|
|
47
53
|
/**
|
|
48
54
|
* Which order-independent transparency technique draws the transparent buckets. Both modes
|
|
49
55
|
* are wired at the single transparency call site and take the same inputs, so this is safe to
|
|
@@ -577,6 +583,7 @@ import { SceneManager } from "./scene/SceneManager.js";
|
|
|
577
583
|
import { ShadeIndirectLightingMode } from "./ShadeIndirectLightingMode.js";
|
|
578
584
|
import { MaterialDispatch } from "./material/dispatch/MaterialDispatch.js";
|
|
579
585
|
import { ProbeClipmapSettings } from "./global_illumination/probe_clipmap/ProbeClipmapSettings.js";
|
|
586
|
+
import { ScreenProbeSettings } from "./global_illumination/screen_probe/ScreenProbeSettings.js";
|
|
580
587
|
import { ShadeTransparencyMode } from "./ShadeTransparencyMode.js";
|
|
581
588
|
import { ToneMapper } from "./deferred/tonemap/ToneMapper.js";
|
|
582
589
|
import { AVBOITSettings } from "./rasterize/native/avboit/AVBOITSettings.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Renderer.d.ts","sourceRoot":"","sources":["../../../../src/shade/renderer/Renderer.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Renderer.d.ts","sourceRoot":"","sources":["../../../../src/shade/renderer/Renderer.js"],"names":[],"mappings":"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"}
|
|
@@ -16,8 +16,11 @@ import { shade_device_floor_unmet } from "../device/shade_device_floor_unmet.js"
|
|
|
16
16
|
import { ShadeDeviceFailure } from "../device/ShadeDeviceFailure.js";
|
|
17
17
|
import { PipelineEnquiry } from "../device/pipeline/PipelineEnquiry.js";
|
|
18
18
|
import { ShadeGPUCommandContext } from "../device/ShadeGPUCommandContext.js";
|
|
19
|
+
import { create_atmosphere_sun_state, resolve_atmosphere_sun } from "./atmosphere/resolve_atmosphere_sun.js";
|
|
20
|
+
import { SKY_VIEW_LUT_HEIGHT, SKY_VIEW_LUT_WIDTH, shader_sky_view_lut } from "./atmosphere/shader_sky_view_lut.js";
|
|
19
21
|
import { CameraManager } from "./camera/CameraManager.js";
|
|
20
22
|
import { shader_background } from "./deferred/shader_background.js";
|
|
23
|
+
import { shader_background_sky } from "./deferred/shader_background_sky.js";
|
|
21
24
|
import { shader_composite_volumetrics } from "./deferred/shader_composite_volumetrics.js";
|
|
22
25
|
import { shader_deferred_main } from "./deferred/shader_deferred_main.js";
|
|
23
26
|
import { LOCAL_LIGHT_SHADING } from "./deferred/LOCAL_LIGHT_SHADING.js";
|
|
@@ -48,6 +51,14 @@ import { shader_diffuse_LPV } from "./global_illumination/lpv/shader_diffuse_LPV
|
|
|
48
51
|
import { GPUProbeClipmapGI } from "./global_illumination/probe_clipmap/GPUProbeClipmapGI.js";
|
|
49
52
|
import { ProbeClipmapSettings } from "./global_illumination/probe_clipmap/ProbeClipmapSettings.js";
|
|
50
53
|
import { ProbeClipmapDebugView } from "./global_illumination/probe_clipmap/debug/ProbeClipmapDebugView.js";
|
|
54
|
+
import { GPUScreenProbeGI } from "./global_illumination/screen_probe/GPUScreenProbeGI.js";
|
|
55
|
+
import { ScreenProbeSettings } from "./global_illumination/screen_probe/ScreenProbeSettings.js";
|
|
56
|
+
import { ScreenProbeDebugView } from "./global_illumination/screen_probe/ScreenProbeDebugView.js";
|
|
57
|
+
import { graph_screen_probe_debug_view } from "./global_illumination/screen_probe/graph_screen_probe_debug_view.js";
|
|
58
|
+
import {
|
|
59
|
+
shader_screen_probe_diffuse,
|
|
60
|
+
shader_screen_probe_indirect_lighting
|
|
61
|
+
} from "./global_illumination/screen_probe/shader_screen_probe_indirect_lighting.js";
|
|
51
62
|
import { shader_resolve_indirect_lighting } from "./global_illumination/shader_resolve_indirect_lighting.js";
|
|
52
63
|
import { GraphicsContext } from "./GraphicsContext.js";
|
|
53
64
|
import {
|
|
@@ -137,6 +148,8 @@ METRICS.create({ name: 'frame_time' });
|
|
|
137
148
|
*/
|
|
138
149
|
const INTERNAL_RESOLUTION_MIN = 1;
|
|
139
150
|
|
|
151
|
+
const SKY_VIEW_LUT_RESOLUTION = Object.freeze([SKY_VIEW_LUT_WIDTH, SKY_VIEW_LUT_HEIGHT]);
|
|
152
|
+
|
|
140
153
|
MetricCollectionConsoleMonitor.from(METRICS);
|
|
141
154
|
|
|
142
155
|
export class Renderer {
|
|
@@ -243,6 +256,22 @@ export class Renderer {
|
|
|
243
256
|
*/
|
|
244
257
|
#probe_clipmap_gi;
|
|
245
258
|
|
|
259
|
+
/**
|
|
260
|
+
* Settings of {@link ShadeIndirectLightingMode.ScreenProbes}, read every frame it runs; its world, the bricks and
|
|
261
|
+
* the world-space probes, is set by {@link probe_clipmap}. See {@link ScreenProbeSettings}.
|
|
262
|
+
* @type {ScreenProbeSettings}
|
|
263
|
+
*/
|
|
264
|
+
screen_probes = new ScreenProbeSettings();
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* The main view's screen probes under {@link ShadeIndirectLightingMode.ScreenProbes}, over the world
|
|
268
|
+
* {@link #probe_clipmap_gi} holds: made on the first frame in the mode, given back on the first frame out of it.
|
|
269
|
+
*
|
|
270
|
+
* Constructed in {@link initialize}.
|
|
271
|
+
* @type {GPUScreenProbeGI | undefined}
|
|
272
|
+
*/
|
|
273
|
+
#screen_probe_gi;
|
|
274
|
+
|
|
246
275
|
/**
|
|
247
276
|
* Which order-independent transparency technique draws the transparent buckets. Both modes
|
|
248
277
|
* are wired at the single transparency call site and take the same inputs, so this is safe to
|
|
@@ -713,6 +742,26 @@ export class Renderer {
|
|
|
713
742
|
*/
|
|
714
743
|
#extensions = new RenderExtensionRegistry();
|
|
715
744
|
|
|
745
|
+
/**
|
|
746
|
+
* Reusable per-frame sun state and immediate uniform payloads for Hillaire Sky-View LUT and
|
|
747
|
+
* background solar-disc composition.
|
|
748
|
+
*/
|
|
749
|
+
#sky_sun_state = create_atmosphere_sun_state();
|
|
750
|
+
|
|
751
|
+
#sky_view_lut_settings = {
|
|
752
|
+
sun_direction: this.#sky_sun_state.sun_direction,
|
|
753
|
+
resolution_x: SKY_VIEW_LUT_WIDTH,
|
|
754
|
+
sun_irradiance: this.#sky_sun_state.sun_irradiance,
|
|
755
|
+
resolution_y: SKY_VIEW_LUT_HEIGHT,
|
|
756
|
+
};
|
|
757
|
+
|
|
758
|
+
#sky_background_settings = {
|
|
759
|
+
sun_direction: this.#sky_sun_state.sun_direction,
|
|
760
|
+
sun_disk_radius: 0,
|
|
761
|
+
sun_irradiance: this.#sky_sun_state.sun_irradiance,
|
|
762
|
+
sun_has_disc: 0,
|
|
763
|
+
};
|
|
764
|
+
|
|
716
765
|
/**
|
|
717
766
|
* Raised when there is no usable device — the browser has no WebGPU, the hardware is below the
|
|
718
767
|
* floor, or a working device was lost while running. Carries a {@link ShadeDeviceFailure}.
|
|
@@ -1150,6 +1199,8 @@ export class Renderer {
|
|
|
1150
1199
|
}
|
|
1151
1200
|
|
|
1152
1201
|
this.#volumetrics?.reset_history();
|
|
1202
|
+
|
|
1203
|
+
this.#screen_probe_gi?.reset_history();
|
|
1153
1204
|
}
|
|
1154
1205
|
|
|
1155
1206
|
/**
|
|
@@ -1252,6 +1303,7 @@ export class Renderer {
|
|
|
1252
1303
|
* @param {number} params.gr_occlusion_clip
|
|
1253
1304
|
* @param {number} params.gr_buffer_camera_current
|
|
1254
1305
|
* @param {number} params.gr_buffer_camera_previous
|
|
1306
|
+
* @param {number} params.gr_exposure_multiplier - graph resource ID of the exposure the last frame was shown at
|
|
1255
1307
|
* @param {Vector2} params.resolution
|
|
1256
1308
|
* @returns {number} Updated scene-color graph resource ID
|
|
1257
1309
|
*/
|
|
@@ -1273,6 +1325,7 @@ export class Renderer {
|
|
|
1273
1325
|
gr_occlusion_clip,
|
|
1274
1326
|
gr_buffer_camera_current,
|
|
1275
1327
|
gr_buffer_camera_previous,
|
|
1328
|
+
gr_exposure_multiplier,
|
|
1276
1329
|
resolution,
|
|
1277
1330
|
}) {
|
|
1278
1331
|
|
|
@@ -1354,6 +1407,65 @@ export class Renderer {
|
|
|
1354
1407
|
}
|
|
1355
1408
|
break;
|
|
1356
1409
|
|
|
1410
|
+
case ShadeIndirectLightingMode.ScreenProbes: {
|
|
1411
|
+
// the diffuse is the screen probes', resolved once the bent normals exist; the specular the world-space
|
|
1412
|
+
// probes', as under the probe clipmap
|
|
1413
|
+
const diffuse = this.#screen_probe_gi.graph_resolve({
|
|
1414
|
+
graph,
|
|
1415
|
+
depth: gr_texture_depth_current,
|
|
1416
|
+
depth_previous: gr_texture_depth_previous,
|
|
1417
|
+
pbr: gr_texture_pbr,
|
|
1418
|
+
velocity: gr_velocity,
|
|
1419
|
+
bent_normals,
|
|
1420
|
+
exposure: gr_exposure_multiplier,
|
|
1421
|
+
});
|
|
1422
|
+
|
|
1423
|
+
if (prefer_fused && !this.feature_ssr_enabled) {
|
|
1424
|
+
[current_color_out] = graph_image_pass({
|
|
1425
|
+
graph,
|
|
1426
|
+
shader: shader_screen_probe_indirect_lighting,
|
|
1427
|
+
output: [current_color_out],
|
|
1428
|
+
input_depth: gr_texture_depth_current,
|
|
1429
|
+
load_op: "load",
|
|
1430
|
+
inputs: this.#probe_clipmap_gi.write_sampling_bindings({
|
|
1431
|
+
...this.#probe_clipmap_indirect_inputs({
|
|
1432
|
+
view_ctx,
|
|
1433
|
+
depth: gr_texture_depth_current,
|
|
1434
|
+
normal: gr_texture_normal,
|
|
1435
|
+
bent_normal: bent_normals,
|
|
1436
|
+
albedo_ao: gr_texture_material_albedo_ao,
|
|
1437
|
+
pbr: gr_texture_pbr,
|
|
1438
|
+
environment: gr_texture_environment,
|
|
1439
|
+
camera: gr_buffer_camera_current,
|
|
1440
|
+
}),
|
|
1441
|
+
tScreenProbeDiffuse: diffuse,
|
|
1442
|
+
}),
|
|
1443
|
+
});
|
|
1444
|
+
|
|
1445
|
+
return current_color_out;
|
|
1446
|
+
}
|
|
1447
|
+
|
|
1448
|
+
diffuse_pass = {
|
|
1449
|
+
shader: shader_screen_probe_diffuse,
|
|
1450
|
+
inputs: {
|
|
1451
|
+
tGBufferAlbedo: gr_texture_material_albedo_ao,
|
|
1452
|
+
tScreenProbeDiffuse: diffuse,
|
|
1453
|
+
},
|
|
1454
|
+
};
|
|
1455
|
+
specular_pass = {
|
|
1456
|
+
shader: shader_specular_IBL,
|
|
1457
|
+
inputs: {
|
|
1458
|
+
tBentNormals: bent_normals,
|
|
1459
|
+
tNormals: gr_texture_normal,
|
|
1460
|
+
tDepth: gr_texture_depth_current,
|
|
1461
|
+
tPBR: gr_texture_pbr,
|
|
1462
|
+
tEnvironment: gr_texture_environment,
|
|
1463
|
+
camera: gr_buffer_camera_current,
|
|
1464
|
+
},
|
|
1465
|
+
};
|
|
1466
|
+
break;
|
|
1467
|
+
}
|
|
1468
|
+
|
|
1357
1469
|
case ShadeIndirectLightingMode.Brick4:
|
|
1358
1470
|
// SSR needs its own specular resolve and denoising passes.
|
|
1359
1471
|
if (prefer_fused && !this.feature_ssr_enabled) {
|
|
@@ -1469,7 +1581,7 @@ export class Renderer {
|
|
|
1469
1581
|
input_environment: gr_texture_environment,
|
|
1470
1582
|
brick4: ssr_brick4,
|
|
1471
1583
|
lpv: ssr_lpv,
|
|
1472
|
-
input_indirect_diffuse: mode === ShadeIndirectLightingMode.ProbeClipmap ? indirect_diffuse : undefined,
|
|
1584
|
+
input_indirect_diffuse: mode === ShadeIndirectLightingMode.ProbeClipmap || mode === ShadeIndirectLightingMode.ScreenProbes ? indirect_diffuse : undefined,
|
|
1473
1585
|
// in every mode: a clipmap of no cascade while it has no probes
|
|
1474
1586
|
probes: this.#probe_clipmap_gi,
|
|
1475
1587
|
shader_switches: this.#shader_switches,
|
|
@@ -1843,6 +1955,7 @@ export class Renderer {
|
|
|
1843
1955
|
this.#views = new ViewManager(graphics, this.#cameras, this.#scenes);
|
|
1844
1956
|
this.#volumetrics = new GPUViewVolumetrics(this.device);
|
|
1845
1957
|
this.#probe_clipmap_gi = new GPUProbeClipmapGI(graphics);
|
|
1958
|
+
this.#screen_probe_gi = new GPUScreenProbeGI(this.device);
|
|
1846
1959
|
|
|
1847
1960
|
const resolution_internal = this.#internal_resolution.asArray();
|
|
1848
1961
|
|
|
@@ -1954,6 +2067,8 @@ export class Renderer {
|
|
|
1954
2067
|
}
|
|
1955
2068
|
|
|
1956
2069
|
enquiry.render.push(shader_background.pipeline_for(color_formats));
|
|
2070
|
+
enquiry.render.push(shader_sky_view_lut.pipeline);
|
|
2071
|
+
enquiry.render.push(shader_background_sky.pipeline_for(color_formats));
|
|
1957
2072
|
|
|
1958
2073
|
if (this.indirect_lighting_mode === ShadeIndirectLightingMode.IBL) {
|
|
1959
2074
|
if (!this.feature_ssr_enabled) {
|
|
@@ -2067,6 +2182,7 @@ export class Renderer {
|
|
|
2067
2182
|
this.#nss?.destroy();
|
|
2068
2183
|
this.#volumetrics?.destroy();
|
|
2069
2184
|
this.#probe_clipmap_gi?.destroy();
|
|
2185
|
+
this.#screen_probe_gi?.destroy();
|
|
2070
2186
|
|
|
2071
2187
|
this.#views?.destroy();
|
|
2072
2188
|
this.#scenes?.destroy();
|
|
@@ -2964,7 +3080,11 @@ export class Renderer {
|
|
|
2964
3080
|
// (PROBE_CLIPMAP_PROPOSAL_2026_10_27.md §5); its hits trace their own shadow rays, so it reads no
|
|
2965
3081
|
// shadow map. Made for this view and these settings on the first frame in the mode, and given back
|
|
2966
3082
|
// on the first frame out of it.
|
|
2967
|
-
|
|
3083
|
+
// The screen probes trace the probe clipmap's world and read its world-space probes past their reach, so that
|
|
3084
|
+
// world runs under both modes; the screen probes follow it in the same frame.
|
|
3085
|
+
const screen_probes = this.indirect_lighting_mode === ShadeIndirectLightingMode.ScreenProbes;
|
|
3086
|
+
|
|
3087
|
+
if (this.indirect_lighting_mode === ShadeIndirectLightingMode.ProbeClipmap || screen_probes) {
|
|
2968
3088
|
this.#probe_clipmap_gi.graph_update({
|
|
2969
3089
|
graph,
|
|
2970
3090
|
view: view_ctx,
|
|
@@ -2979,6 +3099,25 @@ export class Renderer {
|
|
|
2979
3099
|
this.#probe_clipmap_gi.release();
|
|
2980
3100
|
}
|
|
2981
3101
|
|
|
3102
|
+
if (screen_probes) {
|
|
3103
|
+
this.#screen_probe_gi.graph_update({
|
|
3104
|
+
graph,
|
|
3105
|
+
view: view_ctx,
|
|
3106
|
+
settings: this.screen_probes,
|
|
3107
|
+
world: this.#probe_clipmap_gi,
|
|
3108
|
+
stbn: STATIC_GRAPHICS_ENGINE_ASSETS.stbn_vec2,
|
|
3109
|
+
depth: gr_texture_depth_current,
|
|
3110
|
+
normal: gr_texture_normal,
|
|
3111
|
+
pbr: gr_texture_pbr,
|
|
3112
|
+
velocity: gr_velocity,
|
|
3113
|
+
occlusion: gr_occlusion_clip,
|
|
3114
|
+
hzb: gr_texture_hzb,
|
|
3115
|
+
exposure: gr_exposure_multiplier,
|
|
3116
|
+
});
|
|
3117
|
+
} else {
|
|
3118
|
+
this.#screen_probe_gi.release();
|
|
3119
|
+
}
|
|
3120
|
+
|
|
2982
3121
|
const volumetrics = this.#volumetrics.graph_update({
|
|
2983
3122
|
graph,
|
|
2984
3123
|
view: view_ctx,
|
|
@@ -3098,18 +3237,60 @@ export class Renderer {
|
|
|
3098
3237
|
|
|
3099
3238
|
|
|
3100
3239
|
// Shade background
|
|
3101
|
-
|
|
3102
|
-
|
|
3103
|
-
|
|
3104
|
-
|
|
3105
|
-
|
|
3106
|
-
|
|
3107
|
-
|
|
3108
|
-
|
|
3109
|
-
|
|
3110
|
-
|
|
3111
|
-
|
|
3112
|
-
|
|
3240
|
+
if (scene_ctx.scene.lights.environment === undefined && scene_ctx.scene.atmosphere.enabled) {
|
|
3241
|
+
const sky = scene_ctx.sky;
|
|
3242
|
+
sky.update();
|
|
3243
|
+
|
|
3244
|
+
const gr_sky_transmittance = volumetrics.lut_transmittance
|
|
3245
|
+
?? graph_import_texture(graph, sky.lut_transmittance, "sky/transmittance");
|
|
3246
|
+
const gr_sky_multiscatter = volumetrics.lut_multiple_scattering
|
|
3247
|
+
?? graph_import_texture(graph, sky.lut_multiple_scattering, "sky/multiscatter");
|
|
3248
|
+
|
|
3249
|
+
const sun = resolve_atmosphere_sun(scene_ctx.scene, this.#sky_sun_state);
|
|
3250
|
+
this.#sky_background_settings.sun_disk_radius = sun.sun_disk_radius;
|
|
3251
|
+
this.#sky_background_settings.sun_has_disc = sun.sun_has_disc;
|
|
3252
|
+
|
|
3253
|
+
const [gr_sky_view_lut] = graph_image_pass({
|
|
3254
|
+
graph,
|
|
3255
|
+
shader: shader_sky_view_lut,
|
|
3256
|
+
output_resolution: SKY_VIEW_LUT_RESOLUTION,
|
|
3257
|
+
inputs: {
|
|
3258
|
+
settings: this.#sky_view_lut_settings,
|
|
3259
|
+
camera: view_ctx.camera.buffer,
|
|
3260
|
+
atmosphere: sky.parameters_buffer.buffer,
|
|
3261
|
+
tSkyLutTransmittance: gr_sky_transmittance,
|
|
3262
|
+
tSkyLutMultiscatter: gr_sky_multiscatter,
|
|
3263
|
+
},
|
|
3264
|
+
});
|
|
3265
|
+
|
|
3266
|
+
[current_color_out] = graph_image_pass({
|
|
3267
|
+
graph,
|
|
3268
|
+
shader: shader_background_sky,
|
|
3269
|
+
inputs: {
|
|
3270
|
+
settings: this.#sky_background_settings,
|
|
3271
|
+
camera: view_ctx.camera.buffer,
|
|
3272
|
+
atmosphere: sky.parameters_buffer.buffer,
|
|
3273
|
+
tSkyViewLut: gr_sky_view_lut,
|
|
3274
|
+
tSkyLutTransmittance: gr_sky_transmittance,
|
|
3275
|
+
},
|
|
3276
|
+
input_depth: gr_texture_depth_current,
|
|
3277
|
+
load_op: "load",
|
|
3278
|
+
output: [current_color_out],
|
|
3279
|
+
});
|
|
3280
|
+
} else {
|
|
3281
|
+
[current_color_out] = graph_image_pass({
|
|
3282
|
+
graph,
|
|
3283
|
+
shader: shader_background,
|
|
3284
|
+
inputs: {
|
|
3285
|
+
camera: view_ctx.camera.buffer,
|
|
3286
|
+
view: view_ctx.uniform_buffer.buffer,
|
|
3287
|
+
tEnvironment: gr_texture_environment,
|
|
3288
|
+
},
|
|
3289
|
+
input_depth: gr_texture_depth_current,
|
|
3290
|
+
load_op: "load",
|
|
3291
|
+
output: [current_color_out],
|
|
3292
|
+
});
|
|
3293
|
+
}
|
|
3113
3294
|
|
|
3114
3295
|
current_color_out = this.#graph_indirect_lighting({
|
|
3115
3296
|
graph,
|
|
@@ -3129,9 +3310,15 @@ export class Renderer {
|
|
|
3129
3310
|
gr_occlusion_clip,
|
|
3130
3311
|
gr_buffer_camera_current,
|
|
3131
3312
|
gr_buffer_camera_previous,
|
|
3313
|
+
gr_exposure_multiplier,
|
|
3132
3314
|
resolution,
|
|
3133
3315
|
});
|
|
3134
3316
|
|
|
3317
|
+
// the opaque surfaces' lit colour, the screen probes' hits' radiance next frame: before fog and transparencies
|
|
3318
|
+
if (screen_probes) {
|
|
3319
|
+
this.#screen_probe_gi.graph_capture({ graph, color: current_color_out });
|
|
3320
|
+
}
|
|
3321
|
+
|
|
3135
3322
|
// Composite volumetric fog over the finalized opaque + background + indirect colour.
|
|
3136
3323
|
// A dedicated pass (not inline in the shading shaders) because indirect lighting is added
|
|
3137
3324
|
// in a separate additively-blended pass, so the full surface radiance only exists here.
|
|
@@ -3299,7 +3486,18 @@ export class Renderer {
|
|
|
3299
3486
|
|
|
3300
3487
|
// the probe clipmap mode's debug views replace the colour the same way
|
|
3301
3488
|
if (
|
|
3302
|
-
|
|
3489
|
+
screen_probes
|
|
3490
|
+
&& this.screen_probes.debug_view !== ScreenProbeDebugView.None
|
|
3491
|
+
) {
|
|
3492
|
+
current_color_out = graph_screen_probe_debug_view({
|
|
3493
|
+
graph,
|
|
3494
|
+
gi: this.#screen_probe_gi,
|
|
3495
|
+
view_mode: this.screen_probes.debug_view,
|
|
3496
|
+
depth: gr_texture_depth_current,
|
|
3497
|
+
resolution: resolution_internal.asArray(),
|
|
3498
|
+
});
|
|
3499
|
+
} else if (
|
|
3500
|
+
(this.indirect_lighting_mode === ShadeIndirectLightingMode.ProbeClipmap || screen_probes)
|
|
3303
3501
|
&& this.probe_clipmap.debug_view !== ProbeClipmapDebugView.None
|
|
3304
3502
|
) {
|
|
3305
3503
|
current_color_out = this.#probe_clipmap_gi.graph_debug_view({
|
|
@@ -17,4 +17,13 @@ export const ShadeIndirectLightingMode = {
|
|
|
17
17
|
* `Renderer.probe_clipmap`. Lit as {@link IBL} until its probes are traced (that proposal's §13, S4).
|
|
18
18
|
*/
|
|
19
19
|
ProbeClipmap: 3,
|
|
20
|
+
/**
|
|
21
|
+
* Lumen's screen probe gather over the {@link ProbeClipmap}'s world: probes placed on the G-buffer every few
|
|
22
|
+
* pixels, more densely where interpolation between them would cross an edge, traced through the screen and
|
|
23
|
+
* then the SDF bricks, the world-space probes standing in for what lies past a probe's own reach, and
|
|
24
|
+
* reprojected from frame to frame (`global_illumination/screen_probe/GPUScreenProbeGI.js`). The opaque surfaces'
|
|
25
|
+
* diffuse light is the screen probes'; everything else reads the world-space probes as under
|
|
26
|
+
* {@link ProbeClipmap}. Settings are `Renderer.screen_probes`, and `Renderer.probe_clipmap` for the world.
|
|
27
|
+
*/
|
|
28
|
+
ScreenProbes: 4,
|
|
20
29
|
};
|