@aura3d/engine 4.6.1 → 4.7.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/dist/assets/asset-corpus/ProductionGLTFRenderPipeline.d.ts +12 -0
- package/dist/assets/asset-corpus/ProductionGLTFRenderPipeline.d.ts.map +1 -1
- package/dist/assets/asset-corpus/ProductionGLTFRenderPipeline.js +26 -1
- package/dist/assets/asset-corpus/ProductionGLTFRenderPipeline.js.map +1 -1
- package/dist/assets/vfx/LICENSE.md +1 -0
- package/dist/assets/vfx/aura-vfx-1k.png +0 -0
- package/dist/assets/vfx/aura-vfx-2k.png +0 -0
- package/dist/aura3d-cli/admission/cubeLut.d.ts +18 -0
- package/dist/aura3d-cli/admission/cubeLut.d.ts.map +1 -0
- package/dist/aura3d-cli/admission/cubeLut.js +53 -0
- package/dist/aura3d-cli/admission/cubeLut.js.map +1 -0
- package/dist/aura3d-cli/asset-core-types.d.ts +7 -4
- package/dist/aura3d-cli/asset-core-types.d.ts.map +1 -1
- package/dist/aura3d-cli/cli-help.d.ts.map +1 -1
- package/dist/aura3d-cli/cli-help.js +7 -4
- package/dist/aura3d-cli/cli-help.js.map +1 -1
- package/dist/aura3d-cli/cli-options.d.ts +1 -1
- package/dist/aura3d-cli/cli-options.d.ts.map +1 -1
- package/dist/aura3d-cli/cli-options.js +2 -2
- package/dist/aura3d-cli/cli-options.js.map +1 -1
- package/dist/aura3d-cli/cli.js +3 -2
- package/dist/aura3d-cli/cli.js.map +1 -1
- package/dist/aura3d-cli/commands/assets/certifyCategories.d.ts +26 -0
- package/dist/aura3d-cli/commands/assets/certifyCategories.d.ts.map +1 -0
- package/dist/aura3d-cli/commands/assets/certifyCategories.js +31 -0
- package/dist/aura3d-cli/commands/assets/certifyCategories.js.map +1 -0
- package/dist/aura3d-cli/commands/assets/optimize.d.ts +66 -0
- package/dist/aura3d-cli/commands/assets/optimize.d.ts.map +1 -1
- package/dist/aura3d-cli/commands/assets/optimize.js +270 -1
- package/dist/aura3d-cli/commands/assets/optimize.js.map +1 -1
- package/dist/aura3d-cli/commands/assets/optimizeVerb.d.ts.map +1 -1
- package/dist/aura3d-cli/commands/assets/optimizeVerb.js +26 -1
- package/dist/aura3d-cli/commands/assets/optimizeVerb.js.map +1 -1
- package/dist/aura3d-cli/commands/evidence/judge.d.ts +50 -1
- package/dist/aura3d-cli/commands/evidence/judge.d.ts.map +1 -1
- package/dist/aura3d-cli/commands/evidence/judge.js +154 -6
- package/dist/aura3d-cli/commands/evidence/judge.js.map +1 -1
- package/dist/aura3d-cli/commands/prd05/index.js +1 -1
- package/dist/aura3d-cli/commands/prd05/index.js.map +1 -1
- package/dist/aura3d-cli/index.d.ts.map +1 -1
- package/dist/aura3d-cli/index.js +25 -9
- package/dist/aura3d-cli/index.js.map +1 -1
- package/dist/aura3d-cli/look/judge.d.ts +53 -5
- package/dist/aura3d-cli/look/judge.d.ts.map +1 -1
- package/dist/aura3d-cli/look/judge.js +226 -50
- package/dist/aura3d-cli/look/judge.js.map +1 -1
- package/dist/create-aura3d/index.js +1 -1
- package/dist/engine/agent-api/RootRuntimeSupport.d.ts +7 -0
- package/dist/engine/agent-api/RootRuntimeSupport.d.ts.map +1 -1
- package/dist/engine/agent-api/RootRuntimeSupport.js +7 -0
- package/dist/engine/agent-api/RootRuntimeSupport.js.map +1 -1
- package/dist/engine/agent-api/app/actorAnimationHandle.d.ts +2 -0
- package/dist/engine/agent-api/app/actorAnimationHandle.d.ts.map +1 -1
- package/dist/engine/agent-api/app/actorAnimationHandle.js +149 -2
- package/dist/engine/agent-api/app/actorAnimationHandle.js.map +1 -1
- package/dist/engine/agent-api/app/createAuraApp.d.ts.map +1 -1
- package/dist/engine/agent-api/app/createAuraApp.js +13 -1
- package/dist/engine/agent-api/app/createAuraApp.js.map +1 -1
- package/dist/engine/agent-api/app/frameLoop.d.ts.map +1 -1
- package/dist/engine/agent-api/app/frameLoop.js +4 -2
- package/dist/engine/agent-api/app/frameLoop.js.map +1 -1
- package/dist/engine/agent-api/camera/layers/cinematicBars.d.ts +2 -0
- package/dist/engine/agent-api/camera/layers/cinematicBars.d.ts.map +1 -1
- package/dist/engine/agent-api/camera/layers/cinematicBars.js +4 -0
- package/dist/engine/agent-api/camera/layers/cinematicBars.js.map +1 -1
- package/dist/engine/agent-api/compiler/compileScene.d.ts +11 -1
- package/dist/engine/agent-api/compiler/compileScene.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/compileScene.js +27 -1
- package/dist/engine/agent-api/compiler/compileScene.js.map +1 -1
- package/dist/engine/agent-api/compiler/customMaterial.d.ts +16 -5
- package/dist/engine/agent-api/compiler/customMaterial.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/customMaterial.js +149 -20
- package/dist/engine/agent-api/compiler/customMaterial.js.map +1 -1
- package/dist/engine/agent-api/compiler/environment.d.ts +57 -1
- package/dist/engine/agent-api/compiler/environment.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/environment.js +170 -5
- package/dist/engine/agent-api/compiler/environment.js.map +1 -1
- package/dist/engine/agent-api/compiler/fog.js +1 -1
- package/dist/engine/agent-api/compiler/fog.js.map +1 -1
- package/dist/engine/agent-api/compiler/lights.d.ts +92 -0
- package/dist/engine/agent-api/compiler/lights.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/lights.js +358 -1
- package/dist/engine/agent-api/compiler/lights.js.map +1 -1
- package/dist/engine/agent-api/compiler/observations.d.ts +34 -0
- package/dist/engine/agent-api/compiler/observations.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/observations.js +77 -5
- package/dist/engine/agent-api/compiler/observations.js.map +1 -1
- package/dist/engine/agent-api/compiler/postprocess.d.ts +10 -0
- package/dist/engine/agent-api/compiler/postprocess.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/postprocess.js +28 -7
- package/dist/engine/agent-api/compiler/postprocess.js.map +1 -1
- package/dist/engine/agent-api/compiler/renderInput.d.ts +2 -0
- package/dist/engine/agent-api/compiler/renderInput.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/renderInput.js +15 -2
- package/dist/engine/agent-api/compiler/renderInput.js.map +1 -1
- package/dist/engine/agent-api/compiler/renderer.d.ts +6 -0
- package/dist/engine/agent-api/compiler/renderer.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/renderer.js +14 -3
- package/dist/engine/agent-api/compiler/renderer.js.map +1 -1
- package/dist/engine/agent-api/diagnostics.d.ts +16 -0
- package/dist/engine/agent-api/diagnostics.d.ts.map +1 -1
- package/dist/engine/agent-api/diagnostics.js +45 -2
- package/dist/engine/agent-api/diagnostics.js.map +1 -1
- package/dist/engine/agent-api/index.d.ts +2 -0
- package/dist/engine/agent-api/index.d.ts.map +1 -1
- package/dist/engine/agent-api/index.js +3 -0
- package/dist/engine/agent-api/index.js.map +1 -1
- package/dist/engine/agent-api/looks/lookPresets.d.ts +2 -0
- package/dist/engine/agent-api/looks/lookPresets.d.ts.map +1 -1
- package/dist/engine/agent-api/looks/lookPresets.js.map +1 -1
- package/dist/engine/agent-api/looks/looks.d.ts +12 -2
- package/dist/engine/agent-api/looks/looks.d.ts.map +1 -1
- package/dist/engine/agent-api/looks/looks.js +365 -65
- package/dist/engine/agent-api/looks/looks.js.map +1 -1
- package/dist/engine/agent-api/nodes/builder.d.ts +8 -0
- package/dist/engine/agent-api/nodes/builder.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/builder.js +15 -0
- package/dist/engine/agent-api/nodes/builder.js.map +1 -1
- package/dist/engine/agent-api/nodes/effects.composite.d.ts +13 -9
- package/dist/engine/agent-api/nodes/effects.composite.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/effects.d.ts +65 -14
- package/dist/engine/agent-api/nodes/effects.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/effects.js +49 -16
- package/dist/engine/agent-api/nodes/effects.js.map +1 -1
- package/dist/engine/agent-api/nodes/effects.post.d.ts +62 -5
- package/dist/engine/agent-api/nodes/effects.post.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/effects.post.js +30 -17
- package/dist/engine/agent-api/nodes/effects.post.js.map +1 -1
- package/dist/engine/agent-api/nodes/effects.toon.d.ts +65 -1
- package/dist/engine/agent-api/nodes/effects.toon.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/effects.toon.js +186 -23
- package/dist/engine/agent-api/nodes/effects.toon.js.map +1 -1
- package/dist/engine/agent-api/nodes/groups.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/groups.js +2 -2
- package/dist/engine/agent-api/nodes/groups.js.map +1 -1
- package/dist/engine/agent-api/nodes/instances.d.ts +130 -90
- package/dist/engine/agent-api/nodes/instances.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/instances.js +192 -48
- package/dist/engine/agent-api/nodes/instances.js.map +1 -1
- package/dist/engine/agent-api/nodes/material.d.ts +8 -1
- package/dist/engine/agent-api/nodes/material.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/material.js +82 -0
- package/dist/engine/agent-api/nodes/material.js.map +1 -1
- package/dist/engine/agent-api/nodes/outlineTargets.d.ts +16 -0
- package/dist/engine/agent-api/nodes/outlineTargets.d.ts.map +1 -0
- package/dist/engine/agent-api/nodes/outlineTargets.js +46 -0
- package/dist/engine/agent-api/nodes/outlineTargets.js.map +1 -0
- package/dist/engine/agent-api/nodes/scene.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/scene.js +2 -2
- package/dist/engine/agent-api/nodes/scene.js.map +1 -1
- package/dist/engine/agent-api/nodes/sky.d.ts +23 -6
- package/dist/engine/agent-api/nodes/sky.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/sky.js +2 -0
- package/dist/engine/agent-api/nodes/sky.js.map +1 -1
- package/dist/engine/agent-api/nodes/types/runtime.d.ts +28 -1
- package/dist/engine/agent-api/nodes/types/runtime.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/types.d.ts +71 -3
- package/dist/engine/agent-api/nodes/types.d.ts.map +1 -1
- package/dist/engine/agent-api/performanceEvidence.js +7 -2
- package/dist/engine/agent-api/performanceEvidence.js.map +1 -1
- package/dist/engine/agent-api/postBridge.d.ts +75 -3
- package/dist/engine/agent-api/postBridge.d.ts.map +1 -1
- package/dist/engine/agent-api/postBridge.js +436 -33
- package/dist/engine/agent-api/postBridge.js.map +1 -1
- package/dist/engine/agent-api/postPresets.d.ts +8 -4
- package/dist/engine/agent-api/postPresets.d.ts.map +1 -1
- package/dist/engine/agent-api/postPresets.js +12 -11
- package/dist/engine/agent-api/postPresets.js.map +1 -1
- package/dist/engine/agent-api/publishedUnion.d.ts +7 -4
- package/dist/engine/agent-api/publishedUnion.d.ts.map +1 -1
- package/dist/engine/agent-api/publishedUnion.js +1 -1
- package/dist/engine/agent-api/publishedUnion.js.map +1 -1
- package/dist/engine/agent-api/rendererDiagnostics.js +4 -6
- package/dist/engine/agent-api/rendererDiagnostics.js.map +1 -1
- package/dist/engine/agent-api/vfx/atmosphere-api.d.ts +2 -4
- package/dist/engine/agent-api/vfx/atmosphere-api.d.ts.map +1 -1
- package/dist/engine/agent-api/vfx/atmosphere-api.js +2 -1
- package/dist/engine/agent-api/vfx/atmosphere-api.js.map +1 -1
- package/dist/engine/agent-api/vfx/effects-api.d.ts +3 -0
- package/dist/engine/agent-api/vfx/effects-api.d.ts.map +1 -1
- package/dist/engine/agent-api/vfx/effects-api.js +337 -74
- package/dist/engine/agent-api/vfx/effects-api.js.map +1 -1
- package/dist/engine/agent-api/world/flags.d.ts +33 -3
- package/dist/engine/agent-api/world/flags.d.ts.map +1 -1
- package/dist/engine/agent-api/world/flags.js +44 -12
- package/dist/engine/agent-api/world/flags.js.map +1 -1
- package/dist/engine/agent-api/world/index.d.ts +10 -1
- package/dist/engine/agent-api/world/index.d.ts.map +1 -1
- package/dist/engine/agent-api/world/index.js +11 -2
- package/dist/engine/agent-api/world/index.js.map +1 -1
- package/dist/engine/agent-api/world/scatter.d.ts +50 -3
- package/dist/engine/agent-api/world/scatter.d.ts.map +1 -1
- package/dist/engine/agent-api/world/scatter.js +93 -7
- package/dist/engine/agent-api/world/scatter.js.map +1 -1
- package/dist/engine/agent-api/world/terrain.d.ts +8 -0
- package/dist/engine/agent-api/world/terrain.d.ts.map +1 -1
- package/dist/engine/agent-api/world/terrain.js +6 -1
- package/dist/engine/agent-api/world/terrain.js.map +1 -1
- package/dist/engine/contracts/animation.d.ts +30 -12
- package/dist/engine/contracts/animation.d.ts.map +1 -1
- package/dist/engine/contracts/animation.js +2 -0
- package/dist/engine/contracts/animation.js.map +1 -1
- package/dist/engine/contracts/art.d.ts +1 -1
- package/dist/engine/contracts/art.d.ts.map +1 -1
- package/dist/engine/contracts/atmosphere.d.ts +43 -9
- package/dist/engine/contracts/atmosphere.d.ts.map +1 -1
- package/dist/engine/contracts/atmosphere.js.map +1 -1
- package/dist/engine/contracts/camera.d.ts +8 -2
- package/dist/engine/contracts/camera.d.ts.map +1 -1
- package/dist/engine/contracts/camera.js +14 -3
- package/dist/engine/contracts/camera.js.map +1 -1
- package/dist/engine/contracts/effects.d.ts +83 -37
- package/dist/engine/contracts/effects.d.ts.map +1 -1
- package/dist/engine/contracts/effects.js +2 -1
- package/dist/engine/contracts/effects.js.map +1 -1
- package/dist/engine/contracts/flags.d.ts.map +1 -1
- package/dist/engine/contracts/flags.js +29 -4
- package/dist/engine/contracts/flags.js.map +1 -1
- package/dist/engine/contracts/lighting.d.ts +33 -1
- package/dist/engine/contracts/lighting.d.ts.map +1 -1
- package/dist/engine/contracts/lighting.js +13 -1
- package/dist/engine/contracts/lighting.js.map +1 -1
- package/dist/engine/contracts/looks.d.ts +57 -1
- package/dist/engine/contracts/looks.d.ts.map +1 -1
- package/dist/engine/contracts/looks.js.map +1 -1
- package/dist/engine/contracts/materials.d.ts +25 -0
- package/dist/engine/contracts/materials.d.ts.map +1 -1
- package/dist/engine/contracts/materials.js +4 -1
- package/dist/engine/contracts/materials.js.map +1 -1
- package/dist/engine/contracts/post.d.ts +14 -0
- package/dist/engine/contracts/post.d.ts.map +1 -1
- package/dist/engine/contracts/post.js +2 -0
- package/dist/engine/contracts/post.js.map +1 -1
- package/dist/engine/instances-model/CrowdKit.d.ts +231 -0
- package/dist/engine/instances-model/CrowdKit.d.ts.map +1 -0
- package/dist/engine/instances-model/CrowdKit.js +496 -0
- package/dist/engine/instances-model/CrowdKit.js.map +1 -0
- package/dist/engine/lanes/prd02.d.ts +36 -2
- package/dist/engine/lanes/prd02.d.ts.map +1 -1
- package/dist/engine/lanes/prd02.js +120 -7
- package/dist/engine/lanes/prd02.js.map +1 -1
- package/dist/engine/lanes/prd03.d.ts.map +1 -1
- package/dist/engine/lanes/prd03.js +9 -1
- package/dist/engine/lanes/prd03.js.map +1 -1
- package/dist/engine/lanes/prd07.d.ts.map +1 -1
- package/dist/engine/lanes/prd07.js +12 -7
- package/dist/engine/lanes/prd07.js.map +1 -1
- package/dist/engine/production-runtime/GlbResourceCache.d.ts +140 -0
- package/dist/engine/production-runtime/GlbResourceCache.d.ts.map +1 -0
- package/dist/engine/production-runtime/GlbResourceCache.js +237 -0
- package/dist/engine/production-runtime/GlbResourceCache.js.map +1 -0
- package/dist/engine/production-runtime/ModelMaterialOverrides.d.ts +53 -2
- package/dist/engine/production-runtime/ModelMaterialOverrides.d.ts.map +1 -1
- package/dist/engine/production-runtime/ModelMaterialOverrides.js +142 -1
- package/dist/engine/production-runtime/ModelMaterialOverrides.js.map +1 -1
- package/dist/engine/production-runtime/TypedGLBActor.d.ts +55 -0
- package/dist/engine/production-runtime/TypedGLBActor.d.ts.map +1 -1
- package/dist/engine/production-runtime/TypedGLBActor.js +205 -3
- package/dist/engine/production-runtime/TypedGLBActor.js.map +1 -1
- package/dist/engine/production-runtime/actor/ModelTextureShare.d.ts.map +1 -1
- package/dist/engine/production-runtime/actor/ModelTextureShare.js +5 -2
- package/dist/engine/production-runtime/actor/ModelTextureShare.js.map +1 -1
- package/dist/engine/production-runtime/actor/TypedGLBActorMaterials.d.ts.map +1 -1
- package/dist/engine/production-runtime/actor/TypedGLBActorMaterials.js +10 -1
- package/dist/engine/production-runtime/actor/TypedGLBActorMaterials.js.map +1 -1
- package/dist/engine/production-runtime/effects/EffectNodeLowering.d.ts +55 -0
- package/dist/engine/production-runtime/effects/EffectNodeLowering.d.ts.map +1 -1
- package/dist/engine/production-runtime/effects/EffectNodeLowering.js +71 -7
- package/dist/engine/production-runtime/effects/EffectNodeLowering.js.map +1 -1
- package/dist/engine/production-runtime/effects/FlipbookAtlas.d.ts +85 -0
- package/dist/engine/production-runtime/effects/FlipbookAtlas.d.ts.map +1 -1
- package/dist/engine/production-runtime/effects/FlipbookAtlas.js +164 -0
- package/dist/engine/production-runtime/effects/FlipbookAtlas.js.map +1 -1
- package/dist/engine/production-runtime/effects/LiveAtmosphere.d.ts +37 -6
- package/dist/engine/production-runtime/effects/LiveAtmosphere.d.ts.map +1 -1
- package/dist/engine/production-runtime/effects/LiveAtmosphere.js +93 -10
- package/dist/engine/production-runtime/effects/LiveAtmosphere.js.map +1 -1
- package/dist/engine/production-runtime/effects/ProductionEffectSystem.d.ts +71 -1
- package/dist/engine/production-runtime/effects/ProductionEffectSystem.d.ts.map +1 -1
- package/dist/engine/production-runtime/effects/ProductionEffectSystem.js +356 -6
- package/dist/engine/production-runtime/effects/ProductionEffectSystem.js.map +1 -1
- package/dist/engine/production-runtime/world/WaterRuntime.d.ts +9 -0
- package/dist/engine/production-runtime/world/WaterRuntime.d.ts.map +1 -1
- package/dist/engine/production-runtime/world/WaterRuntime.js +27 -11
- package/dist/engine/production-runtime/world/WaterRuntime.js.map +1 -1
- package/dist/engine/production-runtime/world/WorldFramePasses.d.ts +11 -1
- package/dist/engine/production-runtime/world/WorldFramePasses.d.ts.map +1 -1
- package/dist/engine/production-runtime/world/WorldFramePasses.js +37 -1
- package/dist/engine/production-runtime/world/WorldFramePasses.js.map +1 -1
- package/dist/engine/public/index.d.ts +22 -0
- package/dist/engine/public/index.d.ts.map +1 -1
- package/dist/engine/public/index.js +14 -0
- package/dist/engine/public/index.js.map +1 -1
- package/dist/game/art/define.d.ts +1 -1
- package/dist/game/art/define.d.ts.map +1 -1
- package/dist/game/art/define.js +1 -1
- package/dist/game/art/define.js.map +1 -1
- package/dist/game/fonts/register.d.ts +16 -1
- package/dist/game/fonts/register.d.ts.map +1 -1
- package/dist/game/fonts/register.js +18 -7
- package/dist/game/fonts/register.js.map +1 -1
- package/dist/game/hud/themes.d.ts +33 -8
- package/dist/game/hud/themes.d.ts.map +1 -1
- package/dist/game/hud/themes.js +125 -22
- package/dist/game/hud/themes.js.map +1 -1
- package/dist/game/index.d.ts +4 -2
- package/dist/game/index.d.ts.map +1 -1
- package/dist/game/index.js +2 -1
- package/dist/game/index.js.map +1 -1
- package/dist/game/juice/audioReactive.d.ts +42 -0
- package/dist/game/juice/audioReactive.d.ts.map +1 -0
- package/dist/game/juice/audioReactive.js +68 -0
- package/dist/game/juice/audioReactive.js.map +1 -0
- package/dist/game/styles/themes/arcade-neon.css +2 -1
- package/dist/game/styles/themes/fighting.css +2 -1
- package/dist/game/styles/themes/ink-scroll.css +15 -0
- package/dist/game/styles/themes/motorsport.css +2 -1
- package/dist/game/styles/themes/plain.css +2 -1
- package/dist/game/styles/themes/sci-fi-telemetry.css +2 -1
- package/dist/game/styles/themes/sky-expedition.css +15 -0
- package/dist/game/styles/themes/sports-broadcast.css +2 -1
- package/dist/game/styles/themes/storybook.css +15 -0
- package/dist/game/styles/themes/tabletop.css +2 -1
- package/dist/game/styles.css +3 -1
- package/dist/rendering/ClusteredForwardLighting.d.ts.map +1 -1
- package/dist/rendering/ClusteredForwardLighting.js +3 -1
- package/dist/rendering/ClusteredForwardLighting.js.map +1 -1
- package/dist/rendering/DepthPass.d.ts +25 -0
- package/dist/rendering/DepthPass.d.ts.map +1 -1
- package/dist/rendering/DepthPass.js +149 -1
- package/dist/rendering/DepthPass.js.map +1 -1
- package/dist/rendering/ForwardPass.d.ts +84 -0
- package/dist/rendering/ForwardPass.d.ts.map +1 -1
- package/dist/rendering/ForwardPass.js +236 -12
- package/dist/rendering/ForwardPass.js.map +1 -1
- package/dist/rendering/LightUniforms.d.ts +12 -0
- package/dist/rendering/LightUniforms.d.ts.map +1 -1
- package/dist/rendering/LightUniforms.js +9 -1
- package/dist/rendering/LightUniforms.js.map +1 -1
- package/dist/rendering/atmosphere/CloudLayer.d.ts +15 -0
- package/dist/rendering/atmosphere/CloudLayer.d.ts.map +1 -1
- package/dist/rendering/atmosphere/CloudLayer.js +27 -5
- package/dist/rendering/atmosphere/CloudLayer.js.map +1 -1
- package/dist/rendering/atmosphere/GradientSky.d.ts +3 -3
- package/dist/rendering/atmosphere/GradientSky.d.ts.map +1 -1
- package/dist/rendering/atmosphere/GradientSky.js +20 -9
- package/dist/rendering/atmosphere/GradientSky.js.map +1 -1
- package/dist/rendering/atmosphere/HeightFog.d.ts.map +1 -1
- package/dist/rendering/atmosphere/HeightFog.js +9 -0
- package/dist/rendering/atmosphere/HeightFog.js.map +1 -1
- package/dist/rendering/atmosphere/SkyBackgroundPass.d.ts +11 -0
- package/dist/rendering/atmosphere/SkyBackgroundPass.d.ts.map +1 -1
- package/dist/rendering/atmosphere/SkyBackgroundPass.js +40 -7
- package/dist/rendering/atmosphere/SkyBackgroundPass.js.map +1 -1
- package/dist/rendering/atmosphere/StarField.d.ts +21 -0
- package/dist/rendering/atmosphere/StarField.d.ts.map +1 -1
- package/dist/rendering/atmosphere/StarField.js +24 -1
- package/dist/rendering/atmosphere/StarField.js.map +1 -1
- package/dist/rendering/atmosphere/sky.glsl.d.ts.map +1 -1
- package/dist/rendering/atmosphere/sky.glsl.js +8 -0
- package/dist/rendering/atmosphere/sky.glsl.js.map +1 -1
- package/dist/rendering/contracts/flags.state.d.ts.map +1 -1
- package/dist/rendering/contracts/flags.state.js +19 -0
- package/dist/rendering/contracts/flags.state.js.map +1 -1
- package/dist/rendering/forward/Lighting.d.ts +7 -1
- package/dist/rendering/forward/Lighting.d.ts.map +1 -1
- package/dist/rendering/forward/Lighting.js +24 -1
- package/dist/rendering/forward/Lighting.js.map +1 -1
- package/dist/rendering/forward/Velocity.d.ts +8 -0
- package/dist/rendering/forward/Velocity.d.ts.map +1 -1
- package/dist/rendering/forward/Velocity.js +10 -0
- package/dist/rendering/forward/Velocity.js.map +1 -1
- package/dist/rendering/lanes/prd03.d.ts +1 -1
- package/dist/rendering/lanes/prd03.d.ts.map +1 -1
- package/dist/rendering/lanes/prd03.js +6 -1
- package/dist/rendering/lanes/prd03.js.map +1 -1
- package/dist/rendering/lanes/prd07.d.ts.map +1 -1
- package/dist/rendering/lanes/prd07.js +5 -2
- package/dist/rendering/lanes/prd07.js.map +1 -1
- package/dist/rendering/post/DisplayLutCache.d.ts +10 -2
- package/dist/rendering/post/DisplayLutCache.d.ts.map +1 -1
- package/dist/rendering/post/DisplayLutCache.js +15 -3
- package/dist/rendering/post/DisplayLutCache.js.map +1 -1
- package/dist/rendering/post/PostGraph.d.ts +23 -0
- package/dist/rendering/post/PostGraph.d.ts.map +1 -1
- package/dist/rendering/post/PostGraph.js.map +1 -1
- package/dist/rendering/post/PostQualityTiers.d.ts +36 -0
- package/dist/rendering/post/PostQualityTiers.d.ts.map +1 -1
- package/dist/rendering/post/PostQualityTiers.js +75 -0
- package/dist/rendering/post/PostQualityTiers.js.map +1 -1
- package/dist/rendering/post/chunks/velocity.glsl.d.ts +7 -0
- package/dist/rendering/post/chunks/velocity.glsl.d.ts.map +1 -1
- package/dist/rendering/post/chunks/velocity.glsl.js +12 -1
- package/dist/rendering/post/chunks/velocity.glsl.js.map +1 -1
- package/dist/rendering/post/shaders/displayGrade.glsl.d.ts +15 -1
- package/dist/rendering/post/shaders/displayGrade.glsl.d.ts.map +1 -1
- package/dist/rendering/post/shaders/displayGrade.glsl.js +26 -2
- package/dist/rendering/post/shaders/displayGrade.glsl.js.map +1 -1
- package/dist/rendering/post/shaders/dof.glsl.d.ts +11 -1
- package/dist/rendering/post/shaders/dof.glsl.d.ts.map +1 -1
- package/dist/rendering/post/shaders/dof.glsl.js +22 -0
- package/dist/rendering/post/shaders/dof.glsl.js.map +1 -1
- package/dist/rendering/post/shaders/finalize.glsl.d.ts +1 -1
- package/dist/rendering/post/shaders/finalize.glsl.d.ts.map +1 -1
- package/dist/rendering/post/shaders/finalize.glsl.js +3 -2
- package/dist/rendering/post/shaders/finalize.glsl.js.map +1 -1
- package/dist/rendering/post/shaders/godrays.glsl.d.ts +24 -1
- package/dist/rendering/post/shaders/godrays.glsl.d.ts.map +1 -1
- package/dist/rendering/post/shaders/godrays.glsl.js +45 -5
- package/dist/rendering/post/shaders/godrays.glsl.js.map +1 -1
- package/dist/rendering/post/shaders/hdrGrade.glsl.d.ts +66 -0
- package/dist/rendering/post/shaders/hdrGrade.glsl.d.ts.map +1 -0
- package/dist/rendering/post/shaders/hdrGrade.glsl.js +159 -0
- package/dist/rendering/post/shaders/hdrGrade.glsl.js.map +1 -0
- package/dist/rendering/post/shaders/ssr.glsl.d.ts +39 -0
- package/dist/rendering/post/shaders/ssr.glsl.d.ts.map +1 -0
- package/dist/rendering/post/shaders/ssr.glsl.js +163 -0
- package/dist/rendering/post/shaders/ssr.glsl.js.map +1 -0
- package/dist/rendering/post/v2Stages.d.ts +53 -0
- package/dist/rendering/post/v2Stages.d.ts.map +1 -1
- package/dist/rendering/post/v2Stages.js +314 -23
- package/dist/rendering/post/v2Stages.js.map +1 -1
- package/dist/rendering/postprocess/NativeBloomPyramid.d.ts +19 -0
- package/dist/rendering/postprocess/NativeBloomPyramid.d.ts.map +1 -1
- package/dist/rendering/postprocess/NativeBloomPyramid.js +37 -0
- package/dist/rendering/postprocess/NativeBloomPyramid.js.map +1 -1
- package/dist/rendering/program/ProgramGenerator.d.ts.map +1 -1
- package/dist/rendering/program/ProgramGenerator.js +12 -1
- package/dist/rendering/program/ProgramGenerator.js.map +1 -1
- package/dist/rendering/program/chunks/shadow_forward.glsl.d.ts +12 -0
- package/dist/rendering/program/chunks/shadow_forward.glsl.d.ts.map +1 -1
- package/dist/rendering/program/chunks/shadow_forward.glsl.js +57 -0
- package/dist/rendering/program/chunks/shadow_forward.glsl.js.map +1 -1
- package/dist/rendering/renderer/Background.d.ts.map +1 -1
- package/dist/rendering/renderer/Background.js +26 -2
- package/dist/rendering/renderer/Background.js.map +1 -1
- package/dist/rendering/renderer/FrameGraph.d.ts +8 -0
- package/dist/rendering/renderer/FrameGraph.d.ts.map +1 -1
- package/dist/rendering/renderer/FrameGraph.js +46 -7
- package/dist/rendering/renderer/FrameGraph.js.map +1 -1
- package/dist/rendering/renderer/OutlineTargets.d.ts +99 -0
- package/dist/rendering/renderer/OutlineTargets.d.ts.map +1 -0
- package/dist/rendering/renderer/OutlineTargets.js +286 -0
- package/dist/rendering/renderer/OutlineTargets.js.map +1 -0
- package/dist/rendering/renderer/PostprocessExecution.d.ts +5 -0
- package/dist/rendering/renderer/PostprocessExecution.d.ts.map +1 -1
- package/dist/rendering/renderer/PostprocessExecution.js +70 -4
- package/dist/rendering/renderer/PostprocessExecution.js.map +1 -1
- package/dist/rendering/renderer/postSkipped.d.ts +6 -0
- package/dist/rendering/renderer/postSkipped.d.ts.map +1 -1
- package/dist/rendering/renderer/postSkipped.js +8 -0
- package/dist/rendering/renderer/postSkipped.js.map +1 -1
- package/dist/rendering/shaders/chunks/author/ibl.glsl.d.ts +20 -0
- package/dist/rendering/shaders/chunks/author/ibl.glsl.d.ts.map +1 -0
- package/dist/rendering/shaders/chunks/author/ibl.glsl.js +84 -0
- package/dist/rendering/shaders/chunks/author/ibl.glsl.js.map +1 -0
- package/dist/rendering/shaders/chunks/author/index.d.ts +3 -1
- package/dist/rendering/shaders/chunks/author/index.d.ts.map +1 -1
- package/dist/rendering/shaders/chunks/author/index.js +38 -3
- package/dist/rendering/shaders/chunks/author/index.js.map +1 -1
- package/dist/rendering/shaders/chunks/author/lights.glsl.d.ts +16 -0
- package/dist/rendering/shaders/chunks/author/lights.glsl.d.ts.map +1 -0
- package/dist/rendering/shaders/chunks/author/lights.glsl.js +112 -0
- package/dist/rendering/shaders/chunks/author/lights.glsl.js.map +1 -0
- package/dist/rendering/shaders/chunks/author/shadow.glsl.d.ts +16 -2
- package/dist/rendering/shaders/chunks/author/shadow.glsl.d.ts.map +1 -1
- package/dist/rendering/shaders/chunks/author/shadow.glsl.js +46 -2
- package/dist/rendering/shaders/chunks/author/shadow.glsl.js.map +1 -1
- package/dist/rendering/shaders/chunks/instance_color_target.glsl.d.ts +34 -0
- package/dist/rendering/shaders/chunks/instance_color_target.glsl.d.ts.map +1 -0
- package/dist/rendering/shaders/chunks/instance_color_target.glsl.js +101 -0
- package/dist/rendering/shaders/chunks/instance_color_target.glsl.js.map +1 -0
- package/dist/rendering/shaders/chunks/rim.glsl.d.ts +37 -0
- package/dist/rendering/shaders/chunks/rim.glsl.d.ts.map +1 -0
- package/dist/rendering/shaders/chunks/rim.glsl.js +50 -0
- package/dist/rendering/shaders/chunks/rim.glsl.js.map +1 -0
- package/dist/rendering/shadows/Prd02ShadowBridge.d.ts +26 -3
- package/dist/rendering/shadows/Prd02ShadowBridge.d.ts.map +1 -1
- package/dist/rendering/shadows/Prd02ShadowBridge.js +134 -8
- package/dist/rendering/shadows/Prd02ShadowBridge.js.map +1 -1
- package/dist/rendering/shadows/Prd02ShadowsContributor.d.ts.map +1 -1
- package/dist/rendering/shadows/Prd02ShadowsContributor.js +4 -16
- package/dist/rendering/shadows/Prd02ShadowsContributor.js.map +1 -1
- package/dist/rendering/vfx/VfxAtlas.d.ts +10 -0
- package/dist/rendering/vfx/VfxAtlas.d.ts.map +1 -1
- package/dist/rendering/vfx/VfxAtlas.js +18 -3
- package/dist/rendering/vfx/VfxAtlas.js.map +1 -1
- package/dist/rendering/webgl2/LegacyPost.d.ts +9 -1
- package/dist/rendering/webgl2/LegacyPost.d.ts.map +1 -1
- package/dist/rendering/webgl2/LegacyPost.js +23 -7
- package/dist/rendering/webgl2/LegacyPost.js.map +1 -1
- package/dist/rendering/webgl2/MultiDraw.d.ts.map +1 -1
- package/dist/rendering/webgl2/MultiDraw.js +51 -1
- package/dist/rendering/webgl2/MultiDraw.js.map +1 -1
- package/dist/rendering/world/vegetation/WindField.d.ts.map +1 -1
- package/dist/rendering/world/vegetation/WindField.js +4 -1
- package/dist/rendering/world/vegetation/WindField.js.map +1 -1
- package/dist/rendering/world/water/ReflectionViewPass.d.ts.map +1 -1
- package/dist/rendering/world/water/ReflectionViewPass.js +12 -2
- package/dist/rendering/world/water/ReflectionViewPass.js.map +1 -1
- package/dist/rendering/world/water/SceneCopyFallback.d.ts.map +1 -1
- package/dist/rendering/world/water/SceneCopyFallback.js +9 -2
- package/dist/rendering/world/water/SceneCopyFallback.js.map +1 -1
- package/dist/rendering/world/water/WaterMaterial.d.ts.map +1 -1
- package/dist/rendering/world/water/WaterMaterial.js +8 -2
- package/dist/rendering/world/water/WaterMaterial.js.map +1 -1
- package/package.json +25 -25
- package/templates/cinematic-scene/package.json +2 -2
- package/templates/mini-game/package.json +2 -2
- package/templates/product-viewer/package.json +2 -2
- package/templates/production-asset-inspector/package.json +1 -1
- package/templates/production-material-studio/package.json +1 -1
- package/templates/production-product-configurator/package.json +1 -1
- package/templates/production-product-viewer/package.json +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { EmitterDescriptor } from "./CpuEmitter.js";
|
|
2
2
|
import type { AuraVec3 } from "./CpuEmitter.js";
|
|
3
3
|
import { type VolumeEmitterSpec } from "../../../rendering/index.js";
|
|
4
|
+
import type { AuraVfxBuiltinSequence } from "../../agent-api/vfx/atlas.js";
|
|
4
5
|
export interface EffectNodeLike {
|
|
5
6
|
readonly kind: string;
|
|
6
7
|
readonly effect?: string;
|
|
@@ -53,6 +54,10 @@ export interface EffectNodeLike {
|
|
|
53
54
|
readonly surfaceNormal?: AuraVec3;
|
|
54
55
|
readonly path?: readonly (readonly number[])[];
|
|
55
56
|
readonly target?: string;
|
|
57
|
+
/** GU47 E-F trail: seconds a ribbon point lives (absent on scene trails: ring of `maxPoints`, no fade). */
|
|
58
|
+
readonly life?: number;
|
|
59
|
+
/** GU47 E-F trail: width ramp by target speed in m/s, zero at or below [0], full `width` at or above [1]. */
|
|
60
|
+
readonly widthOverSpeed?: readonly [number, number];
|
|
56
61
|
readonly from?: AuraVec3;
|
|
57
62
|
readonly to?: AuraVec3;
|
|
58
63
|
readonly widthWorld?: number;
|
|
@@ -93,7 +98,42 @@ export interface EffectNodeLike {
|
|
|
93
98
|
readonly visible?: boolean;
|
|
94
99
|
/** §8.3 sim backend: "gpu" forces ParticleGpuSim, "auto" picks by count. */
|
|
95
100
|
readonly simulation?: "auto" | "cpu" | "gpu";
|
|
101
|
+
/**
|
|
102
|
+
* GU47 E-F emitter sprite: a built-in sequence of the baked VFX atlas ("smoke-a", "dust-mote", ...) or a
|
|
103
|
+
* texture sheet `{ atlas: assets.sheet | url, frame? }` (grid from `spriteColumns` × `spriteRows`).
|
|
104
|
+
*/
|
|
105
|
+
readonly sprite?: string | {
|
|
106
|
+
readonly atlas?: unknown;
|
|
107
|
+
readonly frame?: number;
|
|
108
|
+
};
|
|
109
|
+
/** GU47 E-F `effects.flipbook({ texture })`: sprite-sheet texture asset ref or URL. */
|
|
110
|
+
readonly texture?: unknown;
|
|
111
|
+
/**
|
|
112
|
+
* GU47 E-F: follow a runtime node (id, `{ node, socket }` or a node handle); `position` becomes the offset
|
|
113
|
+
* from the target's world position. Resolved per frame by `ProductionEffectSystem`, never by lowering.
|
|
114
|
+
*/
|
|
115
|
+
readonly attachTo?: unknown;
|
|
96
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* GU47 E-F: the sprite a particle batch samples. `builtin` is a sequence of the baked VFX page (premultiplied
|
|
119
|
+
* sRGB); `texture` is a whole texture asset (straight-alpha sRGB sheet) holding one fixed `frame` of its grid.
|
|
120
|
+
*/
|
|
121
|
+
export type LoweredSprite = {
|
|
122
|
+
readonly kind: "builtin";
|
|
123
|
+
readonly name: AuraVfxBuiltinSequence;
|
|
124
|
+
readonly columns: number;
|
|
125
|
+
readonly rows: number;
|
|
126
|
+
readonly frames: number;
|
|
127
|
+
readonly fps?: number;
|
|
128
|
+
readonly loop?: boolean;
|
|
129
|
+
} | {
|
|
130
|
+
readonly kind: "texture";
|
|
131
|
+
readonly url: string;
|
|
132
|
+
readonly columns: number;
|
|
133
|
+
readonly rows: number;
|
|
134
|
+
readonly frames: number;
|
|
135
|
+
readonly frame: number;
|
|
136
|
+
};
|
|
97
137
|
export interface LoweredParticleEffect {
|
|
98
138
|
readonly type: "emitter";
|
|
99
139
|
readonly nodeId: string;
|
|
@@ -102,6 +142,8 @@ export interface LoweredParticleEffect {
|
|
|
102
142
|
readonly emitter: EmitterDescriptor;
|
|
103
143
|
readonly consumer: "particle-pass";
|
|
104
144
|
readonly sim: "cpu" | "gpu";
|
|
145
|
+
/** GU47 E-F: atlas sprite the batch samples (absent: the analytic soft-dot). */
|
|
146
|
+
readonly sprite?: LoweredSprite;
|
|
105
147
|
}
|
|
106
148
|
export interface LoweredBeamEffect {
|
|
107
149
|
readonly type: "beam";
|
|
@@ -156,6 +198,19 @@ export declare function srgbChannelToLinear(c: number): number;
|
|
|
156
198
|
* -1.2 m/s² gravity). A scalar `speed` scales the preset (default 1).
|
|
157
199
|
*/
|
|
158
200
|
export declare function fountainLaunchSpeed(height: number, gravity: number, drag: number, life: number): number;
|
|
201
|
+
/**
|
|
202
|
+
* URL of a texture asset value: an `assets.x` ref (`{ kind: "aura-asset-ref", type: "texture", url }`), a
|
|
203
|
+
* texture-like object with a `url`, or a plain URL string. Null when the value carries no URL.
|
|
204
|
+
*/
|
|
205
|
+
export declare function textureAssetUrl(value: unknown): string | null;
|
|
206
|
+
/**
|
|
207
|
+
* GU47 E-F: resolve an emitter `sprite`. Built-in names other than "soft-dot" sample their atlas sequence;
|
|
208
|
+
* "soft-dot", an absent sprite, an unknown name or an atlas without a URL keep the analytic soft-dot, so
|
|
209
|
+
* scenes that do not opt in lower byte-identically.
|
|
210
|
+
*/
|
|
211
|
+
export declare function lowerSprite(node: Pick<EffectNodeLike, "sprite" | "spriteColumns" | "spriteRows">): LoweredSprite | undefined;
|
|
212
|
+
/** Batch atlas key of a sprite: batches merge only when they sample the same texture. */
|
|
213
|
+
export declare function spriteAtlasKey(sprite: LoweredSprite): string;
|
|
159
214
|
/** Lower one scene node; `seed` overrides hashing (benchmark scenes pin it). */
|
|
160
215
|
export declare function lowerEffectNode(node: EffectNodeLike, seedOverride?: number): LoweredEffect;
|
|
161
216
|
//# sourceMappingURL=EffectNodeLowering.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EffectNodeLowering.d.ts","sourceRoot":"","sources":["../../../../../../packages/engine/src/production-runtime/effects/EffectNodeLowering.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"EffectNodeLowering.d.ts","sourceRoot":"","sources":["../../../../../../packages/engine/src/production-runtime/effects/EffectNodeLowering.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
// record; every other kind maps to `null` (post/other consumer — reported
|
|
7
7
|
// in diagnostics as non-particle kinds).
|
|
8
8
|
import { VOLUME_PRESETS, VOLUME_SPRITE_LIMITS } from "../../../rendering/index.js";
|
|
9
|
+
import { VFX_SPRITE_LAYOUT, isVfxBuiltinSprite } from "./FlipbookAtlas.js";
|
|
9
10
|
const COLOR_TABLE = {
|
|
10
11
|
"additive-glow": [2.0, 1.1, 0.45],
|
|
11
12
|
spark: [3.0, 1.8, 0.6],
|
|
@@ -93,6 +94,57 @@ function simFor(node, count) {
|
|
|
93
94
|
return "cpu";
|
|
94
95
|
return count > GPU_AUTO_THRESHOLD ? "gpu" : "cpu";
|
|
95
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* URL of a texture asset value: an `assets.x` ref (`{ kind: "aura-asset-ref", type: "texture", url }`), a
|
|
99
|
+
* texture-like object with a `url`, or a plain URL string. Null when the value carries no URL.
|
|
100
|
+
*/
|
|
101
|
+
export function textureAssetUrl(value) {
|
|
102
|
+
if (typeof value === "string")
|
|
103
|
+
return value.length > 0 ? value : null;
|
|
104
|
+
if (typeof value === "object" && value !== null) {
|
|
105
|
+
const url = value.url;
|
|
106
|
+
if (typeof url === "string" && url.length > 0)
|
|
107
|
+
return url;
|
|
108
|
+
}
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* GU47 E-F: resolve an emitter `sprite`. Built-in names other than "soft-dot" sample their atlas sequence;
|
|
113
|
+
* "soft-dot", an absent sprite, an unknown name or an atlas without a URL keep the analytic soft-dot, so
|
|
114
|
+
* scenes that do not opt in lower byte-identically.
|
|
115
|
+
*/
|
|
116
|
+
export function lowerSprite(node) {
|
|
117
|
+
const sprite = node.sprite;
|
|
118
|
+
if (typeof sprite === "string") {
|
|
119
|
+
if (sprite === "soft-dot" || !isVfxBuiltinSprite(sprite))
|
|
120
|
+
return undefined;
|
|
121
|
+
const layout = VFX_SPRITE_LAYOUT[sprite];
|
|
122
|
+
return {
|
|
123
|
+
kind: "builtin",
|
|
124
|
+
name: sprite,
|
|
125
|
+
columns: layout.columns,
|
|
126
|
+
rows: layout.rows,
|
|
127
|
+
frames: layout.frames,
|
|
128
|
+
...(layout.fps !== undefined ? { fps: layout.fps } : {}),
|
|
129
|
+
...(layout.loop ? { loop: true } : {})
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
if (typeof sprite === "object" && sprite !== null) {
|
|
133
|
+
const url = textureAssetUrl(sprite.atlas);
|
|
134
|
+
if (!url)
|
|
135
|
+
return undefined;
|
|
136
|
+
const columns = Math.max(1, Math.round(node.spriteColumns ?? 1));
|
|
137
|
+
const rows = Math.max(1, Math.round(node.spriteRows ?? 1));
|
|
138
|
+
const frames = columns * rows;
|
|
139
|
+
const frame = Math.min(frames - 1, Math.max(0, Math.floor(sprite.frame ?? 0)));
|
|
140
|
+
return { kind: "texture", url, columns, rows, frames, frame };
|
|
141
|
+
}
|
|
142
|
+
return undefined;
|
|
143
|
+
}
|
|
144
|
+
/** Batch atlas key of a sprite: batches merge only when they sample the same texture. */
|
|
145
|
+
export function spriteAtlasKey(sprite) {
|
|
146
|
+
return sprite.kind === "builtin" ? `vfx:${sprite.name}` : `tex:${sprite.url}:${sprite.columns}x${sprite.rows}`;
|
|
147
|
+
}
|
|
96
148
|
/** Lower one scene node; `seed` overrides hashing (benchmark scenes pin it). */
|
|
97
149
|
export function lowerEffectNode(node, seedOverride) {
|
|
98
150
|
const nodeId = node.id ?? node.name ?? `effect-${node.effect ?? "none"}`;
|
|
@@ -114,6 +166,9 @@ export function lowerEffectNode(node, seedOverride) {
|
|
|
114
166
|
const speedRange = plume && plumeSpeed > 0
|
|
115
167
|
? [plumeSpeed * 0.85, plumeSpeed]
|
|
116
168
|
: asRange(node.speed) ?? [speedScalar * 0.7, speedScalar];
|
|
169
|
+
// GU47 E-F: an atlas sprite replaces the analytic soft-dot (own batch key, frame blend on multi-frame sequences).
|
|
170
|
+
const sprite = lowerSprite(node);
|
|
171
|
+
const atlasKey = sprite ? spriteAtlasKey(sprite) : "soft-dot";
|
|
117
172
|
return {
|
|
118
173
|
type: "emitter",
|
|
119
174
|
nodeId,
|
|
@@ -128,15 +183,16 @@ export function lowerEffectNode(node, seedOverride) {
|
|
|
128
183
|
...(node.nearFade !== undefined ? { nearFade: node.nearFade } : {}),
|
|
129
184
|
...(node.maxScreen !== undefined && node.maxScreen > 0 ? { maxScreen: node.maxScreen } : {}),
|
|
130
185
|
stretch: materialMode === "spark",
|
|
131
|
-
frameBlend:
|
|
132
|
-
atlasKey
|
|
186
|
+
frameBlend: sprite?.kind === "builtin" && sprite.frames > 1,
|
|
187
|
+
atlasKey,
|
|
133
188
|
...(node.lowRes === true ? { lowRes: true } : {})
|
|
134
189
|
},
|
|
190
|
+
...(sprite ? { sprite } : {}),
|
|
135
191
|
emitter: {
|
|
136
192
|
// §6.2.2 material key — identical blend/atlas/flags merge into one
|
|
137
193
|
// instanced draw in ProductionEffectSystem.feed.
|
|
138
194
|
// Trailing bit: lowRes batches never merge with full-res ones.
|
|
139
|
-
key: `eff.${blend}
|
|
195
|
+
key: `eff.${blend}.${atlasKey}.${materialMode !== "spark"}.${materialMode === "spark"}.${node.lowRes === true ? 1 : 0}${node.maxScreen !== undefined && node.maxScreen > 0 ? `.m${node.maxScreen}` : ""}`,
|
|
140
196
|
nodeId,
|
|
141
197
|
origin: position,
|
|
142
198
|
capacity: count,
|
|
@@ -222,14 +278,21 @@ export function lowerEffectNode(node, seedOverride) {
|
|
|
222
278
|
// re-emitted 2 sprites/s at random rotation with frame 0 pinned and
|
|
223
279
|
// sampled the soft-dot fallback, so both flipbooks drew as plain discs.
|
|
224
280
|
const count = Math.max(1, Math.min(64, Math.round(node.particleCount ?? 1)));
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
const
|
|
281
|
+
// GU47 E-F sheet source: `texture` asset (grid from spriteColumns × spriteRows), else a built-in
|
|
282
|
+
// atlas `sprite` (its own grid), else the procedural fireball sheet (unchanged default).
|
|
283
|
+
const textureUrl = textureAssetUrl(node.texture);
|
|
284
|
+
const builtin = !textureUrl ? lowerSprite({ sprite: typeof node.sprite === "string" ? node.sprite : undefined }) : undefined;
|
|
285
|
+
const columns = builtin ? builtin.columns : Math.max(1, Math.round(node.spriteColumns ?? 8));
|
|
286
|
+
const rows = builtin ? builtin.rows : Math.max(1, Math.round(node.spriteRows ?? 8));
|
|
287
|
+
const frames = builtin ? builtin.frames : columns * rows;
|
|
228
288
|
const frameRate = node.frameRate ?? 24;
|
|
229
289
|
const loop = node.loop !== false;
|
|
230
290
|
const blend = node.blend && VALID_BLENDS.has(node.blend) ? node.blend : "alpha";
|
|
231
291
|
const sheetSeed = (node.seed ?? hashSeed(nodeId)) >>> 0;
|
|
232
|
-
const
|
|
292
|
+
const sprite = textureUrl
|
|
293
|
+
? { kind: "texture", url: textureUrl, columns, rows, frames, frame: 0 }
|
|
294
|
+
: builtin;
|
|
295
|
+
const atlasKey = sprite ? spriteAtlasKey(sprite) : `flipbook.${columns}x${rows}.${sheetSeed}`;
|
|
233
296
|
return {
|
|
234
297
|
type: "emitter",
|
|
235
298
|
nodeId,
|
|
@@ -245,6 +308,7 @@ export function lowerEffectNode(node, seedOverride) {
|
|
|
245
308
|
atlasKey,
|
|
246
309
|
...(node.lowRes === true ? { lowRes: true } : {})
|
|
247
310
|
},
|
|
311
|
+
...(sprite ? { sprite } : {}),
|
|
248
312
|
emitter: {
|
|
249
313
|
key: `eff.${blend}.${atlasKey}.0.0.${node.lowRes === true ? 1 : 0}`,
|
|
250
314
|
nodeId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EffectNodeLowering.js","sourceRoot":"","sources":["../../../../../../packages/engine/src/production-runtime/effects/EffectNodeLowering.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EffectNodeLowering.js","sourceRoot":"","sources":["../../../../../../packages/engine/src/production-runtime/effects/EffectNodeLowering.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { Texture } from "../../../rendering/index.js";
|
|
2
|
+
import type { AuraVfxBuiltinSequence } from "../../agent-api/vfx/atlas.js";
|
|
1
3
|
export interface FlipbookSheet {
|
|
2
4
|
readonly width: number;
|
|
3
5
|
readonly height: number;
|
|
@@ -7,4 +9,87 @@ export interface FlipbookSheet {
|
|
|
7
9
|
}
|
|
8
10
|
/** Built-in `fireball` sheet for a grid and seed (cached; same inputs → same bytes). */
|
|
9
11
|
export declare function proceduralFireballSheet(columns: number, rows: number, seed: number): FlipbookSheet;
|
|
12
|
+
/** One built-in sequence on the baked VFX page: pixel rect on the 2048 page, frame grid and playback. */
|
|
13
|
+
export interface VfxSpriteLayout {
|
|
14
|
+
readonly rect: readonly [number, number, number, number];
|
|
15
|
+
readonly columns: number;
|
|
16
|
+
readonly rows: number;
|
|
17
|
+
readonly frames: number;
|
|
18
|
+
/** Frames per second for looping sequences; absent on single-frame sprites. */
|
|
19
|
+
readonly fps?: number;
|
|
20
|
+
/** Wrap at the last frame (smoke, flame, electric). Other multi-frame sequences play once over the particle life. */
|
|
21
|
+
readonly loop?: boolean;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Where each of the 18 built-in sequences sits on `packages/engine/assets/vfx/aura-vfx-2k.png`.
|
|
25
|
+
* Mirrors `manifest.json` except for three sequences whose baked rows overlap: the bake tool advances one
|
|
26
|
+
* cell row per layout row, so a two-row sequence is partly overwritten by the next row (`fireball` covers the
|
|
27
|
+
* bottom-left cell of `smoke-a`, `flame-loop` covers the bottom row of `fireball`, `electric` and
|
|
28
|
+
* `debris-chips` cover the bottom row of `flame-loop`). Those three sample only their clean top row here,
|
|
29
|
+
* with the frame rate scaled so one cycle lasts as long as the baked sequence intends.
|
|
30
|
+
*/
|
|
31
|
+
export declare const VFX_SPRITE_LAYOUT: Readonly<Record<AuraVfxBuiltinSequence, VfxSpriteLayout>>;
|
|
32
|
+
/** True for the 18 built-in sequence names (`agent-api/vfx/atlas.ts`). */
|
|
33
|
+
export declare function isVfxBuiltinSprite(name: unknown): name is AuraVfxBuiltinSequence;
|
|
34
|
+
/** Atlas page size per quality tier: the 1k twin on low and medium, the 2k page on high and ultra. */
|
|
35
|
+
export declare function vfxSpritePageSize(tier: string): 1024 | 2048;
|
|
36
|
+
/**
|
|
37
|
+
* Pixel rect of a sequence on the page of `pageSize`. The 1k twin is baked with 128 px cells and the same
|
|
38
|
+
* 4 px gutter, so its cell pitch is 132 px, not half of 260: halving the 2k rect would sample 4 px off.
|
|
39
|
+
*/
|
|
40
|
+
export declare function vfxSpriteRect(layout: VfxSpriteLayout, pageSize: 1024 | 2048): readonly [number, number, number, number];
|
|
41
|
+
/**
|
|
42
|
+
* Frame for one particle of a sprite emitter (written into the instance `frame` slot; the fraction blends
|
|
43
|
+
* into the next cell when the batch has `frameBlend`). Looping sequences run at their fps from the
|
|
44
|
+
* particle's birth; play-once sequences span the particle's life; a texture sheet holds its fixed `frame`.
|
|
45
|
+
*/
|
|
46
|
+
export declare function vfxSpriteFrame(sprite: {
|
|
47
|
+
readonly frames: number;
|
|
48
|
+
readonly fps?: number;
|
|
49
|
+
readonly loop?: boolean;
|
|
50
|
+
readonly frame?: number;
|
|
51
|
+
}, age: number, life: number): number;
|
|
52
|
+
/** Decoded image for a sprite texture: an uploadable image source (browser) or raw RGBA8 rows bottom-up (tests). */
|
|
53
|
+
export interface VfxSpriteImage {
|
|
54
|
+
readonly width: number;
|
|
55
|
+
readonly height: number;
|
|
56
|
+
readonly source?: TexImageSource;
|
|
57
|
+
readonly data?: Uint8Array;
|
|
58
|
+
}
|
|
59
|
+
/** Loads `url` and returns the pixel rect `rect` (whole image when null), rows oriented for the GL upload. */
|
|
60
|
+
export type VfxSpriteLoader = (url: string, rect: readonly [number, number, number, number] | null) => Promise<VfxSpriteImage>;
|
|
61
|
+
/**
|
|
62
|
+
* Browser loader: one fetch and decode per page URL (shared by every sequence), then a cropped ImageBitmap per
|
|
63
|
+
* rect. `imageOrientation: "flipY"` puts the image's top row at v = 1 (WebGL ignores UNPACK_FLIP_Y for
|
|
64
|
+
* ImageBitmap sources), and decoding keeps the stored bytes as they are (the atlas is premultiplied sRGB).
|
|
65
|
+
*/
|
|
66
|
+
export declare const browserVfxSpriteLoader: VfxSpriteLoader;
|
|
67
|
+
/**
|
|
68
|
+
* URL of the baked page. Resolved against this module so Vite (dev and build) emits the PNG from
|
|
69
|
+
* `packages/engine/assets/vfx/`; `src/` and `dist/` sit at the same depth, so the package dist resolves it too.
|
|
70
|
+
*/
|
|
71
|
+
export declare function defaultVfxSpritePageUrl(pageSize: 1024 | 2048): string;
|
|
72
|
+
export type VfxSpriteTextureState = "pending" | "ready" | "failed";
|
|
73
|
+
/**
|
|
74
|
+
* Per-system cache of sprite textures. `builtin(name)` and `texture(url)` start the load on first use and
|
|
75
|
+
* return null until the image is decoded (the batch keeps the analytic soft-dot meanwhile) or after the load
|
|
76
|
+
* failed (`onError` is called once per key; the batch stays on the soft-dot).
|
|
77
|
+
*/
|
|
78
|
+
export declare class VfxSpriteTextures {
|
|
79
|
+
private readonly loader;
|
|
80
|
+
readonly pageSize: 1024 | 2048;
|
|
81
|
+
private readonly onError?;
|
|
82
|
+
private readonly pageUrl;
|
|
83
|
+
private readonly entries;
|
|
84
|
+
constructor(loader?: VfxSpriteLoader, pageSize?: 1024 | 2048, onError?: ((key: string, message: string) => void) | undefined, pageUrl?: (pageSize: 1024 | 2048) => string);
|
|
85
|
+
/** Texture of a built-in sequence cropped from the tier page (premultiplied sRGB), or null while loading or failed. */
|
|
86
|
+
builtin(name: AuraVfxBuiltinSequence): Texture | null;
|
|
87
|
+
/** Whole-image texture of a texture asset (straight-alpha sRGB sheet), or null while loading or failed. */
|
|
88
|
+
texture(url: string): Texture | null;
|
|
89
|
+
/** Load state per key (`vfx:<name>` or `tex:<url>`). */
|
|
90
|
+
status(): Readonly<Record<string, VfxSpriteTextureState>>;
|
|
91
|
+
/** Resolves once every load requested so far has settled (tests and receipts wait on it). */
|
|
92
|
+
settled(): Promise<void>;
|
|
93
|
+
private load;
|
|
94
|
+
}
|
|
10
95
|
//# sourceMappingURL=FlipbookAtlas.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlipbookAtlas.d.ts","sourceRoot":"","sources":["../../../../../../packages/engine/src/production-runtime/effects/FlipbookAtlas.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FlipbookAtlas.d.ts","sourceRoot":"","sources":["../../../../../../packages/engine/src/production-runtime/effects/FlipbookAtlas.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
// runs in workers and tests. Output is RGBA8, sRGB-encoded, straight alpha,
|
|
7
7
|
// rows bottom-up (GL upload order: v = 0 is the last image row), frame 0 in
|
|
8
8
|
// the top-left cell — the particle program's `u_grid` lookup convention.
|
|
9
|
+
import { Texture } from "../../../rendering/index.js";
|
|
9
10
|
import { mulberry32 } from "./CpuEmitter.js";
|
|
10
11
|
const CELL = 128;
|
|
11
12
|
const cache = new Map();
|
|
@@ -79,4 +80,167 @@ export function proceduralFireballSheet(columns, rows, seed) {
|
|
|
79
80
|
cache.set(key, sheet);
|
|
80
81
|
return sheet;
|
|
81
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Where each of the 18 built-in sequences sits on `packages/engine/assets/vfx/aura-vfx-2k.png`.
|
|
85
|
+
* Mirrors `manifest.json` except for three sequences whose baked rows overlap: the bake tool advances one
|
|
86
|
+
* cell row per layout row, so a two-row sequence is partly overwritten by the next row (`fireball` covers the
|
|
87
|
+
* bottom-left cell of `smoke-a`, `flame-loop` covers the bottom row of `fireball`, `electric` and
|
|
88
|
+
* `debris-chips` cover the bottom row of `flame-loop`). Those three sample only their clean top row here,
|
|
89
|
+
* with the frame rate scaled so one cycle lasts as long as the baked sequence intends.
|
|
90
|
+
*/
|
|
91
|
+
export const VFX_SPRITE_LAYOUT = {
|
|
92
|
+
"soft-dot": { rect: [4, 4, 256, 256], columns: 1, rows: 1, frames: 1 },
|
|
93
|
+
glow: { rect: [264, 4, 256, 256], columns: 1, rows: 1, frames: 1 },
|
|
94
|
+
flare: { rect: [524, 4, 256, 256], columns: 1, rows: 1, frames: 1 },
|
|
95
|
+
"spark-streak": { rect: [784, 4, 256, 256], columns: 1, rows: 1, frames: 1 },
|
|
96
|
+
ring: { rect: [1044, 4, 256, 256], columns: 1, rows: 1, frames: 1 },
|
|
97
|
+
"ring-thin": { rect: [1304, 4, 256, 256], columns: 1, rows: 1, frames: 1 },
|
|
98
|
+
"dust-mote": { rect: [1564, 4, 256, 256], columns: 1, rows: 1, frames: 1 },
|
|
99
|
+
bubble: { rect: [4, 264, 256, 256], columns: 1, rows: 1, frames: 1 },
|
|
100
|
+
"rain-streak": { rect: [264, 264, 256, 256], columns: 1, rows: 1, frames: 1 },
|
|
101
|
+
snowflake: { rect: [524, 264, 256, 256], columns: 1, rows: 1, frames: 1 },
|
|
102
|
+
// Baked 2×2 at 12 fps; its bottom-left cell is overwritten by `fireball`.
|
|
103
|
+
"smoke-a": { rect: [784, 264, 512, 256], columns: 2, rows: 1, frames: 2, fps: 6, loop: true },
|
|
104
|
+
"smoke-b": { rect: [1304, 264, 512, 512], columns: 2, rows: 2, frames: 4, fps: 12, loop: true },
|
|
105
|
+
// Baked 4×2; its bottom row is overwritten by `flame-loop`.
|
|
106
|
+
fireball: { rect: [4, 524, 1024, 256], columns: 4, rows: 1, frames: 4, fps: 24 },
|
|
107
|
+
// Baked 4×2 at 16 fps; its bottom row is overwritten by `electric` and `debris-chips`.
|
|
108
|
+
"flame-loop": { rect: [4, 784, 1024, 256], columns: 4, rows: 1, frames: 4, fps: 8, loop: true },
|
|
109
|
+
muzzle: { rect: [1044, 784, 256, 256], columns: 1, rows: 1, frames: 1 },
|
|
110
|
+
splash: { rect: [1304, 784, 512, 512], columns: 2, rows: 2, frames: 4, fps: 10 },
|
|
111
|
+
electric: { rect: [4, 1044, 512, 256], columns: 2, rows: 1, frames: 2, fps: 30, loop: true },
|
|
112
|
+
"debris-chips": { rect: [524, 1044, 512, 256], columns: 2, rows: 1, frames: 2, fps: 6 }
|
|
113
|
+
};
|
|
114
|
+
/** True for the 18 built-in sequence names (`agent-api/vfx/atlas.ts`). */
|
|
115
|
+
export function isVfxBuiltinSprite(name) {
|
|
116
|
+
return typeof name === "string" && Object.prototype.hasOwnProperty.call(VFX_SPRITE_LAYOUT, name);
|
|
117
|
+
}
|
|
118
|
+
/** Atlas page size per quality tier: the 1k twin on low and medium, the 2k page on high and ultra. */
|
|
119
|
+
export function vfxSpritePageSize(tier) {
|
|
120
|
+
return tier === "low" || tier === "medium" ? 1024 : 2048;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Pixel rect of a sequence on the page of `pageSize`. The 1k twin is baked with 128 px cells and the same
|
|
124
|
+
* 4 px gutter, so its cell pitch is 132 px, not half of 260: halving the 2k rect would sample 4 px off.
|
|
125
|
+
*/
|
|
126
|
+
export function vfxSpriteRect(layout, pageSize) {
|
|
127
|
+
if (pageSize >= 2048)
|
|
128
|
+
return layout.rect;
|
|
129
|
+
const [x, y, w, h] = layout.rect;
|
|
130
|
+
const half = (v) => 4 + Math.round((v - 4) / 260) * 132;
|
|
131
|
+
return [half(x), half(y), w / 2, h / 2];
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Frame for one particle of a sprite emitter (written into the instance `frame` slot; the fraction blends
|
|
135
|
+
* into the next cell when the batch has `frameBlend`). Looping sequences run at their fps from the
|
|
136
|
+
* particle's birth; play-once sequences span the particle's life; a texture sheet holds its fixed `frame`.
|
|
137
|
+
*/
|
|
138
|
+
export function vfxSpriteFrame(sprite, age, life) {
|
|
139
|
+
const frames = Math.max(1, Math.floor(sprite.frames));
|
|
140
|
+
if (sprite.frame !== undefined)
|
|
141
|
+
return Math.min(frames - 1, Math.max(0, Math.floor(sprite.frame)));
|
|
142
|
+
if (frames === 1)
|
|
143
|
+
return 0;
|
|
144
|
+
if (sprite.loop && sprite.fps !== undefined && sprite.fps > 0)
|
|
145
|
+
return (Math.max(0, age) * sprite.fps) % frames;
|
|
146
|
+
const t = life > 0 ? Math.min(1, Math.max(0, age / life)) : 1;
|
|
147
|
+
return t * (frames - 1);
|
|
148
|
+
}
|
|
149
|
+
const browserPages = new Map();
|
|
150
|
+
/**
|
|
151
|
+
* Browser loader: one fetch and decode per page URL (shared by every sequence), then a cropped ImageBitmap per
|
|
152
|
+
* rect. `imageOrientation: "flipY"` puts the image's top row at v = 1 (WebGL ignores UNPACK_FLIP_Y for
|
|
153
|
+
* ImageBitmap sources), and decoding keeps the stored bytes as they are (the atlas is premultiplied sRGB).
|
|
154
|
+
*/
|
|
155
|
+
export const browserVfxSpriteLoader = async (url, rect) => {
|
|
156
|
+
if (typeof fetch !== "function" || typeof createImageBitmap !== "function") {
|
|
157
|
+
throw new Error("this runtime has no fetch or createImageBitmap to decode the sprite page");
|
|
158
|
+
}
|
|
159
|
+
let page = browserPages.get(url);
|
|
160
|
+
if (!page) {
|
|
161
|
+
page = fetch(url)
|
|
162
|
+
.then((response) => {
|
|
163
|
+
if (!response.ok)
|
|
164
|
+
throw new Error(`HTTP ${response.status}`);
|
|
165
|
+
return response.blob();
|
|
166
|
+
})
|
|
167
|
+
.then((blob) => createImageBitmap(blob, { premultiplyAlpha: "none", colorSpaceConversion: "none" }));
|
|
168
|
+
browserPages.set(url, page);
|
|
169
|
+
page.catch(() => browserPages.delete(url));
|
|
170
|
+
}
|
|
171
|
+
const bitmap = await page;
|
|
172
|
+
const [x, y, w, h] = rect ?? [0, 0, bitmap.width, bitmap.height];
|
|
173
|
+
const crop = await createImageBitmap(bitmap, x, y, w, h, { imageOrientation: "flipY", premultiplyAlpha: "none", colorSpaceConversion: "none" });
|
|
174
|
+
return { width: crop.width, height: crop.height, source: crop };
|
|
175
|
+
};
|
|
176
|
+
/**
|
|
177
|
+
* URL of the baked page. Resolved against this module so Vite (dev and build) emits the PNG from
|
|
178
|
+
* `packages/engine/assets/vfx/`; `src/` and `dist/` sit at the same depth, so the package dist resolves it too.
|
|
179
|
+
*/
|
|
180
|
+
export function defaultVfxSpritePageUrl(pageSize) {
|
|
181
|
+
return pageSize >= 2048
|
|
182
|
+
? new URL("../../../assets/vfx/aura-vfx-2k.png", import.meta.url).href
|
|
183
|
+
: new URL("../../../assets/vfx/aura-vfx-1k.png", import.meta.url).href;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Per-system cache of sprite textures. `builtin(name)` and `texture(url)` start the load on first use and
|
|
187
|
+
* return null until the image is decoded (the batch keeps the analytic soft-dot meanwhile) or after the load
|
|
188
|
+
* failed (`onError` is called once per key; the batch stays on the soft-dot).
|
|
189
|
+
*/
|
|
190
|
+
export class VfxSpriteTextures {
|
|
191
|
+
loader;
|
|
192
|
+
pageSize;
|
|
193
|
+
onError;
|
|
194
|
+
pageUrl;
|
|
195
|
+
entries = new Map();
|
|
196
|
+
constructor(loader = browserVfxSpriteLoader, pageSize = 2048, onError, pageUrl = defaultVfxSpritePageUrl) {
|
|
197
|
+
this.loader = loader;
|
|
198
|
+
this.pageSize = pageSize;
|
|
199
|
+
this.onError = onError;
|
|
200
|
+
this.pageUrl = pageUrl;
|
|
201
|
+
}
|
|
202
|
+
/** Texture of a built-in sequence cropped from the tier page (premultiplied sRGB), or null while loading or failed. */
|
|
203
|
+
builtin(name) {
|
|
204
|
+
const layout = VFX_SPRITE_LAYOUT[name];
|
|
205
|
+
if (!layout)
|
|
206
|
+
return null;
|
|
207
|
+
return this.load(`vfx:${name}`, this.pageUrl(this.pageSize), vfxSpriteRect(layout, this.pageSize));
|
|
208
|
+
}
|
|
209
|
+
/** Whole-image texture of a texture asset (straight-alpha sRGB sheet), or null while loading or failed. */
|
|
210
|
+
texture(url) {
|
|
211
|
+
return this.load(`tex:${url}`, url, null);
|
|
212
|
+
}
|
|
213
|
+
/** Load state per key (`vfx:<name>` or `tex:<url>`). */
|
|
214
|
+
status() {
|
|
215
|
+
const out = {};
|
|
216
|
+
for (const [key, entry] of this.entries)
|
|
217
|
+
out[key] = entry.state;
|
|
218
|
+
return out;
|
|
219
|
+
}
|
|
220
|
+
/** Resolves once every load requested so far has settled (tests and receipts wait on it). */
|
|
221
|
+
async settled() {
|
|
222
|
+
await Promise.all([...this.entries.values()].map((entry) => entry.done));
|
|
223
|
+
}
|
|
224
|
+
load(key, url, rect) {
|
|
225
|
+
const existing = this.entries.get(key);
|
|
226
|
+
if (existing)
|
|
227
|
+
return existing.texture;
|
|
228
|
+
const entry = { state: "pending", texture: null, done: Promise.resolve() };
|
|
229
|
+
entry.done = this.loader(url, rect).then((image) => {
|
|
230
|
+
entry.texture = new Texture({
|
|
231
|
+
width: image.width,
|
|
232
|
+
height: image.height,
|
|
233
|
+
colorSpace: "srgb",
|
|
234
|
+
label: `a3d-vfx-sprite-${key}`,
|
|
235
|
+
...(image.source ? { source: image.source } : { data: image.data ?? new Uint8Array(image.width * image.height * 4) })
|
|
236
|
+
});
|
|
237
|
+
entry.state = "ready";
|
|
238
|
+
}, (error) => {
|
|
239
|
+
entry.state = "failed";
|
|
240
|
+
this.onError?.(key, error instanceof Error ? error.message : String(error));
|
|
241
|
+
});
|
|
242
|
+
this.entries.set(key, entry);
|
|
243
|
+
return null;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
82
246
|
//# sourceMappingURL=FlipbookAtlas.js.map
|