@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,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a vertex stage hands the unlit AVBOIT fragment stages (`chunk_avboit_unlit_splat_fragment`,
|
|
3
|
+
* `chunk_avboit_unlit_draw_fragment`): `struct AVBOITUnlitVaryings`.
|
|
4
|
+
*
|
|
5
|
+
* - `clip` is the clip-space position.
|
|
6
|
+
* - `color` is straight, not premultiplied: RGB and the fragment's own opacity.
|
|
7
|
+
* - `view_depth` is the vertex's view-space depth, interpolated across the triangle. The splat
|
|
8
|
+
* positions a fragment's extinction by it and the draw looks the volume up at it, so both take it
|
|
9
|
+
* from here rather than reconstructing it from `@builtin(position).z`.
|
|
10
|
+
*
|
|
11
|
+
* `color` and `view_depth` are interpolated at the **centroid** of the samples a triangle covers. The
|
|
12
|
+
* splat is multisampled, and a thin triangle can cover some of a pixel's samples but not its centre;
|
|
13
|
+
* at the centre its depth and alpha would be extrapolated off the triangle's edge, which on a ribbon
|
|
14
|
+
* seen nearly edge-on lands the extinction slices away from the ribbon. The draw has one sample, where
|
|
15
|
+
* a fragment exists only if the centre is covered and the centroid is the centre.
|
|
16
|
+
*
|
|
17
|
+
* @type {CodeChunk}
|
|
18
|
+
*/
|
|
19
|
+
export const chunk_avboit_unlit_varyings: CodeChunk;
|
|
20
|
+
import { CodeChunk } from "../../../shader/compiler/CodeChunk.js";
|
|
21
|
+
//# sourceMappingURL=chunk_avboit_unlit_varyings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk_avboit_unlit_varyings.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/rasterize/native/avboit/chunk_avboit_unlit_varyings.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;GAiBG;AACH,0CAFU,SAAS,CAWjB;0BA7BwB,uCAAuC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { CodeChunk } from "../../../shader/compiler/CodeChunk.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* What a vertex stage hands the unlit AVBOIT fragment stages (`chunk_avboit_unlit_splat_fragment`,
|
|
5
|
+
* `chunk_avboit_unlit_draw_fragment`): `struct AVBOITUnlitVaryings`.
|
|
6
|
+
*
|
|
7
|
+
* - `clip` is the clip-space position.
|
|
8
|
+
* - `color` is straight, not premultiplied: RGB and the fragment's own opacity.
|
|
9
|
+
* - `view_depth` is the vertex's view-space depth, interpolated across the triangle. The splat
|
|
10
|
+
* positions a fragment's extinction by it and the draw looks the volume up at it, so both take it
|
|
11
|
+
* from here rather than reconstructing it from `@builtin(position).z`.
|
|
12
|
+
*
|
|
13
|
+
* `color` and `view_depth` are interpolated at the **centroid** of the samples a triangle covers. The
|
|
14
|
+
* splat is multisampled, and a thin triangle can cover some of a pixel's samples but not its centre;
|
|
15
|
+
* at the centre its depth and alpha would be extrapolated off the triangle's edge, which on a ribbon
|
|
16
|
+
* seen nearly edge-on lands the extinction slices away from the ribbon. The draw has one sample, where
|
|
17
|
+
* a fragment exists only if the centre is covered and the centroid is the centre.
|
|
18
|
+
*
|
|
19
|
+
* @type {CodeChunk}
|
|
20
|
+
*/
|
|
21
|
+
export const chunk_avboit_unlit_varyings = CodeChunk.from(
|
|
22
|
+
//language=WGSL
|
|
23
|
+
`
|
|
24
|
+
struct AVBOITUnlitVaryings {
|
|
25
|
+
@builtin(position) clip : vec4<f32>,
|
|
26
|
+
@location(0) @interpolate(perspective, centroid) color : vec4<f32>,
|
|
27
|
+
@location(1) @interpolate(perspective, centroid) view_depth : f32,
|
|
28
|
+
}
|
|
29
|
+
`
|
|
30
|
+
);
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Splat a channel's unlit geometry into the voxel volume.
|
|
3
|
+
*
|
|
4
|
+
* The raster is multisampled ({@link AVBOIT_UNLIT_SPLAT_SAMPLES}), so it cannot use the volume's
|
|
5
|
+
* single-sampled splat target: the pass makes its own at the volume's resolution, never written,
|
|
6
|
+
* cleared and discarded, and hands the volume's back untouched.
|
|
7
|
+
*
|
|
8
|
+
* @param {object} params
|
|
9
|
+
* @param {import("../../../../../engine/graphics/render/frame_graph/FrameGraph.js").FrameGraph} params.graph
|
|
10
|
+
* @param {string} params.label the pass's label; its target is labelled after it
|
|
11
|
+
* @param {import("../../../../descriptor/pipeline/render/RenderPipelineDescriptor.js").RenderPipelineDescriptor} params.pipeline
|
|
12
|
+
* from `avboit_unlit_splat_pipeline`
|
|
13
|
+
* @param {import("../../../shader/resource/ShaderResourceSetDescriptor.js").ShaderResourceSetDescriptor} params.resources
|
|
14
|
+
* the pipeline's shader resources
|
|
15
|
+
* @param {Object<string, number>} params.inputs graph handles the channel's draws read, by name
|
|
16
|
+
* @param {number} params.warp graph handle
|
|
17
|
+
* @param {number[]} params.voxel_resolution the volume's width and height, which the raster is
|
|
18
|
+
* @param {{extinction: number, overflow: number, dummy: number}} params.volume the volume, to add to
|
|
19
|
+
* @param {function(): boolean} params.is_empty asked when the pass executes; `true` records no render pass
|
|
20
|
+
* @param {function(GPURenderPassEncoder, GraphicsContext, Object<string, *>): void} params.record issues
|
|
21
|
+
* the draws into the open pass, whose pass-level groups are set, with `inputs` resolved
|
|
22
|
+
* @returns {{extinction: number, overflow: number, dummy: number}} the volume after the write
|
|
23
|
+
*/
|
|
24
|
+
export function graph_avboit_unlit_splat({ graph, label, pipeline, resources, inputs, warp, voxel_resolution, volume, is_empty, record, }: {
|
|
25
|
+
graph: import("../../../../../engine/graphics/render/frame_graph/FrameGraph.js").FrameGraph;
|
|
26
|
+
label: string;
|
|
27
|
+
pipeline: import("../../../../descriptor/pipeline/render/RenderPipelineDescriptor.js").RenderPipelineDescriptor;
|
|
28
|
+
resources: import("../../../shader/resource/ShaderResourceSetDescriptor.js").ShaderResourceSetDescriptor;
|
|
29
|
+
inputs: {
|
|
30
|
+
[x: string]: number;
|
|
31
|
+
};
|
|
32
|
+
warp: number;
|
|
33
|
+
voxel_resolution: number[];
|
|
34
|
+
volume: {
|
|
35
|
+
extinction: number;
|
|
36
|
+
overflow: number;
|
|
37
|
+
dummy: number;
|
|
38
|
+
};
|
|
39
|
+
is_empty: () => boolean;
|
|
40
|
+
record: (arg0: GPURenderPassEncoder, arg1: GraphicsContext, arg2: {
|
|
41
|
+
[x: string]: any;
|
|
42
|
+
}) => void;
|
|
43
|
+
}): {
|
|
44
|
+
extinction: number;
|
|
45
|
+
overflow: number;
|
|
46
|
+
dummy: number;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Draw a channel's unlit geometry into the four accumulators, depth-tested against the opaque scene.
|
|
50
|
+
*
|
|
51
|
+
* @param {object} params
|
|
52
|
+
* @param {import("../../../../../engine/graphics/render/frame_graph/FrameGraph.js").FrameGraph} params.graph
|
|
53
|
+
* @param {string} params.label
|
|
54
|
+
* @param {import("../../../../descriptor/pipeline/render/RenderPipelineDescriptor.js").RenderPipelineDescriptor} params.pipeline
|
|
55
|
+
* from `avboit_unlit_draw_pipeline`
|
|
56
|
+
* @param {import("../../../shader/resource/ShaderResourceSetDescriptor.js").ShaderResourceSetDescriptor} params.resources
|
|
57
|
+
* the pipeline's shader resources
|
|
58
|
+
* @param {Object<string, number>} params.inputs graph handles the channel's draws read, by name
|
|
59
|
+
* @param {import("../../../view/GPUViewContext.js").GPUViewContext} params.view_ctx
|
|
60
|
+
* @param {number} params.depth_texture graph handle of the opaque scene's depth — tested, never written
|
|
61
|
+
* @param {number} params.warp graph handle
|
|
62
|
+
* @param {number} params.integral graph handle of the integral texture
|
|
63
|
+
* @param {number} params.volumetrics_lut graph handle
|
|
64
|
+
* @param {number} params.volumetrics_metadata graph handle
|
|
65
|
+
* @param {{color: number, norm: number, extinction: number, emission: number}} params.accumulators to add to
|
|
66
|
+
* @param {function(): boolean} params.is_empty asked when the pass executes; `true` records no render pass
|
|
67
|
+
* @param {function(GPURenderPassEncoder, GraphicsContext, Object<string, *>): void} params.record issues
|
|
68
|
+
* the draws into the open pass, whose pass-level group is set, with `inputs` resolved
|
|
69
|
+
* @returns {{color: number, norm: number, extinction: number, emission: number}} the accumulators after the draw
|
|
70
|
+
*/
|
|
71
|
+
export function graph_avboit_unlit_draw({ graph, label, pipeline, resources, inputs, view_ctx, depth_texture, warp, integral, volumetrics_lut, volumetrics_metadata, accumulators, is_empty, record, }: {
|
|
72
|
+
graph: import("../../../../../engine/graphics/render/frame_graph/FrameGraph.js").FrameGraph;
|
|
73
|
+
label: string;
|
|
74
|
+
pipeline: import("../../../../descriptor/pipeline/render/RenderPipelineDescriptor.js").RenderPipelineDescriptor;
|
|
75
|
+
resources: import("../../../shader/resource/ShaderResourceSetDescriptor.js").ShaderResourceSetDescriptor;
|
|
76
|
+
inputs: {
|
|
77
|
+
[x: string]: number;
|
|
78
|
+
};
|
|
79
|
+
view_ctx: import("../../../view/GPUViewContext.js").GPUViewContext;
|
|
80
|
+
depth_texture: number;
|
|
81
|
+
warp: number;
|
|
82
|
+
integral: number;
|
|
83
|
+
volumetrics_lut: number;
|
|
84
|
+
volumetrics_metadata: number;
|
|
85
|
+
accumulators: {
|
|
86
|
+
color: number;
|
|
87
|
+
norm: number;
|
|
88
|
+
extinction: number;
|
|
89
|
+
emission: number;
|
|
90
|
+
};
|
|
91
|
+
is_empty: () => boolean;
|
|
92
|
+
record: (arg0: GPURenderPassEncoder, arg1: GraphicsContext, arg2: {
|
|
93
|
+
[x: string]: any;
|
|
94
|
+
}) => void;
|
|
95
|
+
}): {
|
|
96
|
+
color: number;
|
|
97
|
+
norm: number;
|
|
98
|
+
extinction: number;
|
|
99
|
+
emission: number;
|
|
100
|
+
};
|
|
101
|
+
//# sourceMappingURL=graph_avboit_unlit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph_avboit_unlit.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/rasterize/native/avboit/graph_avboit_unlit.js"],"names":[],"mappings":"AAuEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH;IAfwG,KAAK,EAAlG,OAAO,iEAAiE,EAAE,UAAU;IACrE,KAAK,EAApB,MAAM;IACwG,QAAQ,EAAtH,OAAO,oEAAoE,EAAE,wBAAwB;IAEC,SAAS,EAA/G,OAAO,yDAAyD,EAAE,2BAA2B;IAE9D,MAAM;YAA9B,MAAM,GAAE,MAAM;;IACN,IAAI,EAAnB,MAAM;IACW,gBAAgB,EAAjC,MAAM,EAAE;IACsD,MAAM,EAApE;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC;IACzB,QAAQ,QAAxB,OAAO;IAC8D,MAAM;YAAhC,MAAM;UAAO,IAAI;IAEtE;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,CA4FjE;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH;IAnBwG,KAAK,EAAlG,OAAO,iEAAiE,EAAE,UAAU;IACrE,KAAK,EAApB,MAAM;IACwG,QAAQ,EAAtH,OAAO,oEAAoE,EAAE,wBAAwB;IAEC,SAAS,EAA/G,OAAO,yDAAyD,EAAE,2BAA2B;IAE9D,MAAM;YAA9B,MAAM,GAAE,MAAM;;IAC4C,QAAQ,EAAzE,OAAO,iCAAiC,EAAE,cAAc;IACzC,aAAa,EAA5B,MAAM;IACS,IAAI,EAAnB,MAAM;IACS,QAAQ,EAAvB,MAAM;IACS,eAAe,EAA9B,MAAM;IACS,oBAAoB,EAAnC,MAAM;IACsE,YAAY,EAAxF;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC;IACvC,QAAQ,QAAxB,OAAO;IAC8D,MAAM;YAAhC,MAAM;UAAO,IAAI;IAEtE;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAC,CAkG/E"}
|
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
import { assert } from "../../../../../core/assert.js";
|
|
2
|
+
import { GPUTextureUsage } from "../../../../descriptor/GPUTextureUsage.js";
|
|
3
|
+
import { TextureViewDescriptor } from "../../../../descriptor/texture/TextureViewDescriptor.js";
|
|
4
|
+
import { TextureResourceDescriptor } from "../../../../device/graph/TextureResourceDescriptor.js";
|
|
5
|
+
import { DEFAULT_DEPTH_TEXTURE_VIEW } from "../../../depth/DEFAULT_DEPTH_TEXTURE_VIEW.js";
|
|
6
|
+
import { STATIC_GRAPHICS_ENGINE_ASSETS } from "../../../STATIC_GRAPHICS_ENGINE_ASSETS.js";
|
|
7
|
+
import { SAMPLER_LINEAR_UPSCALE } from "../../../texture/SAMPLER_LINEAR_UPSCALE.js";
|
|
8
|
+
import { AVBOIT_UNLIT_DRAW_PASS_GROUP } from "./avboit_unlit_draw.js";
|
|
9
|
+
import { AVBOIT_UNLIT_SPLAT_PASS_GROUP, AVBOIT_UNLIT_SPLAT_SAMPLES } from "./avboit_unlit_splat.js";
|
|
10
|
+
import { AVBOIT_SPLAT_DUMMY_FORMAT, AVBOIT_SPLAT_VOLUME_GROUP } from "./shader_avboit_splat.js";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* The passes an `AVBOITSideChannel` of unlit straight-alpha geometry records for its splat and its draw,
|
|
14
|
+
* with everything but the draws themselves in one place: the attachments, the multisampled target of
|
|
15
|
+
* the splat, the pass-level bind groups and the frame-graph reads and writes. A channel supplies a
|
|
16
|
+
* pipeline built by `avboit_unlit_splat_pipeline` / `avboit_unlit_draw_pipeline`, the graph handles its
|
|
17
|
+
* own draws read, and a `record` callback that issues them; the dynamic meshes and the trails draw
|
|
18
|
+
* through the same passes this way, with different vertex stages.
|
|
19
|
+
*
|
|
20
|
+
* Order does not matter to either pass — the volume and the accumulators are sums — which is why
|
|
21
|
+
* nothing here sorts.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
/** The accumulators' and the splat target's view: one mip, the one the frame draws into. */
|
|
25
|
+
const COLOR_VIEW = TextureViewDescriptor.from({ mipLevelCount: 1, baseMipLevel: 0 });
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* @param {import("../../../shader/resource/ShaderResourceSetDescriptor.js").ShaderResourceSetDescriptor} resources
|
|
29
|
+
* @param {import("../../../shader/resource/ShaderResourceGroupDescriptor.js").ShaderResourceGroupDescriptor} group
|
|
30
|
+
* @returns {number} where the shader declares `group`
|
|
31
|
+
*/
|
|
32
|
+
function group_index(resources, group) {
|
|
33
|
+
const index = resources.groups.indexOf(group);
|
|
34
|
+
|
|
35
|
+
assert.notEqual(index, -1, "the shader does not bind this pass group");
|
|
36
|
+
|
|
37
|
+
return index;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Read every handle of `inputs` in `pass`, keeping the names.
|
|
42
|
+
*
|
|
43
|
+
* @param {object} pass the pass builder
|
|
44
|
+
* @param {Object<string, number>} inputs
|
|
45
|
+
* @returns {Object<string, number>} the handles as the pass reads them
|
|
46
|
+
*/
|
|
47
|
+
function read_inputs(pass, inputs) {
|
|
48
|
+
const read = {};
|
|
49
|
+
|
|
50
|
+
for (const name of Object.keys(inputs)) {
|
|
51
|
+
read[name] = pass.read(inputs[name]);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return read;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* @param {Object<string, number>} handles
|
|
59
|
+
* @param {object} resources the pass's resolved resources
|
|
60
|
+
* @returns {Object<string, *>} the same names, resolved
|
|
61
|
+
*/
|
|
62
|
+
function resolve_inputs(handles, resources) {
|
|
63
|
+
const resolved = {};
|
|
64
|
+
|
|
65
|
+
for (const name of Object.keys(handles)) {
|
|
66
|
+
resolved[name] = resources.get(handles[name]);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
return resolved;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Splat a channel's unlit geometry into the voxel volume.
|
|
74
|
+
*
|
|
75
|
+
* The raster is multisampled ({@link AVBOIT_UNLIT_SPLAT_SAMPLES}), so it cannot use the volume's
|
|
76
|
+
* single-sampled splat target: the pass makes its own at the volume's resolution, never written,
|
|
77
|
+
* cleared and discarded, and hands the volume's back untouched.
|
|
78
|
+
*
|
|
79
|
+
* @param {object} params
|
|
80
|
+
* @param {import("../../../../../engine/graphics/render/frame_graph/FrameGraph.js").FrameGraph} params.graph
|
|
81
|
+
* @param {string} params.label the pass's label; its target is labelled after it
|
|
82
|
+
* @param {import("../../../../descriptor/pipeline/render/RenderPipelineDescriptor.js").RenderPipelineDescriptor} params.pipeline
|
|
83
|
+
* from `avboit_unlit_splat_pipeline`
|
|
84
|
+
* @param {import("../../../shader/resource/ShaderResourceSetDescriptor.js").ShaderResourceSetDescriptor} params.resources
|
|
85
|
+
* the pipeline's shader resources
|
|
86
|
+
* @param {Object<string, number>} params.inputs graph handles the channel's draws read, by name
|
|
87
|
+
* @param {number} params.warp graph handle
|
|
88
|
+
* @param {number[]} params.voxel_resolution the volume's width and height, which the raster is
|
|
89
|
+
* @param {{extinction: number, overflow: number, dummy: number}} params.volume the volume, to add to
|
|
90
|
+
* @param {function(): boolean} params.is_empty asked when the pass executes; `true` records no render pass
|
|
91
|
+
* @param {function(GPURenderPassEncoder, GraphicsContext, Object<string, *>): void} params.record issues
|
|
92
|
+
* the draws into the open pass, whose pass-level groups are set, with `inputs` resolved
|
|
93
|
+
* @returns {{extinction: number, overflow: number, dummy: number}} the volume after the write
|
|
94
|
+
*/
|
|
95
|
+
export function graph_avboit_unlit_splat({
|
|
96
|
+
graph,
|
|
97
|
+
label,
|
|
98
|
+
pipeline,
|
|
99
|
+
resources,
|
|
100
|
+
inputs,
|
|
101
|
+
warp,
|
|
102
|
+
voxel_resolution,
|
|
103
|
+
volume,
|
|
104
|
+
is_empty,
|
|
105
|
+
record,
|
|
106
|
+
}) {
|
|
107
|
+
assert.isString(label, "label");
|
|
108
|
+
assert.isNonNegativeInteger(warp, "warp");
|
|
109
|
+
assert.isArrayLike(voxel_resolution, "voxel_resolution");
|
|
110
|
+
assert.defined(volume, "volume");
|
|
111
|
+
assert.isFunction(is_empty, "is_empty");
|
|
112
|
+
assert.isFunction(record, "record");
|
|
113
|
+
|
|
114
|
+
const pass_group_index = group_index(resources, AVBOIT_UNLIT_SPLAT_PASS_GROUP);
|
|
115
|
+
const volume_group_index = group_index(resources, AVBOIT_SPLAT_VOLUME_GROUP);
|
|
116
|
+
|
|
117
|
+
function execute(data, frame_resources, context) {
|
|
118
|
+
const encoder = context.encoder;
|
|
119
|
+
const graphics = context.graphics;
|
|
120
|
+
|
|
121
|
+
if (is_empty()) {
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// By name, never by position (AVBOIT ledger entry 21): the order a shader declares its
|
|
126
|
+
// bindings in is the shader's business.
|
|
127
|
+
const pass_group = AVBOIT_UNLIT_SPLAT_PASS_GROUP.generateBindings({
|
|
128
|
+
warp: frame_resources.get(data.warp),
|
|
129
|
+
}, encoder);
|
|
130
|
+
|
|
131
|
+
const volume_group = AVBOIT_SPLAT_VOLUME_GROUP.generateBindings({
|
|
132
|
+
extinction_volume: frame_resources.get(data.extinction),
|
|
133
|
+
overflow_slice: frame_resources.get(data.overflow),
|
|
134
|
+
}, encoder);
|
|
135
|
+
|
|
136
|
+
// the target is never written; it only sizes the raster and gives it its samples
|
|
137
|
+
const pass_encoder = encoder.constructRenderPass({
|
|
138
|
+
label,
|
|
139
|
+
pipeline,
|
|
140
|
+
// the pass's groups are set once, just below; the draws set their own
|
|
141
|
+
bindings: [],
|
|
142
|
+
colorAttachments: [{
|
|
143
|
+
view: frame_resources.get(data.target).obtainView(COLOR_VIEW),
|
|
144
|
+
loadOp: "clear",
|
|
145
|
+
storeOp: "discard",
|
|
146
|
+
}],
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
graphics.setPipelineBindGroup(pass_encoder, pipeline, pass_group_index, pass_group);
|
|
150
|
+
graphics.setPipelineBindGroup(pass_encoder, pipeline, volume_group_index, volume_group);
|
|
151
|
+
|
|
152
|
+
record(pass_encoder, graphics, resolve_inputs(data.inputs, frame_resources));
|
|
153
|
+
|
|
154
|
+
pass_encoder.end();
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
const pass_data = {};
|
|
158
|
+
const pass = graph.add(label, pass_data, execute);
|
|
159
|
+
|
|
160
|
+
pass_data.inputs = read_inputs(pass, inputs);
|
|
161
|
+
pass_data.warp = pass.read(warp);
|
|
162
|
+
|
|
163
|
+
pass.read(volume.extinction);
|
|
164
|
+
pass_data.extinction = pass.write(volume.extinction);
|
|
165
|
+
pass.read(volume.overflow);
|
|
166
|
+
pass_data.overflow = pass.write(volume.overflow);
|
|
167
|
+
|
|
168
|
+
const target = TextureResourceDescriptor.from({
|
|
169
|
+
resolution: voxel_resolution,
|
|
170
|
+
format: AVBOIT_SPLAT_DUMMY_FORMAT,
|
|
171
|
+
usage: GPUTextureUsage.RENDER_ATTACHMENT,
|
|
172
|
+
});
|
|
173
|
+
|
|
174
|
+
// `from` takes no sample count
|
|
175
|
+
target.sampleCount = AVBOIT_UNLIT_SPLAT_SAMPLES;
|
|
176
|
+
|
|
177
|
+
pass_data.target = pass.create(`${label} target`, target);
|
|
178
|
+
|
|
179
|
+
return {
|
|
180
|
+
extinction: pass_data.extinction,
|
|
181
|
+
overflow: pass_data.overflow,
|
|
182
|
+
// not this pass's to touch
|
|
183
|
+
dummy: volume.dummy,
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Draw a channel's unlit geometry into the four accumulators, depth-tested against the opaque scene.
|
|
189
|
+
*
|
|
190
|
+
* @param {object} params
|
|
191
|
+
* @param {import("../../../../../engine/graphics/render/frame_graph/FrameGraph.js").FrameGraph} params.graph
|
|
192
|
+
* @param {string} params.label
|
|
193
|
+
* @param {import("../../../../descriptor/pipeline/render/RenderPipelineDescriptor.js").RenderPipelineDescriptor} params.pipeline
|
|
194
|
+
* from `avboit_unlit_draw_pipeline`
|
|
195
|
+
* @param {import("../../../shader/resource/ShaderResourceSetDescriptor.js").ShaderResourceSetDescriptor} params.resources
|
|
196
|
+
* the pipeline's shader resources
|
|
197
|
+
* @param {Object<string, number>} params.inputs graph handles the channel's draws read, by name
|
|
198
|
+
* @param {import("../../../view/GPUViewContext.js").GPUViewContext} params.view_ctx
|
|
199
|
+
* @param {number} params.depth_texture graph handle of the opaque scene's depth — tested, never written
|
|
200
|
+
* @param {number} params.warp graph handle
|
|
201
|
+
* @param {number} params.integral graph handle of the integral texture
|
|
202
|
+
* @param {number} params.volumetrics_lut graph handle
|
|
203
|
+
* @param {number} params.volumetrics_metadata graph handle
|
|
204
|
+
* @param {{color: number, norm: number, extinction: number, emission: number}} params.accumulators to add to
|
|
205
|
+
* @param {function(): boolean} params.is_empty asked when the pass executes; `true` records no render pass
|
|
206
|
+
* @param {function(GPURenderPassEncoder, GraphicsContext, Object<string, *>): void} params.record issues
|
|
207
|
+
* the draws into the open pass, whose pass-level group is set, with `inputs` resolved
|
|
208
|
+
* @returns {{color: number, norm: number, extinction: number, emission: number}} the accumulators after the draw
|
|
209
|
+
*/
|
|
210
|
+
export function graph_avboit_unlit_draw({
|
|
211
|
+
graph,
|
|
212
|
+
label,
|
|
213
|
+
pipeline,
|
|
214
|
+
resources,
|
|
215
|
+
inputs,
|
|
216
|
+
view_ctx,
|
|
217
|
+
depth_texture,
|
|
218
|
+
warp,
|
|
219
|
+
integral,
|
|
220
|
+
volumetrics_lut,
|
|
221
|
+
volumetrics_metadata,
|
|
222
|
+
accumulators,
|
|
223
|
+
is_empty,
|
|
224
|
+
record,
|
|
225
|
+
}) {
|
|
226
|
+
assert.isString(label, "label");
|
|
227
|
+
assert.isNonNegativeInteger(depth_texture, "depth_texture");
|
|
228
|
+
assert.isNonNegativeInteger(warp, "warp");
|
|
229
|
+
assert.isNonNegativeInteger(integral, "integral");
|
|
230
|
+
assert.defined(accumulators, "accumulators");
|
|
231
|
+
assert.isFunction(is_empty, "is_empty");
|
|
232
|
+
assert.isFunction(record, "record");
|
|
233
|
+
|
|
234
|
+
const pass_group_index = group_index(resources, AVBOIT_UNLIT_DRAW_PASS_GROUP);
|
|
235
|
+
|
|
236
|
+
function execute(data, frame_resources, context) {
|
|
237
|
+
const encoder = context.encoder;
|
|
238
|
+
const graphics = context.graphics;
|
|
239
|
+
|
|
240
|
+
if (is_empty()) {
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
// by name rather than by position, for the reason the splat gives
|
|
245
|
+
const pass_group = AVBOIT_UNLIT_DRAW_PASS_GROUP.generateBindings({
|
|
246
|
+
view: view_ctx.uniform_buffer.buffer,
|
|
247
|
+
warp: frame_resources.get(data.warp),
|
|
248
|
+
tIntegral: frame_resources.get(data.integral).obtainView(),
|
|
249
|
+
sLinear: graphics.samplers.obtain(SAMPLER_LINEAR_UPSCALE),
|
|
250
|
+
volumetrics_metadata: frame_resources.get(data.volumetrics_metadata),
|
|
251
|
+
tVolumetrics: frame_resources.get(data.volumetrics_lut).obtainView(),
|
|
252
|
+
tSTBN_vec3: graphics.textures.obtain(STATIC_GRAPHICS_ENGINE_ASSETS.stbn_vec3).obtainView(),
|
|
253
|
+
}, encoder);
|
|
254
|
+
|
|
255
|
+
const attachment = (handle) => ({
|
|
256
|
+
view: frame_resources.get(handle).obtainView(COLOR_VIEW),
|
|
257
|
+
loadOp: "load",
|
|
258
|
+
storeOp: "store",
|
|
259
|
+
});
|
|
260
|
+
|
|
261
|
+
const pass_encoder = encoder.constructRenderPass({
|
|
262
|
+
label,
|
|
263
|
+
pipeline,
|
|
264
|
+
// the pass's group is set once, just below; the draws set their own
|
|
265
|
+
bindings: [],
|
|
266
|
+
colorAttachments: [
|
|
267
|
+
attachment(data.color),
|
|
268
|
+
attachment(data.norm),
|
|
269
|
+
attachment(data.extinction),
|
|
270
|
+
attachment(data.emission),
|
|
271
|
+
],
|
|
272
|
+
depthStencilAttachment: {
|
|
273
|
+
view: frame_resources.get(data.depth).obtainView(DEFAULT_DEPTH_TEXTURE_VIEW),
|
|
274
|
+
depthReadOnly: true,
|
|
275
|
+
},
|
|
276
|
+
});
|
|
277
|
+
|
|
278
|
+
graphics.setPipelineBindGroup(pass_encoder, pipeline, pass_group_index, pass_group);
|
|
279
|
+
|
|
280
|
+
record(pass_encoder, graphics, resolve_inputs(data.inputs, frame_resources));
|
|
281
|
+
|
|
282
|
+
pass_encoder.end();
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
const pass_data = {};
|
|
286
|
+
const pass = graph.add(label, pass_data, execute);
|
|
287
|
+
|
|
288
|
+
pass_data.inputs = read_inputs(pass, inputs);
|
|
289
|
+
pass_data.depth = pass.read(depth_texture);
|
|
290
|
+
pass_data.warp = pass.read(warp);
|
|
291
|
+
pass_data.integral = pass.read(integral);
|
|
292
|
+
pass_data.volumetrics_lut = pass.read(volumetrics_lut);
|
|
293
|
+
pass_data.volumetrics_metadata = pass.read(volumetrics_metadata);
|
|
294
|
+
|
|
295
|
+
for (const name of ["color", "norm", "extinction", "emission"]) {
|
|
296
|
+
pass.read(accumulators[name]);
|
|
297
|
+
pass_data[name] = pass.write(accumulators[name]);
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
return {
|
|
301
|
+
color: pass_data.color,
|
|
302
|
+
norm: pass_data.norm,
|
|
303
|
+
extinction: pass_data.extinction,
|
|
304
|
+
emission: pass_data.emission,
|
|
305
|
+
};
|
|
306
|
+
}
|
|
@@ -10,11 +10,20 @@ export const AVBOIT_SPLAT_BIND_GROUP_VOLUME: number;
|
|
|
10
10
|
* @type {GPUTextureFormat}
|
|
11
11
|
*/
|
|
12
12
|
export const AVBOIT_SPLAT_DUMMY_FORMAT: GPUTextureFormat;
|
|
13
|
+
/**
|
|
14
|
+
* The voxel volume a splat adds its extinction into: the packed counts and the per-channel first
|
|
15
|
+
* overflow, both atomics, so fragment-only. Every splat that writes through `avboit_splat_slice` binds
|
|
16
|
+
* this group.
|
|
17
|
+
*
|
|
18
|
+
* @type {ShaderResourceGroupDescriptor}
|
|
19
|
+
*/
|
|
20
|
+
export const AVBOIT_SPLAT_VOLUME_GROUP: ShaderResourceGroupDescriptor;
|
|
13
21
|
/**
|
|
14
22
|
* One pipeline per template that can be drawn forward.
|
|
15
23
|
*
|
|
16
24
|
* @type {TemplatePassDescriptor}
|
|
17
25
|
*/
|
|
18
26
|
export const shader_avboit_splat: TemplatePassDescriptor;
|
|
27
|
+
import { ShaderResourceGroupDescriptor } from "../../../shader/resource/ShaderResourceGroupDescriptor.js";
|
|
19
28
|
import { TemplatePassDescriptor } from "../../TemplatePassDescriptor.js";
|
|
20
29
|
//# sourceMappingURL=shader_avboit_splat.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shader_avboit_splat.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/rasterize/native/avboit/shader_avboit_splat.js"],"names":[],"mappings":"AA8BA;;;;GAIG;AACH,6CAFU,MAAM,CAEgC;AAEhD;;;;GAIG;AACH,yDAAmD;
|
|
1
|
+
{"version":3,"file":"shader_avboit_splat.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/rasterize/native/avboit/shader_avboit_splat.js"],"names":[],"mappings":"AA8BA;;;;GAIG;AACH,6CAFU,MAAM,CAEgC;AAEhD;;;;GAIG;AACH,yDAAmD;AASnD;;;;;;GAMG;AACH,wCAFU,6BAA6B,CAEsC;AAqH7E;;;;GAIG;AACH,kCAFU,sBAAsB,CA+B7B;8CArM2C,2DAA2D;uCAUlE,iCAAiC"}
|
|
@@ -49,14 +49,21 @@ view_group
|
|
|
49
49
|
.addStorageBuffer("warp", AVBOIT_WARP_STRUCT)
|
|
50
50
|
;
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
/**
|
|
53
|
+
* The voxel volume a splat adds its extinction into: the packed counts and the per-channel first
|
|
54
|
+
* overflow, both atomics, so fragment-only. Every splat that writes through `avboit_splat_slice` binds
|
|
55
|
+
* this group.
|
|
56
|
+
*
|
|
57
|
+
* @type {ShaderResourceGroupDescriptor}
|
|
58
|
+
*/
|
|
59
|
+
export const AVBOIT_SPLAT_VOLUME_GROUP = new ShaderResourceGroupDescriptor();
|
|
53
60
|
|
|
54
|
-
|
|
61
|
+
AVBOIT_SPLAT_VOLUME_GROUP
|
|
55
62
|
.addStorageBuffer("extinction_volume", WebGPUArray.from(atomic_u32), true)
|
|
56
63
|
.addStorageBuffer("overflow_slice", WebGPUArray.from(atomic_u32), true)
|
|
57
64
|
;
|
|
58
65
|
|
|
59
|
-
const pass_groups = [view_group,
|
|
66
|
+
const pass_groups = [view_group, AVBOIT_SPLAT_VOLUME_GROUP];
|
|
60
67
|
|
|
61
68
|
/*
|
|
62
69
|
The layout is built group by group rather than with one visibility for every group: WebGPU refuses
|
|
@@ -67,7 +74,7 @@ const pass_groups = [view_group, volume_group];
|
|
|
67
74
|
*/
|
|
68
75
|
const pass_layouts = [
|
|
69
76
|
view_group.generateBindGroupLayoutDescriptor(GPUShaderStage.VERTEX | GPUShaderStage.FRAGMENT),
|
|
70
|
-
|
|
77
|
+
AVBOIT_SPLAT_VOLUME_GROUP.generateBindGroupLayoutDescriptor(GPUShaderStage.FRAGMENT),
|
|
71
78
|
];
|
|
72
79
|
|
|
73
80
|
const shader_vertex = ShaderDescriptor.from({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GPUSceneContext.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/scene/GPUSceneContext.js"],"names":[],"mappings":"AA4EA;;;;;;;;;GASG;AACH;IAEI;;;;;;;OAOG;IACH,iCAFW,eAAe,
|
|
1
|
+
{"version":3,"file":"GPUSceneContext.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/scene/GPUSceneContext.js"],"names":[],"mappings":"AA4EA;;;;;;;;;GASG;AACH;IAEI;;;;;;;OAOG;IACH,iCAFW,eAAe,QAUzB;IA4KD;;;;OAIG;IACH,sBAHW,eAAe,SACf,KAAK,EAyCf;IAtND;;;OAGG;IACH,aAFU,MAAM,CAEE;IAElB;;OAEG;IACH,YAFU,kBAAkB,CAEjB;IAEX;;OAEG;IACH,WAFU,kBAAkB,CAElB;IAGV;;OAEG;IACH,sBAFU,cAAc,CAEH;IASrB;;;OAGG;IACH,mBAEC;IAOD,uCAEC;IAOD;;;;;OAKG;IACH,yBAEC;IAUD;;;;;OAKG;IACH,kBAEC;IAQD;;;OAGG;IACH,iCAEC;IAOD;;;OAGG;IACH,8CAEC;IAOD;;;OAGG;IACH,8CAEC;IA2ID;;OAEG;IACH,kDAEC;IAED;;OAEG;IACH,gDAEC;IAED;;OAEG;IACH,kDAEC;IAED;;OAEG;IACH,+CAEC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH;QAH0C,SAAS,GAAxC,oBAAoB;QAClB,yBAAyB,CA4DrC;IAED;;OAEG;IACH,6CAEC;IAYD;;;;;OAKG;IACH,gEAEC;IAED;;;OAGG;IACH,kCAEC;IAED;;;;;OAKG;IACH,uCAEC;IAED;;;;;;;;;;;OAWG;IACH,uCAUC;IAED,+BAUC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,yBAEC;IAED;;;;;OAKG;IACH,sCAMC;IAOD;;;;;;;OAOG;IACH,8EAEC;IA6BD;;;;;OAKG;IACH,cAsEC;IAED;;;;;OAKG;IACH,YAFW,eAAe,QA4BzB;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,cAHW,sBAAsB,cACtB,MAAM,QAuBhB;IAUD;;;;;;;;;;;OAWG;IACH,oBAHW,UAAU,GACR,MAAM,CAQlB;IAoCD;;;;;;;OAOG;IACH,gBAuBC;IAwCL;;;OAGG;IACH,4BAFU,OAAO,CAE0B;;CAN1C;8BAt3BY,OAAO,0CAA0C,EAAE,eAAe;8BAClE,OAAO,uBAAuB,EAAE,eAAe;iCAC/C,OAAO,mCAAmC,EAAE,kBAAkB;iCAC9D,OAAO,mCAAmC,EAAE,kBAAkB;4BAC9D,OAAO,8BAA8B,EAAE,aAAa;8BACpD,OAAO,iDAAiD,EAAE,eAAe;yBACzE,OAAO,2DAA2D,EAAE,UAAU;+BA5B5D,iDAAiD;sBAM1D,YAAY;oCAFE,uCAAuC;6BAC9C,yBAAyB;uBAH/B,yBAAyB;mCACb,gCAAgC;oCAF/B,mDAAmD;kDAMrC,wCAAwC;0CAlBhD,0DAA0D;8BAItE,8CAA8C;iCAF3C,iDAAiD;+BAInD,2CAA2C;qCADrC,qDAAqD;oCAItD,qCAAqC;4BAC7C,gCAAgC;uCASrB,iDAAiD;6BAQ3D,wBAAwB;wCADb,mCAAmC;uCAlBpC,wCAAwC"}
|
|
@@ -98,6 +98,7 @@ export class GPUSceneContext {
|
|
|
98
98
|
GPUDatabase.enquirePipelines(enquiry);
|
|
99
99
|
GPUAnimationManager.enquirePipelines(enquiry);
|
|
100
100
|
enquiry.compute.push(shader_refresh_all_mesh_bounds.pipeline);
|
|
101
|
+
GPUSky.enquirePipelines(enquiry);
|
|
101
102
|
GPULightCollection.enquirePipelines(enquiry);
|
|
102
103
|
GPUInstancesAccelerationStructure.enquirePipelines(enquiry);
|
|
103
104
|
GPUSceneVolumetrics.enquirePipelines(enquiry);
|
|
@@ -314,7 +315,7 @@ export class GPUSceneContext {
|
|
|
314
315
|
|
|
315
316
|
this.#wind = new GPUSceneWind(device);
|
|
316
317
|
|
|
317
|
-
this.#sky = new GPUSky(graphics);
|
|
318
|
+
this.#sky = new GPUSky(graphics, scene.atmosphere);
|
|
318
319
|
|
|
319
320
|
this.#animation_manager = new GPUAnimationManager(device, `GPUSceneContext[${this.id}]/Animation`, this);
|
|
320
321
|
}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* @typedef {import("../../../engine/ecs/EntityComponentDataset.js").EntityComponentDataset} EntityComponentDataset
|
|
3
3
|
*/
|
|
4
4
|
/**
|
|
5
|
-
* A scene: the dataset whose entities are what it draws and poses, and the
|
|
6
|
-
* not entities — its lights' collection, a light probe volume, volumetrics.
|
|
5
|
+
* A scene: the dataset whose entities are what it draws and poses, and the things that are
|
|
6
|
+
* not entities — its lights' collection, atmosphere, a light probe volume, volumetrics.
|
|
7
7
|
*
|
|
8
8
|
* Everything drawn is an entity of {@link dataset} holding a row of the scene's GPU database
|
|
9
9
|
* (`GPUSceneContext.rows`), at `entity + 1`. A game's systems take rows as components appear; a
|
|
@@ -27,6 +27,12 @@ export class Scene {
|
|
|
27
27
|
* @type {LightCollection}
|
|
28
28
|
*/
|
|
29
29
|
lights: LightCollection;
|
|
30
|
+
/**
|
|
31
|
+
* Physical Hillaire (2020) sky and atmosphere configuration.
|
|
32
|
+
*
|
|
33
|
+
* @type {SceneAtmosphere}
|
|
34
|
+
*/
|
|
35
|
+
atmosphere: SceneAtmosphere;
|
|
30
36
|
/**
|
|
31
37
|
*
|
|
32
38
|
* @type {LightProbeVolume}
|
|
@@ -45,6 +51,7 @@ export class Scene {
|
|
|
45
51
|
}
|
|
46
52
|
export type EntityComponentDataset = import("../../../engine/ecs/EntityComponentDataset.js").EntityComponentDataset;
|
|
47
53
|
import { LightCollection } from "../light/LightCollection.js";
|
|
54
|
+
import { SceneAtmosphere } from "../atmosphere/SceneAtmosphere.js";
|
|
48
55
|
import { LightProbeVolume } from "../global_illumination/lpv/LightProbeVolume.js";
|
|
49
56
|
import { SceneVolumetrics } from "../volumetrics/SceneVolumetrics.js";
|
|
50
57
|
//# sourceMappingURL=Scene.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Scene.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/scene/Scene.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Scene.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/scene/Scene.js"],"names":[],"mappings":"AAKA;;GAEG;AAEH;;;;;;;;GAQG;AACH;IACI;;;;;;;OAOG;IACH,SAFU,sBAAsB,GAAC,IAAI,CAEtB;IAEf;;;;;OAKG;IACH,QAFU,eAAe,CAEM;IAE/B;;;;OAIG;IACH,YAFU,eAAe,CAEU;IAEnC;;;OAGG;IACH,oBAFU,gBAAgB,CAEkB;IAE5C;;;OAGG;IACH,aAFU,gBAAgB,CAEW;IAGzC;;;OAGG;IACH,kBAFU,OAAO,CAEM;CANtB;qCAjDY,OAAO,+CAA+C,EAAE,sBAAsB;gCAJ3D,6BAA6B;gCAF7B,kCAAkC;iCACjC,gDAAgD;iCAEhD,oCAAoC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SceneAtmosphere } from "../atmosphere/SceneAtmosphere.js";
|
|
1
2
|
import { LightProbeVolume } from "../global_illumination/lpv/LightProbeVolume.js";
|
|
2
3
|
import { LightCollection } from "../light/LightCollection.js";
|
|
3
4
|
import { SceneVolumetrics } from "../volumetrics/SceneVolumetrics.js";
|
|
@@ -7,8 +8,8 @@ import { SceneVolumetrics } from "../volumetrics/SceneVolumetrics.js";
|
|
|
7
8
|
*/
|
|
8
9
|
|
|
9
10
|
/**
|
|
10
|
-
* A scene: the dataset whose entities are what it draws and poses, and the
|
|
11
|
-
* not entities — its lights' collection, a light probe volume, volumetrics.
|
|
11
|
+
* A scene: the dataset whose entities are what it draws and poses, and the things that are
|
|
12
|
+
* not entities — its lights' collection, atmosphere, a light probe volume, volumetrics.
|
|
12
13
|
*
|
|
13
14
|
* Everything drawn is an entity of {@link dataset} holding a row of the scene's GPU database
|
|
14
15
|
* (`GPUSceneContext.rows`), at `entity + 1`. A game's systems take rows as components appear; a
|
|
@@ -34,6 +35,13 @@ export class Scene {
|
|
|
34
35
|
*/
|
|
35
36
|
lights = new LightCollection();
|
|
36
37
|
|
|
38
|
+
/**
|
|
39
|
+
* Physical Hillaire (2020) sky and atmosphere configuration.
|
|
40
|
+
*
|
|
41
|
+
* @type {SceneAtmosphere}
|
|
42
|
+
*/
|
|
43
|
+
atmosphere = new SceneAtmosphere();
|
|
44
|
+
|
|
37
45
|
/**
|
|
38
46
|
*
|
|
39
47
|
* @type {LightProbeVolume}
|