@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,262 +1,14 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import {
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
*
|
|
13
|
-
* Matching rule: every key in the selector must exist in the pass's `tags` and the
|
|
14
|
-
* pass's tag value must be in the selector's value list.
|
|
15
|
-
*/
|
|
16
|
-
export interface AddScenePassOptions {
|
|
17
|
-
/** Graph colour target to write (declared via g.addColorTarget). */
|
|
18
|
-
readonly color: string;
|
|
19
|
-
/** Graph depth target to write (declared via g.addColorTarget). */
|
|
20
|
-
readonly depth: string;
|
|
21
|
-
/**
|
|
22
|
-
* Optional single-sample resolve target for a multisample colour target.
|
|
23
|
-
* When `_routeFromOpts` is true and the active camera has MSAA enabled,
|
|
24
|
-
* `recordMainPass` resolves `color` into this graph-owned target before a
|
|
25
|
-
* downstream fullscreen pass samples it. Pass `null` to explicitly disable
|
|
26
|
-
* the default resolve in a custom-pipeline falsifier; omit it for
|
|
27
|
-
* single-sample scenes or to preserve the URP-owned resolve.
|
|
28
|
-
*/
|
|
29
|
-
readonly resolve?: string | null | undefined;
|
|
30
|
-
/** Resource keys this pass samples (typically 'shadowDepth' + an upstream colour). */
|
|
31
|
-
readonly reads?: readonly string[] | undefined;
|
|
32
|
-
/**
|
|
33
|
-
* Pass selector — a pipeline-specific filter for which material passes are
|
|
34
|
-
* rendered. An empty selector `{}` matches every pass. The built-in URP uses
|
|
35
|
-
* `{ LightMode: ['Forward'] }`; a custom pipeline defines its own tag keys.
|
|
36
|
-
*/
|
|
37
|
-
readonly selector: PassSelector;
|
|
38
|
-
/**
|
|
39
|
-
* @internal — feat-20260609 framebuffers demo M5 / T-12-a opt-in flag.
|
|
40
|
-
*
|
|
41
|
-
* When `true`, the pass execute closure resolves `opts.color` / `opts.depth`
|
|
42
|
-
* through the graph's resolveCtx and overrides the recordMainPass ctx so
|
|
43
|
-
* the geometry pass renders into those graph-owned views. When `false` (or
|
|
44
|
-
* unset, the default), recordMainPass picks the per-frame
|
|
45
|
-
* `geometryColorView` / `geometryDepthView` set by recordFrame's URP
|
|
46
|
-
* state-machine — this preserves byte-equivalence for urp-pipeline,
|
|
47
|
-
* which encodes its own MSAA / LDR-no-MSAA / HDR routing in recordFrame
|
|
48
|
-
* (where opts.color is a logical ordering token, not the physical write
|
|
49
|
-
* target).
|
|
50
|
-
*
|
|
51
|
-
* AI-user-defined custom pipelines declaring their own offscreen RT (the
|
|
52
|
-
* AC-11 "render scene to graph-owned colour + depth" contract) MUST set
|
|
53
|
-
* this flag to opt out of the URP state-machine and route opts.color
|
|
54
|
-
* directly. A future feat that migrates urp-pipeline off the recordFrame
|
|
55
|
-
* state-machine flips the default and removes this flag.
|
|
56
|
-
*/
|
|
57
|
-
readonly _routeFromOpts?: boolean | undefined;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* AC-11: render the ECS scene into a graph-owned colour + depth target.
|
|
61
|
-
*
|
|
62
|
-
* Adds a graph pass that, when executed, walks the per-frame validated
|
|
63
|
-
* renderable list and dispatches geometry into `opts.color` (with `opts.depth`
|
|
64
|
-
* as the depth attachment). The implementation detail (4-BGL chain, per-entity
|
|
65
|
-
* material UBO packing, pipeline cache lookup, MSAA variant selection) is
|
|
66
|
-
* package-private (`recordMainPass`); plan-strategy D-5 keeps it inside runtime
|
|
67
|
-
* so the render-graph package stays RHI-pure.
|
|
68
|
-
*
|
|
69
|
-
* The `reads` array threads dependency edges into the graph (so shadow ->
|
|
70
|
-
* skybox -> main is expressed in declaration order). The two writes are `opts.color`
|
|
71
|
-
* and `opts.depth`.
|
|
72
|
-
*/
|
|
73
|
-
export declare function addScenePass(graph: RenderGraph<RenderPipelineContext>, name: string, opts: AddScenePassOptions): void;
|
|
74
|
-
export interface AddShadowPassOptions {
|
|
75
|
-
/** Graph depth target to write (declared via g.addColorTarget with depth format). */
|
|
76
|
-
readonly depth: string;
|
|
77
|
-
/**
|
|
78
|
-
* Pass selector — a pipeline-specific filter for which material passes are
|
|
79
|
-
* rendered as shadow casters. The built-in URP uses
|
|
80
|
-
* `{ LightMode: ['ShadowCaster'] }`.
|
|
81
|
-
*/
|
|
82
|
-
readonly selector: PassSelector;
|
|
83
|
-
/**
|
|
84
|
-
* Optional viewport for the shadow render pass. When set, the pass calls
|
|
85
|
-
* `setViewport(x, y, w, h, 0, 1)` before dispatch so the depth rasterization
|
|
86
|
-
* is clipped to the given sub-rectangle of the depth target. Undefined
|
|
87
|
-
* preserves the pre-CSM behavior (full-RT viewport). Used by the cascaded
|
|
88
|
-
* shadow map atlas: each cascade pass writes to one tile.
|
|
89
|
-
*
|
|
90
|
-
* @example viewport: { x: 0, y: 0, w: 2048, h: 2048 }
|
|
91
|
-
*/
|
|
92
|
-
readonly viewport?: {
|
|
93
|
-
readonly x: number;
|
|
94
|
-
readonly y: number;
|
|
95
|
-
readonly w: number;
|
|
96
|
-
readonly h: number;
|
|
97
|
-
} | undefined;
|
|
98
|
-
/**
|
|
99
|
-
* Cascade index this pass renders into (0..3). The runtime writes the
|
|
100
|
-
* value to `shadowCasterCascadeBuffer` immediately before submit; the
|
|
101
|
-
* shadow_caster vertex shader reads it to pick the matching
|
|
102
|
-
* `view.lightViewProj_X`. Defaults to 0 when unset (preserves the
|
|
103
|
-
* single-cascade pre-CSM behaviour for any caller still calling
|
|
104
|
-
* addShadowPass without the field; the URP per-cascade loop sets it
|
|
105
|
-
* explicitly).
|
|
106
|
-
*
|
|
107
|
-
* @example cascadeIndex: 0 // first cascade (lightViewProj_A)
|
|
108
|
-
*/
|
|
109
|
-
readonly cascadeIndex?: number;
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Render shadow casters into a depth-only graph target. Implementation detail:
|
|
113
|
-
* `recordShadowPass` (package-private) iterates DirectionalLight + caster
|
|
114
|
-
* renderables under their light-view + light-proj and writes the depth-32-float
|
|
115
|
-
* target consumed by `addScenePass.reads`.
|
|
116
|
-
*/
|
|
117
|
-
export declare function addShadowPass(graph: RenderGraph<RenderPipelineContext>, name: string, opts: AddShadowPassOptions): void;
|
|
118
|
-
/**
|
|
119
|
-
* feat-20260612-point-light-shadows-urp-hdrp M3 / T-M3-4 (plan-strategy §D-1
|
|
120
|
-
* + AC-04 + AC-09). Render the 6 x N point-light shadow caster passes into
|
|
121
|
-
* the cube_array atlas owned by `frameState.pointShadowAtlas`. Implementation
|
|
122
|
-
* detail: `recordPointShadowPass` (package-private) iterates
|
|
123
|
-
* `frameState.pointShadowSnapshots` and emits one independent render pass
|
|
124
|
-
* per (layer, face), opening / submitting each on its own command encoder
|
|
125
|
-
* (RD-4 manual barrier between depth-write and the URP forward pass's
|
|
126
|
-
* cube_array sample).
|
|
127
|
-
*
|
|
128
|
-
* Resource model: the cube_array atlas is a runtime-owned resource (NOT a
|
|
129
|
-
* graph color target) because its size is `4 * 6 * faceSize^2` and per-face
|
|
130
|
-
* 2D views must be created with explicit `baseArrayLayer` indexing — the
|
|
131
|
-
* existing `addColorTarget` vocabulary is single-attachment-only. The pass
|
|
132
|
-
* therefore declares no `writes` (the dependency between this pass and the
|
|
133
|
-
* URP forward pass is enforced by the `addScenePass.reads` order — both
|
|
134
|
-
* sample shadowAtlas, and graph declaration order keeps shadow before
|
|
135
|
-
* forward). A future render-graph extension may model the cube_array as a
|
|
136
|
-
* first-class resource; for now the manual command-encoder boundary is the
|
|
137
|
-
* synchronization point.
|
|
138
|
-
*
|
|
139
|
-
* AC-09 zero-shadow zero-pass: the URP `buildGraph` gates the call to
|
|
140
|
-
* `addPointShadowPass` on `frameState.pointShadowSnapshots.length > 0` so
|
|
141
|
-
* the graph itself never declares the pass when no PointLightShadow exists.
|
|
142
|
-
* `recordPointShadowPass` re-checks at execute time as defence in depth.
|
|
143
|
-
*/
|
|
144
|
-
export declare function addPointShadowPass(graph: RenderGraph<RenderPipelineContext>, name: string): void;
|
|
145
|
-
export interface AddSpotShadowPassOptions {
|
|
146
|
-
/** Graph depth target (depth32float 2x2 tile atlas) the spot casters write. */
|
|
147
|
-
readonly depth: string;
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* feat-20260625-spot-light-shadow-mapping M2 / w9 + w11 (D-1 + D-2). Render the
|
|
151
|
-
* spot-light shadow caster passes into the graph-owned `spotShadowDepth` atlas
|
|
152
|
-
* (a single 2D depth32float texture of 2x2 tiles — NOT a 2d-array). One graph
|
|
153
|
-
* pass NODE; the execute closure (`recordSpotShadowPass`) loops the per-frame
|
|
154
|
-
* `frameState.spotShadowSnapshots`, rendering each castShadow spot's perspective
|
|
155
|
-
* depth into its tile (viewport keyed on `shadowAtlasTile`) with first-tile
|
|
156
|
-
* clear / rest load (independent of the directional cascadeIndex; D-2). Unlike
|
|
157
|
-
* `addPointShadowPass` the spot atlas IS a graph color target, so the pass
|
|
158
|
-
* declares `writes: [opts.depth]` — `addScenePass.reads` lists the same key to
|
|
159
|
-
* order spot-shadow -> main. The single-node-with-internal-loop shape keeps the
|
|
160
|
-
* memoized graph from rebuilding on spot-count drift (AC-03 zero-spot scenes
|
|
161
|
-
* record zero passes via the early-return inside recordSpotShadowPass).
|
|
162
|
-
*/
|
|
163
|
-
export declare function addSpotShadowPass(graph: RenderGraph<RenderPipelineContext>, name: string, opts: AddSpotShadowPassOptions): void;
|
|
164
|
-
export interface AddSkyboxPassOptions {
|
|
165
|
-
/** Graph colour target the skybox writes (typically the same target the scene pass writes). */
|
|
166
|
-
readonly color: string;
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* Render a skybox cube into the declared colour target. Implementation detail:
|
|
170
|
-
* `recordSkyboxPass` (package-private) emits a single cube draw with a
|
|
171
|
-
* skybox-view matrix derived from the camera. Writes `opts.color` so the
|
|
172
|
-
* scene pass can declare it under `reads` to enforce skybox -> main order.
|
|
173
|
-
*/
|
|
174
|
-
export declare function addSkyboxPass(graph: RenderGraph<RenderPipelineContext>, name: string, opts: AddSkyboxPassOptions): void;
|
|
175
|
-
export interface AddBloomPassesOptions {
|
|
176
|
-
/** HDR colour target the bright-extract reads + the composite reads back. */
|
|
177
|
-
readonly hdrColor: string;
|
|
178
|
-
/** Logical key the composite WRITES (typically an alias of hdrColor). */
|
|
179
|
-
readonly hdrComposited: string;
|
|
180
|
-
/** Half-res bright target. */
|
|
181
|
-
readonly bright: string;
|
|
182
|
-
/** Half-res H blur target. */
|
|
183
|
-
readonly blurH: string;
|
|
184
|
-
/** Half-res V blur target. */
|
|
185
|
-
readonly blurV: string;
|
|
186
|
-
}
|
|
187
|
-
/**
|
|
188
|
-
* Wire the 4-pass bloom chain (bright -> blur-h -> blur-v -> composite). All
|
|
189
|
-
* intermediate targets are half-resolution; the composite reads hdrColor +
|
|
190
|
-
* blurV and writes the alias `hdrComposited` (declared via
|
|
191
|
-
* `g.addColorTargetAlias` to fold onto the actual hdrColor texture, KB-1).
|
|
192
|
-
*/
|
|
193
|
-
export declare function addBloomPasses(graph: RenderGraph<RenderPipelineContext>, opts: AddBloomPassesOptions): void;
|
|
194
|
-
/**
|
|
195
|
-
* feat-20260612-hdrp-ssao M3 / w15: SSAO pass parameters.
|
|
196
|
-
*
|
|
197
|
-
* Defaults: radius=0.5, bias=0.025, intensity=1.0.
|
|
198
|
-
* Non-positive radius or negative bias triggers fail-fast PostProcessError
|
|
199
|
-
* inside the per-frame record closure (w16 boundary impl).
|
|
200
|
-
*/
|
|
201
|
-
export interface AddSsaoPassesParams {
|
|
202
|
-
/** SSAO sample radius in view-space units (default 0.5). */
|
|
203
|
-
readonly radius?: number | undefined;
|
|
204
|
-
/** SSAO depth bias to avoid self-occlusion (default 0.025). */
|
|
205
|
-
readonly bias?: number | undefined;
|
|
206
|
-
/** SSAO intensity blend factor (default 1.0). */
|
|
207
|
-
readonly intensity?: number | undefined;
|
|
208
|
-
}
|
|
209
|
-
export type { ResolvedSsaoParameters, SsaoParameterConfig } from './ssao-config';
|
|
210
|
-
/**
|
|
211
|
-
* Options for `addSsaoPasses` (plan-strategy D-5, D-2).
|
|
212
|
-
*
|
|
213
|
-
* The caller (hdrp-pipeline.buildGraph) declares the color targets
|
|
214
|
-
* (ssaoRaw / ssaoBlurred as half-swapchain r8unorm) and passes their
|
|
215
|
-
* graph resource keys here. `gbuf0` and `hdrDepth` are g-buffer
|
|
216
|
-
* resources declared by the pipeline.
|
|
217
|
-
*/
|
|
218
|
-
export interface AddSsaoPassesOptions {
|
|
219
|
-
/** G-buffer RT0 (normal.rgb + roughness.a), rgba16float, swapchain. */
|
|
220
|
-
readonly gbuf0: string;
|
|
221
|
-
/** Hardware depth target, depth24plus-stencil8, swapchain. */
|
|
222
|
-
readonly hdrDepth: string;
|
|
223
|
-
/** SSAO calc output: half-res r8unorm transient target. */
|
|
224
|
-
readonly ssaoRaw: string;
|
|
225
|
-
/** SSAO blur output: half-res r8unorm transient target. */
|
|
226
|
-
readonly ssaoBlurred: string;
|
|
227
|
-
/** SSAO parameters (radius, bias, intensity). */
|
|
228
|
-
readonly params?: AddSsaoPassesParams | undefined;
|
|
229
|
-
/** Pipeline context for lazy SSAO buffer resolution. */
|
|
230
|
-
readonly ctx: RenderPipelineContext;
|
|
231
|
-
}
|
|
232
|
-
/**
|
|
233
|
-
* Wire the 2-pass SSAO chain (calc -> blur) into the render graph.
|
|
234
|
-
*
|
|
235
|
-
* plan-strategy D-2: exactly 2 pass (ssao-calc + ssao-blur).
|
|
236
|
-
* plan-strategy D-4: g-buffer missing -> graph-level skip.
|
|
237
|
-
* plan-strategy D-5: signature matches addBloomPasses pattern.
|
|
238
|
-
*
|
|
239
|
-
* ssao-calc: reads gbuf0 + hdrDepth + ssao-noise + ssao-kernel + ssao-uniform,
|
|
240
|
-
* writes ssaoRaw (half-res r8unorm).
|
|
241
|
-
* ssao-blur: reads ssaoRaw, writes ssaoBlurred (half-res r8unorm).
|
|
242
|
-
*
|
|
243
|
-
* Fail-fast: when SSAO buffers are unavailable (g-buffer not declared or
|
|
244
|
-
* kernel/noise generation fails), the
|
|
245
|
-
* function returns without wiring any pass nodes (graph-level skip).
|
|
246
|
-
* Param validation happens in the record closure (w16 boundary impl).
|
|
247
|
-
*/
|
|
248
|
-
export declare function addSsaoPasses(graph: RenderGraph<RenderPipelineContext>, opts: AddSsaoPassesOptions): void;
|
|
249
|
-
/**
|
|
250
|
-
* Lazy-allocate the three constant SSAO record companions the first time the
|
|
251
|
-
* calc / blur closure runs: a filtering sampler (binding 3 + 8), a
|
|
252
|
-
* non-filtering depth sampler (binding 6, paired with hdr_depth — WebGPU
|
|
253
|
-
* validation rejects depth + filtering), and a 1x1 r8unorm fallback view bound
|
|
254
|
-
* at ssaoRaw (binding 7) in the calc pass (the calc shader never samples
|
|
255
|
-
* ssaoRaw, but the BGL still requires a valid view).
|
|
256
|
-
*
|
|
257
|
-
* Returns null if any underlying allocation fires a structured error onto
|
|
258
|
-
* runtime.errorRegistry; the caller then skips the pass.
|
|
259
|
-
*/
|
|
1
|
+
import type { ResolveContext } from '@forgeax/engine-render-graph';
|
|
2
|
+
import type { RhiRenderPassEncoder, Texture, TextureView } from '@forgeax/engine-rhi';
|
|
3
|
+
import type { _InternalRenderPipelineContext } from './record/render-context';
|
|
4
|
+
import type { RenderPipelineContext } from './render-contract';
|
|
5
|
+
type DepthResolutionContext = Pick<_InternalRenderPipelineContext, 'runtime'> & {
|
|
6
|
+
readonly frameState: {
|
|
7
|
+
readonly perFrameGraph?: {
|
|
8
|
+
readonly getColorTargetTexture: (key: string) => Texture | undefined;
|
|
9
|
+
} | null;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
260
12
|
/**
|
|
261
13
|
* Resolve a depth-only view of a graph color target by key.
|
|
262
14
|
*
|
|
@@ -270,7 +22,7 @@ export declare function addSsaoPasses(graph: RenderGraph<RenderPipelineContext>,
|
|
|
270
22
|
* @returns a depth-only TextureView, or null if the graph / texture is absent
|
|
271
23
|
* or creation fires a structured error
|
|
272
24
|
*/
|
|
273
|
-
export declare function resolveDepthOnlyView(internals:
|
|
25
|
+
export declare function resolveDepthOnlyView(internals: DepthResolutionContext, key: string, label: string, preferredKey?: string | null): TextureView | null;
|
|
274
26
|
/**
|
|
275
27
|
* recordSsaoCalcPass — fullscreen SSAO occlusion calculation (M8 / w38).
|
|
276
28
|
*
|
|
@@ -297,7 +49,7 @@ export interface SsaoCalcPassViews {
|
|
|
297
49
|
readonly depth: TextureView;
|
|
298
50
|
readonly depthCacheKey: TextureView;
|
|
299
51
|
}
|
|
300
|
-
export declare function recordSsaoCalcPass(_c: _InternalRenderPipelineContext, resolveCtx?: ResolveContext, ssaoRawKey?: string, gbuf0Key?: string, hdrDepthKey?: string, graphPass?: RhiRenderPassEncoder, graphViews?: SsaoCalcPassViews
|
|
52
|
+
export declare function recordSsaoCalcPass(_c: _InternalRenderPipelineContext, resolveCtx?: ResolveContext, ssaoRawKey?: string, gbuf0Key?: string, hdrDepthKey?: string, graphPass?: RhiRenderPassEncoder, graphViews?: SsaoCalcPassViews): void;
|
|
301
53
|
/**
|
|
302
54
|
* recordSsaoBlurPass — fullscreen SSAO 4x4 box blur (M8 / w38).
|
|
303
55
|
*
|
|
@@ -310,107 +62,6 @@ export interface SsaoBlurPassViews extends SsaoCalcPassViews {
|
|
|
310
62
|
readonly raw: TextureView;
|
|
311
63
|
}
|
|
312
64
|
export declare function recordSsaoBlurPass(_c: _InternalRenderPipelineContext, resolveCtx?: ResolveContext, ssaoBlurredKey?: string, ssaoRawKey?: string, gbuf0Key?: string, hdrDepthKey?: string, graphPass?: RhiRenderPassEncoder, graphViews?: SsaoBlurPassViews): void;
|
|
313
|
-
export interface AddTonemapPassOptions {
|
|
314
|
-
/** Logical HDR resource tonemap reads when bloom is on (the bloom composite output). */
|
|
315
|
-
readonly hdrComposited: string;
|
|
316
|
-
/**
|
|
317
|
-
* Logical HDR resource tonemap reads when bloom is OFF (the bloom composite
|
|
318
|
-
* pass is gated off and never writes hdrComposited). Defaults to
|
|
319
|
-
* `hdrComposited` for pipelines where the two are the same texture (e.g.
|
|
320
|
-
* HDRP passes `hdrColor` for both). URP passes `hdrColor` here so that with
|
|
321
|
-
* bloom off, tonemap reads the main-rendered scene directly instead of an
|
|
322
|
-
* unwritten hdrComposited target (bug-20260625).
|
|
323
|
-
*/
|
|
324
|
-
readonly hdrColorWhenBloomOff?: string;
|
|
325
|
-
/** Logical LDR output; defaults to the swap-chain. */
|
|
326
|
-
readonly color?: string;
|
|
327
|
-
/** Run the final linear-LDR -> display-encoded output without tone mapping. */
|
|
328
|
-
readonly outputOnly?: boolean;
|
|
329
|
-
}
|
|
330
|
-
/**
|
|
331
|
-
* Reserved post-process id for the engine built-in tonemap (feat-20260621 M-A3
|
|
332
|
-
* / D-5). Registered at boot via `postProcess.register(TONEMAP_POST_PROCESS_ID,
|
|
333
|
-
* { source, params })`; the extract stage bridges `Camera.exposure / whitePoint
|
|
334
|
-
* / tonemap` onto the params channel under this key (render-system-extract.ts).
|
|
335
|
-
*/
|
|
336
|
-
export declare const TONEMAP_POST_PROCESS_ID = "forgeax::tonemap";
|
|
337
|
-
/**
|
|
338
|
-
* HDR -> LDR tonemap fullscreen pass. feat-20260621 M-A3 (D-5): the built-in
|
|
339
|
-
* tonemap now flows through the SAME unified fullscreen post-process channel as
|
|
340
|
-
* any custom post-process — registered at boot via `postProcess.register(
|
|
341
|
-
* 'forgeax::tonemap', { source, params })`, its exposure/whitePoint/mode bridged
|
|
342
|
-
* onto the per-frame params channel by the extract stage, and dispatched here
|
|
343
|
-
* through `dispatchFullscreenPass`. This wrapper preserves two behaviours the
|
|
344
|
-
* generic `addFullscreenPass` lacks:
|
|
345
|
-
* - the per-frame `tonemapActive` gate (`camera.tonemap === 'none'` ->
|
|
346
|
-
* zero-overhead skip), and
|
|
347
|
-
* - graceful degradation (charter §9) on the empty-manifest path: when
|
|
348
|
-
* `forgeax::tonemap` was never registered (Camera-only world, no manifest)
|
|
349
|
-
* fire a structured `shader-compile-failed` instead of letting the
|
|
350
|
-
* dispatcher throw `post-process-not-found`.
|
|
351
|
-
* The output is a graph resource when FXAA is active, otherwise the reserved
|
|
352
|
-
* `'swapchain'` key resolves to the current surface view.
|
|
353
|
-
*/
|
|
354
|
-
export declare function addTonemapPass(graph: RenderGraph<RenderPipelineContext>, name: string, opts: AddTonemapPassOptions): void;
|
|
355
|
-
export interface AddFullscreenPassOptions {
|
|
356
|
-
/**
|
|
357
|
-
* Registered post-process shader id (via renderer.postProcess.register). The
|
|
358
|
-
* built-in `'fxaa'` id is a hardwired dispatcher branch; any other id is an
|
|
359
|
-
* AI-user effect whose WGSL declares `vs_main` + `fs_main` and samples the
|
|
360
|
-
* input at `@group(1) @binding(0)` texture + `@binding(1)` sampler. With
|
|
361
|
-
* `compositeOverSwapchain` this is how an effect layers over URP's final image
|
|
362
|
-
* (see RenderPipelineAsset.config.postEffects).
|
|
363
|
-
*/
|
|
364
|
-
readonly shader: string;
|
|
365
|
-
/** Graph resource key the pass writes (intermediate scratch RT for FXAA / the composite scratch). */
|
|
366
|
-
readonly color: string;
|
|
367
|
-
/** Graph resource keys the pass samples. Empty = use the current surface view. */
|
|
368
|
-
readonly reads?: readonly string[] | undefined;
|
|
369
|
-
/**
|
|
370
|
-
* feat-20260621 M4': composite-over-swap-chain mode. When true, the pass
|
|
371
|
-
* copies the CURRENT swap-chain into the `color` scratch target (so the effect
|
|
372
|
-
* samples the already-composited final image), samples that scratch, then
|
|
373
|
-
* writes the result back into the swap-chain through its non-srgb storage view
|
|
374
|
-
* (R-COLORSPACE: the swap-chain is already sRGB-encoded, so writing through the
|
|
375
|
-
* srgb view would double-encode). This is the generalisation of the built-in
|
|
376
|
-
* `'fxaa'` copy idiom to AI-user effects — the mechanism that lets a built-in
|
|
377
|
-
* pipeline layer a registered effect on top of its final image WITHOUT
|
|
378
|
-
* replacing the pipeline (and dropping its shadow / tonemap passes). `color`
|
|
379
|
-
* MUST be a `graph.addColorTarget` declared with the swap-chain storage format
|
|
380
|
-
* + COPY_DST | TEXTURE_BINDING usage (it is both copy dst and sampled input);
|
|
381
|
-
* `reads` stays empty.
|
|
382
|
-
*
|
|
383
|
-
* WebGPU backend only: the mid-frame swap-chain copy + non-srgb storage-view
|
|
384
|
-
* write are not supported on the WebGL2 fallback swap-chain (no COPY_SRC, no
|
|
385
|
-
* non-srgb reinterpret view) — the same constraint `recordFxaaPass` carries.
|
|
386
|
-
*/
|
|
387
|
-
readonly compositeOverSwapchain?: boolean | undefined;
|
|
388
|
-
}
|
|
389
|
-
/**
|
|
390
|
-
* AC-06 / AC-07: declare a generic fullscreen post-process pass. The shader is
|
|
391
|
-
* looked up from `renderer.postProcess.register(shader, …)`; the primitive
|
|
392
|
-
* builds the input-texture BGL + sampler + pipeline + ping-pong wiring. For
|
|
393
|
-
* the FXAA case the implementation detail is `recordFxaaPass`
|
|
394
|
-
* (package-private), which owns the graph-input-to-surface-output attachment
|
|
395
|
-
* route.
|
|
396
|
-
*
|
|
397
|
-
* If `opts.reads` is empty the pass uses the current surface view (default).
|
|
398
|
-
* Post-processes that read a graph-owned texture
|
|
399
|
-
* (e.g. tonemap rebuilt as a fullscreen pass, OOS-3) will declare reads
|
|
400
|
-
* explicitly.
|
|
401
|
-
*
|
|
402
|
-
* F-3 topology refactor (2026-06-08): the FXAA path now flows through this
|
|
403
|
-
* dispatcher (`addFullscreenPass(g, 'fxaa', ...)` -> `dispatchFullscreenPass` ->
|
|
404
|
-
* `recordFxaaPass`). The two-branch dispatcher is the load-bearing AC-09
|
|
405
|
-
* "FXAA refactored as the first post-process instance" claim: at the
|
|
406
|
-
* topology layer FXAA is a special-cased shader id; at the record layer
|
|
407
|
-
* recordFxaaPass owns the backend-aware output attachment. The
|
|
408
|
-
* dispatcher is extracted as a named function (`dispatchFullscreenPass`)
|
|
409
|
-
* so an AI user reading the per-pass execute closure sees a single call
|
|
410
|
-
* site — the if/else fan-out is in one place, not duplicated across
|
|
411
|
-
* future fullscreen passes.
|
|
412
|
-
*/
|
|
413
|
-
export declare function addFullscreenPass(graph: RenderGraph<RenderPipelineContext>, name: string, opts: AddFullscreenPassOptions): void;
|
|
414
65
|
export declare function encodeFullscreenPass(ctx: RenderPipelineContext, pass: RhiRenderPassEncoder, input: {
|
|
415
66
|
readonly name: string;
|
|
416
67
|
readonly shader: string;
|
|
@@ -421,4 +72,5 @@ export declare function encodeFullscreenPass(ctx: RenderPipelineContext, pass: R
|
|
|
421
72
|
readonly rawSwapchainOutput?: boolean | undefined;
|
|
422
73
|
readonly depthView?: TextureView | undefined;
|
|
423
74
|
}): void;
|
|
75
|
+
export {};
|
|
424
76
|
//# sourceMappingURL=render-graph-primitives.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-graph-primitives.d.ts","sourceRoot":"","sources":["../src/render-graph-primitives.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"render-graph-primitives.d.ts","sourceRoot":"","sources":["../src/render-graph-primitives.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAEV,oBAAoB,EAEpB,OAAO,EAEP,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAU7B,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,yBAAyB,CAAC;AAE9E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAI/D,KAAK,sBAAsB,GAAG,IAAI,CAAC,8BAA8B,EAAE,SAAS,CAAC,GAAG;IAC9E,QAAQ,CAAC,UAAU,EAAE;QACnB,QAAQ,CAAC,aAAa,CAAC,EAAE;YACvB,QAAQ,CAAC,qBAAqB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,SAAS,CAAC;SACtE,GAAG,IAAI,CAAC;KACV,CAAC;CACH,CAAC;AAqBF;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,sBAAsB,EACjC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAC3B,WAAW,GAAG,IAAI,CAuBpB;AAuHD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC;CACrC;AAED,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,8BAA8B,EAClC,UAAU,CAAC,EAAE,cAAc,EAC3B,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,oBAAoB,EAChC,UAAU,CAAC,EAAE,iBAAiB,GAC7B,IAAI,CAiHN;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;CAC3B;AAED,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,8BAA8B,EAClC,UAAU,CAAC,EAAE,cAAc,EAC3B,cAAc,CAAC,EAAE,MAAM,EACvB,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,oBAAoB,EAChC,UAAU,CAAC,EAAE,iBAAiB,GAC7B,IAAI,CA6GN;AA4RD,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,qBAAqB,EAC1B,IAAI,EAAE,oBAAoB,EAC1B,KAAK,EAAE;IACL,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAC;IACxC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAClD,QAAQ,CAAC,SAAS,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CAC9C,GACA,IAAI,CAcN"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import type { ColorValueDomain, GraphAccess, GraphResourceResolver, GraphTexture, GraphTextureView, RenderGraphBuilder, RenderGraphError, RenderGraphFrame } from '@forgeax/engine-render-graph';
|
|
2
|
-
import type { BindGroup, RhiError, RhiRenderPassEncoder } from '@forgeax/engine-rhi';
|
|
1
|
+
import type { ColorValueDomain, GraphAccess, GraphResourceResolver, GraphTexture, GraphTextureDescriptor, GraphTextureView, GraphTextureViewDescriptor, RenderGraphBuilder, RenderGraphError, RenderGraphFrame } from '@forgeax/engine-render-graph';
|
|
2
|
+
import type { BindGroup, RhiError, RhiRenderPassEncoder, TextureFormat } from '@forgeax/engine-rhi';
|
|
3
3
|
import { type Result } from '@forgeax/engine-types';
|
|
4
4
|
import type { Tonemap } from './components/camera';
|
|
5
|
-
import type {
|
|
6
|
-
import { type RenderError } from './errors/render';
|
|
5
|
+
import type { RenderError } from './errors/render';
|
|
7
6
|
import type { RenderFeatureTargetKind } from './features/targets';
|
|
8
|
-
import type {
|
|
9
|
-
import type { RenderPipelineContext } from './render-
|
|
10
|
-
export type { RenderPipelineContext } from './render-
|
|
7
|
+
import type { StandardProfile } from './pipeline/standard-profile';
|
|
8
|
+
import type { RenderPipelineContext } from './render-contract';
|
|
9
|
+
export type { RenderPipelineContext } from './render-contract';
|
|
11
10
|
export type RenderColorDomain = 'linearHdr' | 'linearLdr' | 'displayEncoded';
|
|
12
11
|
export interface ToneOutputContract {
|
|
13
12
|
readonly input: RenderColorDomain;
|
|
@@ -23,11 +22,11 @@ export type RenderPostDomainStage = readonly [
|
|
|
23
22
|
ColorValueDomain
|
|
24
23
|
];
|
|
25
24
|
/**
|
|
26
|
-
* Single post-stage domain contract shared by
|
|
27
|
-
* The
|
|
25
|
+
* Single post-stage domain contract shared by the Standard lighting lanes.
|
|
26
|
+
* The selected scene domain for transparent geometry is explicit; every later
|
|
28
27
|
* stage follows the same linear blend, tone, anti-alias, and output sequence.
|
|
29
28
|
*/
|
|
30
|
-
export declare function resolvePostColorDomainContract(
|
|
29
|
+
export declare function resolvePostColorDomainContract(sceneDomain: 'linear-ldr' | 'linear-hdr'): readonly RenderPostDomainStage[];
|
|
31
30
|
/**
|
|
32
31
|
* Describe the built-in output stages without moving color-domain policy into
|
|
33
32
|
* a mode name. Tone-enabled cameras render HDR, apply exposure and the
|
|
@@ -37,6 +36,7 @@ export declare function resolveToneOutputContract(tonemap: Tonemap): ToneOutputC
|
|
|
37
36
|
/** Stable facts that may change graph topology and therefore its compiled identity. */
|
|
38
37
|
export interface RenderPipelineTopology {
|
|
39
38
|
readonly pipelineId: string;
|
|
39
|
+
readonly standardProfile?: StandardProfile | undefined;
|
|
40
40
|
readonly config: import('@forgeax/engine-types').RenderPipelineAsset['config'];
|
|
41
41
|
readonly surface: {
|
|
42
42
|
readonly width: number;
|
|
@@ -60,81 +60,42 @@ export interface RenderPipelineTopology {
|
|
|
60
60
|
};
|
|
61
61
|
readonly featureTopologySignature: string;
|
|
62
62
|
readonly gpuDrivenTopologySignature: string;
|
|
63
|
-
/** Environment topology is absent off-path and producer-free when steady. */
|
|
64
|
-
readonly environment?: {
|
|
65
|
-
readonly enabled: boolean;
|
|
66
|
-
readonly dirty: boolean;
|
|
67
|
-
} | undefined;
|
|
68
63
|
}
|
|
69
|
-
export type BuiltinEnvironmentPipeline = 'urp' | 'hdrp';
|
|
70
|
-
/** Stable pass provenance used by topology traces and pixel-capture attribution. */
|
|
71
|
-
export declare function createEnvironmentPipelineTopology(pipeline: BuiltinEnvironmentPipeline): readonly string[];
|
|
72
64
|
export interface RenderPipelineFrame extends RenderPipelineContext, RenderGraphFrame {
|
|
73
65
|
}
|
|
66
|
+
export interface RenderPipelineTarget {
|
|
67
|
+
readonly texture: GraphTexture;
|
|
68
|
+
readonly view: GraphTextureView;
|
|
69
|
+
readonly format: TextureFormat;
|
|
70
|
+
readonly sampleCount: 1 | 4;
|
|
71
|
+
readonly resolveTarget?: GraphTextureView | undefined;
|
|
72
|
+
}
|
|
73
|
+
export declare function createRenderPipelineTarget(graph: RenderGraphBuilder<RenderPipelineFrame>, label: string, descriptor: GraphTextureDescriptor, viewDescriptor?: GraphTextureViewDescriptor): Result<RenderPipelineTarget, RenderGraphError>;
|
|
74
|
+
export declare function importRenderPipelineSurface(graph: RenderGraphBuilder<RenderPipelineFrame>, topology: RenderPipelineTopology): Result<{
|
|
75
|
+
readonly display: RenderPipelineTarget;
|
|
76
|
+
readonly storage: RenderPipelineTarget;
|
|
77
|
+
}, RenderGraphError>;
|
|
74
78
|
export interface RenderPipelineFeatureTarget {
|
|
75
79
|
readonly kind: RenderFeatureTargetKind;
|
|
76
80
|
readonly texture: GraphTexture;
|
|
77
81
|
readonly view: GraphTextureView;
|
|
78
82
|
readonly resolveTarget?: GraphTextureView | undefined;
|
|
79
|
-
readonly format:
|
|
83
|
+
readonly format: TextureFormat;
|
|
80
84
|
readonly sampleCount: 1 | 4;
|
|
81
85
|
}
|
|
82
|
-
export interface RenderPipelineTemporalInput {
|
|
83
|
-
readonly sceneColor: RenderPipelineFeatureTarget;
|
|
84
|
-
readonly sceneDepth: RenderPipelineFeatureTarget;
|
|
85
|
-
readonly sceneTemporal?: RenderPipelineFeatureTarget | undefined;
|
|
86
|
-
}
|
|
87
|
-
export interface RenderPipelineTemporalOutput {
|
|
88
|
-
readonly resolvedColor: RenderPipelineFeatureTarget;
|
|
89
|
-
}
|
|
90
|
-
export interface RenderPipelineTemporalContract {
|
|
91
|
-
resolve(input: RenderPipelineTemporalInput): Result<RenderPipelineTemporalOutput | undefined, RenderPipelineBuildError>;
|
|
92
|
-
finish(): Result<void, RenderPipelineBuildError>;
|
|
93
|
-
inspect(): {
|
|
94
|
-
readonly resolveCount: number;
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
export declare function createRenderPipelineTemporalContract(input: {
|
|
98
|
-
readonly enabled: boolean;
|
|
99
|
-
readonly rgba16floatRenderable: boolean;
|
|
100
|
-
readonly maxColorAttachments: number;
|
|
101
|
-
project(input: RenderPipelineTemporalInput): Result<RenderPipelineTemporalOutput, RenderPipelineBuildError>;
|
|
102
|
-
}): RenderPipelineTemporalContract;
|
|
103
86
|
export interface RenderPipelineGpuDrivenProjection {
|
|
104
87
|
readonly accesses: readonly GraphAccess[];
|
|
105
|
-
/**
|
|
106
|
-
* Shadow cascades consume the same GPU-generated visibility/indirect
|
|
107
|
-
* contract as the main raster. The projection is optional for fallback
|
|
108
|
-
* devices and for frames without a safe shadow batch.
|
|
109
|
-
*/
|
|
110
|
-
readonly shadow?: readonly RenderPipelineGpuDrivenShadowProjection[];
|
|
111
88
|
encode(viewBindGroup: BindGroup, pass: RhiRenderPassEncoder, resources: GraphResourceResolver): void;
|
|
112
89
|
}
|
|
113
|
-
export interface RenderPipelineGpuDrivenShadowProjection {
|
|
114
|
-
readonly cascadeIndex: number;
|
|
115
|
-
readonly accesses: readonly GraphAccess[];
|
|
116
|
-
/** Number of indirect `(cascade, shadow batch)` draw calls in this projection. */
|
|
117
|
-
readonly batchCount?: number;
|
|
118
|
-
/** The caller has already bound the shared shadow view/material groups. */
|
|
119
|
-
encode(pass: RhiRenderPassEncoder, resources: GraphResourceResolver): void;
|
|
120
|
-
}
|
|
121
90
|
export interface RenderPipelineBuildContext<FrameCtx extends RenderPipelineFrame> {
|
|
122
91
|
readonly graph: RenderGraphBuilder<FrameCtx>;
|
|
123
|
-
/** Renderer-owned physical candidate views; custom pipelines may consume them. */
|
|
124
|
-
readonly environment?: {
|
|
125
|
-
readonly enabled: boolean;
|
|
126
|
-
readonly dirty: boolean;
|
|
127
|
-
readonly targets?: EnvironmentGraphTargets | undefined;
|
|
128
|
-
readonly sampledSky?: GraphTextureView | undefined;
|
|
129
|
-
} | undefined;
|
|
130
92
|
projectGpuDriven(target: {
|
|
131
|
-
readonly format:
|
|
93
|
+
readonly format: TextureFormat;
|
|
132
94
|
readonly sampleCount: 1 | 4;
|
|
133
95
|
}): Result<RenderPipelineGpuDrivenProjection | undefined, RenderPipelineBuildError>;
|
|
134
96
|
contributeFeatures(targets: readonly RenderPipelineFeatureTarget[]): Result<void, RenderPipelineBuildError>;
|
|
135
|
-
resolveTemporal(input: RenderPipelineTemporalInput): Result<RenderPipelineTemporalOutput | undefined, RenderPipelineBuildError>;
|
|
136
97
|
}
|
|
137
|
-
export type RenderPipelineBuildError = RenderGraphError | RenderError | RhiError
|
|
98
|
+
export type RenderPipelineBuildError = RenderGraphError | RenderError | RhiError;
|
|
138
99
|
/**
|
|
139
100
|
* Registrable, installable, hot-swappable render topology.
|
|
140
101
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-pipeline.d.ts","sourceRoot":"","sources":["../src/render-pipeline.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"render-pipeline.d.ts","sourceRoot":"","sources":["../src/render-pipeline.ts"],"names":[],"mappings":"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"}
|