@woosh/meep-engine 3.33.0 → 3.35.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/editor/Editor.d.ts.map +1 -1
- package/editor/Editor.js +0 -3
- package/editor/ecs/component/prototypeObjectEditor.js +1 -165
- package/editor/ecs/component/registerBasicTypeEditors.d.ts.map +1 -1
- package/editor/ecs/component/registerBasicTypeEditors.js +0 -5
- package/editor/ecs/component/registerEngineComponentEditors.d.ts.map +1 -1
- package/editor/ecs/component/registerEngineComponentEditors.js +0 -20
- package/editor/process/SymbolicDisplayProcess.d.ts.map +1 -1
- package/editor/process/SymbolicDisplayProcess.js +100 -106
- package/editor/prototypeEditorShell.d.ts.map +1 -1
- package/editor/prototypeEditorShell.js +190 -186
- package/editor/templates/entity_templates.d.ts.map +1 -1
- package/editor/templates/entity_templates.js +10 -27
- package/editor/view/makeEntityDecorators.js +2 -2
- package/package.json +1 -1
- package/src/{engine/graphics/particles/particular/engine → core/geom/3d/aabb}/MovingBoundingBox.d.ts +3 -3
- package/src/core/geom/3d/aabb/MovingBoundingBox.d.ts.map +1 -0
- package/src/{engine/graphics/particles/particular/engine → core/geom/3d/aabb}/MovingBoundingBox.js +5 -5
- package/src/core/math/lookup/RGBA_LUT_HEATMAP_IR.d.ts +3 -0
- package/src/core/math/lookup/RGBA_LUT_HEATMAP_IR.d.ts.map +1 -0
- package/src/{engine/graphics/particles/particular/engine/parameter/sample → core/math/lookup}/RGBA_LUT_HEATMAP_IR.js +1 -1
- package/src/core/math/lookup/RGB_LUT_INFERNO.d.ts +6 -0
- package/src/core/math/lookup/RGB_LUT_INFERNO.d.ts.map +1 -0
- package/src/{engine/graphics/particles/particular/engine/parameter/sample → core/math/lookup}/RGB_LUT_INFERNO.js +1 -1
- package/src/{engine/graphics/particles/particular/engine/parameter/sample → core/math/lookup}/RGB_LUT_TURBO.d.ts +1 -1
- package/src/core/math/lookup/RGB_LUT_TURBO.d.ts.map +1 -0
- package/src/{engine/graphics/particles/particular/engine/parameter/sample → core/math/lookup}/RGB_LUT_TURBO.js +1 -1
- package/src/{engine/graphics/particles/particular/engine/parameter/sample → core/math/lookup}/RGB_LUT_VIRIDIS.d.ts +1 -1
- package/src/core/math/lookup/RGB_LUT_VIRIDIS.d.ts.map +1 -0
- package/src/{engine/graphics/particles/particular/engine/parameter/sample → core/math/lookup}/RGB_LUT_VIRIDIS.js +1 -1
- package/src/engine/animation/AnimatedActions.d.ts.map +1 -1
- package/src/engine/animation/AnimatedActions.js +2 -4
- package/src/engine/animation/AnimationUtils.d.ts +1 -17
- package/src/engine/animation/AnimationUtils.d.ts.map +1 -1
- package/src/engine/animation/AnimationUtils.js +138 -246
- package/src/engine/ecs/EntityManager.d.ts +1 -1
- package/src/engine/ecs/EntityManager.d.ts.map +1 -1
- package/src/engine/ecs/EntityManager.js +2 -2
- package/src/engine/ecs/storage/binary/SERIALIZATION_COVERAGE.md +268 -275
- package/src/engine/ecs/storage/populateEngineSerializationRegistry.d.ts.map +1 -1
- package/src/engine/ecs/storage/populateEngineSerializationRegistry.js +0 -10
- package/src/engine/graphics/geometry/distribute_points_on_indexed_triangles.d.ts.map +1 -0
- package/src/engine/graphics/{particles/particular/engine/utils → geometry}/distribute_points_on_indexed_triangles.js +3 -3
- package/src/engine/graphics/{particles/particular/engine/utils/volume → texture/sampler}/lut_to_sampler.d.ts +1 -1
- package/src/engine/graphics/texture/sampler/lut_to_sampler.d.ts.map +1 -0
- package/src/engine/graphics/{particles/particular/engine/utils/volume → texture/sampler}/lut_to_sampler.js +1 -1
- package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts +0 -3
- package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts.map +1 -1
- package/src/engine/graphics3/GPUParticleEmitterSystem.js +0 -3
- package/src/engine/network/NetworkSession.d.ts +1 -1
- package/src/engine/network/NetworkSession.js +1 -1
- package/src/engine/physics/cloth/MEASUREMENTS.md +115 -0
- package/src/engine/physics/cloth/solver/cloth_contact_find.d.ts.map +1 -1
- package/src/engine/physics/cloth/solver/cloth_contact_find.js +2 -0
- package/src/engine/physics/cloth/solver/constraint/cloth_contact_row.d.ts +9 -0
- package/src/engine/physics/cloth/solver/constraint/cloth_contact_row.d.ts.map +1 -1
- package/src/engine/physics/cloth/solver/constraint/cloth_contact_row.js +30 -7
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
- package/src/engine/sound/ecs/audio/AudioEmitterSystem.d.ts.map +1 -1
- package/src/engine/sound/ecs/audio/AudioEmitterSystem.js +12 -2
- package/src/engine/sound/ecs/audio/LiveEmitterSet.d.ts +11 -2
- package/src/engine/sound/ecs/audio/LiveEmitterSet.d.ts.map +1 -1
- package/src/engine/sound/ecs/audio/LiveEmitterSet.js +14 -7
- package/src/engine/sound/ecs/audio/SpatialAudioIndex.d.ts +6 -15
- package/src/engine/sound/ecs/audio/SpatialAudioIndex.d.ts.map +1 -1
- package/src/engine/sound/ecs/audio/SpatialAudioIndex.js +161 -174
- package/src/shade/device/mock/SoftwareGPUBuffer.d.ts +5 -3
- package/src/shade/device/mock/SoftwareGPUBuffer.d.ts.map +1 -1
- package/src/shade/device/mock/SoftwareGPUBuffer.js +32 -3
- package/src/shade/device/timing/profile/GPUProfileSession.d.ts +25 -11
- package/src/shade/device/timing/profile/GPUProfileSession.d.ts.map +1 -1
- package/src/shade/device/timing/profile/GPUProfileSession.js +553 -474
- package/src/shade/playground/avboit/main.d.ts.map +1 -1
- package/src/shade/playground/avboit/main.js +888 -916
- package/src/shade/playground/caldera/main.js +73 -60
- package/src/shade/playground/particle_ecs/README.md +13 -7
- package/src/shade/playground/particle_ecs/bonfire_effects.d.ts +5 -5
- package/src/shade/playground/particle_ecs/bonfire_effects.js +5 -5
- package/src/shade/playground/particle_ecs/effects/smoke.json +1859 -1859
- package/src/shade/playground/particle_ecs/effects/soot.json +1605 -1605
- package/src/shade/playground/particle_system/README.md +1 -2
- package/src/shade/playground/profile_hotkey.d.ts.map +1 -1
- package/src/shade/playground/profile_hotkey.js +4 -40
- package/src/shade/playground/skinned_blas_refit/main.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/main.js +4 -39
- package/src/shade/playground/vgeo_runtime/main.js +25 -77
- package/src/shade/playground/vgeo_scene/main.js +2231 -2217
- package/src/shade/playground/volumetrics_froxel/main.d.ts.map +1 -1
- package/src/shade/playground/volumetrics_froxel/main.js +4 -39
- package/src/shade/playground/volumetrics_froxel/measure.d.ts.map +1 -1
- package/src/shade/playground/volumetrics_froxel/measure.js +2 -4
- package/src/shade/renderer/GraphicsContext.d.ts +7 -0
- package/src/shade/renderer/GraphicsContext.d.ts.map +1 -1
- package/src/shade/renderer/GraphicsContext.js +11 -2
- package/src/shade/renderer/Renderer.d.ts +1 -1
- package/src/shade/renderer/Renderer.d.ts.map +1 -1
- package/src/shade/renderer/Renderer.js +41 -1
- package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.d.ts +8 -0
- package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.d.ts.map +1 -1
- package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.js +21 -0
- package/src/shade/renderer/extension/RENDER_EXTENSION_DESIGN.md +1 -1
- package/src/shade/renderer/geometry/GPUGeometryManager.d.ts.map +1 -1
- package/src/shade/renderer/geometry/GPUGeometryManager.js +9 -10
- package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.d.ts +5 -0
- package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.d.ts.map +1 -1
- package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.js +11 -0
- package/src/shade/renderer/geometry/virtual/runtime/GPUVirtualGeometryPool.d.ts +12 -0
- package/src/shade/renderer/geometry/virtual/runtime/GPUVirtualGeometryPool.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/runtime/GPUVirtualGeometryPool.js +25 -0
- package/src/shade/renderer/geometry/virtual/runtime/GPUVirtualGeometryRuntime.d.ts +115 -101
- package/src/shade/renderer/geometry/virtual/runtime/GPUVirtualGeometryRuntime.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/runtime/GPUVirtualGeometryRuntime.js +282 -140
- package/src/shade/renderer/geometry/virtual/runtime/REVIEW_LEDGER.md +30 -0
- package/src/shade/renderer/geometry/virtual/runtime/RUNTIME_PLAN_2026_09_14.md +4 -1
- package/src/shade/renderer/geometry/virtual/runtime/SHADOW_PLAN_2026_09_28.md +536 -0
- package/src/shade/renderer/geometry/virtual/runtime/VGeoFeedbackLoop.d.ts +6 -2
- package/src/shade/renderer/geometry/virtual/runtime/VGeoFeedbackLoop.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/runtime/VGeoFeedbackLoop.js +68 -19
- package/src/shade/renderer/geometry/virtual/runtime/VGeoPageFetcher.d.ts +2 -1
- package/src/shade/renderer/geometry/virtual/runtime/VGeoPageFetcher.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/runtime/VGeoPageFetcher.js +17 -1
- package/src/shade/renderer/geometry/virtual/runtime/VGeoResidency.d.ts +4 -0
- package/src/shade/renderer/geometry/virtual/runtime/VGeoResidency.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/runtime/VGeoResidency.js +42 -12
- package/src/shade/renderer/geometry/virtual/runtime/VGeoViewCut.d.ts +93 -12
- package/src/shade/renderer/geometry/virtual/runtime/VGeoViewCut.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/runtime/VGeoViewCut.js +166 -20
- package/src/shade/renderer/geometry/virtual/runtime/cut/VGEO_CUT_PARAMS_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/runtime/cut/VGEO_CUT_PARAMS_STRUCT.js +30 -7
- package/src/shade/renderer/geometry/virtual/runtime/cut/chunk_vgeo_cut_access.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/runtime/cut/chunk_vgeo_cut_access.js +12 -5
- package/src/shade/renderer/geometry/virtual/runtime/cut/chunk_vgeo_cut_claim.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/runtime/cut/chunk_vgeo_cut_claim.js +2 -2
- package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_collect.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_collect.js +23 -13
- package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_queue_remainder.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_queue_remainder.js +1 -2
- package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_seed.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_seed.js +1 -2
- package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_traverse.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_traverse.js +10 -6
- package/src/shade/renderer/geometry/virtual/runtime/cut/vgeo_cut_feedback_layout.d.ts +45 -17
- package/src/shade/renderer/geometry/virtual/runtime/cut/vgeo_cut_feedback_layout.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/runtime/cut/vgeo_cut_feedback_layout.js +61 -19
- package/src/shade/renderer/geometry/virtual/runtime/graph_vgeo_expand_if_enabled.d.ts +8 -11
- package/src/shade/renderer/geometry/virtual/runtime/graph_vgeo_expand_if_enabled.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/runtime/graph_vgeo_expand_if_enabled.js +9 -16
- package/src/shade/renderer/geometry/virtual/runtime/graph_vgeo_expand_instances_to_meshlets.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/runtime/graph_vgeo_expand_instances_to_meshlets.js +25 -10
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_FEEDBACK_OFFSET.js +10 -8
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_INSTANCE_OFFSET.d.ts +1 -0
- package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_INSTANCE_OFFSET.js +19 -7
- package/src/shade/renderer/geometry/virtual/runtime/make_vgeo_page_worker.d.ts +4 -2
- package/src/shade/renderer/geometry/virtual/runtime/make_vgeo_page_worker.d.ts.map +1 -1
- package/src/shade/renderer/geometry/virtual/runtime/make_vgeo_page_worker.js +4 -2
- package/src/shade/renderer/global_illumination/brick4/Brick4LightMap.d.ts +4 -0
- package/src/shade/renderer/global_illumination/brick4/Brick4LightMap.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/brick4/Brick4LightMap.js +7 -0
- package/src/shade/renderer/global_illumination/lpv/GPULightProbeVolume.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/lpv/GPULightProbeVolume.js +1 -0
- package/src/shade/renderer/light/GPULightCollection.d.ts +9 -1
- package/src/shade/renderer/light/GPULightCollection.d.ts.map +1 -1
- package/src/shade/renderer/light/GPULightCollection.js +41 -0
- package/src/shade/renderer/light/environment/shader_project_environment_sh.d.ts +37 -0
- package/src/shade/renderer/light/environment/shader_project_environment_sh.d.ts.map +1 -0
- package/src/shade/renderer/light/environment/shader_project_environment_sh.js +105 -0
- package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
- package/src/shade/renderer/material/GPUMaterialManager.d.ts.map +1 -1
- package/src/shade/renderer/material/GPUMaterialManager.js +2 -0
- package/src/shade/renderer/particles/DESIGN.md +69 -18
- package/src/shade/renderer/particles/GPUParticleSystem.d.ts +7 -1
- package/src/shade/renderer/particles/GPUParticleSystem.d.ts.map +1 -1
- package/src/shade/renderer/particles/GPUParticleSystem.js +1247 -1244
- package/src/shade/renderer/particles/ParticleConstants.d.ts +1 -3
- package/src/shade/renderer/particles/ParticleConstants.d.ts.map +1 -1
- package/src/shade/renderer/particles/ParticleConstants.js +1 -3
- package/src/shade/renderer/particles/graph_particles_avboit.d.ts +7 -1
- package/src/shade/renderer/particles/graph_particles_avboit.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph_particles_avboit.js +9 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_billboard_vertex.d.ts +3 -4
- package/src/shade/renderer/particles/shaders/chunk_particle_billboard_vertex.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/chunk_particle_billboard_vertex.js +7 -6
- package/src/shade/renderer/particles/shaders/chunk_particle_lighting.d.ts +15 -9
- package/src/shade/renderer/particles/shaders/chunk_particle_lighting.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/chunk_particle_lighting.js +29 -11
- package/src/shade/renderer/particles/shaders/chunk_particle_lighting_model.d.ts +24 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_lighting_model.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_lighting_model.js +45 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_render_math.d.ts +3 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_render_math.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/chunk_particle_render_math.js +38 -0
- package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.js +190 -185
- package/src/shade/renderer/rasterize/bucket/graph_meshlets_rasterize_by_bucket.d.ts +45 -0
- package/src/shade/renderer/rasterize/bucket/graph_meshlets_rasterize_by_bucket.d.ts.map +1 -0
- package/src/shade/renderer/rasterize/bucket/graph_meshlets_rasterize_by_bucket.js +99 -0
- package/src/shade/renderer/rasterize/bucket/rasterization_opaque_buckets.d.ts +4 -4
- package/src/shade/renderer/rasterize/bucket/rasterization_opaque_buckets.js +36 -36
- package/src/shade/renderer/rasterize/bucket/shader_gather_bucket.d.ts +15 -0
- package/src/shade/renderer/rasterize/bucket/shader_gather_bucket.d.ts.map +1 -0
- package/src/shade/renderer/rasterize/bucket/shader_gather_bucket.js +103 -0
- package/src/shade/renderer/rasterize/expand/GPUCollectionLimits.d.ts +3 -0
- package/src/shade/renderer/rasterize/expand/GPUCollectionLimits.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/expand/GPUCollectionLimits.js +6 -1
- package/src/shade/renderer/rasterize/expand/bucket/meshlet/graph_extract_meshlets_from_bucket.d.ts +26 -0
- package/src/shade/renderer/rasterize/expand/bucket/meshlet/graph_extract_meshlets_from_bucket.d.ts.map +1 -0
- package/src/shade/renderer/rasterize/expand/bucket/meshlet/graph_extract_meshlets_from_bucket.js +91 -0
- package/src/shade/renderer/rasterize/fast/graph_gather_meshes_from_buckets.d.ts +22 -0
- package/src/shade/renderer/rasterize/fast/graph_gather_meshes_from_buckets.d.ts.map +1 -0
- package/src/shade/renderer/rasterize/fast/graph_gather_meshes_from_buckets.js +102 -0
- package/src/shade/renderer/rasterize/fast/graph_rasterize_scene_fast.d.ts +2 -1
- package/src/shade/renderer/rasterize/fast/graph_rasterize_scene_fast.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/fast/graph_rasterize_scene_fast.js +28 -24
- package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts +8 -0
- package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.js +5 -0
- package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.d.ts +8 -1
- package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.js +9 -0
- package/src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.js +32 -28
- package/src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.js +9 -105
- package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.d.ts +5 -0
- package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.d.ts.map +1 -1
- package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.js +11 -0
- package/src/shade/renderer/scene/GPUSceneContext.d.ts +11 -3
- package/src/shade/renderer/scene/GPUSceneContext.d.ts.map +1 -1
- package/src/shade/renderer/scene/GPUSceneContext.js +93 -21
- package/src/shade/renderer/scene/rows/GPUSceneRows.d.ts +4 -1
- package/src/shade/renderer/scene/rows/GPUSceneRows.d.ts.map +1 -1
- package/src/shade/renderer/scene/rows/GPUSceneRows.js +5 -23
- package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.d.ts.map +1 -1
- package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.js +63 -0
- package/src/shade/renderer/shadow/map/SHADOWMAP_VGEO_TAU_SCALE.d.ts +12 -0
- package/src/shade/renderer/shadow/map/SHADOWMAP_VGEO_TAU_SCALE.d.ts.map +1 -0
- package/src/shade/renderer/shadow/map/SHADOWMAP_VGEO_TAU_SCALE.js +11 -0
- package/src/shade/renderer/shadow/map/Shadowmap.d.ts +15 -0
- package/src/shade/renderer/shadow/map/Shadowmap.d.ts.map +1 -1
- package/src/shade/renderer/shadow/map/Shadowmap.js +17 -0
- package/src/shade/renderer/shadow/map/shadowmap_caster_detail_pending.d.ts +25 -0
- package/src/shade/renderer/shadow/map/shadowmap_caster_detail_pending.d.ts.map +1 -0
- package/src/shade/renderer/shadow/map/shadowmap_caster_detail_pending.js +22 -0
- package/src/shade/renderer/shadow/map/shadowmap_update_score.d.ts.map +1 -1
- package/src/shade/renderer/shadow/map/shadowmap_update_score.js +5 -2
- package/src/shade/renderer/texture/TextureManager.d.ts +2 -1
- package/src/shade/renderer/texture/TextureManager.d.ts.map +1 -1
- package/src/shade/renderer/texture/TextureManager.js +4 -1
- package/src/shade/renderer/texture/mipmaps/WebGPUMipmapGenerator.js +1 -1
- package/src/shade/renderer/util/Uint32BufferSamplingStats.d.ts +9 -1
- package/src/shade/renderer/util/Uint32BufferSamplingStats.d.ts.map +1 -1
- package/src/shade/renderer/util/Uint32BufferSamplingStats.js +55 -5
- package/src/shade/renderer/view/ViewManager.d.ts +7 -1
- package/src/shade/renderer/view/ViewManager.d.ts.map +1 -1
- package/src/shade/renderer/view/ViewManager.js +17 -1
- package/src/shade/renderer/volumetrics/GPUSceneVolumetrics.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/GPUSceneVolumetrics.js +1 -0
- package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts +13 -3
- package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/GPUViewVolumetrics.js +9 -1
- package/src/shade/renderer/volumetrics/chunk_volumetrics_irradiance_sh.d.ts +39 -0
- package/src/shade/renderer/volumetrics/chunk_volumetrics_irradiance_sh.d.ts.map +1 -0
- package/src/shade/renderer/volumetrics/chunk_volumetrics_irradiance_sh.js +107 -0
- package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_froxel_centre_ws.d.ts +15 -0
- package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_froxel_centre_ws.d.ts.map +1 -0
- package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_froxel_centre_ws.js +44 -0
- package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_gi.d.ts +19 -0
- package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_gi.d.ts.map +1 -0
- package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_gi.js +48 -0
- package/src/shade/renderer/volumetrics/gi/graph_build_froxel_gi.d.ts +29 -0
- package/src/shade/renderer/volumetrics/gi/graph_build_froxel_gi.d.ts.map +1 -0
- package/src/shade/renderer/volumetrics/gi/graph_build_froxel_gi.js +90 -0
- package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_brick4.d.ts +10 -0
- package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_brick4.d.ts.map +1 -0
- package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_brick4.js +55 -0
- package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_ibl.d.ts +10 -0
- package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_ibl.d.ts.map +1 -0
- package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_ibl.js +47 -0
- package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_lpv.d.ts +10 -0
- package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_lpv.d.ts.map +1 -0
- package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi_lpv.js +63 -0
- package/src/shade/renderer/volumetrics/gi/volumetrics_gi_resources.d.ts +17 -0
- package/src/shade/renderer/volumetrics/gi/volumetrics_gi_resources.d.ts.map +1 -0
- package/src/shade/renderer/volumetrics/gi/volumetrics_gi_resources.js +26 -0
- package/src/shade/renderer/volumetrics/graph_build_volumetrics.d.ts +8 -1
- package/src/shade/renderer/volumetrics/graph_build_volumetrics.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/graph_build_volumetrics.js +50 -2
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_lighting.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_lighting.js +488 -436
- package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.d.ts +1 -1
- package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.d.ts.map +1 -1
- package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.js +254 -63
- package/editor/ecs/component/editors/ecs/ParameterLookupTableEditor.d.ts +0 -20
- package/editor/ecs/component/editors/ecs/ParameterLookupTableEditor.d.ts.map +0 -1
- package/editor/ecs/component/editors/ecs/ParameterLookupTableEditor.js +0 -35
- package/editor/ecs/component/editors/ecs/ParameterTrackEditor.d.ts +0 -12
- package/editor/ecs/component/editors/ecs/ParameterTrackEditor.d.ts.map +0 -1
- package/editor/ecs/component/editors/ecs/ParameterTrackEditor.js +0 -17
- package/editor/ecs/component/editors/ecs/ParameterTrackSetEditor.d.ts +0 -14
- package/editor/ecs/component/editors/ecs/ParameterTrackSetEditor.d.ts.map +0 -1
- package/editor/ecs/component/editors/ecs/ParameterTrackSetEditor.js +0 -18
- package/editor/ecs/component/editors/ecs/ParticleEmitterEditor.d.ts +0 -52
- package/editor/ecs/component/editors/ecs/ParticleEmitterEditor.d.ts.map +0 -1
- package/editor/ecs/component/editors/ecs/ParticleEmitterEditor.js +0 -58
- package/editor/ecs/component/editors/ecs/ParticleEmitterLayerEditor.d.ts +0 -47
- package/editor/ecs/component/editors/ecs/ParticleEmitterLayerEditor.d.ts.map +0 -1
- package/editor/ecs/component/editors/ecs/ParticleEmitterLayerEditor.js +0 -58
- package/editor/ecs/component/editors/ecs/SimulationStepDefinitionEditor.d.ts +0 -16
- package/editor/ecs/component/editors/ecs/SimulationStepDefinitionEditor.d.ts.map +0 -1
- package/editor/ecs/component/editors/ecs/SimulationStepDefinitionEditor.js +0 -21
- package/editor/particles/rebuildParticleEmitter.d.ts +0 -11
- package/editor/particles/rebuildParticleEmitter.d.ts.map +0 -1
- package/editor/particles/rebuildParticleEmitter.js +0 -31
- package/editor/process/ParticleEmitterRebuildProcess.d.ts +0 -66
- package/editor/process/ParticleEmitterRebuildProcess.d.ts.map +0 -1
- package/editor/process/ParticleEmitterRebuildProcess.js +0 -217
- package/editor/process/symbolic/ParticleEmitterSymbolicDisplay.d.ts +0 -18
- package/editor/process/symbolic/ParticleEmitterSymbolicDisplay.d.ts.map +0 -1
- package/editor/process/symbolic/ParticleEmitterSymbolicDisplay.js +0 -140
- package/src/engine/animation/removeEntityGenericEffect.d.ts +0 -18
- package/src/engine/animation/removeEntityGenericEffect.d.ts.map +0 -1
- package/src/engine/animation/removeEntityGenericEffect.js +0 -160
- package/src/engine/animation/removeEntityWithMeshParticlesEffect.d.ts +0 -16
- package/src/engine/animation/removeEntityWithMeshParticlesEffect.d.ts.map +0 -1
- package/src/engine/animation/removeEntityWithMeshParticlesEffect.js +0 -194
- package/src/engine/graphics/ecs/sprite/Sprite.d.ts +0 -15
- package/src/engine/graphics/ecs/sprite/Sprite.d.ts.map +0 -1
- package/src/engine/graphics/ecs/sprite/Sprite.js +0 -14
- package/src/engine/graphics/ecs/sprite/SpriteSystemPE.d.ts +0 -11
- package/src/engine/graphics/ecs/sprite/SpriteSystemPE.d.ts.map +0 -1
- package/src/engine/graphics/ecs/sprite/SpriteSystemPE.js +0 -144
- package/src/engine/graphics/particles/particular/engine/MovingBoundingBox.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/ParticularEngine.d.ts +0 -61
- package/src/engine/graphics/particles/particular/engine/ParticularEngine.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/ParticularEngine.js +0 -229
- package/src/engine/graphics/particles/particular/engine/emitter/EmissionFromType.d.ts +0 -6
- package/src/engine/graphics/particles/particular/engine/emitter/EmissionFromType.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/emitter/EmissionFromType.js +0 -8
- package/src/engine/graphics/particles/particular/engine/emitter/EmissionShapeType.d.ts +0 -7
- package/src/engine/graphics/particles/particular/engine/emitter/EmissionShapeType.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/emitter/EmissionShapeType.js +0 -9
- package/src/engine/graphics/particles/particular/engine/emitter/PARTICLE_ATTRIBUTES.d.ts +0 -13
- package/src/engine/graphics/particles/particular/engine/emitter/PARTICLE_ATTRIBUTES.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/emitter/PARTICLE_ATTRIBUTES.js +0 -12
- package/src/engine/graphics/particles/particular/engine/emitter/PARTICULAR_PARTICLE_SPECIFICATION.d.ts +0 -3
- package/src/engine/graphics/particles/particular/engine/emitter/PARTICULAR_PARTICLE_SPECIFICATION.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/emitter/PARTICULAR_PARTICLE_SPECIFICATION.js +0 -84
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.d.ts +0 -285
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.js +0 -1201
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitterFlag.d.ts +0 -19
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitterFlag.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitterFlag.js +0 -67
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleLayer.d.ts +0 -197
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleLayer.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleLayer.js +0 -398
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleParameters.d.ts +0 -5
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleParameters.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleParameters.js +0 -4
- package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.d.ts +0 -162
- package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.js +0 -472
- package/src/engine/graphics/particles/particular/engine/emitter/computeEmissionFunction.d.ts +0 -10
- package/src/engine/graphics/particles/particular/engine/emitter/computeEmissionFunction.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/emitter/computeEmissionFunction.js +0 -37
- package/src/engine/graphics/particles/particular/engine/emitter/distance_to_camera.d.ts +0 -9
- package/src/engine/graphics/particles/particular/engine/emitter/distance_to_camera.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/emitter/distance_to_camera.js +0 -25
- package/src/engine/graphics/particles/particular/engine/emitter/serde/ParameterLookupTableSerializationAdapter.d.ts +0 -19
- package/src/engine/graphics/particles/particular/engine/emitter/serde/ParameterLookupTableSerializationAdapter.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/emitter/serde/ParameterLookupTableSerializationAdapter.js +0 -28
- package/src/engine/graphics/particles/particular/engine/emitter/serde/ParticleEmitterSerializationAdapter.d.ts +0 -19
- package/src/engine/graphics/particles/particular/engine/emitter/serde/ParticleEmitterSerializationAdapter.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/emitter/serde/ParticleEmitterSerializationAdapter.js +0 -162
- package/src/engine/graphics/particles/particular/engine/emitter/serde/ParticleEmitterSerializationUpgrader_0_1.d.ts +0 -5
- package/src/engine/graphics/particles/particular/engine/emitter/serde/ParticleEmitterSerializationUpgrader_0_1.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/emitter/serde/ParticleEmitterSerializationUpgrader_0_1.js +0 -103
- package/src/engine/graphics/particles/particular/engine/emitter/write_particle_patch_uv.d.ts +0 -8
- package/src/engine/graphics/particles/particular/engine/emitter/write_particle_patch_uv.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/emitter/write_particle_patch_uv.js +0 -28
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterLookupTable.d.ts +0 -2
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterLookupTable.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterLookupTable.js +0 -2
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterLookupTableFlags.d.ts +0 -2
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterLookupTableFlags.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterLookupTableFlags.js +0 -2
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterSet.d.ts +0 -60
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterSet.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterSet.js +0 -128
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrack.d.ts +0 -47
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrack.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrack.js +0 -77
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrackSet.d.ts +0 -45
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrackSet.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrackSet.js +0 -93
- package/src/engine/graphics/particles/particular/engine/parameter/ParticleParameter.d.ts +0 -95
- package/src/engine/graphics/particles/particular/engine/parameter/ParticleParameter.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/parameter/ParticleParameter.js +0 -239
- package/src/engine/graphics/particles/particular/engine/parameter/sample/RGBA_LUT_HEATMAP_IR.d.ts +0 -3
- package/src/engine/graphics/particles/particular/engine/parameter/sample/RGBA_LUT_HEATMAP_IR.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/parameter/sample/RGB_LUT_INFERNO.d.ts +0 -6
- package/src/engine/graphics/particles/particular/engine/parameter/sample/RGB_LUT_INFERNO.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/parameter/sample/RGB_LUT_TURBO.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/parameter/sample/RGB_LUT_VIRIDIS.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/renderers/ParticleRenderer.d.ts +0 -13
- package/src/engine/graphics/particles/particular/engine/renderers/ParticleRenderer.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/renderers/ParticleRenderer.js +0 -28
- package/src/engine/graphics/particles/particular/engine/renderers/billboard/BILLBOARD_PARTICLE_SPECIFICATION.d.ts +0 -9
- package/src/engine/graphics/particles/particular/engine/renderers/billboard/BILLBOARD_PARTICLE_SPECIFICATION.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/renderers/billboard/BILLBOARD_PARTICLE_SPECIFICATION.js +0 -24
- package/src/engine/graphics/particles/particular/engine/renderers/billboard/SoftBillboardParticlePool.d.ts +0 -13
- package/src/engine/graphics/particles/particular/engine/renderers/billboard/SoftBillboardParticlePool.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/renderers/billboard/SoftBillboardParticlePool.js +0 -27
- package/src/engine/graphics/particles/particular/engine/renderers/billboard/SoftBillboardParticleRenderer.d.ts +0 -33
- package/src/engine/graphics/particles/particular/engine/renderers/billboard/SoftBillboardParticleRenderer.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/renderers/billboard/SoftBillboardParticleRenderer.js +0 -80
- package/src/engine/graphics/particles/particular/engine/shader/ShaderManager.d.ts +0 -49
- package/src/engine/graphics/particles/particular/engine/shader/ShaderManager.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/shader/ShaderManager.js +0 -135
- package/src/engine/graphics/particles/particular/engine/shader/debugAtlas.d.ts +0 -7
- package/src/engine/graphics/particles/particular/engine/shader/debugAtlas.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/shader/debugAtlas.js +0 -14
- package/src/engine/graphics/particles/particular/engine/simulator/AbstractSimulationStep.d.ts +0 -41
- package/src/engine/graphics/particles/particular/engine/simulator/AbstractSimulationStep.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/simulator/AbstractSimulationStep.js +0 -59
- package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepApplyForce.d.ts +0 -4
- package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepApplyForce.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepApplyForce.js +0 -56
- package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepCurlNoiseAcceleration.d.ts +0 -4
- package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepCurlNoiseAcceleration.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepCurlNoiseAcceleration.js +0 -84
- package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepCurlNoiseVelocity.d.ts +0 -4
- package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepCurlNoiseVelocity.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepCurlNoiseVelocity.js +0 -80
- package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepDefinition.d.ts +0 -29
- package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepDefinition.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepDefinition.js +0 -43
- package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepFixedPhysics.d.ts +0 -5
- package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepFixedPhysics.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepFixedPhysics.js +0 -104
- package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepType.d.ts +0 -9
- package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepType.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepType.js +0 -11
- package/src/engine/graphics/particles/particular/engine/simulator/update_parameters.d.ts +0 -9
- package/src/engine/graphics/particles/particular/engine/simulator/update_parameters.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/simulator/update_parameters.js +0 -64
- package/src/engine/graphics/particles/particular/engine/utils/distributeParticlesOnObject3D.d.ts +0 -9
- package/src/engine/graphics/particles/particular/engine/utils/distributeParticlesOnObject3D.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/utils/distributeParticlesOnObject3D.js +0 -172
- package/src/engine/graphics/particles/particular/engine/utils/distribute_points_on_indexed_triangles.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/utils/distrubuteParticlesOnMesh.d.ts +0 -20
- package/src/engine/graphics/particles/particular/engine/utils/distrubuteParticlesOnMesh.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/utils/distrubuteParticlesOnMesh.js +0 -84
- package/src/engine/graphics/particles/particular/engine/utils/volume/AttributeValue.d.ts +0 -81
- package/src/engine/graphics/particles/particular/engine/utils/volume/AttributeValue.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/utils/volume/AttributeValue.js +0 -200
- package/src/engine/graphics/particles/particular/engine/utils/volume/SamplingFunctionKind.d.ts +0 -6
- package/src/engine/graphics/particles/particular/engine/utils/volume/SamplingFunctionKind.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/utils/volume/SamplingFunctionKind.js +0 -8
- package/src/engine/graphics/particles/particular/engine/utils/volume/lut_to_sampler.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/group/Operation.d.ts +0 -20
- package/src/engine/graphics/particles/particular/group/Operation.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/group/Operation.js +0 -20
- package/src/engine/graphics/particles/particular/group/OperationType.d.ts +0 -7
- package/src/engine/graphics/particles/particular/group/OperationType.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/group/OperationType.js +0 -9
- package/src/engine/graphics/particles/particular/group/ParticleAttribute.d.ts +0 -27
- package/src/engine/graphics/particles/particular/group/ParticleAttribute.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/group/ParticleAttribute.js +0 -27
- package/src/engine/graphics/particles/particular/group/ParticleAttributeType.d.ts +0 -8
- package/src/engine/graphics/particles/particular/group/ParticleAttributeType.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/group/ParticleAttributeType.js +0 -11
- package/src/engine/graphics/particles/particular/group/ParticleDataType.d.ts +0 -7
- package/src/engine/graphics/particles/particular/group/ParticleDataType.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/group/ParticleDataType.js +0 -10
- package/src/engine/graphics/particles/particular/group/ParticleSpecification.d.ts +0 -24
- package/src/engine/graphics/particles/particular/group/ParticleSpecification.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/group/ParticleSpecification.js +0 -48
- package/src/engine/graphics/particles/particular/group/itemSizeFromAttributeType.d.ts +0 -7
- package/src/engine/graphics/particles/particular/group/itemSizeFromAttributeType.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/group/itemSizeFromAttributeType.js +0 -20
- package/src/engine/graphics/particles/particular/group/optimizeCommandQueue.d.ts +0 -6
- package/src/engine/graphics/particles/particular/group/optimizeCommandQueue.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/group/optimizeCommandQueue.js +0 -162
- package/src/engine/graphics/particles/particular/group/typedArrayConstructorFromDataType.d.ts +0 -8
- package/src/engine/graphics/particles/particular/group/typedArrayConstructorFromDataType.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/group/typedArrayConstructorFromDataType.js +0 -19
- package/src/engine/graphics3/ParticleEmitterSystem.d.ts +0 -77
- package/src/engine/graphics3/ParticleEmitterSystem.d.ts.map +0 -1
- package/src/engine/graphics3/ParticleEmitterSystem.js +0 -307
- package/src/engine/graphics3/ParticleEmitterSystem3.d.ts +0 -10
- package/src/engine/graphics3/ParticleEmitterSystem3.d.ts.map +0 -1
- package/src/engine/graphics3/ParticleEmitterSystem3.js +0 -10
- package/src/engine/graphics3/particles/GPUParticularRenderer.d.ts +0 -61
- package/src/engine/graphics3/particles/GPUParticularRenderer.d.ts.map +0 -1
- package/src/engine/graphics3/particles/GPUParticularRenderer.js +0 -627
- package/src/engine/graphics3/particles/particle_gpu_records.d.ts +0 -85
- package/src/engine/graphics3/particles/particle_gpu_records.d.ts.map +0 -1
- package/src/engine/graphics3/particles/particle_gpu_records.js +0 -227
- package/src/shade/renderer/particles/shaders/shader_particle_render.d.ts +0 -35
- package/src/shade/renderer/particles/shaders/shader_particle_render.d.ts.map +0 -1
- package/src/shade/renderer/particles/shaders/shader_particle_render.js +0 -135
- /package/src/engine/graphics/{particles/particular/engine/utils → geometry}/distribute_points_on_indexed_triangles.d.ts +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { assert } from "../../../../core/assert.js";
|
|
2
2
|
import { shadowmap_budget_carry_over } from "./shadowmap_budget_carry_over.js";
|
|
3
|
+
import { SHADOWMAP_VGEO_TAU_SCALE } from "./SHADOWMAP_VGEO_TAU_SCALE.js";
|
|
3
4
|
import AABB2 from "../../../../core/geom/2d/aabb/AABB2.js";
|
|
4
5
|
import { MaxRectanglesPacker } from "../../../../core/geom/packing/max-rect/MaxRectanglesPacker.js";
|
|
5
6
|
import { FrameGraph } from "../../../../engine/graphics/render/frame_graph/FrameGraph.js";
|
|
@@ -32,6 +33,8 @@ import {
|
|
|
32
33
|
shader_csm_caster_range_publish,
|
|
33
34
|
} from "./csm/shader/shader_csm_caster_range.js";
|
|
34
35
|
import { DEFAULT_SHADOWMAP_UPDATE_BUDGET } from "./DEFAULT_SHADOWMAP_UPDATE_BUDGET.js";
|
|
36
|
+
import { VGEO_CUT_STAT } from "../../geometry/virtual/runtime/layout/VGEO_CUT_STAT.js";
|
|
37
|
+
import { shadowmap_caster_detail_pending } from "./shadowmap_caster_detail_pending.js";
|
|
35
38
|
import { DirectionalLightShadowmap } from "./DirectionalLightShadowmap.js";
|
|
36
39
|
import { POINT_SHADOW_CUBE_COLS, POINT_SHADOW_CUBE_ROWS } from "./POINT_SHADOW_CUBE_LAYOUT.js";
|
|
37
40
|
import {
|
|
@@ -388,6 +391,8 @@ export class GPUSceneShadowmapContext {
|
|
|
388
391
|
this.#cameras = new CameraManager(graphics.device);
|
|
389
392
|
this.shadow_view_manager = new ViewManager(graphics, this.#cameras, {
|
|
390
393
|
obtain: () => scene_ctx,
|
|
394
|
+
}, {
|
|
395
|
+
virtual_geometry_tau_scale: SHADOWMAP_VGEO_TAU_SCALE,
|
|
391
396
|
});
|
|
392
397
|
|
|
393
398
|
this.#render_target = RenderTarget.from({
|
|
@@ -523,6 +528,58 @@ export class GPUSceneShadowmapContext {
|
|
|
523
528
|
});
|
|
524
529
|
}
|
|
525
530
|
|
|
531
|
+
/**
|
|
532
|
+
* Pages the scene's virtual geometry has installed so far, or 0 for a scene without any.
|
|
533
|
+
*
|
|
534
|
+
* @returns {number}
|
|
535
|
+
*/
|
|
536
|
+
#installed_page_count() {
|
|
537
|
+
return this.#scene_ctx.virtual_geometry?.pool.installed_page_count ?? 0;
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
/**
|
|
541
|
+
* Flag every cached local map whose last cut of virtual geometry could now be drawn finer.
|
|
542
|
+
*
|
|
543
|
+
* Directional maps redraw every frame and need nothing of this. A local map's views are its own
|
|
544
|
+
* view contexts, each of which holds what the last reading of its cut said — so the question is
|
|
545
|
+
* answered from the map's own readings, and a map that cut nothing clamped is left alone however
|
|
546
|
+
* many pages arrive for other views (SHADOW_PLAN_2026_09_28 §2.5).
|
|
547
|
+
*
|
|
548
|
+
* @param {Shadowmap[]} shadowmaps
|
|
549
|
+
*/
|
|
550
|
+
#mark_caster_detail_pending(shadowmaps) {
|
|
551
|
+
if (this.#scene_ctx.virtual_geometry === undefined) {
|
|
552
|
+
return;
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
const installs_now = this.#installed_page_count();
|
|
556
|
+
const views = this.shadow_view_manager;
|
|
557
|
+
|
|
558
|
+
for (let i = 0; i < shadowmaps.length; i++) {
|
|
559
|
+
const map = shadowmaps[i];
|
|
560
|
+
|
|
561
|
+
if (map.light.isDirectionalLight || map.is_invalid) {
|
|
562
|
+
continue;
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
let clamped = 0;
|
|
566
|
+
|
|
567
|
+
for (let j = 0; j < map.views.length; j++) {
|
|
568
|
+
const view = map.views[j];
|
|
569
|
+
|
|
570
|
+
if (views.exists(view)) {
|
|
571
|
+
clamped += views.obtain(view).virtual_geometry_cut.stats[VGEO_CUT_STAT.CLAMPED];
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
|
|
575
|
+
map.caster_detail_pending = shadowmap_caster_detail_pending({
|
|
576
|
+
clamped,
|
|
577
|
+
installs_at_draw: map.installs_at_draw,
|
|
578
|
+
installs_now,
|
|
579
|
+
});
|
|
580
|
+
}
|
|
581
|
+
}
|
|
582
|
+
|
|
526
583
|
/**
|
|
527
584
|
*
|
|
528
585
|
* @param {Light} light
|
|
@@ -602,6 +659,10 @@ export class GPUSceneShadowmapContext {
|
|
|
602
659
|
m.projected_area_px = compute_light_projected_area_px(m.light, main_camera, view_resolution);
|
|
603
660
|
}
|
|
604
661
|
|
|
662
|
+
// Step 2b: a cached map whose last cut of virtual geometry was clamped, and under which pages
|
|
663
|
+
// have installed since, would now draw finer — score it as if it had never been drawn.
|
|
664
|
+
this.#mark_caster_detail_pending(shadowmaps);
|
|
665
|
+
|
|
605
666
|
// Step 3: policy reserves pending resize footprints alongside committed layouts. It
|
|
606
667
|
// never mutates layout and never invalidates — sampling continues against the old
|
|
607
668
|
// region until draw() commits the pending during a normal raster pass. Directionals and
|
|
@@ -799,6 +860,8 @@ export class GPUSceneShadowmapContext {
|
|
|
799
860
|
map.should_draw = false;
|
|
800
861
|
map.is_invalid = false;
|
|
801
862
|
map.last_updated_frame_index = frame_index;
|
|
863
|
+
map.caster_detail_pending = false;
|
|
864
|
+
map.installs_at_draw = this.#installed_page_count();
|
|
802
865
|
this.#debug_render_count++;
|
|
803
866
|
}
|
|
804
867
|
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How much coarser than the camera a shadow view cuts virtual geometry: its τ is the runtime's
|
|
3
|
+
* times this — see `VGeoViewCut.tau_scale`.
|
|
4
|
+
*
|
|
5
|
+
* Measured on Zorah (SHADOW_PLAN_2026_09_28 §7.2): at 2 the cascades draw 39% of the clusters they
|
|
6
|
+
* draw at 1, and false light against cascades at a quarter of the τ rises from 0.006–0.154% of the
|
|
7
|
+
* screen to 0.028–0.400%.
|
|
8
|
+
*
|
|
9
|
+
* @type {number}
|
|
10
|
+
*/
|
|
11
|
+
export const SHADOWMAP_VGEO_TAU_SCALE: number;
|
|
12
|
+
//# sourceMappingURL=SHADOWMAP_VGEO_TAU_SCALE.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SHADOWMAP_VGEO_TAU_SCALE.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/shadow/map/SHADOWMAP_VGEO_TAU_SCALE.js"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,uCAFU,MAAM,CAE0B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How much coarser than the camera a shadow view cuts virtual geometry: its τ is the runtime's
|
|
3
|
+
* times this — see `VGeoViewCut.tau_scale`.
|
|
4
|
+
*
|
|
5
|
+
* Measured on Zorah (SHADOW_PLAN_2026_09_28 §7.2): at 2 the cascades draw 39% of the clusters they
|
|
6
|
+
* draw at 1, and false light against cascades at a quarter of the τ rises from 0.006–0.154% of the
|
|
7
|
+
* screen to 0.028–0.400%.
|
|
8
|
+
*
|
|
9
|
+
* @type {number}
|
|
10
|
+
*/
|
|
11
|
+
export const SHADOWMAP_VGEO_TAU_SCALE = 2;
|
|
@@ -94,6 +94,21 @@ export class Shadowmap {
|
|
|
94
94
|
* @type {boolean}
|
|
95
95
|
*/
|
|
96
96
|
is_invalid: boolean;
|
|
97
|
+
/**
|
|
98
|
+
* True when this map's last draw cut virtual geometry that was clamped — coarser than its own
|
|
99
|
+
* threshold asked for, because pages were missing — and pages have installed since. Scored as if
|
|
100
|
+
* the map had never been drawn, so it wins its way back into the budget ahead of maps that are
|
|
101
|
+
* merely stale; set each frame by {@link GPUSceneShadowmapContext.select_for_draw} and cleared
|
|
102
|
+
* by a draw. See `shadowmap_caster_detail_pending`.
|
|
103
|
+
* @type {boolean}
|
|
104
|
+
*/
|
|
105
|
+
caster_detail_pending: boolean;
|
|
106
|
+
/**
|
|
107
|
+
* The virtual-geometry pool's install count when this map was last drawn — what
|
|
108
|
+
* {@link caster_detail_pending} compares against.
|
|
109
|
+
* @type {number}
|
|
110
|
+
*/
|
|
111
|
+
installs_at_draw: number;
|
|
97
112
|
/**
|
|
98
113
|
* Per-frame "draw this map now" signal set by
|
|
99
114
|
* {@link GPUSceneShadowmapContext.select_for_draw} during selection and consumed by
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Shadowmap.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/shadow/map/Shadowmap.js"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;IACI,WAAO;IAEP;;OAEG;IACH,OAFU,KAAK,CAEV;IAEL;;;;OAIG;IACH,QAFU,KAAK,EAAE,CAEL;IAEZ;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,gBAFU,KAAK,EAAE,GAAG,IAAI,CAEF;IAEtB;;;OAGG;IACH,OAFU,IAAI,EAAE,CAEL;IAEX;;;;;;;;;;;OAWG;IACH,mBAFU,MAAM,CAEM;IAEtB;;;;;;OAMG;IACH,0BAFU,MAAM,CAEc;IAE9B;;;;;;;OAOG;IACH,yBAFU,MAAM,CAEa;IAE7B;;;;;;;;;;;;;;;;;OAiBG;IACH,YAFU,OAAO,CAEC;IAElB;;;;;;;;OAQG;IACH,aAFU,OAAO,CAEG;IAEpB;;;;;;;;;;;;;;OAcG;IACH,kBAFU,OAAO,CAEO;IAExB;;;;;;;;;;;OAWG;IACH,iBAFU,MAAM,CAEI;IAEpB;;;;OAIG;IACH,oBAHW,MAAM,aACN,eAAe,QAIzB;IAED;;;;;;;OAOG;IACH,mBAEC;IAED,gBAEC;CACJ;
|
|
1
|
+
{"version":3,"file":"Shadowmap.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/shadow/map/Shadowmap.js"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;IACI,WAAO;IAEP;;OAEG;IACH,OAFU,KAAK,CAEV;IAEL;;;;OAIG;IACH,QAFU,KAAK,EAAE,CAEL;IAEZ;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,gBAFU,KAAK,EAAE,GAAG,IAAI,CAEF;IAEtB;;;OAGG;IACH,OAFU,IAAI,EAAE,CAEL;IAEX;;;;;;;;;;;OAWG;IACH,mBAFU,MAAM,CAEM;IAEtB;;;;;;OAMG;IACH,0BAFU,MAAM,CAEc;IAE9B;;;;;;;OAOG;IACH,yBAFU,MAAM,CAEa;IAE7B;;;;;;;;;;;;;;;;;OAiBG;IACH,YAFU,OAAO,CAEC;IAElB;;;;;;;OAOG;IACH,uBAFU,OAAO,CAEa;IAE9B;;;;OAIG;IACH,kBAFU,MAAM,CAEK;IAErB;;;;;;;;OAQG;IACH,aAFU,OAAO,CAEG;IAEpB;;;;;;;;;;;;;;OAcG;IACH,kBAFU,OAAO,CAEO;IAExB;;;;;;;;;;;OAWG;IACH,iBAFU,MAAM,CAEI;IAEpB;;;;OAIG;IACH,oBAHW,MAAM,aACN,eAAe,QAIzB;IAED;;;;;;;OAOG;IACH,mBAEC;IAED,gBAEC;CACJ;oBA5LY,OAAO,wCAAwC,EAAE,OAAO;qBACxD,OAAO,wBAAwB,EAAE,MAAM;oBACvC,OAAO,4BAA4B,EAAE,KAAK;8BAC1C,OAAO,gCAAgC,EAAE,eAAe;mBACxD,OAAO,oBAAoB,EAAE,IAAI"}
|
|
@@ -104,6 +104,23 @@ export class Shadowmap {
|
|
|
104
104
|
*/
|
|
105
105
|
is_invalid = true;
|
|
106
106
|
|
|
107
|
+
/**
|
|
108
|
+
* True when this map's last draw cut virtual geometry that was clamped — coarser than its own
|
|
109
|
+
* threshold asked for, because pages were missing — and pages have installed since. Scored as if
|
|
110
|
+
* the map had never been drawn, so it wins its way back into the budget ahead of maps that are
|
|
111
|
+
* merely stale; set each frame by {@link GPUSceneShadowmapContext.select_for_draw} and cleared
|
|
112
|
+
* by a draw. See `shadowmap_caster_detail_pending`.
|
|
113
|
+
* @type {boolean}
|
|
114
|
+
*/
|
|
115
|
+
caster_detail_pending = false;
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* The virtual-geometry pool's install count when this map was last drawn — what
|
|
119
|
+
* {@link caster_detail_pending} compares against.
|
|
120
|
+
* @type {number}
|
|
121
|
+
*/
|
|
122
|
+
installs_at_draw = 0;
|
|
123
|
+
|
|
107
124
|
/**
|
|
108
125
|
* Per-frame "draw this map now" signal set by
|
|
109
126
|
* {@link GPUSceneShadowmapContext.select_for_draw} during selection and consumed by
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether a cached shadow map would draw finer virtual geometry if it were drawn again now.
|
|
3
|
+
*
|
|
4
|
+
* A spot or point map is kept until the scorer re-selects it, and its first draw is forced at
|
|
5
|
+
* creation — when little but the roots of the scene's virtual geometry is resident. A cut that was
|
|
6
|
+
* **clamped** drew coarser clusters over surface whose pages were missing and asked for them; once
|
|
7
|
+
* pages have **installed** since the map was drawn, a redraw is a different, finer map. Keyed on the
|
|
8
|
+
* map's own incomplete cut rather than on every install in the scene, so a map whose cut was
|
|
9
|
+
* complete is never redrawn for pages someone else wanted (SHADOW_PLAN_2026_09_28 §2.5).
|
|
10
|
+
*
|
|
11
|
+
* @param {Object} options
|
|
12
|
+
* @param {number} options.clamped clusters the map's views' last readings drew clamped, summed
|
|
13
|
+
* @param {number} options.installs_at_draw the pool's install count when the map was drawn
|
|
14
|
+
* @param {number} options.installs_now the pool's install count now
|
|
15
|
+
* @returns {boolean}
|
|
16
|
+
*
|
|
17
|
+
* @author Alex Goldring
|
|
18
|
+
* @copyright Company Named Limited (c) 2026
|
|
19
|
+
*/
|
|
20
|
+
export function shadowmap_caster_detail_pending({ clamped, installs_at_draw, installs_now }: {
|
|
21
|
+
clamped: number;
|
|
22
|
+
installs_at_draw: number;
|
|
23
|
+
installs_now: number;
|
|
24
|
+
}): boolean;
|
|
25
|
+
//# sourceMappingURL=shadowmap_caster_detail_pending.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shadowmap_caster_detail_pending.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/shadow/map/shadowmap_caster_detail_pending.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH;IAR2B,OAAO,EAAvB,MAAM;IACU,gBAAgB,EAAhC,MAAM;IACU,YAAY,EAA5B,MAAM;IACJ,OAAO,CAOnB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether a cached shadow map would draw finer virtual geometry if it were drawn again now.
|
|
3
|
+
*
|
|
4
|
+
* A spot or point map is kept until the scorer re-selects it, and its first draw is forced at
|
|
5
|
+
* creation — when little but the roots of the scene's virtual geometry is resident. A cut that was
|
|
6
|
+
* **clamped** drew coarser clusters over surface whose pages were missing and asked for them; once
|
|
7
|
+
* pages have **installed** since the map was drawn, a redraw is a different, finer map. Keyed on the
|
|
8
|
+
* map's own incomplete cut rather than on every install in the scene, so a map whose cut was
|
|
9
|
+
* complete is never redrawn for pages someone else wanted (SHADOW_PLAN_2026_09_28 §2.5).
|
|
10
|
+
*
|
|
11
|
+
* @param {Object} options
|
|
12
|
+
* @param {number} options.clamped clusters the map's views' last readings drew clamped, summed
|
|
13
|
+
* @param {number} options.installs_at_draw the pool's install count when the map was drawn
|
|
14
|
+
* @param {number} options.installs_now the pool's install count now
|
|
15
|
+
* @returns {boolean}
|
|
16
|
+
*
|
|
17
|
+
* @author Alex Goldring
|
|
18
|
+
* @copyright Company Named Limited (c) 2026
|
|
19
|
+
*/
|
|
20
|
+
export function shadowmap_caster_detail_pending({ clamped, installs_at_draw, installs_now }) {
|
|
21
|
+
return clamped > 0 && installs_now > installs_at_draw;
|
|
22
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shadowmap_update_score.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/shadow/map/shadowmap_update_score.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,oFAHW,MAAM,GACJ,MAAM,
|
|
1
|
+
{"version":3,"file":"shadowmap_update_score.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/shadow/map/shadowmap_update_score.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,oFAHW,MAAM,GACJ,MAAM,CAclB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,oGAHW,UAAU,MAAM,CAAC,GACf,MAAM,CAuClB"}
|
|
@@ -32,8 +32,11 @@ export function compute_shadowmap_update_score(map, current_frame_index) {
|
|
|
32
32
|
return Infinity;
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
// staleness = frames since last refresh; -1 (never) maps to a large positive number
|
|
36
|
-
|
|
35
|
+
// staleness = frames since last refresh; -1 (never) maps to a large positive number, and so does
|
|
36
|
+
// a map whose last cut of virtual geometry was clamped and could now be drawn finer
|
|
37
|
+
const staleness = map.caster_detail_pending
|
|
38
|
+
? current_frame_index + 1
|
|
39
|
+
: current_frame_index - map.last_updated_frame_index;
|
|
37
40
|
|
|
38
41
|
return map.projected_area_px * (1 + Math.max(0, staleness));
|
|
39
42
|
}
|
|
@@ -39,7 +39,8 @@ export class TextureManager {
|
|
|
39
39
|
*/
|
|
40
40
|
release(shade: ShadeTexture): boolean;
|
|
41
41
|
/**
|
|
42
|
-
* Release every texture the manager is holding. Called by
|
|
42
|
+
* Release every texture the manager is holding, and the mipmap generator's buffer. Called by
|
|
43
|
+
* {@link GraphicsContext#destroy}.
|
|
43
44
|
*
|
|
44
45
|
* @returns {void}
|
|
45
46
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextureManager.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/texture/TextureManager.js"],"names":[],"mappings":"AAsEA;IAuCI;;;OAGG;IACH,+BAIC;IA5BD;;;OAGG;IACH,qCAEC;IAwBD;;;;OAIG;IACH,cAHW,YAAY,GACV,iBAAiB,CAY7B;IAiCD,uDAqCC;IAeD;;;;OAIG;IACH,kCAHW,iBAAiB,GACf,iBAAiB,CAa7B;IAED;;;;;;;;;;;;;;OAcG;IACH,eAHW,YAAY,GACV,OAAO,CAoBnB;IAED
|
|
1
|
+
{"version":3,"file":"TextureManager.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/texture/TextureManager.js"],"names":[],"mappings":"AAsEA;IAuCI;;;OAGG;IACH,+BAIC;IA5BD;;;OAGG;IACH,qCAEC;IAwBD;;;;OAIG;IACH,cAHW,YAAY,GACV,iBAAiB,CAY7B;IAiCD,uDAqCC;IAeD;;;;OAIG;IACH,kCAHW,iBAAiB,GACf,iBAAiB,CAa7B;IAED;;;;;;;;;;;;;;OAcG;IACH,eAHW,YAAY,GACV,OAAO,CAoBnB;IAED;;;;;OAKG;IACH,WAFa,IAAI,CAWhB;IAED,eAEC;IAED,+BAQC;;CACJ;2BAnSY,OAAO,mBAAmB,EAAE,YAAY;sCAPf,oCAAoC;kCADxC,wBAAwB;kCADxB,+CAA+C"}
|
|
@@ -271,7 +271,8 @@ export class TextureManager {
|
|
|
271
271
|
}
|
|
272
272
|
|
|
273
273
|
/**
|
|
274
|
-
* Release every texture the manager is holding. Called by
|
|
274
|
+
* Release every texture the manager is holding, and the mipmap generator's buffer. Called by
|
|
275
|
+
* {@link GraphicsContext#destroy}.
|
|
275
276
|
*
|
|
276
277
|
* @returns {void}
|
|
277
278
|
*/
|
|
@@ -282,6 +283,8 @@ export class TextureManager {
|
|
|
282
283
|
|
|
283
284
|
this.#cache.clear();
|
|
284
285
|
this.#bound = new WeakMap();
|
|
286
|
+
|
|
287
|
+
this.#mipmaps.destroy();
|
|
285
288
|
}
|
|
286
289
|
|
|
287
290
|
update() {
|
|
@@ -41,11 +41,19 @@ export class Uint32BufferSamplingStats {
|
|
|
41
41
|
*/
|
|
42
42
|
setGlobalMax(column_id: number, value: number): void;
|
|
43
43
|
/**
|
|
44
|
+
* Read the records back through a copy into a buffer taken from `buffers`, once `encoder` is
|
|
45
|
+
* submitted.
|
|
46
|
+
*
|
|
47
|
+
* A reading can be lost, and then nothing of it is applied: when this is destroyed while it is in
|
|
48
|
+
* flight, or when its buffer is destroyed under the mapping — which is what tearing `buffers` down
|
|
49
|
+
* does. A renderer torn down with a frame's reading still on the GPU does both, so a lost reading
|
|
50
|
+
* is an answer here, not an error.
|
|
44
51
|
*
|
|
45
52
|
* @param {ShadeGPUCommandContext} encoder
|
|
46
53
|
* @param {GPUBufferAllocator} buffers
|
|
54
|
+
* @returns {Promise<boolean>} whether the reading was applied
|
|
47
55
|
*/
|
|
48
|
-
readback_explicit(encoder: ShadeGPUCommandContext, buffers: GPUBufferAllocator): Promise<
|
|
56
|
+
readback_explicit(encoder: ShadeGPUCommandContext, buffers: GPUBufferAllocator): Promise<boolean>;
|
|
49
57
|
readback(): Promise<any>;
|
|
50
58
|
upload(): void;
|
|
51
59
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Uint32BufferSamplingStats.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/util/Uint32BufferSamplingStats.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Uint32BufferSamplingStats.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/util/Uint32BufferSamplingStats.js"],"names":[],"mappings":"AAYA;IA+OI;;;;;OAKG;IACH,wCAHW,MAAM,cACN,MAAM,EAwBhB;IApQD;;;OAGG;IACH,sBAEC;IAkCD;;;OAGG;IACH,6BAEC;IAED;;;;OAIG;IACH,yBAHW,MAAM,GACJ,MAAM,CAQlB;IAED;;;;OAIG;IACH,yBAHW,MAAM,GACJ,MAAM,CAclB;IAED;;;;OAIG;IACH,wBAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;;OAIG;IACH,wBAHW,MAAM,SACN,MAAM,QAOhB;IAoBD;;;;;;;;;;;;OAYG;IACH,2BAJW,sBAAsB,WACtB,kBAAkB,GAChB,QAAQ,OAAO,CAAC,CAqB5B;IAwCD,yBASC;IAED,eAEC;IAED;;;;;;OAMG;IACH,8CAJW,MAAM,qCAEN,MAAM,QAmBhB;IAgCD;;;OAGG;IACH,gBAFW,MAAM,QAchB;IAED,gBAIC;;CACJ;qCA1SY,OAAO,wCAAwC,EAAE,sBAAsB;iCACvE,OAAO,iCAAiC,EAAE,kBAAkB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { assert } from "../../../core/assert.js";
|
|
2
2
|
import { BufferResourceDescriptor } from "../../device/graph/BufferResourceDescriptor.js";
|
|
3
|
+
import { warn_limited } from "../../util/warn_limited.js";
|
|
3
4
|
import { inspect_via_copy } from "../buffer/inspect_gpu_buffer.js";
|
|
4
5
|
|
|
5
6
|
/**
|
|
@@ -50,6 +51,12 @@ export class Uint32BufferSamplingStats {
|
|
|
50
51
|
*/
|
|
51
52
|
#device;
|
|
52
53
|
|
|
54
|
+
/**
|
|
55
|
+
* Set by {@link destroy}. A reading still in flight then applies nothing.
|
|
56
|
+
* @type {boolean}
|
|
57
|
+
*/
|
|
58
|
+
#destroyed = false;
|
|
59
|
+
|
|
53
60
|
/**
|
|
54
61
|
*
|
|
55
62
|
* @returns {GPUBuffer}
|
|
@@ -130,9 +137,17 @@ export class Uint32BufferSamplingStats {
|
|
|
130
137
|
}
|
|
131
138
|
|
|
132
139
|
/**
|
|
140
|
+
* Read the records back through a copy into a buffer taken from `buffers`, once `encoder` is
|
|
141
|
+
* submitted.
|
|
142
|
+
*
|
|
143
|
+
* A reading can be lost, and then nothing of it is applied: when this is destroyed while it is in
|
|
144
|
+
* flight, or when its buffer is destroyed under the mapping — which is what tearing `buffers` down
|
|
145
|
+
* does. A renderer torn down with a frame's reading still on the GPU does both, so a lost reading
|
|
146
|
+
* is an answer here, not an error.
|
|
133
147
|
*
|
|
134
148
|
* @param {ShadeGPUCommandContext} encoder
|
|
135
149
|
* @param {GPUBufferAllocator} buffers
|
|
150
|
+
* @returns {Promise<boolean>} whether the reading was applied
|
|
136
151
|
*/
|
|
137
152
|
async readback_explicit(encoder, buffers) {
|
|
138
153
|
const tmp_desc = new BufferResourceDescriptor();
|
|
@@ -146,18 +161,51 @@ export class Uint32BufferSamplingStats {
|
|
|
146
161
|
|
|
147
162
|
encoder.copyBufferToBuffer(stat_buffer, 0, tmp_buffer, 0);
|
|
148
163
|
|
|
164
|
+
const applied = await this.#read(encoder, tmp_buffer, size);
|
|
165
|
+
|
|
166
|
+
// back unmapped, whatever became of the reading. A pool torn down while it was in flight has
|
|
167
|
+
// already destroyed the buffer and no longer holds it, so it declines it
|
|
168
|
+
buffers.release(tmp_buffer);
|
|
169
|
+
|
|
170
|
+
return applied;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* @param {ShadeGPUCommandContext} encoder
|
|
175
|
+
* @param {GPUBuffer} tmp_buffer
|
|
176
|
+
* @param {number} size
|
|
177
|
+
* @returns {Promise<boolean>} whether the reading was applied; `tmp_buffer` is unmapped either way
|
|
178
|
+
*/
|
|
179
|
+
async #read(encoder, tmp_buffer, size) {
|
|
149
180
|
await encoder.done;
|
|
150
181
|
|
|
151
|
-
|
|
182
|
+
if (this.#destroyed) {
|
|
183
|
+
// and the buffer may be too — mapping it would be a validation error, not an abort
|
|
184
|
+
return false;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
try {
|
|
188
|
+
await tmp_buffer.mapAsync(GPUMapMode.READ, 0, size);
|
|
189
|
+
} catch (e) {
|
|
190
|
+
// An AbortError when the buffer was destroyed under the mapping. Torn down alongside this,
|
|
191
|
+
// that is the expected end of a reading in flight; on its own it is not
|
|
192
|
+
if (!this.#destroyed) {
|
|
193
|
+
warn_limited(`Uint32BufferSamplingStats: a reading was lost, its mapping failed (${e.name})`);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
return false;
|
|
197
|
+
}
|
|
152
198
|
|
|
153
|
-
|
|
199
|
+
// destroyed while the mapping was in flight: the records it would land in are gone
|
|
200
|
+
const applied = !this.#destroyed;
|
|
154
201
|
|
|
155
|
-
|
|
156
|
-
|
|
202
|
+
if (applied) {
|
|
203
|
+
this.#write_data(new Uint32Array(tmp_buffer.getMappedRange(0, size)));
|
|
204
|
+
}
|
|
157
205
|
|
|
158
206
|
tmp_buffer.unmap();
|
|
159
207
|
|
|
160
|
-
|
|
208
|
+
return applied;
|
|
161
209
|
}
|
|
162
210
|
|
|
163
211
|
async readback() {
|
|
@@ -250,6 +298,8 @@ export class Uint32BufferSamplingStats {
|
|
|
250
298
|
}
|
|
251
299
|
|
|
252
300
|
destroy() {
|
|
301
|
+
this.#destroyed = true;
|
|
302
|
+
|
|
253
303
|
this.#stat_buffer.destroy();
|
|
254
304
|
}
|
|
255
305
|
}
|
|
@@ -10,8 +10,14 @@ export class ViewManager {
|
|
|
10
10
|
* @param {GraphicsContext} graphics
|
|
11
11
|
* @param {CameraManager} cameras
|
|
12
12
|
* @param {SceneManager} scenes
|
|
13
|
+
* @param {Object} [options]
|
|
14
|
+
* @param {number} [options.virtual_geometry_tau_scale] how much coarser than the runtime's
|
|
15
|
+
* threshold the views this hands out cut virtual geometry — the owner of the views decides,
|
|
16
|
+
* since nothing in the runtime knows what kind of view it is cutting for
|
|
13
17
|
*/
|
|
14
|
-
constructor(graphics: GraphicsContext, cameras: CameraManager, scenes: SceneManager
|
|
18
|
+
constructor(graphics: GraphicsContext, cameras: CameraManager, scenes: SceneManager, { virtual_geometry_tau_scale }?: {
|
|
19
|
+
virtual_geometry_tau_scale?: number;
|
|
20
|
+
});
|
|
15
21
|
/**
|
|
16
22
|
*
|
|
17
23
|
* @return {SceneManager}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewManager.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/view/ViewManager.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ViewManager.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/view/ViewManager.js"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH;IAyCI;;;;;;;;;OASG;IACH,sBARW,eAAe,WACf,aAAa,UACb,YAAY;QAEK,0BAA0B,GAA3C,MAAM;OAchB;IA5CD;;;OAGG;IACH,8DAEC;IA0DD;;;;OAIG;IACH,aAHW,IAAI,GACF,OAAO,CAInB;IAED;;;;OAIG;IACH,aAHW,IAAI,GACF,cAAc,CAI1B;IAED;;;;;;;;;;;;;OAaG;IACH,cAFW,IAAI,QASd;IAED;;;;;;OAMG;IACH,WAFa,IAAI,CAQhB;;CACJ;8BA9IY,OAAO,uBAAuB,EAAE,eAAe;4BAC/C,OAAO,4BAA4B,EAAE,aAAa;2BAClD,OAAO,0BAA0B,EAAE,YAAY;mBAC/C,OAAO,WAAW,EAAE,IAAI;+BANN,qBAAqB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { assert } from "../../../core/assert.js";
|
|
1
2
|
import { HashMap } from "../../../core/collection/map/HashMap.js";
|
|
2
3
|
import { GPUViewContext } from "./GPUViewContext.js";
|
|
3
4
|
|
|
@@ -43,14 +44,28 @@ export class ViewManager {
|
|
|
43
44
|
*/
|
|
44
45
|
#graphics;
|
|
45
46
|
|
|
47
|
+
/**
|
|
48
|
+
* What every view this hands out starts its `VGeoViewCut.tau_scale` at.
|
|
49
|
+
* @type {number}
|
|
50
|
+
*/
|
|
51
|
+
#virtual_geometry_tau_scale;
|
|
52
|
+
|
|
46
53
|
/**
|
|
47
54
|
*
|
|
48
55
|
* @param {GraphicsContext} graphics
|
|
49
56
|
* @param {CameraManager} cameras
|
|
50
57
|
* @param {SceneManager} scenes
|
|
58
|
+
* @param {Object} [options]
|
|
59
|
+
* @param {number} [options.virtual_geometry_tau_scale] how much coarser than the runtime's
|
|
60
|
+
* threshold the views this hands out cut virtual geometry — the owner of the views decides,
|
|
61
|
+
* since nothing in the runtime knows what kind of view it is cutting for
|
|
51
62
|
*/
|
|
52
|
-
constructor(graphics, cameras, scenes) {
|
|
63
|
+
constructor(graphics, cameras, scenes, { virtual_geometry_tau_scale = 1 } = {}) {
|
|
64
|
+
assert.isNumber(virtual_geometry_tau_scale, 'virtual_geometry_tau_scale');
|
|
65
|
+
assert.greaterThan(virtual_geometry_tau_scale, 0, 'virtual_geometry_tau_scale');
|
|
66
|
+
|
|
53
67
|
this.#graphics = graphics;
|
|
68
|
+
this.#virtual_geometry_tau_scale = virtual_geometry_tau_scale;
|
|
54
69
|
|
|
55
70
|
this.#device = graphics.device;
|
|
56
71
|
this.#cameras = cameras;
|
|
@@ -70,6 +85,7 @@ export class ViewManager {
|
|
|
70
85
|
const gpu_ctx = new GPUViewContext(this.#graphics, scene, camera);
|
|
71
86
|
|
|
72
87
|
gpu_ctx.label = view.label;
|
|
88
|
+
gpu_ctx.virtual_geometry_cut.tau_scale = this.#virtual_geometry_tau_scale;
|
|
73
89
|
|
|
74
90
|
return gpu_ctx;
|
|
75
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GPUSceneVolumetrics.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/volumetrics/GPUSceneVolumetrics.js"],"names":[],"mappings":"AAOA;;;GAGG;AAEH;;;GAGG;AACH;IAkCI;;;;OAIG;IACH,4CAFW,gBAAgB,EAkB1B;IArDD;;OAEG;IACH,QAFU,gBAAgB,CAEpB;IAWN,gCAEC;IAOD,sCAEC;IA8BD,
|
|
1
|
+
{"version":3,"file":"GPUSceneVolumetrics.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/volumetrics/GPUSceneVolumetrics.js"],"names":[],"mappings":"AAOA;;;GAGG;AAEH;;;GAGG;AACH;IAkCI;;;;OAIG;IACH,4CAFW,gBAAgB,EAkB1B;IArDD;;OAEG;IACH,QAFU,gBAAgB,CAEpB;IAWN,gCAEC;IAOD,sCAEC;IA8BD,gBAGC;IAED;;;;OAIG;IACH,YAHW,eAAe,gBACf,MAAM,QA+ChB;;CAEJ;8BA1HY,OAAO,uBAAuB,EAAE,eAAe;+BAC/C,OAAO,uBAAuB,EAAE,gBAAgB;mCAN1B,8CAA8C;+BADlD,6BAA6B"}
|
|
@@ -30,16 +30,26 @@ export class GPUViewVolumetrics {
|
|
|
30
30
|
* @param {number} options.light_cluster_lookup
|
|
31
31
|
* @param {number} options.light_cluster_parameters
|
|
32
32
|
* @param {number} options.shadowmap_atlas
|
|
33
|
+
* @param {import("../ShadeIndirectLightingMode.js").ShadeIndirectLightingMode} options.indirect_lighting_mode the renderer's; picks the froxel GI
|
|
34
|
+
* module that starts the froxel irradiance volume
|
|
35
|
+
* @returns {{resolved: number, metadata: number, irradiance: {Y: number, CoCg: number}}} the
|
|
36
|
+
* integrated aerial LUT, the metadata buffer, and the froxel irradiance volume
|
|
37
|
+
* (chunk_volumetrics_irradiance_sh) for the transparent surfaces the lighting pass cannot see
|
|
33
38
|
*/
|
|
34
|
-
graph_update({ graph, light_cluster_data, light_cluster_lookup, light_cluster_parameters, shadowmap_atlas, }: {
|
|
39
|
+
graph_update({ graph, light_cluster_data, light_cluster_lookup, light_cluster_parameters, shadowmap_atlas, indirect_lighting_mode, }: {
|
|
35
40
|
graph: FrameGraph;
|
|
36
41
|
light_cluster_data: number;
|
|
37
42
|
light_cluster_lookup: number;
|
|
38
43
|
light_cluster_parameters: number;
|
|
39
44
|
shadowmap_atlas: number;
|
|
45
|
+
indirect_lighting_mode: import("../ShadeIndirectLightingMode.js").ShadeIndirectLightingMode;
|
|
40
46
|
}): {
|
|
41
|
-
resolved:
|
|
42
|
-
metadata:
|
|
47
|
+
resolved: number;
|
|
48
|
+
metadata: number;
|
|
49
|
+
irradiance: {
|
|
50
|
+
Y: number;
|
|
51
|
+
CoCg: number;
|
|
52
|
+
};
|
|
43
53
|
};
|
|
44
54
|
#private;
|
|
45
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GPUViewVolumetrics.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/volumetrics/GPUViewVolumetrics.js"],"names":[],"mappings":"AAiCA;IAkII;;;;OAIG;IACH,kBAHW,cAAc,qBAwBxB;IAxHD;;OAEG;IACH,4BAOC;IAjBD;;OAEG;IACH,2BAEC;IAsCD;;OAEG;IACH,0BAEC;IAZD;;OAEG;IACH,yBAEC;IAwFD,gBAWC;IA6ND
|
|
1
|
+
{"version":3,"file":"GPUViewVolumetrics.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/volumetrics/GPUViewVolumetrics.js"],"names":[],"mappings":"AAiCA;IAkII;;;;OAIG;IACH,kBAHW,cAAc,qBAwBxB;IAxHD;;OAEG;IACH,4BAOC;IAjBD;;OAEG;IACH,2BAEC;IAsCD;;OAEG;IACH,0BAEC;IAZD;;OAEG;IACH,yBAEC;IAwFD,gBAWC;IA6ND;;;;;;;;;;;;;OAaG;IACH;QAX+B,KAAK,EAAzB,UAAU;QACM,kBAAkB,EAAlC,MAAM;QACU,oBAAoB,EAApC,MAAM;QACU,wBAAwB,EAAxC,MAAM;QACU,eAAe,EAA/B,MAAM;QACuE,sBAAsB,EAAnG,OAAO,iCAAiC,EAAE,yBAAyB;QAEjE;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAC,CAAA;KAAC,CAyFvF;;CAEJ;yBApfY,OAAO,2DAA2D,EAAE,UAAU;6BAC9E,OAAO,2BAA2B,EAAE,cAAc"}
|
|
@@ -429,6 +429,11 @@ export class GPUViewVolumetrics {
|
|
|
429
429
|
* @param {number} options.light_cluster_lookup
|
|
430
430
|
* @param {number} options.light_cluster_parameters
|
|
431
431
|
* @param {number} options.shadowmap_atlas
|
|
432
|
+
* @param {import("../ShadeIndirectLightingMode.js").ShadeIndirectLightingMode} options.indirect_lighting_mode the renderer's; picks the froxel GI
|
|
433
|
+
* module that starts the froxel irradiance volume
|
|
434
|
+
* @returns {{resolved: number, metadata: number, irradiance: {Y: number, CoCg: number}}} the
|
|
435
|
+
* integrated aerial LUT, the metadata buffer, and the froxel irradiance volume
|
|
436
|
+
* (chunk_volumetrics_irradiance_sh) for the transparent surfaces the lighting pass cannot see
|
|
432
437
|
*/
|
|
433
438
|
graph_update({
|
|
434
439
|
graph,
|
|
@@ -436,6 +441,7 @@ export class GPUViewVolumetrics {
|
|
|
436
441
|
light_cluster_lookup,
|
|
437
442
|
light_cluster_parameters,
|
|
438
443
|
shadowmap_atlas,
|
|
444
|
+
indirect_lighting_mode,
|
|
439
445
|
}) {
|
|
440
446
|
|
|
441
447
|
const view = this.#view;
|
|
@@ -487,7 +493,7 @@ export class GPUViewVolumetrics {
|
|
|
487
493
|
taa_output = graph_import_texture(graph, this.#volumetrics_textures[parity], "volumetrics taa output");
|
|
488
494
|
}
|
|
489
495
|
|
|
490
|
-
const { lut_aerial } = graph_build_volumetrics({
|
|
496
|
+
const { lut_aerial, irradiance } = graph_build_volumetrics({
|
|
491
497
|
graph,
|
|
492
498
|
camera,
|
|
493
499
|
lights,
|
|
@@ -496,6 +502,7 @@ export class GPUViewVolumetrics {
|
|
|
496
502
|
light_cluster_lookup,
|
|
497
503
|
light_cluster_parameters,
|
|
498
504
|
shadowmap_atlas,
|
|
505
|
+
indirect_lighting_mode,
|
|
499
506
|
|
|
500
507
|
volumetrics_metadata: gr_metadata,
|
|
501
508
|
volumetric_resolution: resolution,
|
|
@@ -511,6 +518,7 @@ export class GPUViewVolumetrics {
|
|
|
511
518
|
return {
|
|
512
519
|
resolved: lut_aerial,
|
|
513
520
|
metadata: gr_metadata,
|
|
521
|
+
irradiance,
|
|
514
522
|
};
|
|
515
523
|
}
|
|
516
524
|
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The froxel irradiance volume: the light a transparent surface standing in a froxel receives, for
|
|
3
|
+
* surfaces the lighting pass cannot see — the particles. The froxel GI stage (`gi/`) starts it with
|
|
4
|
+
* whatever the renderer's indirect lighting mode says a point there receives — the environment,
|
|
5
|
+
* Brick4, the light probe volume — and `shader_volumetrics_build_lighting` adds, in the same loop
|
|
6
|
+
* that lights the fog, every directional, point and spot light, their shadows, and the fog's own
|
|
7
|
+
* attenuation toward each light. idTech 8 builds the same thing in the same pass ("Froxels
|
|
8
|
+
* Irradiance Volume", Sousa, SIGGRAPH 2025, p.29).
|
|
9
|
+
*
|
|
10
|
+
* Stored in the Metro Exodus L1 encoding (`l1i/`): luma as SH2 — four coefficients — and chroma as
|
|
11
|
+
* its constant band only. Two lights of different colours from opposite sides therefore light both
|
|
12
|
+
* sides in their luminance-weighted mix, not one colour each; that is the price of 6 coefficients
|
|
13
|
+
* instead of 12.
|
|
14
|
+
*
|
|
15
|
+
* Every light is added as a delta — all of its irradiance from one direction — and scaled by
|
|
16
|
+
* `1/(2 pi)`, which is the scale under which `resolve_irradiance_sh_to_diffuse(Y, CoCg, n)` returns
|
|
17
|
+
* `E(n) / pi`: the Lambertian radiance of a unit-albedo surface facing `n`. With SH2 that is
|
|
18
|
+
* `E * max(0, 1/4 + cos(theta)/2)` per light, over `pi` — the band-limited clamped cosine, a quarter
|
|
19
|
+
* dim at the peak and a quarter lit a right angle past the terminator.
|
|
20
|
+
*
|
|
21
|
+
* - `volumetrics_irradiance_sh_add(sh, irradiance, direction_to_light)` — one light's contribution,
|
|
22
|
+
* `irradiance` being what reaches the point at normal incidence and `direction_to_light` a unit
|
|
23
|
+
* vector pointing toward the light.
|
|
24
|
+
* - `volumetrics_irradiance_sh_add_radiance(sh, radiance)` — a whole radiance field arriving at the
|
|
25
|
+
* point, as RGB SH2: coefficients of radiance, not cosine-convolved, ordered `[DC, y, z, x]` in
|
|
26
|
+
* the project's all-positive basis (`sh2_basis_at`). The form every GI source hands over — the
|
|
27
|
+
* probes of Brick4 and of the light probe volume, and `GPULightCollection.environment_sh`. A light
|
|
28
|
+
* is the delta field `E sh2_basis_at(l)`, and adding it this way adds exactly what
|
|
29
|
+
* `volumetrics_irradiance_sh_add` does.
|
|
30
|
+
* - `volumetrics_irradiance_sh_storable(sh)` — what an `rgba16float` volume can hold. A clustered
|
|
31
|
+
* light close to a froxel exceeds half precision on its own and stores as +Inf, and an infinite
|
|
32
|
+
* luma times a zero band-1 basis is a NaN; either would reach every particle sampling that froxel.
|
|
33
|
+
* Non-finite coefficients become 0 and the rest are clamped to the half range.
|
|
34
|
+
*
|
|
35
|
+
* @type {CodeChunk}
|
|
36
|
+
*/
|
|
37
|
+
export const chunk_volumetrics_irradiance_sh: CodeChunk;
|
|
38
|
+
import { CodeChunk } from "../shader/compiler/CodeChunk.js";
|
|
39
|
+
//# sourceMappingURL=chunk_volumetrics_irradiance_sh.d.ts.map
|