@forgeax/engine-render 0.1.3 → 0.1.6
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/README.md +130 -641
- package/dist/.tsbuildinfo +1 -1
- package/dist/__tests__/device-scope-lifecycle.unit.test.d.ts +2 -0
- package/dist/__tests__/device-scope-lifecycle.unit.test.d.ts.map +1 -0
- package/dist/__tests__/device-scope-stale-matrix.unit.test.d.ts +2 -0
- package/dist/__tests__/device-scope-stale-matrix.unit.test.d.ts.map +1 -0
- package/dist/__tests__/fullscreen-feature-plan.unit.test.d.ts +2 -0
- package/dist/__tests__/fullscreen-feature-plan.unit.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-driven-indirect-raster-evidence.d.ts.map +1 -1
- package/dist/__tests__/gpu-driven-view-gpu-evidence.d.ts +6 -0
- package/dist/__tests__/gpu-driven-view-gpu-evidence.d.ts.map +1 -1
- package/dist/{gpu-driven/view-reference.d.ts → __tests__/gpu-driven-view-reference.d.ts} +4 -4
- package/dist/__tests__/gpu-driven-view-reference.d.ts.map +1 -0
- package/dist/__tests__/gpu-scene-render-graph-gpu.d.ts.map +1 -1
- package/dist/__tests__/ibl/face-uniforms.unit.test.d.ts +2 -0
- package/dist/__tests__/ibl/face-uniforms.unit.test.d.ts.map +1 -0
- package/dist/__tests__/morph-feature-plan.unit.test.d.ts +2 -0
- package/dist/__tests__/morph-feature-plan.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-plan.test-d.d.ts +2 -0
- package/dist/__tests__/render-feature-plan.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-feature-plan.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-plan.unit.test.d.ts.map +1 -0
- package/dist/__tests__/ssao-config.unit.test.d.ts +2 -0
- package/dist/__tests__/ssao-config.unit.test.d.ts.map +1 -0
- package/dist/__tests__/standard-clustered-pipeline.unit.test.d.ts +2 -0
- package/dist/__tests__/standard-clustered-pipeline.unit.test.d.ts.map +1 -0
- package/dist/__tests__/standard-descriptors.test-d.d.ts +2 -0
- package/dist/__tests__/standard-descriptors.test-d.d.ts.map +1 -0
- package/dist/__tests__/standard-pipeline.dawn.test.d.ts +2 -0
- package/dist/__tests__/standard-pipeline.dawn.test.d.ts.map +1 -0
- package/dist/__tests__/standard-pipeline.integration.test.d.ts +2 -0
- package/dist/__tests__/standard-pipeline.integration.test.d.ts.map +1 -0
- package/dist/__tests__/standard-profile-oracle.unit.test.d.ts +2 -0
- package/dist/__tests__/standard-profile-oracle.unit.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-resource-short-circuit.unit.test.d.ts +2 -0
- package/dist/__tests__/visibility-resource-short-circuit.unit.test.d.ts.map +1 -0
- package/dist/{renderer/backend-selection.d.ts → assembly/backend-contract.d.ts} +15 -4
- package/dist/assembly/backend-contract.d.ts.map +1 -0
- package/dist/assembly/factory.d.ts +207 -0
- package/dist/assembly/factory.d.ts.map +1 -0
- package/dist/assembly/host-contract.d.ts +84 -0
- package/dist/assembly/host-contract.d.ts.map +1 -0
- package/dist/{renderer → assembly}/material/assembly.d.ts +1 -2
- package/dist/{renderer → assembly}/material/assembly.d.ts.map +1 -1
- package/dist/assembly/material/pipeline-projection.d.ts +30 -0
- package/dist/assembly/material/pipeline-projection.d.ts.map +1 -0
- package/dist/authoring.d.ts +10 -11
- package/dist/authoring.d.ts.map +1 -1
- package/dist/authoring.mjs +25 -3
- package/dist/authoring.mjs.map +1 -1
- package/dist/chunk-CQXZC5XI.mjs +182 -0
- package/dist/chunk-CQXZC5XI.mjs.map +1 -0
- package/dist/chunk-QC4VW3XJ.mjs +79 -0
- package/dist/chunk-QC4VW3XJ.mjs.map +1 -0
- package/dist/chunk-SCRSAK5B.mjs +480 -0
- package/dist/chunk-SCRSAK5B.mjs.map +1 -0
- package/dist/components/__tests__/schema-contract.unit.test.d.ts +2 -0
- package/dist/components/__tests__/schema-contract.unit.test.d.ts.map +1 -0
- package/dist/components/glyph-text.d.ts +1 -1
- package/dist/components/glyph-text.d.ts.map +1 -1
- package/dist/components/index.d.ts +2 -2
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/instances.d.ts +1 -1
- package/dist/components/instances.d.ts.map +1 -1
- package/dist/components/light-helpers.d.ts +1 -1
- package/dist/components/light-helpers.d.ts.map +1 -1
- package/dist/components/mesh-filter.d.ts +7 -7
- package/dist/components/mesh-filter.d.ts.map +1 -1
- package/dist/components/scene-instance.d.ts +11 -11
- package/dist/components/skybox-background.d.ts +56 -0
- package/dist/components/skybox-background.d.ts.map +1 -0
- package/dist/components/skylight.d.ts +55 -0
- package/dist/components/skylight.d.ts.map +1 -0
- package/dist/components/sprite-animation.d.ts +2 -3
- package/dist/components/sprite-animation.d.ts.map +1 -1
- package/dist/components/sprite-instances.d.ts +1 -1
- package/dist/components/sprite-playback-mode.d.ts +6 -1
- package/dist/components/sprite-playback-mode.d.ts.map +1 -1
- package/dist/components/sprite-region-override.d.ts +2 -3
- package/dist/components/sprite-region-override.d.ts.map +1 -1
- package/dist/components/tile-layer.d.ts +5 -0
- package/dist/components/tile-layer.d.ts.map +1 -1
- package/dist/construct-renderer.d.ts +18 -1
- package/dist/construct-renderer.d.ts.map +1 -1
- package/dist/construct-renderer.mjs +27008 -4
- package/dist/construct-renderer.mjs.map +1 -1
- package/dist/debug-draw-glue.d.ts +2 -53
- package/dist/debug-draw-glue.d.ts.map +1 -1
- package/dist/device/device-scope.d.ts +83 -0
- package/dist/device/device-scope.d.ts.map +1 -0
- package/dist/{gpu-resource-store.d.ts → device/gpu-residency.d.ts} +91 -48
- package/dist/device/gpu-residency.d.ts.map +1 -0
- package/dist/device/resource-types.d.ts +8 -0
- package/dist/device/resource-types.d.ts.map +1 -0
- package/dist/engine-metrics.d.ts +2 -2
- package/dist/engine-metrics.d.ts.map +1 -1
- package/dist/errors/recover.d.ts +28 -1
- package/dist/errors/recover.d.ts.map +1 -1
- package/dist/errors/render.d.ts +249 -258
- package/dist/errors/render.d.ts.map +1 -1
- package/dist/features/fullscreen.d.ts +19 -0
- package/dist/features/fullscreen.d.ts.map +1 -0
- package/dist/features/host.d.ts +32 -26
- package/dist/features/host.d.ts.map +1 -1
- package/dist/features/morph/morph-feature.d.ts +39 -5
- package/dist/features/morph/morph-feature.d.ts.map +1 -1
- package/dist/features/plan.d.ts +182 -0
- package/dist/features/plan.d.ts.map +1 -0
- package/dist/features/prepared-gpu-work.d.ts +21 -17
- package/dist/features/prepared-gpu-work.d.ts.map +1 -1
- package/dist/features/prepared-graphics-store.d.ts +2 -1
- package/dist/features/prepared-graphics-store.d.ts.map +1 -1
- package/dist/features/prepared-graphics.d.ts +11 -21
- package/dist/features/prepared-graphics.d.ts.map +1 -1
- package/dist/features/render-graph-compute.d.ts +2 -2
- package/dist/features/render-graph-compute.d.ts.map +1 -1
- package/dist/features/render-graph-contribution.d.ts +4 -7
- package/dist/features/render-graph-contribution.d.ts.map +1 -1
- package/dist/features/render-graph-raster.d.ts +2 -2
- package/dist/features/render-graph-raster.d.ts.map +1 -1
- package/dist/features/render-graph-resources.d.ts +6 -6
- package/dist/features/render-graph-resources.d.ts.map +1 -1
- package/dist/features/targets.d.ts +5 -5
- package/dist/features/targets.d.ts.map +1 -1
- package/dist/features/types.d.ts +11 -190
- package/dist/features/types.d.ts.map +1 -1
- package/dist/features/vocabulary.d.ts +14 -0
- package/dist/features/vocabulary.d.ts.map +1 -0
- package/dist/fullscreen-post-process-pass.d.ts +4 -25
- package/dist/fullscreen-post-process-pass.d.ts.map +1 -1
- package/dist/glyph-text-layout-system.d.ts +3 -2
- package/dist/glyph-text-layout-system.d.ts.map +1 -1
- package/dist/gpu-driven/batch-topology.d.ts +6 -75
- package/dist/gpu-driven/batch-topology.d.ts.map +1 -1
- package/dist/gpu-driven/production-raster.d.ts +13 -112
- package/dist/gpu-driven/production-raster.d.ts.map +1 -1
- package/dist/gpu-driven/view-gpu.d.ts +10 -66
- package/dist/gpu-driven/view-gpu.d.ts.map +1 -1
- package/dist/gpu-resource.d.ts +3 -3
- package/dist/gpu-scene-schema.d.ts +1 -94
- package/dist/gpu-scene-schema.d.ts.map +1 -1
- package/dist/gpu-scene.d.ts +7 -33
- package/dist/gpu-scene.d.ts.map +1 -1
- package/dist/hdrp-buffers.d.ts +3 -53
- package/dist/hdrp-buffers.d.ts.map +1 -1
- package/dist/ibl/IblPipelineCache.d.ts +74 -180
- package/dist/ibl/IblPipelineCache.d.ts.map +1 -1
- package/dist/ibl/skylight-bind-group.d.ts +1 -1
- package/dist/index.d.ts +13 -43
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +165 -3
- package/dist/index.mjs.map +1 -1
- package/dist/inspection-types.d.ts +69 -0
- package/dist/inspection-types.d.ts.map +1 -0
- package/dist/instance-buffer-cache.d.ts +1 -4
- package/dist/instance-buffer-cache.d.ts.map +1 -1
- package/dist/internal.d.ts +1 -73
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.mjs +1 -43
- package/dist/internal.mjs.map +1 -1
- package/dist/lifecycle.d.ts +36 -2
- package/dist/lifecycle.d.ts.map +1 -1
- package/dist/materials.d.ts +0 -3
- package/dist/materials.d.ts.map +1 -1
- package/dist/mesh-material-bindings.d.ts +0 -1
- package/dist/mesh-material-bindings.d.ts.map +1 -1
- package/dist/pbr-pipeline.d.ts +75 -29
- package/dist/pbr-pipeline.d.ts.map +1 -1
- package/dist/pipeline/standard-forward-lane.d.ts +5 -0
- package/dist/pipeline/standard-forward-lane.d.ts.map +1 -0
- package/dist/pipeline/standard-pipeline.d.ts +31 -0
- package/dist/pipeline/standard-pipeline.d.ts.map +1 -0
- package/dist/pipeline/standard-profile.d.ts +40 -0
- package/dist/pipeline/standard-profile.d.ts.map +1 -0
- package/dist/pipeline-builder.d.ts +3 -3
- package/dist/pipeline-builder.d.ts.map +1 -1
- package/dist/pipeline-spec-types.d.ts +24 -0
- package/dist/pipeline-spec-types.d.ts.map +1 -0
- package/dist/pipeline-spec.d.ts +16 -155
- package/dist/pipeline-spec.d.ts.map +1 -1
- package/dist/plugin.d.ts +1 -14
- package/dist/plugin.d.ts.map +1 -1
- package/dist/post-process-errors.d.ts +18 -18
- package/dist/post-process-errors.d.ts.map +1 -1
- package/dist/prepare/prepared-graphics-resolver.d.ts +2 -5
- package/dist/prepare/prepared-graphics-resolver.d.ts.map +1 -1
- package/dist/record/__tests__/typed-frame-graph-plan.unit.test.d.ts +2 -0
- package/dist/record/__tests__/typed-frame-graph-plan.unit.test.d.ts.map +1 -0
- package/dist/record/frame-lighting.d.ts +7 -73
- package/dist/record/frame-lighting.d.ts.map +1 -1
- package/dist/record/frame-snapshot.d.ts +44 -44
- package/dist/record/frame-snapshot.d.ts.map +1 -1
- package/dist/record/frame-targets.d.ts +5 -38
- package/dist/record/frame-targets.d.ts.map +1 -1
- package/dist/record/frame.d.ts +64 -52
- package/dist/record/frame.d.ts.map +1 -1
- package/dist/record/helpers.d.ts +3 -2
- package/dist/record/helpers.d.ts.map +1 -1
- package/dist/record/main-pass-geometry.d.ts +5 -4
- package/dist/record/main-pass-geometry.d.ts.map +1 -1
- package/dist/record/main-pass-material.d.ts +90 -59
- package/dist/record/main-pass-material.d.ts.map +1 -1
- package/dist/record/main-pass-sprite-draws.d.ts +28 -3
- package/dist/record/main-pass-sprite-draws.d.ts.map +1 -1
- package/dist/record/main-pass.d.ts +1 -1
- package/dist/record/main-pass.d.ts.map +1 -1
- package/dist/record/mesh-ssbo.d.ts +276 -3
- package/dist/record/mesh-ssbo.d.ts.map +1 -1
- package/dist/record/render-context.d.ts +235 -0
- package/dist/record/render-context.d.ts.map +1 -0
- package/dist/record/shadow-pass.d.ts +15 -88
- package/dist/record/shadow-pass.d.ts.map +1 -1
- package/dist/record/skybox-post-pass.d.ts +1 -1
- package/dist/record/skybox-post-pass.d.ts.map +1 -1
- package/dist/record/typed-frame-graph.d.ts +29 -7
- package/dist/record/typed-frame-graph.d.ts.map +1 -1
- package/dist/record/view-ubo.d.ts +3 -3
- package/dist/record/view-ubo.d.ts.map +1 -1
- package/dist/render-contract.d.ts +416 -0
- package/dist/render-contract.d.ts.map +1 -0
- package/dist/render-data.d.ts.map +1 -1
- package/dist/render-graph-primitives.d.ts +14 -362
- package/dist/render-graph-primitives.d.ts.map +1 -1
- package/dist/render-pipeline.d.ts +25 -64
- package/dist/render-pipeline.d.ts.map +1 -1
- package/dist/render-system-extract.d.ts +107 -338
- package/dist/render-system-extract.d.ts.map +1 -1
- package/dist/render-system.d.ts +21 -713
- package/dist/render-system.d.ts.map +1 -1
- package/dist/scene/render-scene-types.d.ts +58 -0
- package/dist/scene/render-scene-types.d.ts.map +1 -0
- package/dist/scene/render-scene.d.ts +105 -0
- package/dist/scene/render-scene.d.ts.map +1 -0
- package/dist/scene-instances/post-spawn-resolve-joints.d.ts +2 -5
- package/dist/scene-instances/post-spawn-resolve-joints.d.ts.map +1 -1
- package/dist/ssao-buffers.d.ts +22 -3
- package/dist/ssao-buffers.d.ts.map +1 -1
- package/dist/systems/skin-palette-allocator.d.ts +2 -4
- package/dist/systems/skin-palette-allocator.d.ts.map +1 -1
- package/dist/systems/skin-palette-types.d.ts +14 -0
- package/dist/systems/skin-palette-types.d.ts.map +1 -0
- package/dist/systems/transparent-sort-config.d.ts +23 -2
- package/dist/systems/transparent-sort-config.d.ts.map +1 -1
- package/dist/tilemap-chunk-extract-system.d.ts +4 -3
- package/dist/tilemap-chunk-extract-system.d.ts.map +1 -1
- package/dist/typed-render-graph-primitives.d.ts +2 -4
- package/dist/typed-render-graph-primitives.d.ts.map +1 -1
- package/dist/typed-shadow-passes.d.ts +3 -3
- package/dist/typed-shadow-passes.d.ts.map +1 -1
- package/package.json +23 -23
- package/src/__tests__/backend-selection-rhi-capture.test-d.ts +1 -1
- package/src/__tests__/callback-inference.test-d.ts +6 -3
- package/src/__tests__/cluster-grid-default-surface.unit.test.ts +7 -4
- package/src/__tests__/construct-renderer-identity.unit.test.ts +15 -2
- package/src/__tests__/device-scope-lifecycle.unit.test.ts +151 -0
- package/src/__tests__/device-scope-stale-matrix.unit.test.ts +42 -0
- package/src/__tests__/direct-extract-consumer-contract.test-d.ts +8 -19
- package/src/__tests__/direct-light-snapshot.unit.test.ts +3 -13
- package/src/__tests__/factory-contract.integration.test.ts +158 -209
- package/src/__tests__/fallback-row-stride-surface.unit.test.ts +1 -4
- package/src/__tests__/frame-observation.contract.test.ts +17 -8
- package/src/__tests__/fullscreen-feature-plan.unit.test.ts +32 -0
- package/src/__tests__/glyph-text-layout-recovery.unit.test.ts +6 -11
- package/src/__tests__/gpu-driven-indirect-raster-evidence.ts +9 -16
- package/src/__tests__/gpu-driven-production.integration.test.ts +32 -205
- package/src/__tests__/gpu-driven-scaling.unit.test.ts +4 -7
- package/src/__tests__/gpu-driven-view-gpu-evidence.ts +87 -8
- package/src/__tests__/gpu-driven-view-graph.integration.test.ts +170 -8
- package/src/{gpu-driven/view-reference.ts → __tests__/gpu-driven-view-reference.ts} +4 -3
- package/src/__tests__/gpu-driven-view.browser.test.ts +12 -1
- package/src/__tests__/gpu-driven-view.dawn.test.ts +12 -1
- package/src/__tests__/gpu-driven-view.unit.test.ts +11 -267
- package/src/__tests__/gpu-resource-store-stride.unit.test.ts +3 -3
- package/src/__tests__/gpu-scene-render-graph-gpu.ts +2 -3
- package/src/__tests__/gpu-scene.dawn.test.ts +2 -6
- package/src/__tests__/gpu-scene.unit.test.ts +10 -24
- package/src/__tests__/ibl/face-uniforms.unit.test.ts +46 -0
- package/src/__tests__/infinite-grid-no-vertex-probe.unit.test.ts +34 -66
- package/src/__tests__/ktx2-basis-gpu-consumer.dawn.test.ts +14 -5
- package/src/__tests__/light-buffer-layout.unit.test.ts +4 -49
- package/src/__tests__/material-cooked-projection.unit.test.ts +2 -51
- package/src/__tests__/material-snapshot-mutation.integration.test.ts +10 -15
- package/src/__tests__/material-static-dynamic-route.unit.test.ts +4 -23
- package/src/__tests__/material-stride-surface.unit.test.ts +2 -2
- package/src/__tests__/mesh-buffer-usage-surface.unit.test.ts +7 -8
- package/src/__tests__/morph-culling-reentry.dawn.test.ts +29 -38
- package/src/__tests__/morph-feature-gpu-work.integration.test.ts +45 -43
- package/src/__tests__/morph-feature-plan.unit.test.ts +53 -0
- package/src/__tests__/morph-visual-evidence.integration.test.ts +47 -33
- package/src/__tests__/nineslice-handle-surface.unit.test.ts +11 -6
- package/src/__tests__/post-process-error-policy-owner.unit.test.ts +6 -13
- package/src/__tests__/prepared-graphics-capability.unit.test.ts +6 -81
- package/src/__tests__/prepared-graphics-generation.unit.test.ts +3 -17
- package/src/__tests__/prepared-graphics-lifecycle.unit.test.ts +6 -74
- package/src/__tests__/prepared-graphics-resolver.unit.test.ts +1 -3
- package/src/__tests__/prepared-graphics-snapshot.unit.test.ts +2 -2
- package/src/__tests__/profiler-default-off.test.ts +1 -1
- package/src/__tests__/profiler-phase-catalog.test.ts +2 -2
- package/src/__tests__/profiler-phase-integration.test.ts +5 -13
- package/src/__tests__/profiler-phase-token.test.ts +3 -8
- package/src/__tests__/public-surface.test-d.ts +65 -3
- package/src/__tests__/recover-error-policy-owner.unit.test.ts +1 -21
- package/src/__tests__/render-error-code-owner.test-d.ts +18 -23
- package/src/__tests__/render-error-detail-ssot.test-d.ts +0 -95
- package/src/__tests__/render-error-exhaustive.test-d.ts +8 -1
- package/src/__tests__/render-feature-assembly.test-d.ts +8 -16
- package/src/__tests__/render-feature-context.test-d.ts +16 -40
- package/src/__tests__/render-feature-contract.test-d.ts +9 -18
- package/src/__tests__/render-feature-diagnostics.unit.test.ts +6 -8
- package/src/__tests__/render-feature-docs.unit.test.ts +8 -7
- package/src/__tests__/render-feature-gpu-work.integration.test.ts +14 -75
- package/src/__tests__/render-feature-plan.test-d.ts +161 -0
- package/src/__tests__/render-feature-plan.unit.test.ts +170 -0
- package/src/__tests__/render-feature-prepared-diagnostics.unit.test.ts +8 -19
- package/src/__tests__/render-feature-prepared-errors.test-d.ts +3 -6
- package/src/__tests__/render-feature-prepared-graphics-docs.unit.test.ts +10 -71
- package/src/__tests__/render-feature-prepared-graphics-isolation.unit.test.ts +11 -61
- package/src/__tests__/render-feature-prepared-graphics-negative.test-d.ts +20 -43
- package/src/__tests__/render-feature-prepared-graphics.test-d.ts +56 -78
- package/src/__tests__/render-feature-public-surface.test-d.ts +6 -24
- package/src/__tests__/render-feature-retry.unit.test.ts +7 -48
- package/src/__tests__/render-feature-scheduling.unit.test.ts +15 -27
- package/src/__tests__/render-feature-stage-failed-policy-owner.unit.test.ts +0 -9
- package/src/__tests__/render-feature-stage-fault-recovery.unit.test.ts +19 -109
- package/src/__tests__/render-feature-visibility-context.test-d.ts +1 -6
- package/src/__tests__/render-feature-visibility-context.unit.test.ts +1 -2
- package/src/__tests__/render-feature-zero-work.unit.test.ts +14 -20
- package/src/__tests__/render-scene-projection.unit.test.ts +73 -111
- package/src/__tests__/renderer-factory-material-contract.unit.test.ts +46 -50
- package/src/__tests__/renderer-lifecycle.integration.test.ts +49 -1
- package/src/__tests__/shader-stage-surface.unit.test.ts +14 -9
- package/src/__tests__/ssao-config.unit.test.ts +36 -0
- package/src/__tests__/ssao-kernel-surface.unit.test.ts +4 -5
- package/src/__tests__/standard-clustered-pipeline.unit.test.ts +28 -0
- package/src/__tests__/standard-descriptors.test-d.ts +22 -0
- package/src/__tests__/standard-pipeline.dawn.test.ts +61 -0
- package/src/__tests__/standard-pipeline.integration.test.ts +124 -0
- package/src/__tests__/standard-profile-oracle.unit.test.ts +62 -0
- package/src/__tests__/surface-configuration.unit.test.ts +1 -2
- package/src/__tests__/texture-usage-surface.unit.test.ts +3 -6
- package/src/__tests__/typed-pipeline-topology.unit.test.ts +40 -206
- package/src/__tests__/urp-pipeline-targets.unit.test.ts +1 -11
- package/src/__tests__/urp-pipeline.unit.test.ts +2 -2
- package/src/__tests__/vertex-color-pipeline.unit.test.ts +10 -2
- package/src/__tests__/vertex-layout-consumer.unit.test.ts +1 -1
- package/src/__tests__/visibility-diagnostics.integration.test.ts +7 -11
- package/src/__tests__/visibility-extract.integration.test.ts +20 -11
- package/src/__tests__/visibility-extract.perf.test.ts +66 -32
- package/src/__tests__/visibility-feature-dedup.integration.test.ts +2 -4
- package/src/__tests__/visibility-hidden-report.unit.test.ts +1 -2
- package/src/__tests__/visibility-instances.integration.test.ts +7 -11
- package/src/__tests__/visibility-multi-world.integration.test.ts +38 -6
- package/src/__tests__/visibility-producer-matrix.integration.test.ts +18 -41
- package/src/__tests__/visibility-public-surface.test-d.ts +10 -9
- package/src/__tests__/visibility-resolver.unit.test.ts +2 -1
- package/src/__tests__/visibility-resource-short-circuit.unit.test.ts +80 -0
- package/src/__tests__/visibility-snapshot-contract.unit.test.ts +2 -1
- package/src/__tests__/vocabulary.unit.test.ts +1 -1
- package/src/assembly/backend-contract.ts +57 -0
- package/src/{renderer/renderer-factory.ts → assembly/factory.ts} +1709 -2693
- package/src/assembly/host-contract.ts +101 -0
- package/src/{renderer → assembly}/material/assembly.ts +1 -3
- package/src/assembly/material/pipeline-projection.ts +63 -0
- package/src/authoring.ts +14 -22
- package/src/components/__tests__/schema-contract.unit.test.ts +10 -0
- package/src/components/glyph-text.ts +3 -2
- package/src/components/index.ts +7 -9
- package/src/components/instances.ts +4 -5
- package/src/components/light-helpers.ts +1 -1
- package/src/components/mesh-filter.ts +11 -10
- package/src/components/post-process-params.ts +3 -3
- package/src/components/scene-instance.ts +12 -12
- package/src/components/skybox-background.ts +103 -0
- package/src/components/{environment.ts → skylight.ts} +2 -111
- package/src/components/sprite-animation.ts +3 -4
- package/src/components/sprite-instances.ts +2 -2
- package/src/components/sprite-playback-mode.ts +7 -1
- package/src/components/sprite-region-override.ts +2 -3
- package/src/components/tile-layer.ts +8 -2
- package/src/construct-renderer.ts +67 -4
- package/src/debug-draw-glue.ts +8 -129
- package/src/device/device-scope.ts +306 -0
- package/src/{gpu-resource-store.ts → device/gpu-residency.ts} +540 -639
- package/src/device/resource-types.ts +20 -0
- package/src/engine-metrics.ts +12 -19
- package/src/errors/recover.ts +45 -3
- package/src/errors/render.ts +357 -460
- package/src/features/fullscreen.ts +46 -0
- package/src/features/host.ts +575 -309
- package/src/features/morph/morph-feature.ts +195 -105
- package/src/features/plan.ts +447 -0
- package/src/features/prepared-gpu-work.ts +72 -15
- package/src/features/prepared-graphics-store.ts +20 -6
- package/src/features/prepared-graphics.ts +12 -71
- package/src/features/render-graph-compute.ts +14 -5
- package/src/features/render-graph-contribution.ts +43 -63
- package/src/features/render-graph-raster.ts +11 -6
- package/src/features/render-graph-resources.ts +25 -23
- package/src/features/targets.ts +8 -21
- package/src/features/types.ts +39 -227
- package/src/features/vocabulary.ts +24 -0
- package/src/fullscreen-post-process-pass.ts +14 -57
- package/src/glyph-text-layout-system.ts +70 -96
- package/src/gpu-driven/batch-topology.ts +24 -202
- package/src/gpu-driven/production-raster.ts +93 -1108
- package/src/gpu-driven/view-gpu.ts +46 -192
- package/src/gpu-resource.ts +4 -4
- package/src/gpu-scene-schema.ts +11 -99
- package/src/gpu-scene.ts +231 -364
- package/src/hdrp-buffers.ts +12 -221
- package/src/ibl/IblPipelineCache.ts +471 -711
- package/src/ibl/skylight-bind-group.ts +4 -4
- package/src/index.ts +58 -217
- package/src/inspection-types.ts +76 -0
- package/src/instance-buffer-cache.ts +1 -29
- package/src/internal.ts +6 -85
- package/src/lifecycle.ts +64 -19
- package/src/materials.ts +7 -29
- package/src/mesh-material-bindings.ts +0 -1
- package/src/pbr-pipeline.ts +434 -53
- package/src/{urp-pipeline.ts → pipeline/standard-forward-lane.ts} +38 -149
- package/src/{hdrp-pipeline.ts → pipeline/standard-pipeline.ts} +221 -191
- package/src/pipeline/standard-profile.ts +65 -0
- package/src/pipeline-builder.ts +60 -64
- package/src/pipeline-spec-types.ts +28 -0
- package/src/pipeline-spec.ts +72 -609
- package/src/plugin.ts +3 -75
- package/src/post-process-errors.ts +31 -33
- package/src/prepare/prepared-graphics-resolver.ts +5 -4
- package/src/record/__tests__/material-slot-plan.unit.test.ts +1 -33
- package/src/record/__tests__/typed-frame-graph-plan.unit.test.ts +41 -0
- package/src/record/__tests__/video-texture-view.unit.test.ts +1 -1
- package/src/record/frame-lighting.ts +74 -195
- package/src/record/frame-snapshot.ts +45 -60
- package/src/record/frame-targets.ts +8 -243
- package/src/record/frame.ts +509 -796
- package/src/record/helpers.ts +6 -11
- package/src/record/main-pass-geometry.ts +106 -147
- package/src/record/main-pass-material.ts +517 -190
- package/src/record/main-pass-sprite-draws.ts +198 -117
- package/src/record/main-pass.ts +162 -143
- package/src/record/mesh-ssbo.ts +517 -38
- package/src/record/render-context.ts +364 -0
- package/src/record/shadow-pass.ts +138 -1838
- package/src/record/skybox-post-pass.ts +12 -14
- package/src/record/typed-frame-graph.ts +215 -254
- package/src/record/view-ubo.ts +6 -37
- package/src/render-contract.ts +571 -0
- package/src/render-data.ts +3 -3
- package/src/render-graph-primitives.ts +76 -851
- package/src/render-pipeline.ts +104 -188
- package/src/render-system-extract.ts +1048 -1729
- package/src/render-system.ts +330 -1957
- package/src/scene/render-scene-types.ts +64 -0
- package/src/scene/render-scene.ts +1032 -0
- package/src/scene-instances/post-spawn-resolve-joints.ts +4 -7
- package/src/ssao-buffers.ts +167 -8
- package/src/systems/skin-palette-allocator.ts +21 -64
- package/src/systems/skin-palette-types.ts +14 -0
- package/src/systems/transparent-sort-config.ts +25 -3
- package/src/tilemap-chunk-extract-system.ts +53 -70
- package/src/typed-render-graph-primitives.ts +35 -24
- package/src/typed-shadow-passes.ts +26 -56
- package/dist/__tests__/analytic-sky-contract.test.d.ts +0 -2
- package/dist/__tests__/analytic-sky-contract.test.d.ts.map +0 -1
- package/dist/__tests__/analytic-sky-falsify.test.d.ts +0 -2
- package/dist/__tests__/analytic-sky-falsify.test.d.ts.map +0 -1
- package/dist/__tests__/assets-runtime-handoff.integration.test.d.ts +0 -2
- package/dist/__tests__/assets-runtime-handoff.integration.test.d.ts.map +0 -1
- package/dist/__tests__/backend-selection.integration.test.d.ts +0 -2
- package/dist/__tests__/backend-selection.integration.test.d.ts.map +0 -1
- package/dist/__tests__/camera-temporal.test-d.d.ts +0 -2
- package/dist/__tests__/camera-temporal.test-d.d.ts.map +0 -1
- package/dist/__tests__/camera-temporal.test.d.ts +0 -2
- package/dist/__tests__/camera-temporal.test.d.ts.map +0 -1
- package/dist/__tests__/directional-shadow-probe-atlas-layout.unit.test.d.ts +0 -2
- package/dist/__tests__/directional-shadow-probe-atlas-layout.unit.test.d.ts.map +0 -1
- package/dist/__tests__/environment-inspection.test.d.ts +0 -2
- package/dist/__tests__/environment-inspection.test.d.ts.map +0 -1
- package/dist/__tests__/fog-ai-user.fixture.d.ts +0 -2
- package/dist/__tests__/fog-ai-user.fixture.d.ts.map +0 -1
- package/dist/__tests__/fog-custom-render-feature.fixture.d.ts +0 -16
- package/dist/__tests__/fog-custom-render-feature.fixture.d.ts.map +0 -1
- package/dist/__tests__/fog-custom-render-feature.integration.test.d.ts +0 -2
- package/dist/__tests__/fog-custom-render-feature.integration.test.d.ts.map +0 -1
- package/dist/__tests__/fog-inspection.integration.test.d.ts +0 -2
- package/dist/__tests__/fog-inspection.integration.test.d.ts.map +0 -1
- package/dist/__tests__/fog-owner-state.integration.test.d.ts +0 -2
- package/dist/__tests__/fog-owner-state.integration.test.d.ts.map +0 -1
- package/dist/__tests__/fog-pipeline-topology.integration.test.d.ts +0 -2
- package/dist/__tests__/fog-pipeline-topology.integration.test.d.ts.map +0 -1
- package/dist/__tests__/fog-public-surface.integration.test.d.ts +0 -2
- package/dist/__tests__/fog-public-surface.integration.test.d.ts.map +0 -1
- package/dist/__tests__/fog-ray-contract.integration.test.d.ts +0 -2
- package/dist/__tests__/fog-ray-contract.integration.test.d.ts.map +0 -1
- package/dist/__tests__/fog-source-absence.integration.test.d.ts +0 -2
- package/dist/__tests__/fog-source-absence.integration.test.d.ts.map +0 -1
- package/dist/__tests__/fog-temporal.integration.test.d.ts +0 -2
- package/dist/__tests__/fog-temporal.integration.test.d.ts.map +0 -1
- package/dist/__tests__/frame-chain.unit.test.d.ts +0 -2
- package/dist/__tests__/frame-chain.unit.test.d.ts.map +0 -1
- package/dist/__tests__/gpu-scene-field-type-owner.test-d.d.ts +0 -2
- package/dist/__tests__/gpu-scene-field-type-owner.test-d.d.ts.map +0 -1
- package/dist/__tests__/hdrp-pipeline.unit.test.d.ts +0 -2
- package/dist/__tests__/hdrp-pipeline.unit.test.d.ts.map +0 -1
- package/dist/__tests__/ibl/ibl-fallback.unit.test.d.ts +0 -2
- package/dist/__tests__/ibl/ibl-fallback.unit.test.d.ts.map +0 -1
- package/dist/__tests__/material-derived-error-stop-draw.integration.test.d.ts +0 -2
- package/dist/__tests__/material-derived-error-stop-draw.integration.test.d.ts.map +0 -1
- package/dist/__tests__/material-derived-payload.integration.test.d.ts +0 -2
- package/dist/__tests__/material-derived-payload.integration.test.d.ts.map +0 -1
- package/dist/__tests__/materials.unit.test.d.ts +0 -2
- package/dist/__tests__/materials.unit.test.d.ts.map +0 -1
- package/dist/__tests__/param-schema-projection-census.unit.test.d.ts +0 -2
- package/dist/__tests__/param-schema-projection-census.unit.test.d.ts.map +0 -1
- package/dist/__tests__/persistent-render-scene.unit.test.d.ts +0 -2
- package/dist/__tests__/persistent-render-scene.unit.test.d.ts.map +0 -1
- package/dist/__tests__/pipeline-error-policy-owner.unit.test.d.ts +0 -2
- package/dist/__tests__/pipeline-error-policy-owner.unit.test.d.ts.map +0 -1
- package/dist/__tests__/pipeline-pass-trace.test.d.ts +0 -2
- package/dist/__tests__/pipeline-pass-trace.test.d.ts.map +0 -1
- package/dist/__tests__/pipeline-stage-owner.test-d.d.ts +0 -2
- package/dist/__tests__/pipeline-stage-owner.test-d.d.ts.map +0 -1
- package/dist/__tests__/plugin.test.d.ts +0 -2
- package/dist/__tests__/plugin.test.d.ts.map +0 -1
- package/dist/__tests__/prepared-graphics-backend-matrix.unit.test.d.ts +0 -2
- package/dist/__tests__/prepared-graphics-backend-matrix.unit.test.d.ts.map +0 -1
- package/dist/__tests__/prepared-graphics-resolver-recording.unit.test.d.ts +0 -2
- package/dist/__tests__/prepared-graphics-resolver-recording.unit.test.d.ts.map +0 -1
- package/dist/__tests__/public-pipeline-id.test-d.d.ts +0 -2
- package/dist/__tests__/public-pipeline-id.test-d.d.ts.map +0 -1
- package/dist/__tests__/render-dispatch-membership.unit.test.d.ts +0 -2
- package/dist/__tests__/render-dispatch-membership.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-construction.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-construction.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-error-code-owner.test-d.d.ts +0 -2
- package/dist/__tests__/render-feature-error-code-owner.test-d.d.ts.map +0 -1
- package/dist/__tests__/render-feature-gpu-buffer-usage-owner.test-d.d.ts +0 -2
- package/dist/__tests__/render-feature-gpu-buffer-usage-owner.test-d.d.ts.map +0 -1
- package/dist/__tests__/render-feature-graph.integration.test.d.ts +0 -2
- package/dist/__tests__/render-feature-graph.integration.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-graphics-staging.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-graphics-staging.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-order.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-order.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-prepared-graphics-recording.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-prepared-graphics-recording.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-staging.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-staging.unit.test.d.ts.map +0 -1
- package/dist/__tests__/renderer-render-scene-public.test-d.d.ts +0 -2
- package/dist/__tests__/renderer-render-scene-public.test-d.d.ts.map +0 -1
- package/dist/__tests__/scene-temporal-coverage.unit.test.d.ts +0 -2
- package/dist/__tests__/scene-temporal-coverage.unit.test.d.ts.map +0 -1
- package/dist/__tests__/sun-snapshot-consumers.test.d.ts +0 -2
- package/dist/__tests__/sun-snapshot-consumers.test.d.ts.map +0 -1
- package/dist/__tests__/surface-backend-kind-owner.test-d.d.ts +0 -2
- package/dist/__tests__/surface-backend-kind-owner.test-d.d.ts.map +0 -1
- package/dist/__tests__/taa-history-store.unit.test.d.ts +0 -2
- package/dist/__tests__/taa-history-store.unit.test.d.ts.map +0 -1
- package/dist/__tests__/temporal-frame-transaction.integration.test.d.ts +0 -2
- package/dist/__tests__/temporal-frame-transaction.integration.test.d.ts.map +0 -1
- package/dist/__tests__/temporal-inspection.unit.test.d.ts +0 -2
- package/dist/__tests__/temporal-inspection.unit.test.d.ts.map +0 -1
- package/dist/assets/__tests__/asset-decoders.unit.test.d.ts +0 -2
- package/dist/assets/__tests__/asset-decoders.unit.test.d.ts.map +0 -1
- package/dist/assets/__tests__/mipmap-generator.unit.test.d.ts +0 -2
- package/dist/assets/__tests__/mipmap-generator.unit.test.d.ts.map +0 -1
- package/dist/assets/__tests__/render-asset-port.unit.test.d.ts +0 -2
- package/dist/assets/__tests__/render-asset-port.unit.test.d.ts.map +0 -1
- package/dist/assets/__tests__/resolve-render-asset.unit.test.d.ts +0 -2
- package/dist/assets/__tests__/resolve-render-asset.unit.test.d.ts.map +0 -1
- package/dist/chunk-33UF5SAO.mjs +0 -7397
- package/dist/chunk-33UF5SAO.mjs.map +0 -1
- package/dist/chunk-A5QCJSNL.mjs +0 -29913
- package/dist/chunk-A5QCJSNL.mjs.map +0 -1
- package/dist/chunk-JMSB7AR4.mjs +0 -3
- package/dist/chunk-JMSB7AR4.mjs.map +0 -1
- package/dist/chunk-LXNGO6AO.mjs +0 -569
- package/dist/chunk-LXNGO6AO.mjs.map +0 -1
- package/dist/chunk-QRXPSX4X.mjs +0 -659
- package/dist/chunk-QRXPSX4X.mjs.map +0 -1
- package/dist/chunk-YAKEQPWO.mjs +0 -1439
- package/dist/chunk-YAKEQPWO.mjs.map +0 -1
- package/dist/components/__tests__/atmosphere-red.test.d.ts +0 -2
- package/dist/components/__tests__/atmosphere-red.test.d.ts.map +0 -1
- package/dist/components/__tests__/atmosphere.test.d.ts +0 -2
- package/dist/components/__tests__/atmosphere.test.d.ts.map +0 -1
- package/dist/components/__tests__/fog.test-d.d.ts +0 -2
- package/dist/components/__tests__/fog.test-d.d.ts.map +0 -1
- package/dist/components/__tests__/fog.test.d.ts +0 -2
- package/dist/components/__tests__/fog.test.d.ts.map +0 -1
- package/dist/components/atmosphere.d.ts +0 -18
- package/dist/components/atmosphere.d.ts.map +0 -1
- package/dist/components/environment.d.ts +0 -116
- package/dist/components/environment.d.ts.map +0 -1
- package/dist/deferred-lighting.d.ts +0 -13
- package/dist/deferred-lighting.d.ts.map +0 -1
- package/dist/dynamic-texture-store.d.ts +0 -42
- package/dist/dynamic-texture-store.d.ts.map +0 -1
- package/dist/environment/__tests__/failure-injection.test.d.ts +0 -2
- package/dist/environment/__tests__/failure-injection.test.d.ts.map +0 -1
- package/dist/environment/__tests__/generation-red.test.d.ts +0 -2
- package/dist/environment/__tests__/generation-red.test.d.ts.map +0 -1
- package/dist/environment/__tests__/generation.test.d.ts +0 -2
- package/dist/environment/__tests__/generation.test.d.ts.map +0 -1
- package/dist/environment/__tests__/graph-transaction.test.d.ts +0 -2
- package/dist/environment/__tests__/graph-transaction.test.d.ts.map +0 -1
- package/dist/environment/__tests__/inspection-red.test.d.ts +0 -2
- package/dist/environment/__tests__/inspection-red.test.d.ts.map +0 -1
- package/dist/environment/__tests__/lifecycle-evidence.test.d.ts +0 -2
- package/dist/environment/__tests__/lifecycle-evidence.test.d.ts.map +0 -1
- package/dist/environment/__tests__/pipeline-topology.test.d.ts +0 -2
- package/dist/environment/__tests__/pipeline-topology.test.d.ts.map +0 -1
- package/dist/environment/__tests__/readiness.test.d.ts +0 -2
- package/dist/environment/__tests__/readiness.test.d.ts.map +0 -1
- package/dist/environment/__tests__/recovery.test.d.ts +0 -2
- package/dist/environment/__tests__/recovery.test.d.ts.map +0 -1
- package/dist/environment/__tests__/resize-dispose.test.d.ts +0 -2
- package/dist/environment/__tests__/resize-dispose.test.d.ts.map +0 -1
- package/dist/environment/__tests__/signature-red.test.d.ts +0 -2
- package/dist/environment/__tests__/signature-red.test.d.ts.map +0 -1
- package/dist/environment/__tests__/signature.test.d.ts +0 -2
- package/dist/environment/__tests__/signature.test.d.ts.map +0 -1
- package/dist/environment/descriptors.d.ts +0 -2
- package/dist/environment/descriptors.d.ts.map +0 -1
- package/dist/environment/extracted-environment.d.ts +0 -53
- package/dist/environment/extracted-environment.d.ts.map +0 -1
- package/dist/environment/generation.d.ts +0 -62
- package/dist/environment/generation.d.ts.map +0 -1
- package/dist/environment/gpu-bundle.d.ts +0 -23
- package/dist/environment/gpu-bundle.d.ts.map +0 -1
- package/dist/environment/graph.d.ts +0 -108
- package/dist/environment/graph.d.ts.map +0 -1
- package/dist/environment/inspection.d.ts +0 -48
- package/dist/environment/inspection.d.ts.map +0 -1
- package/dist/environment/lifecycle.d.ts +0 -22
- package/dist/environment/lifecycle.d.ts.map +0 -1
- package/dist/environment/readiness.d.ts +0 -29
- package/dist/environment/readiness.d.ts.map +0 -1
- package/dist/environment/signature.d.ts +0 -70
- package/dist/environment/signature.d.ts.map +0 -1
- package/dist/extract/__tests__/directional-csm-domain.unit.test.d.ts +0 -2
- package/dist/extract/__tests__/directional-csm-domain.unit.test.d.ts.map +0 -1
- package/dist/extract/__tests__/environment-source.test.d.ts +0 -2
- package/dist/extract/__tests__/environment-source.test.d.ts.map +0 -1
- package/dist/extract/__tests__/schema-readers.unit.test.d.ts +0 -2
- package/dist/extract/__tests__/schema-readers.unit.test.d.ts.map +0 -1
- package/dist/extract/directional-csm.d.ts +0 -129
- package/dist/extract/directional-csm.d.ts.map +0 -1
- package/dist/extract/index.d.ts +0 -5
- package/dist/extract/index.d.ts.map +0 -1
- package/dist/extract/material-interface.d.ts +0 -56
- package/dist/extract/material-interface.d.ts.map +0 -1
- package/dist/extract/schema-readers.d.ts +0 -20
- package/dist/extract/schema-readers.d.ts.map +0 -1
- package/dist/features/graph-contribution.d.ts +0 -64
- package/dist/features/graph-contribution.d.ts.map +0 -1
- package/dist/features/index.d.ts +0 -21
- package/dist/features/index.d.ts.map +0 -1
- package/dist/features/morph/index.d.ts +0 -3
- package/dist/features/morph/index.d.ts.map +0 -1
- package/dist/features/morph/morph-bounds.d.ts +0 -42
- package/dist/features/morph/morph-bounds.d.ts.map +0 -1
- package/dist/features/scene-temporal.d.ts +0 -45
- package/dist/features/scene-temporal.d.ts.map +0 -1
- package/dist/features/taa-resolve.d.ts +0 -21
- package/dist/features/taa-resolve.d.ts.map +0 -1
- package/dist/frame-chain.d.ts +0 -14
- package/dist/frame-chain.d.ts.map +0 -1
- package/dist/gpu-driven/view-reference.d.ts.map +0 -1
- package/dist/gpu-resource-store.d.ts.map +0 -1
- package/dist/hdrp-cluster-membership.d.ts +0 -2
- package/dist/hdrp-cluster-membership.d.ts.map +0 -1
- package/dist/hdrp-pipeline.d.ts +0 -36
- package/dist/hdrp-pipeline.d.ts.map +0 -1
- package/dist/ibl/cubemap-projection.d.ts +0 -23
- package/dist/ibl/cubemap-projection.d.ts.map +0 -1
- package/dist/ibl/face-uniforms.d.ts +0 -65
- package/dist/ibl/face-uniforms.d.ts.map +0 -1
- package/dist/mesh-update-errors.d.ts +0 -71
- package/dist/mesh-update-errors.d.ts.map +0 -1
- package/dist/mipmap-generator.d.ts +0 -39
- package/dist/mipmap-generator.d.ts.map +0 -1
- package/dist/param-schema-projection-census.d.ts +0 -18
- package/dist/param-schema-projection-census.d.ts.map +0 -1
- package/dist/persistent-render-scene.d.ts +0 -158
- package/dist/persistent-render-scene.d.ts.map +0 -1
- package/dist/pipeline/index.d.ts +0 -11
- package/dist/pipeline/index.d.ts.map +0 -1
- package/dist/pipeline-errors.d.ts +0 -110
- package/dist/pipeline-errors.d.ts.map +0 -1
- package/dist/prepare/__tests__/schema-readers.unit.test.d.ts +0 -2
- package/dist/prepare/__tests__/schema-readers.unit.test.d.ts.map +0 -1
- package/dist/prepare/index.d.ts +0 -4
- package/dist/prepare/index.d.ts.map +0 -1
- package/dist/prepare/schema-readers.d.ts +0 -11
- package/dist/prepare/schema-readers.d.ts.map +0 -1
- package/dist/record/__tests__/environment-record.test.d.ts +0 -2
- package/dist/record/__tests__/environment-record.test.d.ts.map +0 -1
- package/dist/record/__tests__/frame-targets.unit.test.d.ts +0 -2
- package/dist/record/__tests__/frame-targets.unit.test.d.ts.map +0 -1
- package/dist/record/__tests__/membership-timing.unit.test.d.ts +0 -2
- package/dist/record/__tests__/membership-timing.unit.test.d.ts.map +0 -1
- package/dist/record/__tests__/render-submission.integration.test.d.ts +0 -2
- package/dist/record/__tests__/render-submission.integration.test.d.ts.map +0 -1
- package/dist/record/__tests__/render-submission.perf.test.d.ts +0 -2
- package/dist/record/__tests__/render-submission.perf.test.d.ts.map +0 -1
- package/dist/record/__tests__/shadow-submit-mode.unit.test.d.ts +0 -2
- package/dist/record/__tests__/shadow-submit-mode.unit.test.d.ts.map +0 -1
- package/dist/record/__tests__/view-ubo-layout.unit.test.d.ts +0 -2
- package/dist/record/__tests__/view-ubo-layout.unit.test.d.ts.map +0 -1
- package/dist/record/frame-observation.d.ts +0 -38
- package/dist/record/frame-observation.d.ts.map +0 -1
- package/dist/record/index.d.ts +0 -15
- package/dist/record/index.d.ts.map +0 -1
- package/dist/record/main-pass-skin.d.ts +0 -46
- package/dist/record/main-pass-skin.d.ts.map +0 -1
- package/dist/record/main-pass-sprite.d.ts +0 -69
- package/dist/record/main-pass-sprite.d.ts.map +0 -1
- package/dist/record/material-payload.d.ts +0 -43
- package/dist/record/material-payload.d.ts.map +0 -1
- package/dist/record/material-slot-plan.d.ts +0 -26
- package/dist/record/material-slot-plan.d.ts.map +0 -1
- package/dist/record/membership-timing.d.ts +0 -232
- package/dist/record/membership-timing.d.ts.map +0 -1
- package/dist/record/shadow-caster-uniform.d.ts +0 -8
- package/dist/record/shadow-caster-uniform.d.ts.map +0 -1
- package/dist/record/shadow-submit-mode.d.ts +0 -66
- package/dist/record/shadow-submit-mode.d.ts.map +0 -1
- package/dist/render-dispatch-membership.d.ts +0 -47
- package/dist/render-dispatch-membership.d.ts.map +0 -1
- package/dist/render-pipeline-context.d.ts +0 -289
- package/dist/render-pipeline-context.d.ts.map +0 -1
- package/dist/render-pipeline-target.d.ts +0 -16
- package/dist/render-pipeline-target.d.ts.map +0 -1
- package/dist/render-scene-projection.d.ts +0 -174
- package/dist/render-scene-projection.d.ts.map +0 -1
- package/dist/render-system-fold.d.ts +0 -266
- package/dist/render-system-fold.d.ts.map +0 -1
- package/dist/renderer/asset-service.d.ts +0 -10
- package/dist/renderer/asset-service.d.ts.map +0 -1
- package/dist/renderer/backend-selection.d.ts.map +0 -1
- package/dist/renderer/environment-classify.d.ts +0 -6
- package/dist/renderer/environment-classify.d.ts.map +0 -1
- package/dist/renderer/environment-error.d.ts +0 -13
- package/dist/renderer/environment-error.d.ts.map +0 -1
- package/dist/renderer/material/pipeline-projection.d.ts +0 -91
- package/dist/renderer/material/pipeline-projection.d.ts.map +0 -1
- package/dist/renderer/renderer-factory.d.ts +0 -283
- package/dist/renderer/renderer-factory.d.ts.map +0 -1
- package/dist/renderer.d.ts +0 -771
- package/dist/renderer.d.ts.map +0 -1
- package/dist/scene-utils/collect-subtree.d.ts +0 -11
- package/dist/scene-utils/collect-subtree.d.ts.map +0 -1
- package/dist/ssao-data.d.ts +0 -34
- package/dist/ssao-data.d.ts.map +0 -1
- package/dist/surface-format.d.ts +0 -10
- package/dist/surface-format.d.ts.map +0 -1
- package/dist/taa-history-store.d.ts +0 -88
- package/dist/taa-history-store.d.ts.map +0 -1
- package/dist/temporal-coverage.d.ts +0 -35
- package/dist/temporal-coverage.d.ts.map +0 -1
- package/dist/temporal-frame-transaction.d.ts +0 -92
- package/dist/temporal-frame-transaction.d.ts.map +0 -1
- package/dist/temporal-inspection.d.ts +0 -57
- package/dist/temporal-inspection.d.ts.map +0 -1
- package/dist/temporal-view.d.ts +0 -43
- package/dist/temporal-view.d.ts.map +0 -1
- package/dist/tilemap/resolve-tileset-runtime.d.ts +0 -23
- package/dist/tilemap/resolve-tileset-runtime.d.ts.map +0 -1
- package/dist/urp-pipeline.d.ts +0 -4
- package/dist/urp-pipeline.d.ts.map +0 -1
- package/src/__tests__/analytic-sky-contract.test.ts +0 -27
- package/src/__tests__/analytic-sky-falsify-carriers.mjs +0 -43
- package/src/__tests__/analytic-sky-falsify.test.ts +0 -94
- package/src/__tests__/assets-runtime-handoff.integration.test.ts +0 -36
- package/src/__tests__/backend-selection.integration.test.ts +0 -11
- package/src/__tests__/camera-temporal.test-d.ts +0 -8
- package/src/__tests__/camera-temporal.test.ts +0 -188
- package/src/__tests__/directional-shadow-probe-atlas-layout.unit.test.ts +0 -18
- package/src/__tests__/environment-inspection.test.ts +0 -45
- package/src/__tests__/fog-ai-user.fixture.ts +0 -350
- package/src/__tests__/fog-custom-render-feature.fixture.ts +0 -33
- package/src/__tests__/fog-custom-render-feature.integration.test.ts +0 -76
- package/src/__tests__/fog-inspection.integration.test.ts +0 -127
- package/src/__tests__/fog-owner-state.integration.test.ts +0 -112
- package/src/__tests__/fog-pipeline-topology.integration.test.ts +0 -93
- package/src/__tests__/fog-public-surface.integration.test.ts +0 -60
- package/src/__tests__/fog-ray-contract.integration.test.ts +0 -73
- package/src/__tests__/fog-source-absence.integration.test.ts +0 -51
- package/src/__tests__/fog-temporal.integration.test.ts +0 -115
- package/src/__tests__/frame-chain.unit.test.ts +0 -26
- package/src/__tests__/gpu-scene-field-type-owner.test-d.ts +0 -27
- package/src/__tests__/hdrp-pipeline.unit.test.ts +0 -100
- package/src/__tests__/ibl/ibl-fallback.unit.test.ts +0 -23
- package/src/__tests__/material-derived-error-stop-draw.integration.test.ts +0 -69
- package/src/__tests__/material-derived-payload.integration.test.ts +0 -164
- package/src/__tests__/materials.unit.test.ts +0 -25
- package/src/__tests__/param-schema-projection-census.unit.test.ts +0 -40
- package/src/__tests__/persistent-render-scene.unit.test.ts +0 -1311
- package/src/__tests__/pipeline-error-policy-owner.unit.test.ts +0 -167
- package/src/__tests__/pipeline-pass-trace.test.ts +0 -92
- package/src/__tests__/pipeline-stage-owner.test-d.ts +0 -13
- package/src/__tests__/plugin.test.ts +0 -25
- package/src/__tests__/prepared-graphics-backend-matrix.unit.test.ts +0 -129
- package/src/__tests__/prepared-graphics-resolver-recording.unit.test.ts +0 -180
- package/src/__tests__/public-pipeline-id.test-d.ts +0 -6
- package/src/__tests__/render-dispatch-membership.unit.test.ts +0 -117
- package/src/__tests__/render-feature-construction.unit.test.ts +0 -124
- package/src/__tests__/render-feature-error-code-owner.test-d.ts +0 -27
- package/src/__tests__/render-feature-gpu-buffer-usage-owner.test-d.ts +0 -46
- package/src/__tests__/render-feature-graph.integration.test.ts +0 -205
- package/src/__tests__/render-feature-graphics-staging.unit.test.ts +0 -200
- package/src/__tests__/render-feature-order.unit.test.ts +0 -66
- package/src/__tests__/render-feature-prepared-graphics-recording.unit.test.ts +0 -107
- package/src/__tests__/render-feature-staging.unit.test.ts +0 -94
- package/src/__tests__/renderer-render-scene-public.test-d.ts +0 -27
- package/src/__tests__/scene-temporal-coverage.unit.test.ts +0 -259
- package/src/__tests__/sun-snapshot-consumers.test.ts +0 -35
- package/src/__tests__/surface-backend-kind-owner.test-d.ts +0 -42
- package/src/__tests__/taa-history-store.unit.test.ts +0 -196
- package/src/__tests__/temporal-frame-transaction.integration.test.ts +0 -537
- package/src/__tests__/temporal-inspection.unit.test.ts +0 -138
- package/src/assets/__tests__/asset-decoders.unit.test.ts +0 -92
- package/src/assets/__tests__/mipmap-generator.unit.test.ts +0 -52
- package/src/assets/__tests__/render-asset-port.unit.test.ts +0 -54
- package/src/assets/__tests__/resolve-render-asset.unit.test.ts +0 -47
- package/src/components/__tests__/atmosphere-red.test.ts +0 -51
- package/src/components/__tests__/atmosphere.test.ts +0 -79
- package/src/components/__tests__/fog.test-d.ts +0 -49
- package/src/components/__tests__/fog.test.ts +0 -60
- package/src/components/atmosphere.ts +0 -64
- package/src/deferred-lighting.ts +0 -92
- package/src/dynamic-texture-store.ts +0 -111
- package/src/environment/README.md +0 -76
- package/src/environment/__tests__/failure-injection.test.ts +0 -50
- package/src/environment/__tests__/generation-red.test.ts +0 -64
- package/src/environment/__tests__/generation.test.ts +0 -37
- package/src/environment/__tests__/graph-transaction.test.ts +0 -85
- package/src/environment/__tests__/inspection-red.test.ts +0 -53
- package/src/environment/__tests__/lifecycle-evidence.test.ts +0 -40
- package/src/environment/__tests__/pipeline-topology.test.ts +0 -33
- package/src/environment/__tests__/readiness.test.ts +0 -42
- package/src/environment/__tests__/recovery.test.ts +0 -62
- package/src/environment/__tests__/resize-dispose.test.ts +0 -30
- package/src/environment/__tests__/signature-red.test.ts +0 -45
- package/src/environment/__tests__/signature.test.ts +0 -60
- package/src/environment/descriptors.ts +0 -7
- package/src/environment/extracted-environment.ts +0 -239
- package/src/environment/generation.ts +0 -158
- package/src/environment/gpu-bundle.ts +0 -144
- package/src/environment/graph.ts +0 -588
- package/src/environment/inspection.ts +0 -107
- package/src/environment/lifecycle.ts +0 -124
- package/src/environment/readiness.ts +0 -76
- package/src/environment/signature.ts +0 -185
- package/src/extract/__tests__/directional-csm-domain.unit.test.ts +0 -391
- package/src/extract/__tests__/environment-source.test.ts +0 -105
- package/src/extract/__tests__/schema-readers.unit.test.ts +0 -16
- package/src/extract/directional-csm.ts +0 -959
- package/src/extract/index.ts +0 -10
- package/src/extract/material-interface.ts +0 -604
- package/src/extract/schema-readers.ts +0 -27
- package/src/features/graph-contribution.ts +0 -577
- package/src/features/index.ts +0 -100
- package/src/features/morph/index.ts +0 -24
- package/src/features/morph/morph-bounds.ts +0 -123
- package/src/features/scene-temporal.ts +0 -274
- package/src/features/taa-resolve.ts +0 -244
- package/src/frame-chain.ts +0 -21
- package/src/hdrp-cluster-membership.ts +0 -70
- package/src/ibl/cubemap-projection.ts +0 -60
- package/src/ibl/face-uniforms.ts +0 -150
- package/src/mesh-update-errors.ts +0 -113
- package/src/mipmap-generator.ts +0 -244
- package/src/param-schema-projection-census.ts +0 -73
- package/src/persistent-render-scene.ts +0 -1752
- package/src/pipeline/index.ts +0 -40
- package/src/pipeline-errors.ts +0 -172
- package/src/prepare/__tests__/schema-readers.unit.test.ts +0 -16
- package/src/prepare/index.ts +0 -8
- package/src/prepare/schema-readers.ts +0 -20
- package/src/record/__tests__/environment-record.test.ts +0 -35
- package/src/record/__tests__/frame-targets.unit.test.ts +0 -54
- package/src/record/__tests__/membership-timing.unit.test.ts +0 -524
- package/src/record/__tests__/render-submission.integration.test.ts +0 -76
- package/src/record/__tests__/render-submission.perf.test.ts +0 -141
- package/src/record/__tests__/shadow-submit-mode.unit.test.ts +0 -88
- package/src/record/__tests__/view-ubo-layout.unit.test.ts +0 -101
- package/src/record/frame-observation.ts +0 -122
- package/src/record/index.ts +0 -15
- package/src/record/main-pass-skin.ts +0 -51
- package/src/record/main-pass-sprite.ts +0 -166
- package/src/record/material-payload.ts +0 -292
- package/src/record/material-slot-plan.ts +0 -68
- package/src/record/membership-timing.ts +0 -1012
- package/src/record/shadow-caster-uniform.ts +0 -37
- package/src/record/shadow-submit-mode.ts +0 -277
- package/src/render-dispatch-membership.ts +0 -155
- package/src/render-pipeline-context.ts +0 -332
- package/src/render-pipeline-target.ts +0 -96
- package/src/render-scene-projection.ts +0 -1738
- package/src/render-system-fold.ts +0 -531
- package/src/renderer/asset-service.ts +0 -32
- package/src/renderer/backend-selection.ts +0 -121
- package/src/renderer/environment-classify.ts +0 -30
- package/src/renderer/environment-error.ts +0 -19
- package/src/renderer/material/pipeline-projection.ts +0 -140
- package/src/renderer.ts +0 -940
- package/src/scene-utils/collect-subtree.ts +0 -40
- package/src/ssao-data.ts +0 -106
- package/src/surface-format.ts +0 -37
- package/src/taa-history-store.ts +0 -429
- package/src/temporal-coverage.ts +0 -106
- package/src/temporal-frame-transaction.ts +0 -301
- package/src/temporal-inspection.ts +0 -194
- package/src/temporal-view.ts +0 -174
- package/src/tilemap/resolve-tileset-runtime.ts +0 -72
|
@@ -1,132 +1,14 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { AssetRegistry } from '@forgeax/engine-assets-runtime';
|
|
2
|
+
import type { World } from '@forgeax/engine-ecs';
|
|
2
3
|
import { type Mat4, type Vec3 } from '@forgeax/engine-math';
|
|
3
4
|
import { type SceneHierarchySnapshot } from '@forgeax/engine-scene';
|
|
4
|
-
import type { Handle, MaterialAsset,
|
|
5
|
-
import { type Result } from '@forgeax/engine-types';
|
|
6
|
-
import type { RenderAssetPort } from './assets/render-asset-port';
|
|
7
|
-
import { type Antialias, type BloomEnabled, type Tonemap } from './components';
|
|
8
|
-
import { type ExtractedEnvironment } from './environment/extracted-environment';
|
|
9
|
-
import { FogOwnerConflictError, FogParametersInvalidError, type RenderError } from './errors/render';
|
|
10
|
-
import { type DirectionalCsmConfig, type DirectionalCsmResult } from './extract/directional-csm';
|
|
11
|
-
import { type DerivedMaterialSlotProjection } from './extract/material-interface';
|
|
12
|
-
import { type ParamSchemaProjectionCensus } from './param-schema-projection-census';
|
|
13
|
-
import { type RenderCandidateDomain, type RenderDispatchMembership } from './render-dispatch-membership';
|
|
14
|
-
export { type CascadeVolume, type CascadeVolumeSet, CascadeVolumeSetBuilder, type CsmCameraData, computeDirectionalCsm, type DirectionalCsmConfig, type DirectionalCsmResult, directionalCascadeAtlasSize, directionalCascadeRasterViewport, pssmSplit, } from './extract/directional-csm';
|
|
5
|
+
import type { Handle, MaterialAsset, MaterialPass, MaterialRenderState, MaterialTextureCoordinates, ParamSchemaEntry, PrimitiveTopology } from '@forgeax/engine-types';
|
|
15
6
|
import { type VisibilitySnapshot } from './extract/visibility';
|
|
16
7
|
import type { RenderFeatureHiddenEntityReport, RenderFeatureWorldVisibilitySnapshot } from './features/types';
|
|
17
|
-
import type { RenderSceneFactInput } from './gpu-scene-schema';
|
|
18
8
|
import { type MeshMaterialBindingDiagnostic, type MeshMaterialBindingSource } from './mesh-material-bindings';
|
|
9
|
+
import { type CameraSnapshot } from './render-contract';
|
|
19
10
|
import type { SkinPaletteAllocator } from './systems/skin-palette-allocator';
|
|
20
|
-
|
|
21
|
-
/** Renderer-local World attachment identity. */
|
|
22
|
-
readonly worldId: number;
|
|
23
|
-
/** Packed ECS entity handle; its high bits retain the entity generation. */
|
|
24
|
-
readonly entityKey: number;
|
|
25
|
-
/** World-space camera translation (mat4.getTranslation of Transform.world). */
|
|
26
|
-
readonly position: Vec3;
|
|
27
|
-
/**
|
|
28
|
-
* Resolved world-space camera mat4 (column-major 16 floats), copied from the
|
|
29
|
-
* entity's `Transform.world` view. The record stage derives the view matrix
|
|
30
|
-
* as `mat4.invert(world)` (feat-20260601 D-3: read world mat4 -> invert; no
|
|
31
|
-
* recompose from decomposed TRS).
|
|
32
|
-
*/
|
|
33
|
-
readonly world: Float32Array;
|
|
34
|
-
readonly fov: number;
|
|
35
|
-
readonly aspect: number;
|
|
36
|
-
readonly near: number;
|
|
37
|
-
readonly far: number;
|
|
38
|
-
/**
|
|
39
|
-
* Camera projection variant (`'perspective'` | `'orthographic'`),
|
|
40
|
-
* surfaced through the closed string-literal union narrowed from the
|
|
41
|
-
* Camera schema's `projection` f32 discriminator. Drives the CSM
|
|
42
|
-
* frustum-corner builder in render-system-extract: perspective uses
|
|
43
|
-
* mat4.perspective(fov, aspect, ...); orthographic uses mat4.ortho
|
|
44
|
-
* (left, right, bottom, top, ...). Without this discrimination an
|
|
45
|
-
* orthographic camera (fov=0) would feed a degenerate matrix into
|
|
46
|
-
* the CSM AABB-fit and the shadow atlas would never be written
|
|
47
|
-
* (feat-20260613 M6 / w20 fix).
|
|
48
|
-
*/
|
|
49
|
-
readonly projection: 'perspective' | 'orthographic';
|
|
50
|
-
/** Orthographic left frustum plane (only consumed when projection === 'orthographic'). */
|
|
51
|
-
readonly orthoLeft: number;
|
|
52
|
-
/** Orthographic right frustum plane. */
|
|
53
|
-
readonly orthoRight: number;
|
|
54
|
-
/** Orthographic bottom frustum plane. */
|
|
55
|
-
readonly orthoBottom: number;
|
|
56
|
-
/** Orthographic top frustum plane. */
|
|
57
|
-
readonly orthoTop: number;
|
|
58
|
-
/**
|
|
59
|
-
* feat-20260519-tonemap-reinhard-mvp / M3 / T-M3.1: tone-map mode
|
|
60
|
-
* surfaced through the closed string-literal union (`tonemapFromF32`
|
|
61
|
-
* narrows the schema's `f32` discriminator). The record stage branches
|
|
62
|
-
* on this field to pick the geometry pipeline target format
|
|
63
|
-
* (`bgra8unorm-srgb` for `'none'` / `'rgba16float'` for
|
|
64
|
-
* `'reinhard-extended'`) and to decide whether to emit the post-process
|
|
65
|
-
* tonemap fullscreen pass.
|
|
66
|
-
*/
|
|
67
|
-
readonly tonemap: Tonemap;
|
|
68
|
-
/** Linear pre-multiplier applied before the luminance compute (T-M3.3). */
|
|
69
|
-
readonly exposure: number;
|
|
70
|
-
/** Bright-end break point Lw for the extended Reinhard curve (T-M3.3). */
|
|
71
|
-
readonly whitePoint: number;
|
|
72
|
-
/**
|
|
73
|
-
* feat-20260528-fxaa-post-processing / w3: anti-alias mode surfaced
|
|
74
|
-
* through the closed string-literal union (antialiasFromF32 narrows
|
|
75
|
-
* the schema's f32 discriminator). The record stage branches on this
|
|
76
|
-
* field to decide whether to emit the FXAA post-process pass.
|
|
77
|
-
*/
|
|
78
|
-
readonly antialias: Antialias;
|
|
79
|
-
/** Explicit authoring fence for discontinuous view changes. */
|
|
80
|
-
readonly historyVersion: number;
|
|
81
|
-
/**
|
|
82
|
-
* feat-20260531-bloom-first-declarative-render-graph-pass / w4: bloom
|
|
83
|
-
* enabled discriminator surfaced through the closed string-literal union
|
|
84
|
-
* (bloomEnabledFromF32 narrows the schema's f32 discriminator). The record
|
|
85
|
-
* stage branches on this field to decide whether to emit the bloom
|
|
86
|
-
* post-process pipeline.
|
|
87
|
-
*/
|
|
88
|
-
readonly bloom: BloomEnabled;
|
|
89
|
-
/** HDR luminance threshold for bright-pass extraction (D-3 default 1.0). */
|
|
90
|
-
readonly bloomThreshold: number;
|
|
91
|
-
/** Multiplier applied to the blurred bloom contribution in composite (D-3 default 1.0). */
|
|
92
|
-
readonly bloomIntensity: number;
|
|
93
|
-
/** Gaussian blur kernel radius, clamped [1.0, 4.0] in shader (D-3 default 4.0). */
|
|
94
|
-
readonly bloomBlurRadius: number;
|
|
95
|
-
/**
|
|
96
|
-
* feat-20260709 M3 / D-3: clear-color RGBA sourced from the Camera entity's
|
|
97
|
-
* inline `array<f32,4>` column (first-archetype-hit per OOS-2). Collapsed
|
|
98
|
-
* from the feat-20260608 clearR/G/B/A snapshot quartet into one field aligned
|
|
99
|
-
* with the light snapshot shape. AI users override per-camera by setting
|
|
100
|
-
* `clearColor` when spawning the Camera entity; default is opaque black
|
|
101
|
-
* `[0, 0, 0, 1]` (D-5). The record stage reads these values verbatim into
|
|
102
|
-
* the LoadOp::Clear color slot.
|
|
103
|
-
*/
|
|
104
|
-
readonly clearColor: readonly [number, number, number, number];
|
|
105
|
-
}
|
|
106
|
-
export type RenderVisibilityViewKind = 'main' | 'cascade';
|
|
107
|
-
/**
|
|
108
|
-
* One of the four CPU visibility views. Cascade membership is copied from the
|
|
109
|
-
* canonical CascadeVolumeSet; this descriptor never derives a second volume.
|
|
110
|
-
*/
|
|
111
|
-
export interface RenderVisibilityViewDescriptor {
|
|
112
|
-
readonly viewId: string;
|
|
113
|
-
readonly kind: RenderVisibilityViewKind;
|
|
114
|
-
readonly cascadeIndex: number | undefined;
|
|
115
|
-
readonly planes: Float32Array;
|
|
116
|
-
/** Conservative world AABB used by the persistent spatial owner. */
|
|
117
|
-
readonly broadphaseWorldAabb?: Float32Array | undefined;
|
|
118
|
-
/** Canonical raster matrix for a cascade; absent for the main view. */
|
|
119
|
-
readonly lightViewProj?: Float32Array | undefined;
|
|
120
|
-
readonly casterCandidateIndices: ReadonlySet<number>;
|
|
121
|
-
readonly volumeRevision: number | undefined;
|
|
122
|
-
readonly spatialIndexRevision: number | undefined;
|
|
123
|
-
}
|
|
124
|
-
/** Build the main camera plus exactly three CSM view descriptors. */
|
|
125
|
-
export declare function buildRenderVisibilityViewDescriptors(input: {
|
|
126
|
-
readonly camera: CameraSnapshot | undefined;
|
|
127
|
-
readonly directionalCsm: DirectionalCsmResult | undefined;
|
|
128
|
-
readonly spatialIndexRevision?: number | undefined;
|
|
129
|
-
}): readonly RenderVisibilityViewDescriptor[];
|
|
11
|
+
import type { SkinPaletteSlice } from './systems/skin-palette-types';
|
|
130
12
|
/**
|
|
131
13
|
* DirectionalLightSnapshot — sun-like infinite light variant of the
|
|
132
14
|
* `LightSnapshot` discriminated union (M2 / w16 / AC-03). Host pre-multiplies
|
|
@@ -235,8 +117,6 @@ export interface PointShadowSnapshot {
|
|
|
235
117
|
*/
|
|
236
118
|
export interface SpotLightSnapshot {
|
|
237
119
|
readonly kind: 'spot';
|
|
238
|
-
/** ECS entity handle in the source World; diagnostic identity only. */
|
|
239
|
-
readonly entity: number;
|
|
240
120
|
readonly position: Vec3;
|
|
241
121
|
readonly direction: Vec3;
|
|
242
122
|
readonly color: Vec3;
|
|
@@ -363,10 +243,6 @@ export interface ExtractedLights {
|
|
|
363
243
|
* when castShadow=false or no directional light.
|
|
364
244
|
*/
|
|
365
245
|
readonly directionalCsmDirection: Vec3 | undefined;
|
|
366
|
-
/** Canonical receiver/caster plan consumed by persistent scene and record. */
|
|
367
|
-
readonly directionalCsm?: DirectionalCsmResult;
|
|
368
|
-
/** Internal compatibility projection; the plan above remains canonical. */
|
|
369
|
-
readonly cascades?: DirectionalCsmResult['cascades'];
|
|
370
246
|
}
|
|
371
247
|
/**
|
|
372
248
|
* SkylightSnapshot -- extract-stage view of one Skylight entity
|
|
@@ -375,7 +251,7 @@ export interface ExtractedLights {
|
|
|
375
251
|
* `equirectHandle` carries the packed u32 handle for
|
|
376
252
|
* `Handle<EquirectAsset, 'shared'>`; the record stage drives the internal
|
|
377
253
|
* lazy cubemap projection from it and resolves the projected GPU cubemap via
|
|
378
|
-
* `
|
|
254
|
+
* `GpuResidencyCache.getCubemapGpuView(...)` and related helpers
|
|
379
255
|
* (feat-20260630 M3 / w16-w18). The snapshot carries NO projection status
|
|
380
256
|
* field: the status truth lives in the store's CubemapGpuEntry (D-3 SSOT);
|
|
381
257
|
* record queries it once per frame.
|
|
@@ -392,31 +268,13 @@ export interface SkylightSnapshot {
|
|
|
392
268
|
readonly rotation: readonly [number, number, number, number];
|
|
393
269
|
readonly entityHandle: number;
|
|
394
270
|
}
|
|
395
|
-
/** Retained scene-radiance Fog facts; parameters remain outside inspection. */
|
|
396
|
-
export interface FogSnapshot {
|
|
397
|
-
readonly color: readonly [number, number, number];
|
|
398
|
-
readonly density: number;
|
|
399
|
-
readonly heightFalloff: number;
|
|
400
|
-
readonly maxOpacity: number;
|
|
401
|
-
readonly revision: number;
|
|
402
|
-
}
|
|
403
|
-
/** Internal owner facts needed to publish a Fog snapshot transactionally. */
|
|
404
|
-
export interface FogSelection {
|
|
405
|
-
readonly snapshot: FogSnapshot | undefined;
|
|
406
|
-
readonly resourceOwner: number;
|
|
407
|
-
readonly entity: EntityHandle | undefined;
|
|
408
|
-
}
|
|
409
|
-
export type FogSelectionError = Extract<RenderError, FogOwnerConflictError | FogParametersInvalidError>;
|
|
410
|
-
export type FogSelectionResult = Result<FogSelection, FogSelectionError>;
|
|
411
|
-
/** Select and validate the single Fog authoring entity from resourceOwner. */
|
|
412
|
-
export declare function selectFog(world: World | undefined, resourceOwner: number): FogSelectionResult;
|
|
413
271
|
/**
|
|
414
272
|
* SkyboxSnapshot -- extract-stage view of one SkyboxBackground entity
|
|
415
273
|
* (feat-20260531-skybox-env-background M2 / w5).
|
|
416
274
|
*
|
|
417
275
|
* `equirectHandle` carries the packed u32 handle for
|
|
418
276
|
* `Handle<EquirectAsset, 'shared'>`; the record stage resolves the projected
|
|
419
|
-
* GPU cubemap via `
|
|
277
|
+
* GPU cubemap via `GpuResidencyCache.getCubemapGpuView(...)`.
|
|
420
278
|
*
|
|
421
279
|
* `mode` carries the raw `f32` column value (`SKYBOX_MODE_CUBEMAP = 0`).
|
|
422
280
|
* First hit wins per plan-strategy D-6; multi-entity once-warn in record stage.
|
|
@@ -431,27 +289,9 @@ export interface SkyboxSnapshot {
|
|
|
431
289
|
export interface RenderableSnapshot {
|
|
432
290
|
readonly assetHandle: number;
|
|
433
291
|
readonly transform: TransformSnapshot;
|
|
434
|
-
/**
|
|
435
|
-
* Bounds-only transform derived from authored local TRS when the resolved
|
|
436
|
-
* world column is still its identity default. This preserves the producer
|
|
437
|
-
* bounds source for direct extract-before-propagate paths without changing
|
|
438
|
-
* the render SSOT, which remains `transform.world`.
|
|
439
|
-
*/
|
|
440
|
-
readonly boundsWorld?: Float32Array;
|
|
441
|
-
/** Candidate-domain copy of all instance transforms, retained before cull. */
|
|
442
|
-
readonly candidateInstanceTransforms?: Float32Array;
|
|
443
292
|
/** Finite producer-owned local bounds retained for persistent CPU view work. */
|
|
444
293
|
readonly localAabb?: Float32Array;
|
|
445
|
-
/**
|
|
446
|
-
* Optional authoring/pack-owned scene facts. The projection supplies
|
|
447
|
-
* explicit `unknown` defaults when this field is absent; it never infers
|
|
448
|
-
* staticness or shadow eligibility from frame-local behavior.
|
|
449
|
-
*/
|
|
450
|
-
readonly sceneFact?: RenderSceneFactInput;
|
|
451
|
-
/**
|
|
452
|
-
* Forward raster item facts consumed by the first GPU-driven rigid lane.
|
|
453
|
-
* Each entry carries its source submesh, pass identity, and resolved queue.
|
|
454
|
-
*/
|
|
294
|
+
/** Indexed single-submesh facts consumed by the first GPU-driven rigid lane. */
|
|
455
295
|
readonly gpuDrivenDraws?: readonly GpuDrivenDrawSnapshot[];
|
|
456
296
|
/**
|
|
457
297
|
* feat-20260608 M5 amend / w11-a: the entity's representative (first)
|
|
@@ -507,8 +347,6 @@ export interface RenderableSnapshot {
|
|
|
507
347
|
* not the bare entityKey alone (D-1).
|
|
508
348
|
*/
|
|
509
349
|
readonly entityKey: number;
|
|
510
|
-
/** Stable pre-main-cull candidate index used by the directional CSM plan. */
|
|
511
|
-
readonly candidateIndex?: number;
|
|
512
350
|
/**
|
|
513
351
|
* feat-20260514 M3 (w15): when the entity carries an `Instances` component
|
|
514
352
|
* the extract stage materialises a fresh `Float32Array` snapshot of the
|
|
@@ -548,30 +386,18 @@ export interface RenderableSnapshot {
|
|
|
548
386
|
* Absent (`undefined`) means the entity is not skinned.
|
|
549
387
|
*/
|
|
550
388
|
readonly skin?: SkinPaletteSlice;
|
|
551
|
-
/**
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
389
|
+
/**
|
|
390
|
+
* ECS-owned morph weights. Presence selects the Standard Pipeline CPU
|
|
391
|
+
* specialized deformation lane; the asset remains the source of target
|
|
392
|
+
* deltas and the record stage only receives this frozen POD snapshot.
|
|
393
|
+
*/
|
|
394
|
+
readonly morph?: MorphSnapshot;
|
|
555
395
|
}
|
|
556
|
-
export
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
readonly previousEpoch: number | undefined;
|
|
560
|
-
readonly previousSource: RenderablePreviousSource;
|
|
561
|
-
readonly reactive: boolean;
|
|
562
|
-
readonly reactiveReasons: readonly RenderableReactiveReason[];
|
|
563
|
-
readonly previousTransform: TransformSnapshot;
|
|
564
|
-
readonly previousInstances: InstancesSnapshot | undefined;
|
|
565
|
-
readonly previousSkin: SkinPaletteSlice | undefined;
|
|
566
|
-
readonly previousMorphWeights: Float32Array | undefined;
|
|
396
|
+
export interface MorphSnapshot {
|
|
397
|
+
readonly weights: Float32Array;
|
|
398
|
+
readonly targetCount: number;
|
|
567
399
|
}
|
|
568
400
|
export interface GpuDrivenDrawSnapshot {
|
|
569
|
-
/** Index into the resolved mesh submesh array. */
|
|
570
|
-
readonly submeshIndex: number;
|
|
571
|
-
/** Index of the corresponding material pass in the resolved pass list. */
|
|
572
|
-
readonly passIndex: number;
|
|
573
|
-
/** Effective queue copied from that pass; always resolved at extract time. */
|
|
574
|
-
readonly queue: number;
|
|
575
401
|
readonly kind: 'indexed' | 'non-indexed';
|
|
576
402
|
readonly first: number;
|
|
577
403
|
readonly count: number;
|
|
@@ -581,40 +407,6 @@ export interface GpuDrivenDrawSnapshot {
|
|
|
581
407
|
readonly pipelineClass: string;
|
|
582
408
|
readonly materialResourceClass: string;
|
|
583
409
|
}
|
|
584
|
-
/**
|
|
585
|
-
* feat-20260523-skin-skeleton-animation M2 / T-21 + T-24:
|
|
586
|
-
* per-draw palette slice metadata. Joint count + byte offset into the
|
|
587
|
-
* shared skin palette storage buffer.
|
|
588
|
-
*
|
|
589
|
-
* plan-strategy D-10: SkinPaletteSlice naming mirroring Bevy SkinByteOffset
|
|
590
|
-
* but with forgeax vocabulary (byteOffset not offset, jointCount not joint_count).
|
|
591
|
-
*/
|
|
592
|
-
export interface SkinPaletteSlice {
|
|
593
|
-
readonly jointCount: number;
|
|
594
|
-
/** CPU snapshot of the exact palette written for this extract epoch. */
|
|
595
|
-
readonly jointMatrices: Float32Array;
|
|
596
|
-
/**
|
|
597
|
-
* Byte offset INTO `buffer` for this slice. On the storage path the
|
|
598
|
-
* allocator returns one shared buffer + a per-entity cursor offset; on
|
|
599
|
-
* the uniform fallback path each slice owns its own GPU buffer (cap
|
|
600
|
-
* `maxUniformBufferBindingSize` 16 KiB cannot host shared dynOffset
|
|
601
|
-
* windows for >1 entity), so `byteOffset === 0` for every slice and
|
|
602
|
-
* `buffer` is the per-slice handle. Record stage reads both fields and
|
|
603
|
-
* does not branch on the path -- BG cache key includes `buffer`, so
|
|
604
|
-
* two paths converge at the same code.
|
|
605
|
-
*/
|
|
606
|
-
readonly byteOffset: number;
|
|
607
|
-
/**
|
|
608
|
-
* Per-slice GPU buffer handle. M6: feat-20260612 collapsed the prior
|
|
609
|
-
* shared-buffer assumption (record-stage read `pipelineState
|
|
610
|
-
* .skinPaletteAllocator.buffer`) into a per-slice carrier so the
|
|
611
|
-
* uniform fallback path can return a per-entity buffer without
|
|
612
|
-
* branching the record stage.
|
|
613
|
-
*/
|
|
614
|
-
readonly buffer: import('@forgeax/engine-rhi').Buffer;
|
|
615
|
-
/** Previous successful-submit palette, paired with {@link buffer}. */
|
|
616
|
-
readonly previousBuffer?: import('@forgeax/engine-rhi').Buffer | undefined;
|
|
617
|
-
}
|
|
618
410
|
export interface InstancesSnapshot {
|
|
619
411
|
/** Packed column-major mat4 transforms (16 f32 per instance). */
|
|
620
412
|
readonly transforms: Float32Array;
|
|
@@ -711,16 +503,12 @@ export interface MaterialSnapshot {
|
|
|
711
503
|
* discriminator (M4-T06).
|
|
712
504
|
*/
|
|
713
505
|
readonly materialShaderId?: string | undefined;
|
|
714
|
-
/** Canonical RenderAssetPort GUID used to join the production readiness tuple. */
|
|
715
|
-
readonly materialGuid?: string | undefined;
|
|
716
506
|
/**
|
|
717
507
|
* Stable source handle for the material asset. Record uses this only for
|
|
718
508
|
* same-frame assembly reuse; GPU bind-group validity still comes from the
|
|
719
509
|
* resource-identity cache.
|
|
720
510
|
*/
|
|
721
511
|
readonly materialHandle?: number | undefined;
|
|
722
|
-
/** Whether the resolved material owns a ShadowCaster pass. */
|
|
723
|
-
readonly shadowCaster?: boolean | undefined;
|
|
724
512
|
/**
|
|
725
513
|
* The selected forward-pass state for this exact material. A mesh can bind
|
|
726
514
|
* different materials to its submeshes, so pipeline selection must read the
|
|
@@ -736,10 +524,6 @@ export interface MaterialSnapshot {
|
|
|
736
524
|
readonly paramSnapshot?: Readonly<Record<string, number | number[] | string>> | undefined;
|
|
737
525
|
/** Effective MaterialAsset parameter contract used to lay out this snapshot. */
|
|
738
526
|
readonly materialParamSchema?: readonly ParamSchemaEntry[] | undefined;
|
|
739
|
-
/** Typed per-slot projection produced from the effective root schema. */
|
|
740
|
-
readonly derivedMaterialSlot?: DerivedMaterialSlotProjection | undefined;
|
|
741
|
-
/** Structured extract failure that the record stage must propagate and stop. */
|
|
742
|
-
readonly derivedMaterialError?: MaterialError | undefined;
|
|
743
527
|
/** Authored per-slot UV set and KHR texture transform metadata. */
|
|
744
528
|
readonly textureCoordinates?: ReadonlyMap<string, MaterialTextureCoordinates> | undefined;
|
|
745
529
|
/**
|
|
@@ -747,7 +531,7 @@ export interface MaterialSnapshot {
|
|
|
747
531
|
* (feat-20260621-learn-render-5-5-parallax M2 / w7). The SSOT carrier for
|
|
748
532
|
* EVERY texture the shader's `derive(paramSchema).textureFieldNames`
|
|
749
533
|
* declares — `baseColorTexture` / `metallicRoughnessTexture` /
|
|
750
|
-
* `normalTexture` for built-in standard-PBR, plus
|
|
534
|
+
* `normalTexture` for built-in standard-PBR, plus each custom field such as
|
|
751
535
|
* `heightTexture` (LO 5.5 parallax). The record stage iterates this map to
|
|
752
536
|
* assemble the user-region bind group per the per-shader BGL (w8), so a 4th
|
|
753
537
|
* (or Nth) texture flows end-to-end without a hardcoded field list.
|
|
@@ -766,7 +550,7 @@ export interface MaterialSnapshot {
|
|
|
766
550
|
* occupies the same texture2d values slot a static texture would (P4:
|
|
767
551
|
* one binding shape), but extract routes it here instead of `textureHandles`
|
|
768
552
|
* so the record stage pulls the current-frame view from the transient
|
|
769
|
-
* DynamicTextureStore (D-3) instead of `
|
|
553
|
+
* DynamicTextureStore (D-3) instead of `GpuResidencyCache.ensureResident`
|
|
770
554
|
* (which has no `video` arm; AC-08). Each entry also carries the resolved
|
|
771
555
|
* clip handle so the record stage can key the per-frame upload.
|
|
772
556
|
*
|
|
@@ -845,7 +629,7 @@ export interface MaterialSnapshotCacheEntry {
|
|
|
845
629
|
readonly passes: readonly MaterialPass[];
|
|
846
630
|
/** Root/chain identities are present only on cross-frame-safe entries. */
|
|
847
631
|
readonly chain?: readonly MaterialCacheChainIdentity[];
|
|
848
|
-
/**
|
|
632
|
+
/** AssetRegistry epoch at which the root/parent chain was last validated. */
|
|
849
633
|
readonly catalogEpoch?: number;
|
|
850
634
|
/** True only when every object reachable from the authored chain is frozen. */
|
|
851
635
|
readonly crossFrameSafe: boolean;
|
|
@@ -891,23 +675,16 @@ export interface ExtractedFrame {
|
|
|
891
675
|
readonly cameras: CameraSnapshot[];
|
|
892
676
|
readonly lights: ExtractedLights;
|
|
893
677
|
readonly renderables: RenderableSnapshot[];
|
|
894
|
-
/** Author-visible snapshots retained before the main-view frustum cull. */
|
|
895
|
-
readonly candidateRenderables?: readonly RenderableSnapshot[];
|
|
896
|
-
/** Pass dispatch for the same pre-main-cull candidate domain. */
|
|
897
|
-
readonly candidateDispatch?: readonly DispatchEntry[];
|
|
898
|
-
/** Shared membership owner for the candidate dispatch domain. */
|
|
899
|
-
readonly candidateDispatchMembership?: RenderDispatchMembership;
|
|
900
|
-
/** Shared immutable candidate array/dispatch/index owner. */
|
|
901
|
-
readonly candidateDomain?: RenderCandidateDomain;
|
|
902
|
-
/** Resource-owner Fog snapshot retained for direct extract consumers. */
|
|
903
|
-
readonly fog?: FogSnapshot | undefined;
|
|
904
678
|
/**
|
|
905
679
|
* Single dispatch list sorted by queue value (ascending, stable sort).
|
|
906
680
|
* Replaces the old opaqueDispatch / transparentDispatch / overlayDispatch
|
|
907
681
|
* three-bucket model per plan-strategy D-3.
|
|
908
682
|
*/
|
|
909
683
|
readonly dispatch: DispatchEntry[];
|
|
910
|
-
readonly
|
|
684
|
+
readonly skylight: SkylightSnapshot | undefined;
|
|
685
|
+
readonly skylightCount: number;
|
|
686
|
+
readonly skybox: SkyboxSnapshot | undefined;
|
|
687
|
+
readonly skyboxCount: number;
|
|
911
688
|
/**
|
|
912
689
|
* feat-20260528-frustum-culling M3 / w11: frustum culling statistics
|
|
913
690
|
* collected during the extract phase. `total` is the count of entities
|
|
@@ -938,50 +715,21 @@ export interface ExtractedFrame {
|
|
|
938
715
|
readonly hiddenEntityReports: readonly RenderFeatureHiddenEntityReport[];
|
|
939
716
|
}
|
|
940
717
|
/**
|
|
941
|
-
*
|
|
942
|
-
* per-
|
|
718
|
+
* feat-20260608 M5 amend / w11-a: resolve a single MaterialAsset handle into
|
|
719
|
+
* a per-submesh MaterialSnapshot. Used by the extractFrame archetype loop to
|
|
720
|
+
* build `RenderableSnapshot.materials[]` for indices >= 1 (the entity-level
|
|
721
|
+
* snapshot at index 0 is built inline because it also drives multi-pass
|
|
722
|
+
* DispatchEntry creation + sprite-region overrides; per-submesh secondary
|
|
723
|
+
* materials are non-sprite + single-pass-equivalent for the record stage's
|
|
724
|
+
* UBO upload, so this helper produces a plain MaterialSnapshot only).
|
|
943
725
|
*
|
|
944
|
-
*
|
|
945
|
-
*
|
|
946
|
-
*
|
|
947
|
-
*
|
|
948
|
-
*
|
|
949
|
-
* SpriteMaterialAsset.pivot[1]` (default 0.5); `sizeY` = Transform's
|
|
950
|
-
* world scale Y (sprite quad's world-space height in unit-quad world
|
|
951
|
-
* space — the unit quad is 1x1 so `Transform.scaleY` directly maps to
|
|
952
|
-
* world height). The foot-Y formula `posY - pivotY * sizeY` is the
|
|
953
|
-
* SSOT for the JRPG Y-sort path (mode=1, requirements §AC-10).
|
|
954
|
-
* - `sortKey` — optional per-entity override from `SortKey.value`. When
|
|
955
|
-
* present, `transparentSortEntries` uses it INSTEAD of the mode formula
|
|
956
|
-
* for this entry (still gated by `layer` as the primary key).
|
|
957
|
-
*
|
|
958
|
-
* Plan-strategy §3.3 interface example + §AC-10 sort path + §AC-19
|
|
959
|
-
* derivation row 13 (this is the true new POD shape `@new-surface`; not a
|
|
960
|
-
* mere rename of an existing snapshot).
|
|
726
|
+
* Returns `defaultMaterialSnapshot()` (mid-grey unlit) for handle=0 (case-B
|
|
727
|
+
* sentinel, mirroring the inline path) and on each unresolved / non-material
|
|
728
|
+
* asset (so a partially-mis-registered multi-material entity still renders
|
|
729
|
+
* the resolvable submeshes; the count-mismatch validator already filtered
|
|
730
|
+
* the count-disagreement case earlier).
|
|
961
731
|
*/
|
|
962
|
-
export
|
|
963
|
-
readonly entityIndex: number;
|
|
964
|
-
readonly materialHandle: number;
|
|
965
|
-
readonly layer: number;
|
|
966
|
-
readonly posX: number;
|
|
967
|
-
readonly posY: number;
|
|
968
|
-
readonly posZ: number;
|
|
969
|
-
readonly pivotY: number;
|
|
970
|
-
readonly sizeY: number;
|
|
971
|
-
readonly sortKey?: number | undefined;
|
|
972
|
-
/**
|
|
973
|
-
* Index into the parallel `ExtractedFrame.renderables[]` array. M-3 /
|
|
974
|
-
* w25 record stage uses this to look up the `RenderableSnapshot`
|
|
975
|
-
* (Transform + mesh + material snapshot) belonging to this transparent
|
|
976
|
-
* entry after `transparentSortEntries` reorders the bucket. Optional
|
|
977
|
-
* for test fixtures that construct TransparentEntry literals by hand
|
|
978
|
-
* (w16 sort tests bypass renderables[] correlation); the real extract
|
|
979
|
-
* path always sets a non-negative integer index here.
|
|
980
|
-
*/
|
|
981
|
-
readonly renderableIndex?: number | undefined;
|
|
982
|
-
}
|
|
983
|
-
export declare const resolveMaterialSnapshot: (handleRaw: number, world: World, assets: RenderAssetPort, gpuStore?: import("./gpu-resource-store").GpuResourceStore, materialSnapshotCache?: MaterialSnapshotCache, persistentMaterialSnapshotCache?: MaterialSnapshotCache, paramSchemaProjectionCensus?: ParamSchemaProjectionCensus) => MaterialSnapshot;
|
|
984
|
-
export declare function refreshRenderableMaterialSnapshot(renderable: RenderableSnapshot, materialHandle: number, world: World, assets: RenderAssetPort, gpuStore?: import('./gpu-resource-store').GpuResourceStore, persistentMaterialSnapshotCache?: MaterialSnapshotCache, paramSchemaProjectionCensus?: ParamSchemaProjectionCensus): RenderableSnapshot | undefined;
|
|
732
|
+
export declare function resolveMaterialSnapshot(handleRaw: number, world: World, assetsRef: AssetRegistry, materialSnapshotCache?: MaterialSnapshotCache, persistentMaterialSnapshotCache?: MaterialSnapshotCache): MaterialSnapshot;
|
|
985
733
|
/**
|
|
986
734
|
* feat-20260612-skin-palette-per-frame-upload M2 / m2-6: narrow per-frame
|
|
987
735
|
* pipeline surface consumed by `extractFrame`. Today only `skinPaletteAllocator`
|
|
@@ -994,6 +742,7 @@ export declare function refreshRenderableMaterialSnapshot(renderable: Renderable
|
|
|
994
742
|
export interface ExtractPipelineSurface {
|
|
995
743
|
readonly skinPaletteAllocator: SkinPaletteAllocator | null;
|
|
996
744
|
}
|
|
745
|
+
export declare function pssmSplit(nearPlane: number, farPlane: number, cascadeCount: number, splitLambda: number): Float32Array;
|
|
997
746
|
/**
|
|
998
747
|
* Build 6 face view-proj matrices for an omnidirectional shadow caster
|
|
999
748
|
* (point-light cube map). Returns 6 mat4 (column-major 16-float each) in face
|
|
@@ -1011,6 +760,71 @@ export interface ExtractPipelineSurface {
|
|
|
1011
760
|
* @param far far plane distance (PointLightShadow.farPlane)
|
|
1012
761
|
*/
|
|
1013
762
|
export declare function buildPointShadowMatrices(lightPos: Vec3, near: number, far: number): Mat4[];
|
|
763
|
+
/**
|
|
764
|
+
* bug-20260710-editor-cross-world-shadow: the camera-frustum subset of
|
|
765
|
+
* {@link CameraSnapshot} that the directional-CSM matrix builder consumes.
|
|
766
|
+
* Extracted so the builder can run both inside {@link extractFrame} (single
|
|
767
|
+
* world) AND at the {@link extractFrames} merge layer, where the camera and the
|
|
768
|
+
* directional light may originate in DIFFERENT worlds (the editor
|
|
769
|
+
* editorWorld/sceneWorld super-composite). A cameraless world produces zero
|
|
770
|
+
* lightViewProj matrices, so the merge layer MUST recompute using the surfaced
|
|
771
|
+
* camera — see {@link computeDirectionalCsm}.
|
|
772
|
+
*/
|
|
773
|
+
export interface CsmCameraData {
|
|
774
|
+
readonly world: Float32Array;
|
|
775
|
+
readonly fov: number;
|
|
776
|
+
readonly aspect: number;
|
|
777
|
+
readonly near: number;
|
|
778
|
+
readonly far: number;
|
|
779
|
+
readonly projection: 'perspective' | 'orthographic';
|
|
780
|
+
readonly orthoLeft: number;
|
|
781
|
+
readonly orthoRight: number;
|
|
782
|
+
readonly orthoBottom: number;
|
|
783
|
+
readonly orthoTop: number;
|
|
784
|
+
}
|
|
785
|
+
/**
|
|
786
|
+
* bug-20260710-editor-cross-world-shadow: the raw directional-shadow config a
|
|
787
|
+
* DirectionalLight carries, threaded onto {@link ExtractedLights} so the merge
|
|
788
|
+
* layer can recompute CSM matrices against the surfaced camera. Distinct from
|
|
789
|
+
* the *computed* outputs (lightViewProj / splitPlanes) also on ExtractedLights.
|
|
790
|
+
*/
|
|
791
|
+
export interface DirectionalCsmConfig {
|
|
792
|
+
readonly cascadeCount: number;
|
|
793
|
+
readonly splitLambda: number;
|
|
794
|
+
readonly cascadeBlend: number;
|
|
795
|
+
readonly mapSize: number;
|
|
796
|
+
readonly shadowDistance: number;
|
|
797
|
+
}
|
|
798
|
+
/**
|
|
799
|
+
* bug-20260710-editor-cross-world-shadow: computed directional-CSM output —
|
|
800
|
+
* the per-cascade light-view-projection matrices plus the derived cascade
|
|
801
|
+
* metadata. Returned by {@link computeDirectionalCsm}; `undefined` when the
|
|
802
|
+
* config or camera is missing (caller leaves the fields undefined).
|
|
803
|
+
*/
|
|
804
|
+
export interface DirectionalCsmResult {
|
|
805
|
+
readonly lightViewProj: Float32Array[];
|
|
806
|
+
readonly splitPlanes: Float32Array;
|
|
807
|
+
readonly cascadeCount: number;
|
|
808
|
+
readonly cascadeBlend: number;
|
|
809
|
+
readonly shadowMapSize: number;
|
|
810
|
+
}
|
|
811
|
+
/**
|
|
812
|
+
* bug-20260710-editor-cross-world-shadow: pure directional-CSM matrix builder,
|
|
813
|
+
* extracted verbatim from the former inline block in {@link extractFrame} (the
|
|
814
|
+
* PSSM split + per-cascade frustum-slice AABB fit + orthographic light
|
|
815
|
+
* projection). It is now a free function so BOTH the per-world extract and the
|
|
816
|
+
* cross-world merge layer can call it — the merge layer is the only place that
|
|
817
|
+
* pairs the first-hit directional light of one world with the surfaced camera
|
|
818
|
+
* of another (editor super-composite). Returns `null` when there is no camera
|
|
819
|
+
* to fit against (a cameraless world's directional light yields no matrices —
|
|
820
|
+
* the caller leaves lightViewProj undefined rather than emitting zero matrices
|
|
821
|
+
* that the WGSL reader would sample as NaN → "fully lit").
|
|
822
|
+
*
|
|
823
|
+
* Byte-identical to the prior inline computation for the single-world case
|
|
824
|
+
* (same PSSM lambda, same toward-light Z reach RC-2 fix, same clip-space
|
|
825
|
+
* matrix / tile-placement-in-shader split).
|
|
826
|
+
*/
|
|
827
|
+
export declare function computeDirectionalCsm(direction: Vec3, config: DirectionalCsmConfig, cameraData: CsmCameraData | undefined): DirectionalCsmResult | null;
|
|
1014
828
|
/**
|
|
1015
829
|
* feat-20260709-editor-world-partition M1 / w4 (AC-08, plan-strategy §2 D-3):
|
|
1016
830
|
* the owner index that previously served BOTH cameras and singleton render
|
|
@@ -1026,71 +840,26 @@ export interface ExtractFramesOwner {
|
|
|
1026
840
|
readonly resourceOwner: number;
|
|
1027
841
|
}
|
|
1028
842
|
export interface PreparedExtractContext {
|
|
1029
|
-
|
|
1030
|
-
readonly worldId?: number | undefined;
|
|
1031
|
-
readonly assets: RenderAssetPort | null | undefined;
|
|
843
|
+
readonly assets: AssetRegistry | null | undefined;
|
|
1032
844
|
readonly pipelineState: ExtractPipelineSurface | null | undefined;
|
|
1033
|
-
readonly gpuStore: import('./gpu-resource-store').GpuResourceStore | undefined;
|
|
1034
845
|
readonly materialSnapshotCache: MaterialSnapshotCache | undefined;
|
|
1035
846
|
readonly cull: 'self' | 'none' | 'external';
|
|
1036
847
|
readonly cullCameras: readonly CameraSnapshot[] | undefined;
|
|
1037
848
|
readonly hierarchy: SceneHierarchySnapshot;
|
|
1038
849
|
readonly visibility: VisibilitySnapshot;
|
|
1039
|
-
/** @internal Debug-only ParamSchema compatibility census. */
|
|
1040
|
-
readonly paramSchemaProjectionCensus?: ParamSchemaProjectionCensus | undefined;
|
|
1041
|
-
/** @internal Refresh only compact lighting resources over an existing frame. */
|
|
1042
|
-
readonly resourceRefreshBase?: ExtractedFrame;
|
|
1043
|
-
/**
|
|
1044
|
-
* @internal Restrict the MeshRenderer row source to known entities. The
|
|
1045
|
-
* query is addressed through Query.at(), so this path does not iterate the
|
|
1046
|
-
* world's renderable tables. Resource queries remain unchanged.
|
|
1047
|
-
*/
|
|
1048
|
-
readonly targetRenderableEntities?: readonly EntityHandle[];
|
|
1049
850
|
}
|
|
1050
851
|
export declare function extractCameraSnapshots(world: World): CameraSnapshot[];
|
|
1051
|
-
export declare function refreshExtractedFrameCameras(world: World, frame: ExtractedFrame): ExtractedFrame;
|
|
1052
|
-
/**
|
|
1053
|
-
* Refresh only the resource-owned PostProcessParams map after an ECS journal
|
|
1054
|
-
* update. Post-process parameter entities are not render-domain slots; making
|
|
1055
|
-
* their transient byte payload visible must not rebuild candidates, dispatch,
|
|
1056
|
-
* topology, or the GPU scene.
|
|
1057
|
-
*/
|
|
1058
|
-
export declare function refreshExtractedFramePostProcessParams(world: World, frame: ExtractedFrame): ExtractedFrame;
|
|
1059
852
|
export declare function prepareExtractContext(world: World, options?: {
|
|
1060
|
-
readonly
|
|
1061
|
-
readonly assets?: RenderAssetPort | null;
|
|
853
|
+
readonly assets?: AssetRegistry | null;
|
|
1062
854
|
readonly pipelineState?: ExtractPipelineSurface | null;
|
|
1063
|
-
readonly gpuStore?: import('./gpu-resource-store').GpuResourceStore;
|
|
1064
855
|
readonly materialSnapshotCache?: MaterialSnapshotCache;
|
|
1065
856
|
readonly cull?: 'self' | 'none' | 'external';
|
|
1066
857
|
readonly cullCameras?: readonly CameraSnapshot[];
|
|
1067
|
-
readonly paramSchemaProjectionCensus?: ParamSchemaProjectionCensus;
|
|
1068
858
|
}): PreparedExtractContext;
|
|
1069
|
-
export declare function extractFrames(worlds: readonly World[], owner: number | ExtractFramesOwner, assets?:
|
|
859
|
+
export declare function extractFrames(worlds: readonly World[], owner: number | ExtractFramesOwner, assets?: AssetRegistry | null, pipelineState?: ExtractPipelineSurface | null, materialSnapshotCachesByWorld?: MaterialSnapshotCachesByWorld, options?: {
|
|
1070
860
|
readonly cull?: 'normal' | 'none';
|
|
1071
|
-
readonly paramSchemaProjectionCensus?: ParamSchemaProjectionCensus;
|
|
1072
861
|
}): ExtractedFrame;
|
|
1073
862
|
export declare function extractFrame(world: World, context: PreparedExtractContext): ExtractedFrame;
|
|
1074
|
-
/**
|
|
1075
|
-
* Extract the complete render-domain facts for one known entity.
|
|
1076
|
-
*
|
|
1077
|
-
* This deliberately reuses extractFrame's MeshRenderer row body instead of
|
|
1078
|
-
* maintaining a second material/skin/sprite implementation. Query.at() makes
|
|
1079
|
-
* the row source identity-addressed; callers must supply a visibility snapshot
|
|
1080
|
-
* appropriate for the current persistent owner and must keep hierarchy-affecting
|
|
1081
|
-
* changes on the conservative rebuild lane.
|
|
1082
|
-
*/
|
|
1083
|
-
export interface ExtractedRenderableEntity {
|
|
1084
|
-
readonly snapshot: RenderableSnapshot;
|
|
1085
|
-
readonly candidateDispatch: readonly DispatchEntry[];
|
|
1086
|
-
}
|
|
1087
|
-
export declare function extractRenderableEntity(world: World, entity: EntityHandle, context: PreparedExtractContext): ExtractedRenderableEntity | undefined;
|
|
1088
|
-
/**
|
|
1089
|
-
* Refresh only light, shadow, sky, and post-process resources over an existing
|
|
1090
|
-
* persistent frame. The resource path intentionally skips hierarchy,
|
|
1091
|
-
* renderable, material, cull, dispatch, and candidate-domain extraction.
|
|
1092
|
-
*/
|
|
1093
|
-
export declare function refreshExtractedFrameLights(world: World, frame: ExtractedFrame): ExtractedFrame;
|
|
1094
|
-
export declare function defaultTransformSnapshot(): TransformSnapshot;
|
|
1095
863
|
export declare function defaultMaterialSnapshot(materialHandle?: number): MaterialSnapshot;
|
|
864
|
+
export {};
|
|
1096
865
|
//# sourceMappingURL=render-system-extract.d.ts.map
|