@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
package/src/shade/renderer/shader/chunk/color/tonemap/purkinje/chunk_apply_purkinje_shift.d.ts
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* How much of the eye's response is the rods', at an adaptation: 1 at and below
|
|
3
|
-
* and above
|
|
4
|
-
*
|
|
2
|
+
* How much of the eye's response is the rods', at an adaptation, across a response range: 1 at and below `rods_below`,
|
|
3
|
+
* 0 at and above `cones_above`, linear in log luminance in between. CIE 191's range is
|
|
4
|
+
* {@link PURKINJE_MESOPIC_MIN_NITS} to {@link PURKINJE_MESOPIC_MAX_NITS}. The share `apply_purkinje_shift` blends by,
|
|
5
|
+
* for code that needs it on the CPU.
|
|
5
6
|
*
|
|
6
7
|
* @param {number} adaptation_luminance cd/m²
|
|
8
|
+
* @param {number} rods_below cd/m², over 0
|
|
9
|
+
* @param {number} cones_above cd/m², over `rods_below`
|
|
7
10
|
* @returns {number} 0 to 1
|
|
8
11
|
*/
|
|
9
|
-
export function purkinje_rod_share(adaptation_luminance: number): number;
|
|
12
|
+
export function purkinje_rod_share(adaptation_luminance: number, rods_below: number, cones_above: number): number;
|
|
10
13
|
/**
|
|
11
14
|
* Rec.709 photopic luminance weights: what the cones see of a linear Rec.709 colour.
|
|
12
15
|
* @type {ReadonlyArray<number>}
|
|
@@ -26,6 +29,7 @@ export const PURKINJE_REC709_SCOTOPIC: ReadonlyArray<number>;
|
|
|
26
29
|
export const PURKINJE_NIGHT_TINT: ReadonlyArray<number>;
|
|
27
30
|
/**
|
|
28
31
|
* CIE 191's mesopic range, cd/m²: rods alone below the lower bound (scotopic), cones alone above the upper (photopic).
|
|
32
|
+
* The response range of the tone mapper's run-time shift.
|
|
29
33
|
*/
|
|
30
34
|
export const PURKINJE_MESOPIC_MIN_NITS: 0.005;
|
|
31
35
|
export const PURKINJE_MESOPIC_MAX_NITS: 5;
|
|
@@ -34,14 +38,18 @@ export const PURKINJE_MESOPIC_MAX_NITS: 5;
|
|
|
34
38
|
* Human vision system shifts color perception away from red in night-time conditions.
|
|
35
39
|
*
|
|
36
40
|
* ```wgsl
|
|
37
|
-
* fn
|
|
38
|
-
* fn
|
|
41
|
+
* fn purkinje_rod_share(adaptation_luminance: f32, rods_below: f32, cones_above: f32) -> f32
|
|
42
|
+
* fn apply_purkinje_shift(color_rec709: vec3<f32>, rod_share: f32) -> vec3<f32>
|
|
39
43
|
* ```
|
|
40
44
|
*
|
|
41
|
-
* `
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
+
* `purkinje_rod_share` is how much of the eye's response is the rods' at `adaptation_luminance`, the luminance the eye
|
|
46
|
+
* is adapted to, across a response range, all in cd/m²: 1 at and below `rods_below`, 0 at and above `cones_above`
|
|
47
|
+
* (which must be over `rods_below`, itself over 0), linear in log luminance in between. CIE 191's mesopic range,
|
|
48
|
+
* `PURKINJE_MESOPIC_MIN_NITS` to `PURKINJE_MESOPIC_MAX_NITS` (0.005 to 5 cd/m²), is the eye's.
|
|
49
|
+
*
|
|
50
|
+
* `apply_purkinje_shift` blends `color_rec709`, scene-linear Rec.709, towards the rod response by `rod_share`: at 0 the
|
|
51
|
+
* colour is returned as it is; at 1 it is the rod response alone, its scotopic luminance carried by a blue tint. The
|
|
52
|
+
* shift is linear in the colour, so it gives the same result ahead of the exposure as after it.
|
|
45
53
|
*
|
|
46
54
|
* The constants are the module's exports ({@link PURKINJE_REC709_SCOTOPIC} and the rest), and
|
|
47
55
|
* {@link purkinje_rod_share} is the share on the CPU.
|
package/src/shade/renderer/shader/chunk/color/tonemap/purkinje/chunk_apply_purkinje_shift.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk_apply_purkinje_shift.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/shade/renderer/shader/chunk/color/tonemap/purkinje/chunk_apply_purkinje_shift.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chunk_apply_purkinje_shift.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/shade/renderer/shader/chunk/color/tonemap/purkinje/chunk_apply_purkinje_shift.js"],"names":[],"mappings":"AA6BA;;;;;;;;;;GAUG;AACH,yDALW,MAAM,cACN,MAAM,eACN,MAAM,GACJ,MAAM,CAQlB;AA5CD;;;GAGG;AACH,uCAFU,cAAc,MAAM,CAAC,CAEiD;AAEhF;;;;GAIG;AACH,uCAFU,cAAc,MAAM,CAAC,CAEiD;AAEhF;;;;GAIG;AACH,kCAFU,cAAc,MAAM,CAAC,CAEmC;AAElE;;;GAGG;AACH,8CAA+C;AAC/C,0CAA2C;AAsC3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,yCAFU,SAAS,CAwCjB;0BA1IwB,mCAAmC"}
|
package/src/shade/renderer/shader/chunk/color/tonemap/purkinje/chunk_apply_purkinje_shift.js
CHANGED
|
@@ -22,27 +22,26 @@ export const PURKINJE_NIGHT_TINT = Object.freeze([0.3, 0.5, 0.9]);
|
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
24
|
* CIE 191's mesopic range, cd/m²: rods alone below the lower bound (scotopic), cones alone above the upper (photopic).
|
|
25
|
+
* The response range of the tone mapper's run-time shift.
|
|
25
26
|
*/
|
|
26
27
|
export const PURKINJE_MESOPIC_MIN_NITS = 0.005;
|
|
27
28
|
export const PURKINJE_MESOPIC_MAX_NITS = 5;
|
|
28
29
|
|
|
29
30
|
/**
|
|
30
|
-
*
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* How much of the eye's response is the rods', at an adaptation: 1 at and below {@link PURKINJE_MESOPIC_MIN_NITS}, 0 at
|
|
36
|
-
* and above {@link PURKINJE_MESOPIC_MAX_NITS}, linear in log luminance in between. The share `apply_purkinje_shift`
|
|
37
|
-
* blends by, for code that needs it on the CPU.
|
|
31
|
+
* How much of the eye's response is the rods', at an adaptation, across a response range: 1 at and below `rods_below`,
|
|
32
|
+
* 0 at and above `cones_above`, linear in log luminance in between. CIE 191's range is
|
|
33
|
+
* {@link PURKINJE_MESOPIC_MIN_NITS} to {@link PURKINJE_MESOPIC_MAX_NITS}. The share `apply_purkinje_shift` blends by,
|
|
34
|
+
* for code that needs it on the CPU.
|
|
38
35
|
*
|
|
39
36
|
* @param {number} adaptation_luminance cd/m²
|
|
37
|
+
* @param {number} rods_below cd/m², over 0
|
|
38
|
+
* @param {number} cones_above cd/m², over `rods_below`
|
|
40
39
|
* @returns {number} 0 to 1
|
|
41
40
|
*/
|
|
42
|
-
export function purkinje_rod_share(adaptation_luminance) {
|
|
43
|
-
const low = Math.log(
|
|
44
|
-
const high = Math.log(
|
|
45
|
-
const t = (Math.log(Math.max(adaptation_luminance,
|
|
41
|
+
export function purkinje_rod_share(adaptation_luminance, rods_below, cones_above) {
|
|
42
|
+
const low = Math.log(rods_below);
|
|
43
|
+
const high = Math.log(cones_above);
|
|
44
|
+
const t = (Math.log(Math.min(Math.max(adaptation_luminance, rods_below), cones_above)) - low) / (high - low);
|
|
46
45
|
|
|
47
46
|
return 1 - Math.min(1, Math.max(0, t));
|
|
48
47
|
}
|
|
@@ -69,14 +68,18 @@ function wgsl_vec3(v) {
|
|
|
69
68
|
* Human vision system shifts color perception away from red in night-time conditions.
|
|
70
69
|
*
|
|
71
70
|
* ```wgsl
|
|
72
|
-
* fn
|
|
73
|
-
* fn
|
|
71
|
+
* fn purkinje_rod_share(adaptation_luminance: f32, rods_below: f32, cones_above: f32) -> f32
|
|
72
|
+
* fn apply_purkinje_shift(color_rec709: vec3<f32>, rod_share: f32) -> vec3<f32>
|
|
74
73
|
* ```
|
|
75
74
|
*
|
|
76
|
-
* `
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
*
|
|
75
|
+
* `purkinje_rod_share` is how much of the eye's response is the rods' at `adaptation_luminance`, the luminance the eye
|
|
76
|
+
* is adapted to, across a response range, all in cd/m²: 1 at and below `rods_below`, 0 at and above `cones_above`
|
|
77
|
+
* (which must be over `rods_below`, itself over 0), linear in log luminance in between. CIE 191's mesopic range,
|
|
78
|
+
* `PURKINJE_MESOPIC_MIN_NITS` to `PURKINJE_MESOPIC_MAX_NITS` (0.005 to 5 cd/m²), is the eye's.
|
|
79
|
+
*
|
|
80
|
+
* `apply_purkinje_shift` blends `color_rec709`, scene-linear Rec.709, towards the rod response by `rod_share`: at 0 the
|
|
81
|
+
* colour is returned as it is; at 1 it is the rod response alone, its scotopic luminance carried by a blue tint. The
|
|
82
|
+
* shift is linear in the colour, so it gives the same result ahead of the exposure as after it.
|
|
80
83
|
*
|
|
81
84
|
* The constants are the module's exports ({@link PURKINJE_REC709_SCOTOPIC} and the rest), and
|
|
82
85
|
* {@link purkinje_rod_share} is the share on the CPU.
|
|
@@ -104,21 +107,21 @@ const PURKINJE_NIGHT_TINT = ${wgsl_vec3(PURKINJE_NIGHT_TINT)};
|
|
|
104
107
|
const PURKINJE_MESOPIC_MIN_NITS = ${wgsl_float(PURKINJE_MESOPIC_MIN_NITS)}; // Rods dominate below this
|
|
105
108
|
const PURKINJE_MESOPIC_MAX_NITS = ${wgsl_float(PURKINJE_MESOPIC_MAX_NITS)}; // Cones dominate above this
|
|
106
109
|
|
|
107
|
-
// how much of the response is the rods', linear in log luminance across the
|
|
110
|
+
// how much of the response is the rods', linear in log luminance across the response range: a perceptually linear
|
|
108
111
|
// transition
|
|
109
|
-
fn purkinje_rod_share(adaptation_luminance: f32) -> f32 {
|
|
110
|
-
let logLum = log(
|
|
112
|
+
fn purkinje_rod_share(adaptation_luminance: f32, rods_below: f32, cones_above: f32) -> f32 {
|
|
113
|
+
let logLum = log(clamp(adaptation_luminance, rods_below, cones_above));
|
|
111
114
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
+
let logLow = log(rods_below);
|
|
116
|
+
let logHigh = log(cones_above);
|
|
117
|
+
let logDelta = logHigh - logLow;
|
|
115
118
|
|
|
116
119
|
return 1.0 - saturate( (logLum - logLow) / logDelta );
|
|
117
120
|
}
|
|
118
121
|
|
|
119
122
|
fn apply_purkinje_shift(
|
|
120
123
|
color_rec709: vec3<f32>,
|
|
121
|
-
|
|
124
|
+
rod_share: f32
|
|
122
125
|
) -> vec3<f32>{
|
|
123
126
|
// 1. Calculate Rod Luminance (Night)
|
|
124
127
|
// Note: Red objects will have a near-zero Y_night, making them turn black.
|
|
@@ -129,8 +132,8 @@ fn apply_purkinje_shift(
|
|
|
129
132
|
// We treat the rod signal as a scalar intensity applied to our blue tint
|
|
130
133
|
let color_night = Y_night * PURKINJE_NIGHT_TINT;
|
|
131
134
|
|
|
132
|
-
// 3. Lerp from Day view to Night view, by the rods' share
|
|
133
|
-
return mix(color_rec709, color_night,
|
|
135
|
+
// 3. Lerp from Day view to Night view, by the rods' share
|
|
136
|
+
return mix(color_rec709, color_night, rod_share);
|
|
134
137
|
}
|
|
135
138
|
`
|
|
136
139
|
);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The device depth a camera's projection gives a view depth, the inverse of {@link chunk_get_view_space_depth}:
|
|
3
|
+
*
|
|
4
|
+
* ```wgsl
|
|
5
|
+
* fn get_device_depth(view_depth: f32, camera: CameraUniforms) -> f32
|
|
6
|
+
* ```
|
|
7
|
+
*
|
|
8
|
+
* Reverse Z, as `device_depth_to_view_space` is ({@link compute_device_depth_to_view_space_depth_params}).
|
|
9
|
+
*
|
|
10
|
+
* @type {CodeChunk}
|
|
11
|
+
*/
|
|
12
|
+
export const chunk_get_device_depth: CodeChunk;
|
|
13
|
+
import { CodeChunk } from "../../compiler/CodeChunk.js";
|
|
14
|
+
//# sourceMappingURL=chunk_get_device_depth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk_get_device_depth.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/shader/chunk/depth/chunk_get_device_depth.js"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AACH,qCAFU,SAAS,CAiBjB;0BA5BwB,6BAA6B"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { CAMERA_UNIFORM_STRUCT } from "../../../camera/CAMERA_UNIFORM_STRUCT.js";
|
|
2
|
+
import { CodeChunk } from "../../compiler/CodeChunk.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* The device depth a camera's projection gives a view depth, the inverse of {@link chunk_get_view_space_depth}:
|
|
6
|
+
*
|
|
7
|
+
* ```wgsl
|
|
8
|
+
* fn get_device_depth(view_depth: f32, camera: CameraUniforms) -> f32
|
|
9
|
+
* ```
|
|
10
|
+
*
|
|
11
|
+
* Reverse Z, as `device_depth_to_view_space` is ({@link compute_device_depth_to_view_space_depth_params}).
|
|
12
|
+
*
|
|
13
|
+
* @type {CodeChunk}
|
|
14
|
+
*/
|
|
15
|
+
export const chunk_get_device_depth = CodeChunk.from(
|
|
16
|
+
//language=WGSL
|
|
17
|
+
`
|
|
18
|
+
fn get_device_depth(
|
|
19
|
+
view_depth: f32,
|
|
20
|
+
camera: ${CAMERA_UNIFORM_STRUCT.wgsl_ref}
|
|
21
|
+
) -> f32 {
|
|
22
|
+
|
|
23
|
+
let device_to_view_depth = camera.device_depth_to_view_space;
|
|
24
|
+
|
|
25
|
+
return device_to_view_depth.y / view_depth - device_to_view_depth.x;
|
|
26
|
+
}
|
|
27
|
+
`, [
|
|
28
|
+
CAMERA_UNIFORM_STRUCT.declaration_chunk,
|
|
29
|
+
]
|
|
30
|
+
);
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Clarberg's equal-area mapping between the unit square and the unit sphere, octahedrally folded: every
|
|
3
|
+
* region of the square covers 4π times its area of the sphere, so a regular n×n grid of texels splits the
|
|
4
|
+
* sphere into texels of 4π/n² steradians each, and a point drawn uniformly inside a texel is a direction drawn
|
|
5
|
+
* uniformly over that texel's solid angle.
|
|
6
|
+
*
|
|
7
|
+
* ```wgsl
|
|
8
|
+
* fn uv_equal_area_sphere_decode(uv: vec2<f32>) -> vec3<f32> // the square [0, 1]² to a unit vector
|
|
9
|
+
* fn uv_equal_area_sphere_encode(direction: vec3<f32>) -> vec2<f32> // any non-zero vector to the square
|
|
10
|
+
* ```
|
|
11
|
+
*
|
|
12
|
+
* The square's diamond |2u−1| + |2v−1| ≤ 1 is the +z hemisphere and its centre +z; the four corners meet at −z.
|
|
13
|
+
* The fold is the standard octahedral one, so the square's edges join as an octahedral map's do.
|
|
14
|
+
*
|
|
15
|
+
* @see Petrik Clarberg, "Fast Equal-Area Mapping of the (Hemi)Sphere using SIMD", Journal of Graphics Tools
|
|
16
|
+
* 13(3), 2008
|
|
17
|
+
* @type {CodeChunk}
|
|
18
|
+
*/
|
|
19
|
+
export const chunk_uv_equal_area_sphere: CodeChunk;
|
|
20
|
+
import { CodeChunk } from "../../../compiler/CodeChunk.js";
|
|
21
|
+
//# sourceMappingURL=chunk_uv_equal_area_sphere.d.ts.map
|
package/src/shade/renderer/shader/chunk/geometry/octahedron/chunk_uv_equal_area_sphere.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk_uv_equal_area_sphere.d.ts","sourceRoot":"","sources":["../../../../../../../../src/shade/renderer/shader/chunk/geometry/octahedron/chunk_uv_equal_area_sphere.js"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;GAiBG;AACH,yCAFU,SAAS,CAwCZ;0BA3DmB,gCAAgC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { CodeChunk } from "../../../compiler/CodeChunk.js";
|
|
2
|
+
import { PI_DECLARATION } from "../../math/PI_DECLARATION.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Clarberg's equal-area mapping between the unit square and the unit sphere, octahedrally folded: every
|
|
6
|
+
* region of the square covers 4π times its area of the sphere, so a regular n×n grid of texels splits the
|
|
7
|
+
* sphere into texels of 4π/n² steradians each, and a point drawn uniformly inside a texel is a direction drawn
|
|
8
|
+
* uniformly over that texel's solid angle.
|
|
9
|
+
*
|
|
10
|
+
* ```wgsl
|
|
11
|
+
* fn uv_equal_area_sphere_decode(uv: vec2<f32>) -> vec3<f32> // the square [0, 1]² to a unit vector
|
|
12
|
+
* fn uv_equal_area_sphere_encode(direction: vec3<f32>) -> vec2<f32> // any non-zero vector to the square
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* The square's diamond |2u−1| + |2v−1| ≤ 1 is the +z hemisphere and its centre +z; the four corners meet at −z.
|
|
16
|
+
* The fold is the standard octahedral one, so the square's edges join as an octahedral map's do.
|
|
17
|
+
*
|
|
18
|
+
* @see Petrik Clarberg, "Fast Equal-Area Mapping of the (Hemi)Sphere using SIMD", Journal of Graphics Tools
|
|
19
|
+
* 13(3), 2008
|
|
20
|
+
* @type {CodeChunk}
|
|
21
|
+
*/
|
|
22
|
+
export const chunk_uv_equal_area_sphere = CodeChunk.from(
|
|
23
|
+
//language=WGSL
|
|
24
|
+
`
|
|
25
|
+
fn uv_equal_area_sphere_decode(uv: vec2<f32>) -> vec3<f32> {
|
|
26
|
+
let s = fma(uv, vec2<f32>(2.0), vec2<f32>(-1.0));
|
|
27
|
+
let d = 1.0 - (abs(s.x) + abs(s.y));
|
|
28
|
+
let r = 1.0 - abs(d);
|
|
29
|
+
|
|
30
|
+
// the square's centre and corners are the poles, where r is zero and the azimuth is any
|
|
31
|
+
let phi = select((PI * 0.25) * ((abs(s.y) - abs(s.x)) / r + 1.0), 0.0, r == 0.0);
|
|
32
|
+
let f = r * sqrt(2.0 - r * r);
|
|
33
|
+
|
|
34
|
+
return vec3<f32>(
|
|
35
|
+
f * sign(s.x) * abs(cos(phi)),
|
|
36
|
+
f * sign(s.y) * abs(sin(phi)),
|
|
37
|
+
sign(d) * (1.0 - r * r),
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
fn uv_equal_area_sphere_encode(direction: vec3<f32>) -> vec2<f32> {
|
|
42
|
+
let n = normalize(direction);
|
|
43
|
+
let a = abs(n);
|
|
44
|
+
let r = sqrt(max(1.0 - a.z, 0.0));
|
|
45
|
+
|
|
46
|
+
// the azimuth in the quadrant, 0 along x to 1 along y; on the z axis r is zero and it is never read
|
|
47
|
+
let tangent = min(a.x, a.y) / max(max(a.x, a.y), 1e-30);
|
|
48
|
+
let half_turn = atan(tangent) * (2.0 / PI);
|
|
49
|
+
let phi = select(half_turn, 1.0 - half_turn, a.x < a.y);
|
|
50
|
+
|
|
51
|
+
var folded = vec2<f32>(r - phi * r, phi * r);
|
|
52
|
+
|
|
53
|
+
folded = select(folded, 1.0 - folded.yx, n.z < 0.0);
|
|
54
|
+
folded = select(folded, -folded, n.xy < vec2<f32>(0.0));
|
|
55
|
+
|
|
56
|
+
return fma(folded, vec2<f32>(0.5), vec2<f32>(0.5));
|
|
57
|
+
}
|
|
58
|
+
`, [
|
|
59
|
+
PI_DECLARATION,
|
|
60
|
+
]);
|
|
@@ -8,12 +8,9 @@
|
|
|
8
8
|
* iterating; per-pixel direct shading should iterate via
|
|
9
9
|
* {@link chunk_directional_lights_iteration_mask} so every directional
|
|
10
10
|
* light contributes.
|
|
11
|
-
|
|
12
|
-
export const chunk_light_get_sun: CodeChunk;
|
|
13
|
-
/**
|
|
14
|
-
* @see https://github.com/GPUOpen-LibrariesAndSDKs/FidelityFX-SDK/blob/1bbe66e7ea0d358e84af4471a90aa9c35b583de0/framework/rendermodules/skydome/shaders/skydomeproc.hlsl#L177
|
|
11
|
+
*
|
|
15
12
|
* @type {CodeChunk}
|
|
16
13
|
*/
|
|
17
|
-
export const
|
|
14
|
+
export const chunk_light_get_sun: CodeChunk;
|
|
18
15
|
import { CodeChunk } from "../../../compiler/CodeChunk.js";
|
|
19
|
-
//# sourceMappingURL=
|
|
16
|
+
//# sourceMappingURL=chunk_light_get_sun.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk_light_get_sun.d.ts","sourceRoot":"","sources":["../../../../../../../../src/shade/renderer/shader/chunk/light/io/chunk_light_get_sun.js"],"names":[],"mappings":"AAQA;;;;;;;;;;;;GAYG;AACH,kCAFU,SAAS,CAmBjB;0BApCwB,gCAAgC"}
|
|
@@ -1,15 +1,10 @@
|
|
|
1
|
+
import { LIGHT_DATA_RESOURCE } from "../../../../light/LIGHT_DATA_RESOURCE.js";
|
|
1
2
|
import { LIGHT_DATABASE_SPEC } from "../../../../light/LIGHT_DATABASE_SPEC.js";
|
|
2
|
-
import { chunk_sample_environment_color } from "../../../../atmosphere/chunk_sample_environment_color.js";
|
|
3
3
|
import { CodeChunk } from "../../../compiler/CodeChunk.js";
|
|
4
|
-
import { chunk_integrate_scattering } from "../../atmosphere/chunk_integrate_scattering.js";
|
|
5
|
-
import { chunk_planet_intersection } from "../../atmosphere/chunk_planet_intersection.js";
|
|
6
|
-
import { F32_MAX_DEFINITION } from "../../math/F32_MAX_DEFINITION.js";
|
|
7
4
|
import { DIRECTIONAL_LIGHT_STRUCT } from "../DIRECTIONAL_LIGHT_STRUCT.js";
|
|
8
|
-
import {
|
|
9
|
-
chunk_directional_lights_iteration_mask
|
|
10
|
-
} from "../io/chunk_directional_lights_iteration_mask.js";
|
|
5
|
+
import { chunk_directional_lights_iteration_mask } from "./chunk_directional_lights_iteration_mask.js";
|
|
11
6
|
|
|
12
|
-
const DIRECTIONAL_DESCRIPTOR = LIGHT_DATABASE_SPEC.get(
|
|
7
|
+
const DIRECTIONAL_DESCRIPTOR = LIGHT_DATABASE_SPEC.get("light_directional");
|
|
13
8
|
|
|
14
9
|
/**
|
|
15
10
|
* "The sun" — the first occupied directional light in the table.
|
|
@@ -21,6 +16,8 @@ const DIRECTIONAL_DESCRIPTOR = LIGHT_DATABASE_SPEC.get('light_directional');
|
|
|
21
16
|
* iterating; per-pixel direct shading should iterate via
|
|
22
17
|
* {@link chunk_directional_lights_iteration_mask} so every directional
|
|
23
18
|
* light contributes.
|
|
19
|
+
*
|
|
20
|
+
* @type {CodeChunk}
|
|
24
21
|
*/
|
|
25
22
|
export const chunk_light_get_sun = CodeChunk.from(
|
|
26
23
|
//language=WGSL
|
|
@@ -41,21 +38,4 @@ export const chunk_light_get_sun = CodeChunk.from(
|
|
|
41
38
|
]
|
|
42
39
|
);
|
|
43
40
|
|
|
44
|
-
|
|
45
|
-
* @see https://github.com/GPUOpen-LibrariesAndSDKs/FidelityFX-SDK/blob/1bbe66e7ea0d358e84af4471a90aa9c35b583de0/framework/rendermodules/skydome/shaders/skydomeproc.hlsl#L177
|
|
46
|
-
* @type {CodeChunk}
|
|
47
|
-
*/
|
|
48
|
-
export const chunk_sample_sky_color = CodeChunk.from(
|
|
49
|
-
// language=WGSL
|
|
50
|
-
`
|
|
51
|
-
fn sample_sky_color(position: vec3<f32>, direction:vec3<f32>) -> vec3<f32>{
|
|
52
|
-
return sample_sky_irradiance_lut( direction );
|
|
53
|
-
}
|
|
54
|
-
`, [
|
|
55
|
-
chunk_sample_environment_color,
|
|
56
|
-
chunk_planet_intersection,
|
|
57
|
-
chunk_integrate_scattering,
|
|
58
|
-
chunk_light_get_sun,
|
|
59
|
-
F32_MAX_DEFINITION,
|
|
60
|
-
]
|
|
61
|
-
);
|
|
41
|
+
chunk_light_get_sun.requireResource(LIGHT_DATA_RESOURCE);
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
} from "../../../shader/chunk/geometry/normal/chunk_decode_g_buffer_face_normal.js";
|
|
16
16
|
import { RAY_STRUCT } from "../../../shader/chunk/geometry/ray/RAY_STRUCT.js";
|
|
17
17
|
import { chunk_v3_matrix4_project } from "../../../shader/chunk/geometry/vec3/chunk_v3_matrix4_project.js";
|
|
18
|
-
import { chunk_light_get_sun } from "../../../shader/chunk/light/
|
|
18
|
+
import { chunk_light_get_sun } from "../../../shader/chunk/light/io/chunk_light_get_sun.js";
|
|
19
19
|
import { chunk_spatio_temporal_noise_r2_64 } from "../../../shader/chunk/noise/chunk_spatio_temporal_noise_r2_64.js";
|
|
20
20
|
import { chunk_texel_coordinate_to_uv } from "../../../shader/chunk/texture/chunk_texel_coordinate_to_uv.js";
|
|
21
21
|
import { CodeChunk } from "../../../shader/compiler/CodeChunk.js";
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The GPU trails as an `AVBOITSideChannel`: drawn inside the transparency pipeline, order-independently
|
|
3
|
+
* against the transparent meshes, the particles, the dynamic meshes and each other.
|
|
4
|
+
*
|
|
5
|
+
* - **occupancy** — the segments pass: a thread per live segment, culled by fade and by the view
|
|
6
|
+
* frustum, marking the depth slices its capsule spans and appending itself to its draw class's list.
|
|
7
|
+
* - **splat** and **draw** — the unlit pair the dynamic meshes draw through, with the tube extruded in
|
|
8
|
+
* the vertex stage: one indexed indirect draw per draw class, a segment an instance.
|
|
9
|
+
*
|
|
10
|
+
* The frame's simulation is recorded before this is asked (the trails' frame extension runs at
|
|
11
|
+
* AfterLighting); {@link begin_frame} hands it over with the view it was recorded for. A registered
|
|
12
|
+
* trail makes the channel non-empty: whether every trail has faded is the GPU's to know, and the CPU
|
|
13
|
+
* does not read it back.
|
|
14
|
+
*/
|
|
15
|
+
export class GPUTrailAVBOITChannel {
|
|
16
|
+
/**
|
|
17
|
+
* The frame's simulation, for the view it is drawn in.
|
|
18
|
+
*
|
|
19
|
+
* @param {object} graph
|
|
20
|
+
* @param {import("../view/GPUViewContext.js").GPUViewContext} view
|
|
21
|
+
* @param {import("./GPUTrailSystem.js").GPUTrailSystem} runtime
|
|
22
|
+
* @param {import("./graph_trails.js").TrailSimulationHandles} simulation
|
|
23
|
+
*/
|
|
24
|
+
begin_frame(graph: object, view: import("../view/GPUViewContext.js").GPUViewContext, runtime: import("./GPUTrailSystem.js").GPUTrailSystem, simulation: import("./graph_trails.js").TrailSimulationHandles): void;
|
|
25
|
+
/**
|
|
26
|
+
* Forget the frame: the passes carry their own references to what they read.
|
|
27
|
+
*/
|
|
28
|
+
end_frame(): void;
|
|
29
|
+
/**
|
|
30
|
+
* @param {import("../view/GPUViewContext.js").GPUViewContext} view
|
|
31
|
+
* @returns {boolean}
|
|
32
|
+
*/
|
|
33
|
+
avboit_is_empty(view: import("../view/GPUViewContext.js").GPUViewContext): boolean;
|
|
34
|
+
avboit_occupancy({ graph, camera, cluster_parameters, occupancy }: {
|
|
35
|
+
graph: any;
|
|
36
|
+
camera: any;
|
|
37
|
+
cluster_parameters: any;
|
|
38
|
+
occupancy: any;
|
|
39
|
+
}): number;
|
|
40
|
+
avboit_splat({ graph, camera, warp, voxel_resolution, volume }: {
|
|
41
|
+
graph: any;
|
|
42
|
+
camera: any;
|
|
43
|
+
warp: any;
|
|
44
|
+
voxel_resolution: any;
|
|
45
|
+
volume: any;
|
|
46
|
+
}): {
|
|
47
|
+
extinction: number;
|
|
48
|
+
overflow: number;
|
|
49
|
+
dummy: number;
|
|
50
|
+
};
|
|
51
|
+
avboit_draw({ graph, view_ctx, camera, depth_texture, warp, integral, volumetrics_lut, volumetrics_metadata, accumulators }: {
|
|
52
|
+
graph: any;
|
|
53
|
+
view_ctx: any;
|
|
54
|
+
camera: any;
|
|
55
|
+
depth_texture: any;
|
|
56
|
+
warp: any;
|
|
57
|
+
integral: any;
|
|
58
|
+
volumetrics_lut: any;
|
|
59
|
+
volumetrics_metadata: any;
|
|
60
|
+
accumulators: any;
|
|
61
|
+
}): {
|
|
62
|
+
color: number;
|
|
63
|
+
norm: number;
|
|
64
|
+
extinction: number;
|
|
65
|
+
emission: number;
|
|
66
|
+
};
|
|
67
|
+
#private;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=GPUTrailAVBOITChannel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GPUTrailAVBOITChannel.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/trails/GPUTrailAVBOITChannel.js"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;GAaG;AACH;IAMI;;;;;;;OAOG;IACH,mBALW,MAAM,QACN,OAAO,2BAA2B,EAAE,cAAc,WAClD,OAAO,qBAAqB,EAAE,cAAc,cAC5C,OAAO,mBAAmB,EAAE,sBAAsB,QAI5D;IAED;;OAEG;IACH,kBAEC;IAED;;;OAGG;IACH,sBAHW,OAAO,2BAA2B,EAAE,cAAc,GAChD,OAAO,CAMnB;IAED;;;;;eAaC;IAED;;;;;;;;;;MAeC;IAED;;;;;;;;;;;;;;;MAgCC;;CAYJ"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { assert } from "../../../core/assert.js";
|
|
2
|
+
import { graph_trails_avboit_draw, graph_trails_avboit_segments, graph_trails_avboit_splat } from "./graph_trails_avboit.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* The GPU trails as an `AVBOITSideChannel`: drawn inside the transparency pipeline, order-independently
|
|
6
|
+
* against the transparent meshes, the particles, the dynamic meshes and each other.
|
|
7
|
+
*
|
|
8
|
+
* - **occupancy** — the segments pass: a thread per live segment, culled by fade and by the view
|
|
9
|
+
* frustum, marking the depth slices its capsule spans and appending itself to its draw class's list.
|
|
10
|
+
* - **splat** and **draw** — the unlit pair the dynamic meshes draw through, with the tube extruded in
|
|
11
|
+
* the vertex stage: one indexed indirect draw per draw class, a segment an instance.
|
|
12
|
+
*
|
|
13
|
+
* The frame's simulation is recorded before this is asked (the trails' frame extension runs at
|
|
14
|
+
* AfterLighting); {@link begin_frame} hands it over with the view it was recorded for. A registered
|
|
15
|
+
* trail makes the channel non-empty: whether every trail has faded is the GPU's to know, and the CPU
|
|
16
|
+
* does not read it back.
|
|
17
|
+
*/
|
|
18
|
+
export class GPUTrailAVBOITChannel {
|
|
19
|
+
/**
|
|
20
|
+
* @type {{graph: object, view: object, runtime: import("./GPUTrailSystem.js").GPUTrailSystem, simulation: import("./graph_trails.js").TrailSimulationHandles, segments: import("./graph_trails_avboit.js").TrailSegmentsHandles|null}|null}
|
|
21
|
+
*/
|
|
22
|
+
#frame = null;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* The frame's simulation, for the view it is drawn in.
|
|
26
|
+
*
|
|
27
|
+
* @param {object} graph
|
|
28
|
+
* @param {import("../view/GPUViewContext.js").GPUViewContext} view
|
|
29
|
+
* @param {import("./GPUTrailSystem.js").GPUTrailSystem} runtime
|
|
30
|
+
* @param {import("./graph_trails.js").TrailSimulationHandles} simulation
|
|
31
|
+
*/
|
|
32
|
+
begin_frame(graph, view, runtime, simulation) {
|
|
33
|
+
this.#frame = { graph, view, runtime, simulation, segments: null };
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Forget the frame: the passes carry their own references to what they read.
|
|
38
|
+
*/
|
|
39
|
+
end_frame() {
|
|
40
|
+
this.#frame = null;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* @param {import("../view/GPUViewContext.js").GPUViewContext} view
|
|
45
|
+
* @returns {boolean}
|
|
46
|
+
*/
|
|
47
|
+
avboit_is_empty(view) {
|
|
48
|
+
const frame = this.#frame;
|
|
49
|
+
|
|
50
|
+
return frame === null || frame.view !== view || frame.runtime.count === 0;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
avboit_occupancy({ graph, camera, cluster_parameters, occupancy }) {
|
|
54
|
+
const frame = this.#frame_for(graph);
|
|
55
|
+
|
|
56
|
+
frame.segments = graph_trails_avboit_segments({
|
|
57
|
+
graph,
|
|
58
|
+
camera,
|
|
59
|
+
cluster_parameters,
|
|
60
|
+
occupancy,
|
|
61
|
+
simulation: frame.simulation,
|
|
62
|
+
runtime: frame.runtime,
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
return frame.segments.occupancy;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
avboit_splat({ graph, camera, warp, voxel_resolution, volume }) {
|
|
69
|
+
const frame = this.#frame_for(graph);
|
|
70
|
+
|
|
71
|
+
assert.notNull(frame.segments, "the occupancy was not recorded into this graph");
|
|
72
|
+
|
|
73
|
+
return graph_trails_avboit_splat({
|
|
74
|
+
graph,
|
|
75
|
+
camera,
|
|
76
|
+
warp,
|
|
77
|
+
voxel_resolution,
|
|
78
|
+
volume,
|
|
79
|
+
simulation: frame.simulation,
|
|
80
|
+
segments: frame.segments,
|
|
81
|
+
runtime: frame.runtime,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
avboit_draw({
|
|
86
|
+
graph,
|
|
87
|
+
view_ctx,
|
|
88
|
+
camera,
|
|
89
|
+
depth_texture,
|
|
90
|
+
warp,
|
|
91
|
+
integral,
|
|
92
|
+
volumetrics_lut,
|
|
93
|
+
volumetrics_metadata,
|
|
94
|
+
accumulators
|
|
95
|
+
}) {
|
|
96
|
+
const frame = this.#frame_for(graph);
|
|
97
|
+
|
|
98
|
+
assert.notNull(frame.segments, "the occupancy was not recorded into this graph");
|
|
99
|
+
|
|
100
|
+
// the last of the three: what is left is the passes'
|
|
101
|
+
this.#frame = null;
|
|
102
|
+
|
|
103
|
+
return graph_trails_avboit_draw({
|
|
104
|
+
graph,
|
|
105
|
+
view_ctx,
|
|
106
|
+
camera,
|
|
107
|
+
depth_texture,
|
|
108
|
+
warp,
|
|
109
|
+
integral,
|
|
110
|
+
volumetrics_lut,
|
|
111
|
+
volumetrics_metadata,
|
|
112
|
+
accumulators,
|
|
113
|
+
simulation: frame.simulation,
|
|
114
|
+
segments: frame.segments,
|
|
115
|
+
runtime: frame.runtime,
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* @param {object} graph
|
|
121
|
+
*/
|
|
122
|
+
#frame_for(graph) {
|
|
123
|
+
const frame = this.#frame;
|
|
124
|
+
|
|
125
|
+
assert.ok(frame !== null && frame.graph === graph, "the trails' simulation was not recorded into this graph");
|
|
126
|
+
|
|
127
|
+
return frame;
|
|
128
|
+
}
|
|
129
|
+
}
|