@woosh/meep-engine 3.33.0 → 3.34.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/playground/caldera/main.js +73 -60
- package/src/shade/playground/vgeo_runtime/main.js +25 -77
- package/src/shade/playground/vgeo_scene/main.js +2231 -2217
- 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.map +1 -1
- package/src/shade/renderer/Renderer.js +38 -0
- 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/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 +4 -10
- 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/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 +3 -4
- 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/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/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,36 +1,64 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Where each region of the feedback buffer starts, for one frame's worth of cutting.
|
|
3
3
|
*
|
|
4
|
-
* One function rather than two agreeing conventions: the pass that
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* **
|
|
10
|
-
*
|
|
11
|
-
* and
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
4
|
+
* One function rather than two agreeing conventions: the pass that clears the buffer and the params
|
|
5
|
+
* block that tells the kernel where to write both come from here, and so does anything that reads it
|
|
6
|
+
* back. A layout computed twice is a layout that drifts, and the way it drifts is a want list written
|
|
7
|
+
* over the touch bits, which reads as wants that never resolve.
|
|
8
|
+
*
|
|
9
|
+
* **A header per view slot, the touch bits, then a want slice per slot — and the whole of it is read
|
|
10
|
+
* back.** Every view that cuts in a frame takes a slot (SHADOW_PLAN_2026_09_28 §2.4): its own counters
|
|
11
|
+
* and its own want list, so that a shadow view recording first cannot fill the list the main view
|
|
12
|
+
* records into later, and a reading can say which view needed more wavefronts. The touch bits stay
|
|
13
|
+
* one set — a page any view draws from is a page in use. With one slot this is the layout the buffer
|
|
14
|
+
* always had: the header at word 0, the touch bits after it, the wants after those.
|
|
15
|
+
*
|
|
16
|
+
* `want_capacity` is what one frame may ask for across every view, divided evenly among the slots,
|
|
17
|
+
* so the readback does not grow with the number of views.
|
|
17
18
|
*
|
|
18
19
|
* @param {Object} options
|
|
19
20
|
* @param {number} options.page_row_capacity one touch bit per page-table row
|
|
20
|
-
* @param {number} options.want_capacity records
|
|
21
|
-
* @
|
|
22
|
-
*
|
|
21
|
+
* @param {number} options.want_capacity records, across every slot
|
|
22
|
+
* @param {number} options.slot_count views the frame is laid out for
|
|
23
|
+
* @returns {{slot_count: number, touch_bits_base: number, touch_word_count: number, want_base: number,
|
|
24
|
+
* slot_want_capacity: number, clear_word_count: number, word_count: number}}
|
|
23
25
|
*
|
|
24
26
|
* @author Alex Goldring
|
|
25
27
|
* @copyright Company Named Limited (c) 2026
|
|
26
28
|
*/
|
|
27
|
-
export function vgeo_cut_feedback_layout({ page_row_capacity, want_capacity }: {
|
|
29
|
+
export function vgeo_cut_feedback_layout({ page_row_capacity, want_capacity, slot_count }: {
|
|
28
30
|
page_row_capacity: number;
|
|
29
31
|
want_capacity: number;
|
|
32
|
+
slot_count: number;
|
|
30
33
|
}): {
|
|
34
|
+
slot_count: number;
|
|
31
35
|
touch_bits_base: number;
|
|
32
36
|
touch_word_count: number;
|
|
33
37
|
want_base: number;
|
|
38
|
+
slot_want_capacity: number;
|
|
39
|
+
clear_word_count: number;
|
|
34
40
|
word_count: number;
|
|
35
41
|
};
|
|
42
|
+
/**
|
|
43
|
+
* Word offset of a slot's want counter.
|
|
44
|
+
*
|
|
45
|
+
* @param {number} slot
|
|
46
|
+
* @returns {number}
|
|
47
|
+
*/
|
|
48
|
+
export function vgeo_feedback_slot_want_count(slot: number): number;
|
|
49
|
+
/**
|
|
50
|
+
* Word offset of a slot's first counter, {@link VGEO_CUT_STAT} indexing from it.
|
|
51
|
+
*
|
|
52
|
+
* @param {number} slot
|
|
53
|
+
* @returns {number}
|
|
54
|
+
*/
|
|
55
|
+
export function vgeo_feedback_slot_stats(slot: number): number;
|
|
56
|
+
/**
|
|
57
|
+
* Word offset of a slot's first want record.
|
|
58
|
+
*
|
|
59
|
+
* @param {ReturnType<vgeo_cut_feedback_layout>} layout
|
|
60
|
+
* @param {number} slot
|
|
61
|
+
* @returns {number}
|
|
62
|
+
*/
|
|
63
|
+
export function vgeo_feedback_slot_wants(layout: ReturnType<typeof vgeo_cut_feedback_layout>, slot: number): number;
|
|
36
64
|
//# sourceMappingURL=vgeo_cut_feedback_layout.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vgeo_cut_feedback_layout.d.ts","sourceRoot":"","sources":["../../../../../../../../src/shade/renderer/geometry/virtual/runtime/cut/vgeo_cut_feedback_layout.js"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"vgeo_cut_feedback_layout.d.ts","sourceRoot":"","sources":["../../../../../../../../src/shade/renderer/geometry/virtual/runtime/cut/vgeo_cut_feedback_layout.js"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH;IAT2B,iBAAiB,EAAjC,MAAM;IACU,aAAa,EAA7B,MAAM;IACU,UAAU,EAA1B,MAAM;IACJ;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IACtG,kBAAwB,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAC,CA4B/E;AAED;;;;;GAKG;AACH,oDAHW,MAAM,GACJ,MAAM,CAIlB;AAED;;;;;GAKG;AACH,+CAHW,MAAM,GACJ,MAAM,CAIlB;AAED;;;;;;GAMG;AACH,iDAJW,2CAAoC,QACpC,MAAM,GACJ,MAAM,CAIlB"}
|
|
@@ -5,41 +5,83 @@ import { VGEO_WANT_WORDS } from "../layout/VGEO_WANT_WORDS.js";
|
|
|
5
5
|
/**
|
|
6
6
|
* Where each region of the feedback buffer starts, for one frame's worth of cutting.
|
|
7
7
|
*
|
|
8
|
-
* One function rather than two agreeing conventions: the pass that
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* **
|
|
14
|
-
*
|
|
15
|
-
* and
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
8
|
+
* One function rather than two agreeing conventions: the pass that clears the buffer and the params
|
|
9
|
+
* block that tells the kernel where to write both come from here, and so does anything that reads it
|
|
10
|
+
* back. A layout computed twice is a layout that drifts, and the way it drifts is a want list written
|
|
11
|
+
* over the touch bits, which reads as wants that never resolve.
|
|
12
|
+
*
|
|
13
|
+
* **A header per view slot, the touch bits, then a want slice per slot — and the whole of it is read
|
|
14
|
+
* back.** Every view that cuts in a frame takes a slot (SHADOW_PLAN_2026_09_28 §2.4): its own counters
|
|
15
|
+
* and its own want list, so that a shadow view recording first cannot fill the list the main view
|
|
16
|
+
* records into later, and a reading can say which view needed more wavefronts. The touch bits stay
|
|
17
|
+
* one set — a page any view draws from is a page in use. With one slot this is the layout the buffer
|
|
18
|
+
* always had: the header at word 0, the touch bits after it, the wants after those.
|
|
19
|
+
*
|
|
20
|
+
* `want_capacity` is what one frame may ask for across every view, divided evenly among the slots,
|
|
21
|
+
* so the readback does not grow with the number of views.
|
|
21
22
|
*
|
|
22
23
|
* @param {Object} options
|
|
23
24
|
* @param {number} options.page_row_capacity one touch bit per page-table row
|
|
24
|
-
* @param {number} options.want_capacity records
|
|
25
|
-
* @
|
|
26
|
-
*
|
|
25
|
+
* @param {number} options.want_capacity records, across every slot
|
|
26
|
+
* @param {number} options.slot_count views the frame is laid out for
|
|
27
|
+
* @returns {{slot_count: number, touch_bits_base: number, touch_word_count: number, want_base: number,
|
|
28
|
+
* slot_want_capacity: number, clear_word_count: number, word_count: number}}
|
|
27
29
|
*
|
|
28
30
|
* @author Alex Goldring
|
|
29
31
|
* @copyright Company Named Limited (c) 2026
|
|
30
32
|
*/
|
|
31
|
-
export function vgeo_cut_feedback_layout({ page_row_capacity, want_capacity }) {
|
|
33
|
+
export function vgeo_cut_feedback_layout({ page_row_capacity, want_capacity, slot_count }) {
|
|
32
34
|
assert.isNonNegativeInteger(page_row_capacity, 'page_row_capacity');
|
|
33
35
|
assert.isNonNegativeInteger(want_capacity, 'want_capacity');
|
|
36
|
+
assert.isNonNegativeInteger(slot_count, 'slot_count');
|
|
37
|
+
assert.greaterThan(slot_count, 0, 'slot_count');
|
|
34
38
|
|
|
35
|
-
const touch_bits_base = VGEO_FEEDBACK_OFFSET.HEADER_WORDS;
|
|
39
|
+
const touch_bits_base = slot_count * VGEO_FEEDBACK_OFFSET.HEADER_WORDS;
|
|
36
40
|
const touch_word_count = Math.max(1, Math.ceil(page_row_capacity / 32));
|
|
37
41
|
const want_base = touch_bits_base + touch_word_count;
|
|
38
42
|
|
|
43
|
+
const slot_want_capacity = Math.floor(want_capacity / slot_count);
|
|
44
|
+
|
|
39
45
|
return {
|
|
46
|
+
slot_count,
|
|
40
47
|
touch_bits_base,
|
|
41
48
|
touch_word_count,
|
|
42
49
|
want_base,
|
|
43
|
-
|
|
50
|
+
slot_want_capacity,
|
|
51
|
+
// the counters and the touch bits start every frame at zero; a want record is only ever read
|
|
52
|
+
// below its slot's count, so the lists need no clearing
|
|
53
|
+
clear_word_count: want_base,
|
|
54
|
+
word_count: want_base + slot_count * slot_want_capacity * VGEO_WANT_WORDS,
|
|
44
55
|
};
|
|
45
56
|
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Word offset of a slot's want counter.
|
|
60
|
+
*
|
|
61
|
+
* @param {number} slot
|
|
62
|
+
* @returns {number}
|
|
63
|
+
*/
|
|
64
|
+
export function vgeo_feedback_slot_want_count(slot) {
|
|
65
|
+
return slot * VGEO_FEEDBACK_OFFSET.HEADER_WORDS + VGEO_FEEDBACK_OFFSET.WANT_COUNT;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Word offset of a slot's first counter, {@link VGEO_CUT_STAT} indexing from it.
|
|
70
|
+
*
|
|
71
|
+
* @param {number} slot
|
|
72
|
+
* @returns {number}
|
|
73
|
+
*/
|
|
74
|
+
export function vgeo_feedback_slot_stats(slot) {
|
|
75
|
+
return slot * VGEO_FEEDBACK_OFFSET.HEADER_WORDS + VGEO_FEEDBACK_OFFSET.STATS;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Word offset of a slot's first want record.
|
|
80
|
+
*
|
|
81
|
+
* @param {ReturnType<vgeo_cut_feedback_layout>} layout
|
|
82
|
+
* @param {number} slot
|
|
83
|
+
* @returns {number}
|
|
84
|
+
*/
|
|
85
|
+
export function vgeo_feedback_slot_wants(layout, slot) {
|
|
86
|
+
return layout.want_base + slot * layout.slot_want_capacity * VGEO_WANT_WORDS;
|
|
87
|
+
}
|
|
@@ -7,18 +7,15 @@
|
|
|
7
7
|
* at all, because a wavefront is sixty-odd dispatches whose only output would be zero.
|
|
8
8
|
*
|
|
9
9
|
* The frame check is the second half of that. A runtime exists from the moment somebody enables it,
|
|
10
|
-
* but
|
|
11
|
-
*
|
|
12
|
-
*
|
|
10
|
+
* but a frame is open only while the renderer is rendering one; a path that runs outside it — a
|
|
11
|
+
* bake, a preview drawn outside `Renderer.render` — skips rather than cutting against feedback no
|
|
12
|
+
* reading will ever collect.
|
|
13
13
|
*
|
|
14
|
-
* **
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* view
|
|
19
|
-
* opened on is therefore not a graph this seam belongs in (REVIEW_LEDGER M13). When shadow views do
|
|
20
|
-
* get cuts, they get their own `begin_frame` and their own τ, and this check is what makes that a
|
|
21
|
-
* change rather than a discovery.
|
|
14
|
+
* **Any graph of the frame may cut.** It used to be only the graph the frame was opened on, because
|
|
15
|
+
* the feedback buffer was a transient of that graph and a shadow map records into a `FrameGraph` of
|
|
16
|
+
* its own — so shadow views skipped, and virtual geometry cast no shadows (REVIEW_LEDGER M13,
|
|
17
|
+
* SHADOW_PLAN_2026_09_28). The buffer is the runtime's now and each graph imports it, so a shadow
|
|
18
|
+
* view is a view like any other: its own projection, its own threshold, its own slot.
|
|
22
19
|
*
|
|
23
20
|
* @param {Object} options
|
|
24
21
|
* @param {FrameGraph} options.graph
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph_vgeo_expand_if_enabled.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/geometry/virtual/runtime/graph_vgeo_expand_if_enabled.js"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"graph_vgeo_expand_if_enabled.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/geometry/virtual/runtime/graph_vgeo_expand_if_enabled.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH;IAV+B,KAAK;IACT,YAAY,EAA5B,MAAM;IACU,eAAe,EAA/B,MAAM;IACkB,IAAI;IACC,MAAM;IACjC,MAAM,CAqBlB"}
|
|
@@ -9,18 +9,15 @@ import { graph_vgeo_expand_instances_to_meshlets } from "./graph_vgeo_expand_ins
|
|
|
9
9
|
* at all, because a wavefront is sixty-odd dispatches whose only output would be zero.
|
|
10
10
|
*
|
|
11
11
|
* The frame check is the second half of that. A runtime exists from the moment somebody enables it,
|
|
12
|
-
* but
|
|
13
|
-
*
|
|
14
|
-
*
|
|
12
|
+
* but a frame is open only while the renderer is rendering one; a path that runs outside it — a
|
|
13
|
+
* bake, a preview drawn outside `Renderer.render` — skips rather than cutting against feedback no
|
|
14
|
+
* reading will ever collect.
|
|
15
15
|
*
|
|
16
|
-
* **
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* view
|
|
21
|
-
* opened on is therefore not a graph this seam belongs in (REVIEW_LEDGER M13). When shadow views do
|
|
22
|
-
* get cuts, they get their own `begin_frame` and their own τ, and this check is what makes that a
|
|
23
|
-
* change rather than a discovery.
|
|
16
|
+
* **Any graph of the frame may cut.** It used to be only the graph the frame was opened on, because
|
|
17
|
+
* the feedback buffer was a transient of that graph and a shadow map records into a `FrameGraph` of
|
|
18
|
+
* its own — so shadow views skipped, and virtual geometry cast no shadows (REVIEW_LEDGER M13,
|
|
19
|
+
* SHADOW_PLAN_2026_09_28). The buffer is the runtime's now and each graph imports it, so a shadow
|
|
20
|
+
* view is a view like any other: its own projection, its own threshold, its own slot.
|
|
24
21
|
*
|
|
25
22
|
* @param {Object} options
|
|
26
23
|
* @param {FrameGraph} options.graph
|
|
@@ -42,11 +39,7 @@ export function graph_vgeo_expand_if_enabled({
|
|
|
42
39
|
}) {
|
|
43
40
|
const runtime = view?.scene?.virtual_geometry;
|
|
44
41
|
|
|
45
|
-
if (runtime === undefined || runtime.
|
|
46
|
-
return output_meshlets;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
if (runtime.frame_graph !== graph) {
|
|
42
|
+
if (runtime === undefined || !runtime.frame_open) {
|
|
50
43
|
return output_meshlets;
|
|
51
44
|
}
|
|
52
45
|
|
package/src/shade/renderer/geometry/virtual/runtime/graph_vgeo_expand_instances_to_meshlets.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph_vgeo_expand_instances_to_meshlets.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/geometry/virtual/runtime/graph_vgeo_expand_instances_to_meshlets.js"],"names":[],"mappings":"AAkBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH;IAX+B,KAAK;IACT,YAAY,EAA5B,MAAM;IACU,eAAe,EAA/B,MAAM;IACkB,IAAI;IACO,OAAO;IACb,MAAM;IACjC,MAAM,
|
|
1
|
+
{"version":3,"file":"graph_vgeo_expand_instances_to_meshlets.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/geometry/virtual/runtime/graph_vgeo_expand_instances_to_meshlets.js"],"names":[],"mappings":"AAkBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH;IAX+B,KAAK;IACT,YAAY,EAA5B,MAAM;IACU,eAAe,EAA/B,MAAM;IACkB,IAAI;IACO,OAAO;IACb,MAAM;IACjC,MAAM,CA4TlB"}
|
package/src/shade/renderer/geometry/virtual/runtime/graph_vgeo_expand_instances_to_meshlets.js
CHANGED
|
@@ -68,12 +68,13 @@ export function graph_vgeo_expand_instances_to_meshlets({
|
|
|
68
68
|
assert.isNonNegativeInteger(input_meshes, 'input_meshes');
|
|
69
69
|
assert.isNonNegativeInteger(output_meshlets, 'output_meshlets');
|
|
70
70
|
assert.defined(runtime, 'runtime');
|
|
71
|
-
assert.
|
|
71
|
+
assert.equal(runtime.frame_open, true, 'runtime.frame_open — begin_frame must have run');
|
|
72
72
|
|
|
73
73
|
const scene = view.scene;
|
|
74
74
|
const pool = runtime.pool;
|
|
75
75
|
|
|
76
|
-
|
|
76
|
+
// which view, in a capture: a frame cuts once per site of every view, and the scopes were identical
|
|
77
|
+
graph.push_scope(`virtual geometry cut (${view.label ?? 'a view'})`);
|
|
77
78
|
|
|
78
79
|
const instance_capacity = Math.max(1, limits.get_limit(RasterizationCollectionType.Meshes));
|
|
79
80
|
|
|
@@ -98,9 +99,11 @@ export function graph_vgeo_expand_instances_to_meshlets({
|
|
|
98
99
|
*/
|
|
99
100
|
const view_cut = view.virtual_geometry_cut;
|
|
100
101
|
|
|
102
|
+
// off the matrix the view draws with, so a cascade's orthographic camera is a projection too
|
|
101
103
|
view_cut.set_projection({
|
|
102
|
-
|
|
103
|
-
|
|
104
|
+
width: Math.max(1, view.resolution[0]),
|
|
105
|
+
height: Math.max(1, view.resolution[1]),
|
|
106
|
+
projection_matrix: view.camera.camera.projection_matrix,
|
|
104
107
|
});
|
|
105
108
|
|
|
106
109
|
/*
|
|
@@ -117,7 +120,19 @@ export function graph_vgeo_expand_instances_to_meshlets({
|
|
|
117
120
|
*/
|
|
118
121
|
view_cut.clear_frontier();
|
|
119
122
|
|
|
120
|
-
|
|
123
|
+
/*
|
|
124
|
+
This view's slot in the frame's feedback — its own counters, its own want slice and its own stamp
|
|
125
|
+
tag, taken the first time it cuts in the frame and the same at every site after.
|
|
126
|
+
*/
|
|
127
|
+
const slot = runtime.slot_of(view_cut);
|
|
128
|
+
|
|
129
|
+
view_cut.write_params({ runtime, slot });
|
|
130
|
+
|
|
131
|
+
// the frame's feedback buffer, as this graph knows it: imported on first use, cleared by the first
|
|
132
|
+
const feedback_in = runtime.feedback_in(graph);
|
|
133
|
+
|
|
134
|
+
// and this view's own wavefront bound, raised from its own readings
|
|
135
|
+
const max_iterations = view_cut.iterations_under(runtime);
|
|
121
136
|
|
|
122
137
|
// ----- collect: which of these instances are virtual, and where is the camera in each one -----
|
|
123
138
|
|
|
@@ -161,7 +176,7 @@ export function graph_vgeo_expand_instances_to_meshlets({
|
|
|
161
176
|
));
|
|
162
177
|
|
|
163
178
|
// the first writer of the frame's counters, so the version chain starts here
|
|
164
|
-
collect_data.feedback = collect_pass.write(
|
|
179
|
+
collect_data.feedback = collect_pass.write(feedback_in);
|
|
165
180
|
|
|
166
181
|
/*
|
|
167
182
|
The scan turns each instance's claim width into the first bit of its slice. It is the same
|
|
@@ -241,7 +256,7 @@ export function graph_vgeo_expand_instances_to_meshlets({
|
|
|
241
256
|
|
|
242
257
|
// ----- the wavefront -----
|
|
243
258
|
|
|
244
|
-
for (let iteration = 0; iteration <
|
|
259
|
+
for (let iteration = 0; iteration < max_iterations; iteration++) {
|
|
245
260
|
const prepare_data = {};
|
|
246
261
|
|
|
247
262
|
const prepare_pass = graph.add(
|
|
@@ -342,12 +357,12 @@ export function graph_vgeo_expand_instances_to_meshlets({
|
|
|
342
357
|
feedback = tail_data.feedback = tail_pass.write(feedback);
|
|
343
358
|
|
|
344
359
|
/*
|
|
345
|
-
Every expansion of this
|
|
346
|
-
from the version this one produced rather than from the version
|
|
360
|
+
Every expansion of this graph writes into one feedback buffer, so the next one has to start
|
|
361
|
+
from the version this one produced rather than from the version the import created — and so
|
|
347
362
|
does the readback. The graph catches the alternative outright, which is the best kind of
|
|
348
363
|
invariant to have.
|
|
349
364
|
*/
|
|
350
|
-
runtime.publish_feedback(feedback);
|
|
365
|
+
runtime.publish_feedback(graph, feedback);
|
|
351
366
|
|
|
352
367
|
graph.pop_scope();
|
|
353
368
|
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { VGEO_CUT_STAT_COUNT } from "./VGEO_CUT_STAT_COUNT.js";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Word offsets in the feedback buffer — the one thing the cut hands
|
|
5
|
-
* place in the runtime where a GPU pass and a host frame meet.
|
|
4
|
+
* Word offsets within one view slot's header in the feedback buffer — the one thing the cut hands
|
|
5
|
+
* back to the CPU, and the only place in the runtime where a GPU pass and a host frame meet.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
7
|
+
* A header per slot, then the touch bits, then a want slice per slot; see
|
|
8
|
+
* `vgeo_cut_feedback_layout` for where each starts. Slot 0's header is at word 0, so a frame of one
|
|
9
|
+
* view is laid out exactly as the buffer always was. Design §6: the wants loop tolerates its
|
|
10
|
+
* transport — multi-frame `mapAsync` latency, a small in-flight cap, and frames where feedback is
|
|
11
|
+
* skipped entirely.
|
|
10
12
|
*
|
|
11
13
|
* There is no touch count any more. A touch is one bit per page row (RUNTIME_PLAN_2026_09_14
|
|
12
14
|
* §2.2), so the list it used to count, and the capacity that list could overflow, are gone.
|
|
@@ -21,9 +23,9 @@ export const VGEO_FEEDBACK_OFFSET = {
|
|
|
21
23
|
*/
|
|
22
24
|
STATS: 1,
|
|
23
25
|
/**
|
|
24
|
-
*
|
|
25
|
-
* params block because a
|
|
26
|
-
* assume one.
|
|
26
|
+
* Words in one slot's header. The touch bits begin after the last slot's, and the want records
|
|
27
|
+
* after those; their bases travel in the params block because a buffer's layout is a host-side
|
|
28
|
+
* decision and the kernel must not assume one.
|
|
27
29
|
*/
|
|
28
30
|
HEADER_WORDS: 1 + VGEO_CUT_STAT_COUNT,
|
|
29
31
|
};
|
|
@@ -19,14 +19,19 @@ export const VGEO_INSTANCE_OFFSET = {
|
|
|
19
19
|
*/
|
|
20
20
|
EYE: 0,
|
|
21
21
|
/**
|
|
22
|
-
*
|
|
22
|
+
* The view's pixels per unit — see `VGeoViewCut.set_projection` — times the scale correction
|
|
23
|
+
* below.
|
|
23
24
|
*
|
|
24
|
-
*
|
|
25
|
-
* `r_e * k / d` exactly and needs no term at all. A non-uniform one does not
|
|
26
|
-
* correction is the ratio of the transform's singular values — σ_max / σ_min,
|
|
27
|
-
* its column lengths, which a shear leaves at 1 while stretching space without
|
|
28
|
-
* (REVIEW_LEDGER M4). It over-refines rather than under-refines, and it is exactly 1 for
|
|
29
|
-
* instance that is not stretched.
|
|
25
|
+
* **Perspective:** error and distance are both object-space, so a **uniform** instance scale
|
|
26
|
+
* cancels out of `r_e * k / d` exactly and needs no term at all. A non-uniform one does not
|
|
27
|
+
* cancel, and the correction is the ratio of the transform's singular values — σ_max / σ_min,
|
|
28
|
+
* not the ratio of its column lengths, which a shear leaves at 1 while stretching space without
|
|
29
|
+
* bound (REVIEW_LEDGER M4). It over-refines rather than under-refines, and it is exactly 1 for
|
|
30
|
+
* every instance that is not stretched.
|
|
31
|
+
*
|
|
32
|
+
* **Orthographic:** there is no distance for a scale to cancel against, so an object-space error
|
|
33
|
+
* becomes world units by the instance's scale and the correction is σ_max alone. Both are
|
|
34
|
+
* `σ_max / (w · σ_min + 1 − w)` with `w` the {@link DISTANCE_WEIGHT} below.
|
|
30
35
|
*/
|
|
31
36
|
PROJECTION_K: 3,
|
|
32
37
|
/**
|
|
@@ -51,4 +56,11 @@ export const VGEO_INSTANCE_OFFSET = {
|
|
|
51
56
|
* How many bits that slice runs to.
|
|
52
57
|
*/
|
|
53
58
|
ORDINAL_CAPACITY: 28,
|
|
59
|
+
/**
|
|
60
|
+
* How much distance divides the projected error: 1 for a perspective view, 0 for an orthographic
|
|
61
|
+
* one. `vg_project` divides by `w · d + (1 − w)`, so a parallel projection's error is `r_e · k`
|
|
62
|
+
* wherever the cluster is, and the camera-inside-the-sphere rule — which has no meaning without
|
|
63
|
+
* an eye — cannot fire.
|
|
64
|
+
*/
|
|
65
|
+
DISTANCE_WEIGHT: 29,
|
|
54
66
|
};
|
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
* Spawn one page-fetch worker.
|
|
3
3
|
*
|
|
4
4
|
* The `new Worker(new URL(..., import.meta.url), { type: "module" })` form is what the consumer's
|
|
5
|
-
* bundler detects and what vite serves as-is, and it lives in a module
|
|
5
|
+
* bundler detects and what vite serves as-is, and it lives in a module of its own because
|
|
6
6
|
* `import.meta` is a parse error under a CommonJS transform — the same arrangement
|
|
7
|
-
* `makeClothWorker` keeps for the same reason.
|
|
7
|
+
* `makeClothWorker` keeps for the same reason. Specs do import it, through `GPUSceneContext`: vitest
|
|
8
|
+
* parses it as ESM, and nothing is resolved until a worker is spawned, which
|
|
9
|
+
* `GPUSceneContext.destroy.spec.js` does against a stand-in global `Worker`.
|
|
8
10
|
*
|
|
9
11
|
* @returns {Worker}
|
|
10
12
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"make_vgeo_page_worker.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/geometry/virtual/runtime/make_vgeo_page_worker.js"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"make_vgeo_page_worker.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/geometry/virtual/runtime/make_vgeo_page_worker.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,yCALa,MAAM,CAOlB"}
|
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
* Spawn one page-fetch worker.
|
|
3
3
|
*
|
|
4
4
|
* The `new Worker(new URL(..., import.meta.url), { type: "module" })` form is what the consumer's
|
|
5
|
-
* bundler detects and what vite serves as-is, and it lives in a module
|
|
5
|
+
* bundler detects and what vite serves as-is, and it lives in a module of its own because
|
|
6
6
|
* `import.meta` is a parse error under a CommonJS transform — the same arrangement
|
|
7
|
-
* `makeClothWorker` keeps for the same reason.
|
|
7
|
+
* `makeClothWorker` keeps for the same reason. Specs do import it, through `GPUSceneContext`: vitest
|
|
8
|
+
* parses it as ESM, and nothing is resolved until a worker is spawned, which
|
|
9
|
+
* `GPUSceneContext.destroy.spec.js` does against a stand-in global `Worker`.
|
|
8
10
|
*
|
|
9
11
|
* @returns {Worker}
|
|
10
12
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Brick4LightMap.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/global_illumination/brick4/Brick4LightMap.js"],"names":[],"mappings":"AAKA;IAsBI;;;OAGG;IACH,+BAUC;IA5BD,kBAEC;IAQD,4BAEC;IAkBD;;;OAGG;IACH,aAFW,WAAW,QAgDrB;;CAEJ"}
|
|
1
|
+
{"version":3,"file":"Brick4LightMap.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/global_illumination/brick4/Brick4LightMap.js"],"names":[],"mappings":"AAKA;IAsBI;;;OAGG;IACH,+BAUC;IA5BD,kBAEC;IAQD,4BAEC;IAkBD;;;OAGG;IACH,aAFW,WAAW,QAgDrB;IAED;;OAEG;IACH,gBAEC;;CAEJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GPULightProbeVolume.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/global_illumination/lpv/GPULightProbeVolume.js"],"names":[],"mappings":"AAeA;;GAEG;AAGH;IAsFI;;;;OAIG;IACH,uCAFW,gBAAgB,EAmC1B;IArHD;;;OAGG;IACH,+DAEC;IAOD;;;OAGG;IACH,6BAEC;IAOD;;;OAGG;IACH,+BAEC;IAOD;;;OAGG;IACH,sCAEC;IAOD,iCAEC;IAoBD;;OAEG;IACH,OAFU,aAAa,CAEjB;IA4JN,oBAwDC;IAED,eAIC;IAED,eAMC;IAED,
|
|
1
|
+
{"version":3,"file":"GPULightProbeVolume.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/global_illumination/lpv/GPULightProbeVolume.js"],"names":[],"mappings":"AAeA;;GAEG;AAGH;IAsFI;;;;OAIG;IACH,uCAFW,gBAAgB,EAmC1B;IArHD;;;OAGG;IACH,+DAEC;IAOD;;;OAGG;IACH,6BAEC;IAOD;;;OAGG;IACH,+BAEC;IAOD;;;OAGG;IACH,sCAEC;IAOD,iCAEC;IAoBD;;OAEG;IACH,OAFU,aAAa,CAEjB;IA4JN,oBAwDC;IAED,eAIC;IAED,eAMC;IAED,gBAMC;IAED,4BAMC;IAED;;OAEG;IACH,0BAsBC;IAED,wBAOC;;CACJ;+BA/WY,OAAO,uBAAuB,EAAE,gBAAgB;+BAV9B,gCAAgC;8BAIjC,sCAAsC"}
|
|
@@ -13,7 +13,7 @@ export class TinyGltf {
|
|
|
13
13
|
* @readonly
|
|
14
14
|
* @type {TextureFormat}
|
|
15
15
|
*/
|
|
16
|
-
static readonly "__#
|
|
16
|
+
static readonly "__#250@#UNCOMPRESSED_TARGET": TextureFormat;
|
|
17
17
|
/**
|
|
18
18
|
* @param {AssetManager} assetManager
|
|
19
19
|
* @param {AssetRequestScope} [scope]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GPUMaterialManager.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/material/GPUMaterialManager.js"],"names":[],"mappings":"AAyNA;IAiFI;;;;;;;;OAQG;IACH,yCANW,cAAc,oBACd,qBAAqB,YACrB,gBAAgB,qBAChB,qBAAqB,aACrB,iBAAiB,EAmD3B;IApID;;;OAGG;IACH,UAFU,IAAI,aAAa,EAAE,kBAAkB,CAAC,CAE3B;IAsBrB;;;OAGG;IACH,yCAEC;IAID;;;OAGG;IACH,sBAEC;IAoLD;;;;;;;;OAQG;IACH;QAN+B,KAAK,EAAzB,UAAU;QACc,IAAI,EAA5B,cAAc;QACE,gBAAgB,EAAhC,MAAM;QACU,oBAAoB,EAApC,MAAM;QACJ;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAC,CAiMnF;IAED;;;;OAIG;IACH,iBAHW,aAAa,GACX,kBAAkB,CAqB9B;IAED;;;;;;;;;;;;OAYG;IACH,kBAHW,aAAa,GACX,OAAO,CAyBnB;IAED;;;;OAIG;IACH,
|
|
1
|
+
{"version":3,"file":"GPUMaterialManager.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/material/GPUMaterialManager.js"],"names":[],"mappings":"AAyNA;IAiFI;;;;;;;;OAQG;IACH,yCANW,cAAc,oBACd,qBAAqB,YACrB,gBAAgB,qBAChB,qBAAqB,aACrB,iBAAiB,EAmD3B;IApID;;;OAGG;IACH,UAFU,IAAI,aAAa,EAAE,kBAAkB,CAAC,CAE3B;IAsBrB;;;OAGG;IACH,yCAEC;IAID;;;OAGG;IACH,sBAEC;IAoLD;;;;;;;;OAQG;IACH;QAN+B,KAAK,EAAzB,UAAU;QACc,IAAI,EAA5B,cAAc;QACE,gBAAgB,EAAhC,MAAM;QACU,oBAAoB,EAApC,MAAM;QACJ;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAC,CAiMnF;IAED;;;;OAIG;IACH,iBAHW,aAAa,GACX,kBAAkB,CAqB9B;IAED;;;;;;;;;;;;OAYG;IACH,kBAHW,aAAa,GACX,OAAO,CAyBnB;IAED;;;;OAIG;IACH,gBAaC;IAED;;;;;;;;;OASG;IACH,kBAFW,qBAAqB,QAM/B;IAsBD;;;;;;OAMG;IACH,0BAHW,aAAa,EAAE,GACb,aAAa,EAAE,CAI3B;IAED;;;;;;OAMG;IACH,wBAHW,aAAa,EAAE,GACb,aAAa,EAAE,CAI3B;IAuED;;;OAGG;IACH,YAFW,sBAAsB,QAiChC;;CAEJ;6BA91BY,OAAO,2BAA2B,EAAE,cAAc;yBAIlD,OAAO,2DAA2D,EAAE,UAAU;qCAC9E,OAAO,wCAAwC,EAAE,sBAAsB;oCACvE,OAAO,gDAAgD,EAAE,qBAAqB;+BAC9E,OAAO,gCAAgC,EAAE,gBAAgB;gCACzD,OAAO,yBAAyB,EAAE,iBAAiB;6BACnD,OAAO,8BAA8B,EAAE,cAAc;oCACrD,OAAO,6CAA6C,EAAE,qBAAqB;4BAC3E,OAAO,oBAAoB,EAAE,aAAa;oCAC1C,OAAO,qCAAqC,EAAE,qBAAqB;mCApBzE,yBAAyB;mCAjBG,8CAA8C"}
|
|
@@ -523,12 +523,7 @@ alpha scaled before premultiplication.
|
|
|
523
523
|
|
|
524
524
|
Additive vs. alpha is never a pipeline switch: the shader emits premultiplied RGB with alpha 0
|
|
525
525
|
(additive) or alpha a (normal), so one setup covers both and the choice stays per particle and
|
|
526
|
-
GPU-driven. Under AVBOIT that choice picks which accumulators the fragment writes
|
|
527
|
-
pipeline `shaders/shader_particle_render.js` builds it is one blend state,
|
|
528
|
-
`(one, one-minus-src-alpha)` on both channels. That pipeline is not this system's — it is what
|
|
529
|
-
`GPUParticularRenderer` draws `particular`'s CPU-simulated particles with, over a draw list it sorts
|
|
530
|
-
back to front on the CPU — but it shares this vertex stage, this atlas and flipbook math, and
|
|
531
|
-
`particle_fade_color`, so a sprite looks the same whichever draws it.
|
|
526
|
+
GPU-driven. Under AVBOIT that choice picks which accumulators the fragment writes.
|
|
532
527
|
|
|
533
528
|
### Drawing: an AVBOIT side channel
|
|
534
529
|
|
|
@@ -564,8 +559,8 @@ contribution at the three points where the meshlet buckets have just made theirs
|
|
|
564
559
|
The whole decision is `chunk_particle_avboit_contribution`, and it is spec'd on the emulator.
|
|
565
560
|
|
|
566
561
|
All three read the alive list and the draw args straight from `simulate`; the vertex stage is one
|
|
567
|
-
chunk (`chunk_particle_billboard_vertex`), shared by the splat
|
|
568
|
-
|
|
562
|
+
chunk (`chunk_particle_billboard_vertex`), shared by the splat and the draw. `GPUParticleSystem`
|
|
563
|
+
implements the three methods; `Renderer.feature_particles_enabled`
|
|
569
564
|
runs `execute` before the transparency pass and hands the system to the orchestrator. MBOIT is legacy
|
|
570
565
|
and gets no particle path, so under it the particles simulate and are not drawn.
|
|
571
566
|
|
|
@@ -582,7 +577,7 @@ everything `chunk_particle_avboit_contribution` does after its premultiply
|
|
|
582
577
|
ECS system over the pair `[ParticleEffect, Transform64]` — the component says what an entity emits,
|
|
583
578
|
the transform says where — in exactly the shape `DecalSystem` and `MeshSystem` use for their own
|
|
584
579
|
content. Construct it with `(graphicsEngine, scene, assetManager)` and add it to the EntityManager.
|
|
585
|
-
It is opt-in
|
|
580
|
+
It is opt-in.
|
|
586
581
|
|
|
587
582
|
```js
|
|
588
583
|
entityManager.addSystem(new GPUParticleEmitterSystem(graphics, scene, assetManager));
|
|
@@ -719,7 +714,6 @@ src/shade/renderer/particles/
|
|
|
719
714
|
shaders/shader_particle_emit.js per-newborn INIT, sized by the scan
|
|
720
715
|
shaders/shader_particle_simulate.js per-particle UPDATE + compaction + orphan kill
|
|
721
716
|
shaders/shader_particle_finalize.js reset counters (+ budget) / build indirect args
|
|
722
|
-
shaders/shader_particle_render.js blended billboard pipeline (GPUParticularRenderer's)
|
|
723
717
|
shaders/chunk_particle_setup_context.js VM builtins from the emitter's node, + the RNG seed
|
|
724
718
|
shaders/chunk_particle_emitter_age.js the tick pass's running age, off the emitter_state table
|
|
725
719
|
shaders/chunk_particle_spawn_budget.js take from the frame's spawn budget; both ticks spend it
|
|
@@ -253,9 +253,7 @@ export const PARTICLE_SIM_PAD_SLOT: number;
|
|
|
253
253
|
* Above all it is what the two passes that have to agree on a fragment's coverage agree on: the
|
|
254
254
|
* AVBOIT draw, which weights the accumulators by it, and the AVBOIT splat, which records the
|
|
255
255
|
* extinction the volume then hands to everything behind. A fade in one and not the other is a
|
|
256
|
-
* surface that is invisible and still occludes.
|
|
257
|
-
* (`shaders/shader_particle_render.js`) reads it too, so a particle fades over the same distance
|
|
258
|
-
* whichever pipeline draws it.
|
|
256
|
+
* surface that is invisible and still occludes.
|
|
259
257
|
*
|
|
260
258
|
* @type {number}
|
|
261
259
|
*/
|