@forgeax/engine-render 0.1.7 → 0.1.19
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 +140 -2
- package/dist/.tsbuildinfo +1 -1
- package/dist/assembly/backend-contract.d.ts +12 -0
- package/dist/assembly/backend-contract.d.ts.map +1 -1
- package/dist/assembly/factory.d.ts +12 -2
- package/dist/assembly/factory.d.ts.map +1 -1
- package/dist/assembly/host-contract.d.ts +4 -0
- package/dist/assembly/host-contract.d.ts.map +1 -1
- package/dist/assembly/renderer-frame-transaction.d.ts +39 -0
- package/dist/assembly/renderer-frame-transaction.d.ts.map +1 -0
- package/dist/assembly/renderer-inspection.d.ts +22 -0
- package/dist/assembly/renderer-inspection.d.ts.map +1 -0
- package/dist/assembly/renderer-lifecycle.d.ts +4 -0
- package/dist/assembly/renderer-lifecycle.d.ts.map +1 -0
- package/dist/authoring.mjs +4 -2
- package/dist/authoring.mjs.map +1 -1
- package/dist/chunk-FJ6P52EE.mjs +46 -0
- package/dist/chunk-FJ6P52EE.mjs.map +1 -0
- package/dist/chunk-IPXCABEP.mjs +73 -0
- package/dist/chunk-IPXCABEP.mjs.map +1 -0
- package/dist/chunk-JDWARUOI.mjs +44 -0
- package/dist/chunk-JDWARUOI.mjs.map +1 -0
- package/dist/{chunk-YEJIUW7D.mjs → chunk-LOSO4CTV.mjs} +296 -547
- package/dist/chunk-LOSO4CTV.mjs.map +1 -0
- package/dist/chunk-PCHBPYML.mjs +385 -0
- package/dist/chunk-PCHBPYML.mjs.map +1 -0
- package/dist/chunk-RJRUS55L.mjs +9323 -0
- package/dist/chunk-RJRUS55L.mjs.map +1 -0
- package/dist/chunk-RXZ3RGOU.mjs +53 -0
- package/dist/chunk-RXZ3RGOU.mjs.map +1 -0
- package/dist/{chunk-CQXZC5XI.mjs → chunk-VFPLTKCU.mjs} +79 -69
- package/dist/chunk-VFPLTKCU.mjs.map +1 -0
- package/dist/chunk-YTQ5C7YQ.mjs +584 -0
- package/dist/chunk-YTQ5C7YQ.mjs.map +1 -0
- package/dist/components/atmosphere.d.ts +9 -0
- package/dist/components/atmosphere.d.ts.map +1 -0
- package/dist/components/camera.d.ts +2 -1
- package/dist/components/camera.d.ts.map +1 -1
- package/dist/components/fog.d.ts +8 -0
- package/dist/components/fog.d.ts.map +1 -0
- package/dist/components/index.d.ts +3 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/motion-blur.d.ts +7 -0
- package/dist/components/motion-blur.d.ts.map +1 -0
- package/dist/construct-renderer.d.ts +2 -2
- package/dist/construct-renderer.d.ts.map +1 -1
- package/dist/construct-renderer.mjs +10914 -16392
- package/dist/construct-renderer.mjs.map +1 -1
- package/dist/device/device-scope.d.ts +4 -0
- package/dist/device/device-scope.d.ts.map +1 -1
- package/dist/environment/frame.d.ts +60 -0
- package/dist/environment/frame.d.ts.map +1 -0
- package/dist/environment/generation.d.ts +21 -0
- package/dist/environment/generation.d.ts.map +1 -0
- package/dist/environment/graph.d.ts +4 -0
- package/dist/environment/graph.d.ts.map +1 -0
- package/dist/environment/inspection.d.ts +48 -0
- package/dist/environment/inspection.d.ts.map +1 -0
- package/dist/environment/lifecycle.d.ts +39 -0
- package/dist/environment/lifecycle.d.ts.map +1 -0
- package/dist/environment/signature.d.ts +25 -0
- package/dist/environment/signature.d.ts.map +1 -0
- package/dist/errors/render.d.ts +136 -1
- package/dist/errors/render.d.ts.map +1 -1
- package/dist/extract/camera.d.ts +5 -0
- package/dist/extract/camera.d.ts.map +1 -0
- package/dist/extract/environment.d.ts +74 -0
- package/dist/extract/environment.d.ts.map +1 -0
- package/dist/extract/visibility.d.ts +1 -1
- package/dist/extract/visibility.d.ts.map +1 -1
- package/dist/features/host.d.ts +9 -2
- package/dist/features/host.d.ts.map +1 -1
- package/dist/features/motion-blur/motion-blur-feature.d.ts +16 -0
- package/dist/features/motion-blur/motion-blur-feature.d.ts.map +1 -0
- package/dist/features/motion-blur/motion-blur-params.d.ts +25 -0
- package/dist/features/motion-blur/motion-blur-params.d.ts.map +1 -0
- package/dist/features/plan.d.ts +17 -2
- package/dist/features/plan.d.ts.map +1 -1
- package/dist/features/prepared-gpu-work.d.ts +3 -1
- package/dist/features/prepared-gpu-work.d.ts.map +1 -1
- package/dist/features/prepared-graphics.d.ts +2 -1
- package/dist/features/prepared-graphics.d.ts.map +1 -1
- package/dist/features/render-graph-raster.d.ts +2 -1
- package/dist/features/render-graph-raster.d.ts.map +1 -1
- package/dist/features/targets.d.ts +3 -0
- package/dist/features/targets.d.ts.map +1 -1
- package/dist/features/types.d.ts +12 -0
- package/dist/features/types.d.ts.map +1 -1
- package/dist/fullscreen-post-process-pass.d.ts +7 -1
- package/dist/fullscreen-post-process-pass.d.ts.map +1 -1
- package/dist/gpu-scene.d.ts +2 -0
- package/dist/gpu-scene.d.ts.map +1 -1
- package/dist/ibl/skylight-bind-group.d.ts +5 -6
- package/dist/ibl/skylight-bind-group.d.ts.map +1 -1
- package/dist/index.d.ts +17 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +6 -4
- package/dist/index.mjs.map +1 -1
- package/dist/inspection-types.d.ts +43 -1
- package/dist/inspection-types.d.ts.map +1 -1
- package/dist/internal.d.ts +2 -0
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.mjs +2 -0
- package/dist/materials.d.ts +22 -0
- package/dist/materials.d.ts.map +1 -1
- package/dist/pbr-pipeline.d.ts +10 -6
- package/dist/pbr-pipeline.d.ts.map +1 -1
- package/dist/pipeline/standard-forward-lane.d.ts.map +1 -1
- package/dist/pipeline/standard-pipeline.d.ts +3 -0
- package/dist/pipeline/standard-pipeline.d.ts.map +1 -1
- package/dist/pipeline/standard-post.d.ts +48 -0
- package/dist/pipeline/standard-post.d.ts.map +1 -0
- package/dist/pipeline/standard-profile.d.ts +3 -6
- package/dist/pipeline/standard-profile.d.ts.map +1 -1
- package/dist/pipeline-builder.d.ts +18 -0
- package/dist/pipeline-builder.d.ts.map +1 -1
- package/dist/pipeline-spec.d.ts.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/record/frame-snapshot.d.ts +100 -5
- package/dist/record/frame-snapshot.d.ts.map +1 -1
- package/dist/record/frame-targets.d.ts.map +1 -1
- package/dist/record/frame.d.ts +4 -2
- package/dist/record/frame.d.ts.map +1 -1
- package/dist/record/main-pass-geometry.d.ts +11 -0
- package/dist/record/main-pass-geometry.d.ts.map +1 -1
- package/dist/record/main-pass-material.d.ts +8 -5
- package/dist/record/main-pass-material.d.ts.map +1 -1
- package/dist/record/main-pass-sprite-draws.d.ts +8 -1
- package/dist/record/main-pass-sprite-draws.d.ts.map +1 -1
- package/dist/record/main-pass.d.ts +2 -0
- package/dist/record/main-pass.d.ts.map +1 -1
- package/dist/record/mesh-ssbo.d.ts.map +1 -1
- package/dist/record/render-context.d.ts +76 -18
- package/dist/record/render-context.d.ts.map +1 -1
- package/dist/record/shadow-pass.d.ts.map +1 -1
- package/dist/record/skybox-post-pass.d.ts +1 -11
- package/dist/record/skybox-post-pass.d.ts.map +1 -1
- package/dist/record/typed-frame-graph.d.ts +26 -2
- package/dist/record/typed-frame-graph.d.ts.map +1 -1
- package/dist/record/view-ubo.d.ts +4 -1
- package/dist/record/view-ubo.d.ts.map +1 -1
- package/dist/render-contract.d.ts +92 -8
- package/dist/render-contract.d.ts.map +1 -1
- package/dist/render-graph-primitives.d.ts.map +1 -1
- package/dist/render-pipeline.d.ts +50 -6
- package/dist/render-pipeline.d.ts.map +1 -1
- package/dist/render-system-extract.d.ts +29 -5
- package/dist/render-system-extract.d.ts.map +1 -1
- package/dist/render-system.d.ts +23 -4
- package/dist/render-system.d.ts.map +1 -1
- package/dist/scene/render-scene.d.ts +36 -2
- package/dist/scene/render-scene.d.ts.map +1 -1
- package/dist/temporal/coverage.d.ts +42 -0
- package/dist/temporal/coverage.d.ts.map +1 -0
- package/dist/temporal/frame-coordinator.d.ts +99 -0
- package/dist/temporal/frame-coordinator.d.ts.map +1 -0
- package/dist/temporal/gpu.d.ts +39 -0
- package/dist/temporal/gpu.d.ts.map +1 -0
- package/dist/temporal/history.d.ts +37 -0
- package/dist/temporal/history.d.ts.map +1 -0
- package/dist/temporal/index.d.ts +7 -0
- package/dist/temporal/index.d.ts.map +1 -0
- package/dist/temporal/index.mjs +8 -0
- package/dist/temporal/index.mjs.map +1 -0
- package/dist/temporal/inspection.d.ts +36 -0
- package/dist/temporal/inspection.d.ts.map +1 -0
- package/dist/temporal/scene-data-catalog.d.ts +48 -0
- package/dist/temporal/scene-data-catalog.d.ts.map +1 -0
- package/dist/temporal/scene-data.d.ts +43 -0
- package/dist/temporal/scene-data.d.ts.map +1 -0
- package/dist/temporal/standard-scene-data.d.ts +61 -0
- package/dist/temporal/standard-scene-data.d.ts.map +1 -0
- package/dist/temporal/taa-history-resources.d.ts +22 -0
- package/dist/temporal/taa-history-resources.d.ts.map +1 -0
- package/dist/temporal/taa-history-store.d.ts +27 -0
- package/dist/temporal/taa-history-store.d.ts.map +1 -0
- package/dist/temporal/taa-resolve.d.ts +15 -0
- package/dist/temporal/taa-resolve.d.ts.map +1 -0
- package/dist/temporal/temporal-view.d.ts +40 -0
- package/dist/temporal/temporal-view.d.ts.map +1 -0
- package/dist/temporal/transaction.d.ts +9 -0
- package/dist/temporal/transaction.d.ts.map +1 -0
- package/dist/temporal/view.d.ts +56 -0
- package/dist/temporal/view.d.ts.map +1 -0
- package/dist/transmission/backdrop.d.ts +147 -0
- package/dist/transmission/backdrop.d.ts.map +1 -0
- package/dist/transmission/inspection.d.ts +57 -0
- package/dist/transmission/inspection.d.ts.map +1 -0
- package/dist/transmission/oracle.d.ts +42 -0
- package/dist/transmission/oracle.d.ts.map +1 -0
- package/dist/transmission/projection.d.ts +37 -0
- package/dist/transmission/projection.d.ts.map +1 -0
- package/dist/typed-render-graph-primitives.d.ts +25 -2
- package/dist/typed-render-graph-primitives.d.ts.map +1 -1
- package/package.json +24 -19
- package/src/__tests__/ai-user-cold-start.integration.test.ts +59 -0
- package/src/__tests__/ai-user-public-surface.test-d.ts +45 -0
- package/src/__tests__/bloom-exact-zero.unit.test.ts +202 -0
- package/src/__tests__/bloom-lifecycle.integration.test.ts +125 -0
- package/src/__tests__/construct-renderer-identity.unit.test.ts +4 -3
- package/src/__tests__/detached-inspection.integration.test.ts +177 -0
- package/src/__tests__/environment-fog-lanes.integration.test.ts +219 -0
- package/src/__tests__/environment-generation.integration.test.ts +141 -0
- package/src/__tests__/environment-selection.unit.test.ts +245 -0
- package/src/__tests__/factory-contract.integration.test.ts +1380 -9
- package/src/__tests__/frame-plan-contract.unit.test.ts +90 -0
- package/src/__tests__/fullscreen-feature-plan.unit.test.ts +7 -0
- package/src/__tests__/gpu-driven-production.integration.test.ts +74 -22
- package/src/__tests__/gpu-driven-view-graph.integration.test.ts +37 -0
- package/src/__tests__/gpu-scene.unit.test.ts +10 -0
- package/src/__tests__/injection-kind-owner.test-d.ts +2 -1
- package/src/__tests__/material-contract-inventory.unit.test.ts +62 -0
- package/src/__tests__/material-cooked-projection.unit.test.ts +18 -146
- package/src/__tests__/materials-transmission-validation.unit.test.ts +36 -0
- package/src/__tests__/morph-feature-plan.unit.test.ts +7 -0
- package/src/__tests__/motion-blur.pixel.integration.test.ts +121 -0
- package/src/__tests__/public-surface.test-d.ts +15 -1
- package/src/__tests__/render-error-code-owner.test-d.ts +9 -0
- package/src/__tests__/render-error-detail-ssot.test-d.ts +11 -2
- package/src/__tests__/render-error-exhaustive.test-d.ts +3 -0
- package/src/__tests__/render-feature-errors.unit.test.ts +33 -3
- package/src/__tests__/render-feature-gpu-work.integration.test.ts +44 -0
- package/src/__tests__/render-feature-plan.test-d.ts +22 -89
- package/src/__tests__/render-scene-projection.unit.test.ts +28 -0
- package/src/__tests__/render-temporal-environment-consumer.browser.test.ts +26 -0
- package/src/__tests__/render-temporal-environment-consumer.dawn.test.ts +21 -0
- package/src/__tests__/renderer-factory-material-contract.unit.test.ts +395 -1
- package/src/__tests__/renderer-frame-transaction.integration.test.ts +405 -0
- package/src/__tests__/renderer-lifecycle.integration.test.ts +22 -0
- package/src/__tests__/scene-data-catalog.unit.test.ts +59 -0
- package/src/__tests__/scene-data-consumer.integration.test.ts +67 -0
- package/src/__tests__/scene-data-contract.test-d.ts +35 -0
- package/src/__tests__/scene-data-inspection.unit.test.ts +41 -0
- package/src/__tests__/scene-data-public-surface.test-d.ts +34 -0
- package/src/__tests__/shader-manifest-fixture.ts +111 -0
- package/src/__tests__/skinned-shadow-caster.test.ts +102 -0
- package/src/__tests__/standard-clustered-pipeline.unit.test.ts +24 -3
- package/src/__tests__/standard-pipeline.dawn.test.ts +15 -0
- package/src/__tests__/standard-pipeline.integration.test.ts +543 -1
- package/src/__tests__/standard-profile-oracle.unit.test.ts +10 -2
- package/src/__tests__/standard-temporal-producer.integration.test.ts +35 -0
- package/src/__tests__/surface-configuration.unit.test.ts +211 -12
- package/src/__tests__/taa-transaction.integration.test.ts +30 -0
- package/src/__tests__/temporal-admission.integration.test.ts +40 -0
- package/src/__tests__/temporal-coverage.unit.test.ts +35 -0
- package/src/__tests__/temporal-demand.unit.test.ts +44 -0
- package/src/__tests__/temporal-frame-coordinator.unit.test.ts +64 -0
- package/src/__tests__/temporal-graph-topology.unit.test.ts +51 -0
- package/src/__tests__/temporal-history-lifecycle.unit.test.ts +170 -0
- package/src/__tests__/temporal-performance.integration.test.ts +615 -0
- package/src/__tests__/temporal-reset-matrix.unit.test.ts +97 -0
- package/src/__tests__/temporal-transaction.integration.test.ts +60 -0
- package/src/__tests__/temporal-view.unit.test.ts +152 -0
- package/src/__tests__/transmission-prewarm.unit.test.ts +93 -0
- package/src/__tests__/typed-pipeline-topology.unit.test.ts +230 -1
- package/src/__tests__/urp-pipeline-targets.unit.test.ts +25 -1
- package/src/__tests__/urp-pipeline.unit.test.ts +4 -3
- package/src/__tests__/visibility-extract.integration.test.ts +27 -1
- package/src/__tests__/visibility-producer-matrix.integration.test.ts +10 -0
- package/src/assembly/backend-contract.ts +47 -1
- package/src/assembly/factory.ts +1224 -505
- package/src/assembly/host-contract.ts +4 -0
- package/src/assembly/renderer-frame-transaction.ts +75 -0
- package/src/assembly/renderer-inspection.ts +112 -0
- package/src/assembly/renderer-lifecycle.ts +6 -0
- package/src/components/__tests__/motion-blur.unit.test.ts +14 -0
- package/src/components/__tests__/schema-contract.unit.test.ts +6 -1
- package/src/components/atmosphere.ts +10 -0
- package/src/components/camera.ts +2 -1
- package/src/components/fog.ts +9 -0
- package/src/components/index.ts +3 -0
- package/src/components/motion-blur.ts +8 -0
- package/src/construct-renderer.ts +40 -3
- package/src/device/device-scope.ts +15 -1
- package/src/environment/frame.ts +185 -0
- package/src/environment/generation.ts +23 -0
- package/src/environment/graph.ts +9 -0
- package/src/environment/inspection.ts +87 -0
- package/src/environment/lifecycle.ts +250 -0
- package/src/environment/signature.ts +55 -0
- package/src/errors/render.ts +285 -0
- package/src/extract/camera.ts +78 -0
- package/src/extract/environment.ts +171 -0
- package/src/extract/visibility.ts +38 -19
- package/src/features/host.ts +36 -5
- package/src/features/motion-blur/__tests__/motion-blur-feature.unit.test.ts +67 -0
- package/src/features/motion-blur/__tests__/motion-blur-params.unit.test.ts +53 -0
- package/src/features/motion-blur/motion-blur-feature.ts +119 -0
- package/src/features/motion-blur/motion-blur-params.ts +89 -0
- package/src/features/plan.ts +32 -3
- package/src/features/prepared-gpu-work.ts +21 -6
- package/src/features/prepared-graphics.ts +2 -1
- package/src/features/render-graph-raster.ts +2 -1
- package/src/features/targets.ts +24 -2
- package/src/features/types.ts +13 -0
- package/src/fullscreen-post-process-pass.ts +34 -4
- package/src/gpu-scene.ts +24 -0
- package/src/ibl/skylight-bind-group.ts +30 -38
- package/src/index.ts +66 -6
- package/src/inspection-types.ts +48 -0
- package/src/internal.ts +5 -0
- package/src/materials.ts +119 -24
- package/src/pbr-pipeline.ts +58 -19
- package/src/pipeline/standard-forward-lane.ts +158 -101
- package/src/pipeline/standard-pipeline.ts +156 -105
- package/src/pipeline/standard-post.ts +373 -0
- package/src/pipeline/standard-profile.ts +11 -11
- package/src/pipeline-builder.ts +102 -12
- package/src/pipeline-spec.ts +9 -0
- package/src/plugin.ts +2 -0
- package/src/record/__tests__/fullscreen-temporal-routing.unit.test.ts +25 -0
- package/src/record/__tests__/main-pass-geometry.unit.test.ts +47 -0
- package/src/record/__tests__/material-bg-cache.unit.test.ts +12 -1
- package/src/record/__tests__/material-pipeline-pending-cache.unit.test.ts +22 -0
- package/src/record/__tests__/sprite-material-abi.unit.test.ts +75 -0
- package/src/record/__tests__/standard-pbr-ubo-layout.unit.test.ts +67 -0
- package/src/record/__tests__/temporal-payload.unit.test.ts +164 -0
- package/src/record/__tests__/typed-frame-graph-plan.unit.test.ts +127 -0
- package/src/record/frame-snapshot.ts +129 -5
- package/src/record/frame-targets.ts +15 -6
- package/src/record/frame.ts +107 -3
- package/src/record/main-pass-geometry.ts +86 -40
- package/src/record/main-pass-material.ts +114 -66
- package/src/record/main-pass-sprite-draws.ts +78 -101
- package/src/record/main-pass.ts +77 -4
- package/src/record/mesh-ssbo.ts +22 -3
- package/src/record/render-context.ts +189 -23
- package/src/record/shadow-pass.ts +113 -23
- package/src/record/skybox-post-pass.ts +97 -41
- package/src/record/typed-frame-graph.ts +565 -26
- package/src/record/view-ubo.ts +52 -4
- package/src/render-contract.ts +109 -6
- package/src/render-graph-primitives.ts +18 -1
- package/src/render-pipeline.ts +100 -27
- package/src/render-system-extract.ts +193 -69
- package/src/render-system.ts +482 -41
- package/src/scene/render-scene.ts +250 -7
- package/src/temporal/__tests__/taa-history-resources.unit.test.ts +45 -0
- package/src/temporal/coverage.ts +76 -0
- package/src/temporal/frame-coordinator.ts +311 -0
- package/src/temporal/gpu.ts +287 -0
- package/src/temporal/history.ts +92 -0
- package/src/temporal/index.ts +6 -0
- package/src/temporal/inspection.ts +97 -0
- package/src/temporal/scene-data-catalog.ts +200 -0
- package/src/temporal/scene-data.ts +149 -0
- package/src/temporal/standard-scene-data.ts +182 -0
- package/src/temporal/taa-history-resources.ts +128 -0
- package/src/temporal/taa-history-store.ts +79 -0
- package/src/temporal/taa-resolve.ts +34 -0
- package/src/temporal/temporal-view.ts +169 -0
- package/src/temporal/transaction.ts +17 -0
- package/src/temporal/view.ts +161 -0
- package/src/transmission/__tests__/capability.unit.test.ts +83 -0
- package/src/transmission/__tests__/composition.integration.test.ts +161 -0
- package/src/transmission/__tests__/inspection.unit.test.ts +241 -0
- package/src/transmission/__tests__/lifecycle.integration.test.ts +96 -0
- package/src/transmission/__tests__/oracle.unit.test.ts +131 -0
- package/src/transmission/__tests__/projection.unit.test.ts +71 -0
- package/src/transmission/__tests__/standard-transmission.dawn.test.ts +438 -0
- package/src/transmission/__tests__/transmission-backdrop-topology.unit.test.ts +109 -0
- package/src/transmission/__tests__/transmission-backdrop.dawn.test.ts +105 -0
- package/src/transmission/backdrop.ts +572 -0
- package/src/transmission/inspection.ts +190 -0
- package/src/transmission/oracle.ts +141 -0
- package/src/transmission/projection.ts +83 -0
- package/src/typed-render-graph-primitives.ts +162 -9
- package/dist/__tests__/authoring-path.unit.test.d.ts +0 -2
- package/dist/__tests__/authoring-path.unit.test.d.ts.map +0 -1
- package/dist/__tests__/backend-selection-rhi-capture.test-d.d.ts +0 -2
- package/dist/__tests__/backend-selection-rhi-capture.test-d.d.ts.map +0 -1
- package/dist/__tests__/callback-inference.test-d.d.ts +0 -2
- package/dist/__tests__/callback-inference.test-d.d.ts.map +0 -1
- package/dist/__tests__/cluster-binner.test.d.ts +0 -2
- package/dist/__tests__/cluster-binner.test.d.ts.map +0 -1
- package/dist/__tests__/cluster-grid-default-surface.unit.test.d.ts +0 -2
- package/dist/__tests__/cluster-grid-default-surface.unit.test.d.ts.map +0 -1
- package/dist/__tests__/construct-renderer-identity.unit.test.d.ts +0 -2
- package/dist/__tests__/construct-renderer-identity.unit.test.d.ts.map +0 -1
- package/dist/__tests__/device-scope-lifecycle.unit.test.d.ts +0 -2
- package/dist/__tests__/device-scope-lifecycle.unit.test.d.ts.map +0 -1
- package/dist/__tests__/device-scope-stale-matrix.unit.test.d.ts +0 -2
- package/dist/__tests__/device-scope-stale-matrix.unit.test.d.ts.map +0 -1
- package/dist/__tests__/direct-extract-consumer-contract.test-d.d.ts +0 -2
- package/dist/__tests__/direct-extract-consumer-contract.test-d.d.ts.map +0 -1
- package/dist/__tests__/direct-light-snapshot.unit.test.d.ts +0 -2
- package/dist/__tests__/direct-light-snapshot.unit.test.d.ts.map +0 -1
- package/dist/__tests__/factory-contract.integration.test.d.ts +0 -2
- package/dist/__tests__/factory-contract.integration.test.d.ts.map +0 -1
- package/dist/__tests__/fallback-row-stride-surface.unit.test.d.ts +0 -2
- package/dist/__tests__/fallback-row-stride-surface.unit.test.d.ts.map +0 -1
- package/dist/__tests__/frame-observation.contract.test.d.ts +0 -2
- package/dist/__tests__/frame-observation.contract.test.d.ts.map +0 -1
- package/dist/__tests__/fullscreen-feature-plan.unit.test.d.ts +0 -2
- package/dist/__tests__/fullscreen-feature-plan.unit.test.d.ts.map +0 -1
- package/dist/__tests__/glyph-text-layout-recovery.unit.test.d.ts +0 -2
- package/dist/__tests__/glyph-text-layout-recovery.unit.test.d.ts.map +0 -1
- package/dist/__tests__/gpu-driven-indirect-raster-evidence.d.ts +0 -6
- package/dist/__tests__/gpu-driven-indirect-raster-evidence.d.ts.map +0 -1
- package/dist/__tests__/gpu-driven-indirect-raster.browser.test.d.ts +0 -2
- package/dist/__tests__/gpu-driven-indirect-raster.browser.test.d.ts.map +0 -1
- package/dist/__tests__/gpu-driven-indirect-raster.dawn.test.d.ts +0 -2
- package/dist/__tests__/gpu-driven-indirect-raster.dawn.test.d.ts.map +0 -1
- package/dist/__tests__/gpu-driven-production.integration.test.d.ts +0 -2
- package/dist/__tests__/gpu-driven-production.integration.test.d.ts.map +0 -1
- package/dist/__tests__/gpu-driven-scaling.unit.test.d.ts +0 -2
- package/dist/__tests__/gpu-driven-scaling.unit.test.d.ts.map +0 -1
- package/dist/__tests__/gpu-driven-view-gpu-evidence.d.ts +0 -18
- package/dist/__tests__/gpu-driven-view-gpu-evidence.d.ts.map +0 -1
- package/dist/__tests__/gpu-driven-view-graph.integration.test.d.ts +0 -2
- package/dist/__tests__/gpu-driven-view-graph.integration.test.d.ts.map +0 -1
- package/dist/__tests__/gpu-driven-view-reference.d.ts +0 -15
- package/dist/__tests__/gpu-driven-view-reference.d.ts.map +0 -1
- package/dist/__tests__/gpu-driven-view.browser.test.d.ts +0 -2
- package/dist/__tests__/gpu-driven-view.browser.test.d.ts.map +0 -1
- package/dist/__tests__/gpu-driven-view.dawn.test.d.ts +0 -2
- package/dist/__tests__/gpu-driven-view.dawn.test.d.ts.map +0 -1
- package/dist/__tests__/gpu-driven-view.unit.test.d.ts +0 -2
- package/dist/__tests__/gpu-driven-view.unit.test.d.ts.map +0 -1
- package/dist/__tests__/gpu-resource-store-stride.unit.test.d.ts +0 -2
- package/dist/__tests__/gpu-resource-store-stride.unit.test.d.ts.map +0 -1
- package/dist/__tests__/gpu-scene-render-graph-gpu.d.ts +0 -7
- package/dist/__tests__/gpu-scene-render-graph-gpu.d.ts.map +0 -1
- package/dist/__tests__/gpu-scene-render-graph.browser.test.d.ts +0 -2
- package/dist/__tests__/gpu-scene-render-graph.browser.test.d.ts.map +0 -1
- package/dist/__tests__/gpu-scene-render-graph.dawn.test.d.ts +0 -2
- package/dist/__tests__/gpu-scene-render-graph.dawn.test.d.ts.map +0 -1
- package/dist/__tests__/gpu-scene-schema.unit.test.d.ts +0 -2
- package/dist/__tests__/gpu-scene-schema.unit.test.d.ts.map +0 -1
- package/dist/__tests__/gpu-scene.dawn.test.d.ts +0 -2
- package/dist/__tests__/gpu-scene.dawn.test.d.ts.map +0 -1
- package/dist/__tests__/gpu-scene.unit.test.d.ts +0 -2
- package/dist/__tests__/gpu-scene.unit.test.d.ts.map +0 -1
- package/dist/__tests__/ibl/face-uniforms.unit.test.d.ts +0 -2
- package/dist/__tests__/ibl/face-uniforms.unit.test.d.ts.map +0 -1
- package/dist/__tests__/infinite-grid-no-vertex-probe.unit.test.d.ts +0 -2
- package/dist/__tests__/infinite-grid-no-vertex-probe.unit.test.d.ts.map +0 -1
- package/dist/__tests__/injection-kind-owner.test-d.d.ts +0 -2
- package/dist/__tests__/injection-kind-owner.test-d.d.ts.map +0 -1
- package/dist/__tests__/ktx2-basis-gpu-consumer.dawn.test.d.ts +0 -2
- package/dist/__tests__/ktx2-basis-gpu-consumer.dawn.test.d.ts.map +0 -1
- package/dist/__tests__/light-buffer-layout.unit.test.d.ts +0 -2
- package/dist/__tests__/light-buffer-layout.unit.test.d.ts.map +0 -1
- package/dist/__tests__/material-contract-inventory.unit.test.d.ts +0 -2
- package/dist/__tests__/material-contract-inventory.unit.test.d.ts.map +0 -1
- package/dist/__tests__/material-cooked-projection.unit.test.d.ts +0 -2
- package/dist/__tests__/material-cooked-projection.unit.test.d.ts.map +0 -1
- package/dist/__tests__/material-snapshot-mutation.integration.test.d.ts +0 -2
- package/dist/__tests__/material-snapshot-mutation.integration.test.d.ts.map +0 -1
- package/dist/__tests__/material-static-dynamic-route.unit.test.d.ts +0 -2
- package/dist/__tests__/material-static-dynamic-route.unit.test.d.ts.map +0 -1
- package/dist/__tests__/material-stride-surface.unit.test.d.ts +0 -2
- package/dist/__tests__/material-stride-surface.unit.test.d.ts.map +0 -1
- package/dist/__tests__/mesh-buffer-usage-surface.unit.test.d.ts +0 -2
- package/dist/__tests__/mesh-buffer-usage-surface.unit.test.d.ts.map +0 -1
- package/dist/__tests__/mesh-material-bindings.unit.test.d.ts +0 -2
- package/dist/__tests__/mesh-material-bindings.unit.test.d.ts.map +0 -1
- package/dist/__tests__/mesh-stride-surface.unit.test.d.ts +0 -2
- package/dist/__tests__/mesh-stride-surface.unit.test.d.ts.map +0 -1
- package/dist/__tests__/morph-culling-reentry.dawn.test.d.ts +0 -2
- package/dist/__tests__/morph-culling-reentry.dawn.test.d.ts.map +0 -1
- package/dist/__tests__/morph-feature-gpu-work.integration.test.d.ts +0 -2
- package/dist/__tests__/morph-feature-gpu-work.integration.test.d.ts.map +0 -1
- package/dist/__tests__/morph-feature-plan.unit.test.d.ts +0 -2
- package/dist/__tests__/morph-feature-plan.unit.test.d.ts.map +0 -1
- package/dist/__tests__/morph-visual-evidence.integration.test.d.ts +0 -2
- package/dist/__tests__/morph-visual-evidence.integration.test.d.ts.map +0 -1
- package/dist/__tests__/nineslice-handle-surface.unit.test.d.ts +0 -2
- package/dist/__tests__/nineslice-handle-surface.unit.test.d.ts.map +0 -1
- package/dist/__tests__/post-process-error-policy-owner.unit.test.d.ts +0 -2
- package/dist/__tests__/post-process-error-policy-owner.unit.test.d.ts.map +0 -1
- package/dist/__tests__/prepared-buffer-kind-owner.test-d.d.ts +0 -2
- package/dist/__tests__/prepared-buffer-kind-owner.test-d.d.ts.map +0 -1
- package/dist/__tests__/prepared-graphics-capability.unit.test.d.ts +0 -2
- package/dist/__tests__/prepared-graphics-capability.unit.test.d.ts.map +0 -1
- package/dist/__tests__/prepared-graphics-generation.unit.test.d.ts +0 -2
- package/dist/__tests__/prepared-graphics-generation.unit.test.d.ts.map +0 -1
- package/dist/__tests__/prepared-graphics-lifecycle.unit.test.d.ts +0 -2
- package/dist/__tests__/prepared-graphics-lifecycle.unit.test.d.ts.map +0 -1
- package/dist/__tests__/prepared-graphics-pipeline-warmup.unit.test.d.ts +0 -2
- package/dist/__tests__/prepared-graphics-pipeline-warmup.unit.test.d.ts.map +0 -1
- package/dist/__tests__/prepared-graphics-resolver.unit.test.d.ts +0 -2
- package/dist/__tests__/prepared-graphics-resolver.unit.test.d.ts.map +0 -1
- package/dist/__tests__/prepared-graphics-snapshot.unit.test.d.ts +0 -2
- package/dist/__tests__/prepared-graphics-snapshot.unit.test.d.ts.map +0 -1
- package/dist/__tests__/prepared-graphics-store.unit.test.d.ts +0 -2
- package/dist/__tests__/prepared-graphics-store.unit.test.d.ts.map +0 -1
- package/dist/__tests__/prepared-graphics-validation.unit.test.d.ts +0 -2
- package/dist/__tests__/prepared-graphics-validation.unit.test.d.ts.map +0 -1
- package/dist/__tests__/profiler-default-off.test.d.ts +0 -2
- package/dist/__tests__/profiler-default-off.test.d.ts.map +0 -1
- package/dist/__tests__/profiler-phase-catalog.test.d.ts +0 -2
- package/dist/__tests__/profiler-phase-catalog.test.d.ts.map +0 -1
- package/dist/__tests__/profiler-phase-integration.test.d.ts +0 -2
- package/dist/__tests__/profiler-phase-integration.test.d.ts.map +0 -1
- package/dist/__tests__/profiler-phase-token.test.d.ts +0 -2
- package/dist/__tests__/profiler-phase-token.test.d.ts.map +0 -1
- package/dist/__tests__/public-surface.test-d.d.ts +0 -2
- package/dist/__tests__/public-surface.test-d.d.ts.map +0 -1
- package/dist/__tests__/recover-error-policy-owner.unit.test.d.ts +0 -2
- package/dist/__tests__/recover-error-policy-owner.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-error-code-owner.test-d.d.ts +0 -2
- package/dist/__tests__/render-error-code-owner.test-d.d.ts.map +0 -1
- package/dist/__tests__/render-error-detail-ssot.test-d.d.ts +0 -2
- package/dist/__tests__/render-error-detail-ssot.test-d.d.ts.map +0 -1
- package/dist/__tests__/render-error-exhaustive.test-d.d.ts +0 -2
- package/dist/__tests__/render-error-exhaustive.test-d.d.ts.map +0 -1
- package/dist/__tests__/render-feature-assembly.test-d.d.ts +0 -2
- package/dist/__tests__/render-feature-assembly.test-d.d.ts.map +0 -1
- package/dist/__tests__/render-feature-context.test-d.d.ts +0 -2
- package/dist/__tests__/render-feature-context.test-d.d.ts.map +0 -1
- package/dist/__tests__/render-feature-contract.test-d.d.ts +0 -2
- package/dist/__tests__/render-feature-contract.test-d.d.ts.map +0 -1
- package/dist/__tests__/render-feature-diagnostics.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-diagnostics.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-docs.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-docs.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-errors.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-errors.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-gpu-work.integration.test.d.ts +0 -2
- package/dist/__tests__/render-feature-gpu-work.integration.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-plan.test-d.d.ts +0 -2
- package/dist/__tests__/render-feature-plan.test-d.d.ts.map +0 -1
- package/dist/__tests__/render-feature-plan.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-plan.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-prepared-diagnostics.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-prepared-diagnostics.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-prepared-errors.test-d.d.ts +0 -2
- package/dist/__tests__/render-feature-prepared-errors.test-d.d.ts.map +0 -1
- package/dist/__tests__/render-feature-prepared-graphics-docs.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-prepared-graphics-docs.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-prepared-graphics-isolation.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-prepared-graphics-isolation.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-prepared-graphics-negative.test-d.d.ts +0 -2
- package/dist/__tests__/render-feature-prepared-graphics-negative.test-d.d.ts.map +0 -1
- package/dist/__tests__/render-feature-prepared-graphics.test-d.d.ts +0 -2
- package/dist/__tests__/render-feature-prepared-graphics.test-d.d.ts.map +0 -1
- package/dist/__tests__/render-feature-prepared-graphics.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-prepared-graphics.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-public-surface.test-d.d.ts +0 -2
- package/dist/__tests__/render-feature-public-surface.test-d.d.ts.map +0 -1
- package/dist/__tests__/render-feature-retry.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-retry.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-scheduling.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-scheduling.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-stage-failed-policy-owner.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-stage-failed-policy-owner.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-stage-fault-recovery.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-stage-fault-recovery.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-visibility-context.test-d.d.ts +0 -2
- package/dist/__tests__/render-feature-visibility-context.test-d.d.ts.map +0 -1
- package/dist/__tests__/render-feature-visibility-context.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-visibility-context.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-zero-work.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-zero-work.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-graph-compute-raster-gpu.d.ts +0 -7
- package/dist/__tests__/render-graph-compute-raster-gpu.d.ts.map +0 -1
- package/dist/__tests__/render-graph-compute-raster.browser.test.d.ts +0 -2
- package/dist/__tests__/render-graph-compute-raster.browser.test.d.ts.map +0 -1
- package/dist/__tests__/render-graph-compute-raster.dawn.test.d.ts +0 -2
- package/dist/__tests__/render-graph-compute-raster.dawn.test.d.ts.map +0 -1
- package/dist/__tests__/render-graph-hzb-gpu.d.ts +0 -7
- package/dist/__tests__/render-graph-hzb-gpu.d.ts.map +0 -1
- package/dist/__tests__/render-graph-hzb.browser.test.d.ts +0 -2
- package/dist/__tests__/render-graph-hzb.browser.test.d.ts.map +0 -1
- package/dist/__tests__/render-graph-hzb.dawn.test.d.ts +0 -2
- package/dist/__tests__/render-graph-hzb.dawn.test.d.ts.map +0 -1
- package/dist/__tests__/render-graph-primitives.unit.test.d.ts +0 -2
- package/dist/__tests__/render-graph-primitives.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-graph-storage-indirect-gpu.d.ts +0 -12
- package/dist/__tests__/render-graph-storage-indirect-gpu.d.ts.map +0 -1
- package/dist/__tests__/render-graph-storage-indirect.browser.test.d.ts +0 -2
- package/dist/__tests__/render-graph-storage-indirect.browser.test.d.ts.map +0 -1
- package/dist/__tests__/render-graph-storage-indirect.dawn.test.d.ts +0 -2
- package/dist/__tests__/render-graph-storage-indirect.dawn.test.d.ts.map +0 -1
- package/dist/__tests__/render-scene-projection.unit.test.d.ts +0 -2
- package/dist/__tests__/render-scene-projection.unit.test.d.ts.map +0 -1
- package/dist/__tests__/renderer-factory-material-contract.unit.test.d.ts +0 -2
- package/dist/__tests__/renderer-factory-material-contract.unit.test.d.ts.map +0 -1
- package/dist/__tests__/renderer-lifecycle.integration.test.d.ts +0 -2
- package/dist/__tests__/renderer-lifecycle.integration.test.d.ts.map +0 -1
- package/dist/__tests__/rhi-backend-package-boundary.unit.test.d.ts +0 -2
- package/dist/__tests__/rhi-backend-package-boundary.unit.test.d.ts.map +0 -1
- package/dist/__tests__/scriptable-pack-consumer.test-d.d.ts +0 -2
- package/dist/__tests__/scriptable-pack-consumer.test-d.d.ts.map +0 -1
- package/dist/__tests__/shader-stage-surface.unit.test.d.ts +0 -2
- package/dist/__tests__/shader-stage-surface.unit.test.d.ts.map +0 -1
- package/dist/__tests__/ssao-config.unit.test.d.ts +0 -2
- package/dist/__tests__/ssao-config.unit.test.d.ts.map +0 -1
- package/dist/__tests__/ssao-kernel-surface.unit.test.d.ts +0 -2
- package/dist/__tests__/ssao-kernel-surface.unit.test.d.ts.map +0 -1
- package/dist/__tests__/standard-clustered-pipeline.unit.test.d.ts +0 -2
- package/dist/__tests__/standard-clustered-pipeline.unit.test.d.ts.map +0 -1
- package/dist/__tests__/standard-descriptors.test-d.d.ts +0 -2
- package/dist/__tests__/standard-descriptors.test-d.d.ts.map +0 -1
- package/dist/__tests__/standard-pipeline.dawn.test.d.ts +0 -2
- package/dist/__tests__/standard-pipeline.dawn.test.d.ts.map +0 -1
- package/dist/__tests__/standard-pipeline.integration.test.d.ts +0 -2
- package/dist/__tests__/standard-pipeline.integration.test.d.ts.map +0 -1
- package/dist/__tests__/standard-profile-oracle.unit.test.d.ts +0 -2
- package/dist/__tests__/standard-profile-oracle.unit.test.d.ts.map +0 -1
- package/dist/__tests__/surface-configuration.unit.test.d.ts +0 -2
- package/dist/__tests__/surface-configuration.unit.test.d.ts.map +0 -1
- package/dist/__tests__/texture-usage-surface.unit.test.d.ts +0 -2
- package/dist/__tests__/texture-usage-surface.unit.test.d.ts.map +0 -1
- package/dist/__tests__/typed-pipeline-topology.unit.test.d.ts +0 -2
- package/dist/__tests__/typed-pipeline-topology.unit.test.d.ts.map +0 -1
- package/dist/__tests__/urp-pipeline-targets.unit.test.d.ts +0 -2
- package/dist/__tests__/urp-pipeline-targets.unit.test.d.ts.map +0 -1
- package/dist/__tests__/urp-pipeline.unit.test.d.ts +0 -2
- package/dist/__tests__/urp-pipeline.unit.test.d.ts.map +0 -1
- package/dist/__tests__/vertex-color-pipeline.unit.test.d.ts +0 -2
- package/dist/__tests__/vertex-color-pipeline.unit.test.d.ts.map +0 -1
- package/dist/__tests__/vertex-layout-consumer.unit.test.d.ts +0 -2
- package/dist/__tests__/vertex-layout-consumer.unit.test.d.ts.map +0 -1
- package/dist/__tests__/visibility-diagnostics.integration.test.d.ts +0 -2
- package/dist/__tests__/visibility-diagnostics.integration.test.d.ts.map +0 -1
- package/dist/__tests__/visibility-extract.integration.test.d.ts +0 -2
- package/dist/__tests__/visibility-extract.integration.test.d.ts.map +0 -1
- package/dist/__tests__/visibility-extract.perf.test.d.ts +0 -2
- package/dist/__tests__/visibility-extract.perf.test.d.ts.map +0 -1
- package/dist/__tests__/visibility-feature-dedup.integration.test.d.ts +0 -2
- package/dist/__tests__/visibility-feature-dedup.integration.test.d.ts.map +0 -1
- package/dist/__tests__/visibility-hidden-report.unit.test.d.ts +0 -2
- package/dist/__tests__/visibility-hidden-report.unit.test.d.ts.map +0 -1
- package/dist/__tests__/visibility-instances.integration.test.d.ts +0 -2
- package/dist/__tests__/visibility-instances.integration.test.d.ts.map +0 -1
- package/dist/__tests__/visibility-multi-world.integration.test.d.ts +0 -2
- package/dist/__tests__/visibility-multi-world.integration.test.d.ts.map +0 -1
- package/dist/__tests__/visibility-producer-matrix.integration.test.d.ts +0 -2
- package/dist/__tests__/visibility-producer-matrix.integration.test.d.ts.map +0 -1
- package/dist/__tests__/visibility-producer-matrix.unit.test.d.ts +0 -2
- package/dist/__tests__/visibility-producer-matrix.unit.test.d.ts.map +0 -1
- package/dist/__tests__/visibility-public-surface.test-d.d.ts +0 -2
- package/dist/__tests__/visibility-public-surface.test-d.d.ts.map +0 -1
- package/dist/__tests__/visibility-resolver.unit.test.d.ts +0 -2
- package/dist/__tests__/visibility-resolver.unit.test.d.ts.map +0 -1
- package/dist/__tests__/visibility-resource-short-circuit.unit.test.d.ts +0 -2
- package/dist/__tests__/visibility-resource-short-circuit.unit.test.d.ts.map +0 -1
- package/dist/__tests__/visibility-snapshot-contract.unit.test.d.ts +0 -2
- package/dist/__tests__/visibility-snapshot-contract.unit.test.d.ts.map +0 -1
- package/dist/__tests__/vocabulary.unit.test.d.ts +0 -2
- package/dist/__tests__/vocabulary.unit.test.d.ts.map +0 -1
- package/dist/chunk-CQXZC5XI.mjs.map +0 -1
- package/dist/chunk-HCOGPHKS.mjs +0 -93
- package/dist/chunk-HCOGPHKS.mjs.map +0 -1
- package/dist/chunk-YEJIUW7D.mjs.map +0 -1
- package/dist/components/__tests__/points-lines-admission.unit.test.d.ts +0 -2
- package/dist/components/__tests__/points-lines-admission.unit.test.d.ts.map +0 -1
- package/dist/components/__tests__/points-lines-schema.unit.test.d.ts +0 -2
- package/dist/components/__tests__/points-lines-schema.unit.test.d.ts.map +0 -1
- package/dist/components/__tests__/schema-contract.unit.test.d.ts +0 -2
- package/dist/components/__tests__/schema-contract.unit.test.d.ts.map +0 -1
- package/dist/components/__tests__/schema-parity.unit.test.d.ts +0 -2
- package/dist/components/__tests__/schema-parity.unit.test.d.ts.map +0 -1
- package/dist/components/__tests__/visibility-schema.unit.test.d.ts +0 -2
- package/dist/components/__tests__/visibility-schema.unit.test.d.ts.map +0 -1
- package/dist/points-lines/__tests__/bounds.unit.test.d.ts +0 -2
- package/dist/points-lines/__tests__/bounds.unit.test.d.ts.map +0 -1
- package/dist/points-lines/__tests__/cache-recovery.unit.test.d.ts +0 -2
- package/dist/points-lines/__tests__/cache-recovery.unit.test.d.ts.map +0 -1
- package/dist/points-lines/__tests__/inspection-lanes.integration.test.d.ts +0 -2
- package/dist/points-lines/__tests__/inspection-lanes.integration.test.d.ts.map +0 -1
- package/dist/points-lines/__tests__/inspection.unit.test.d.ts +0 -2
- package/dist/points-lines/__tests__/inspection.unit.test.d.ts.map +0 -1
- package/dist/points-lines/__tests__/lane-structural.integration.test.d.ts +0 -2
- package/dist/points-lines/__tests__/lane-structural.integration.test.d.ts.map +0 -1
- package/dist/points-lines/__tests__/points-lines.bench.d.ts +0 -2
- package/dist/points-lines/__tests__/points-lines.bench.d.ts.map +0 -1
- package/dist/points-lines/__tests__/raster-lane.integration.test.d.ts +0 -2
- package/dist/points-lines/__tests__/raster-lane.integration.test.d.ts.map +0 -1
- package/dist/points-lines/__tests__/snapshot.unit.test.d.ts +0 -2
- package/dist/points-lines/__tests__/snapshot.unit.test.d.ts.map +0 -1
- package/dist/points-lines/__tests__/view-ubo.unit.test.d.ts +0 -2
- package/dist/points-lines/__tests__/view-ubo.unit.test.d.ts.map +0 -1
- package/dist/record/__tests__/material-bg-cache.unit.test.d.ts +0 -2
- package/dist/record/__tests__/material-bg-cache.unit.test.d.ts.map +0 -1
- package/dist/record/__tests__/material-slot-plan.unit.test.d.ts +0 -2
- package/dist/record/__tests__/material-slot-plan.unit.test.d.ts.map +0 -1
- package/dist/record/__tests__/typed-frame-graph-plan.unit.test.d.ts +0 -2
- package/dist/record/__tests__/typed-frame-graph-plan.unit.test.d.ts.map +0 -1
- package/dist/record/__tests__/video-texture-view.unit.test.d.ts +0 -2
- package/dist/record/__tests__/video-texture-view.unit.test.d.ts.map +0 -1
|
@@ -102,7 +102,7 @@ import {
|
|
|
102
102
|
resolveAssetHandle,
|
|
103
103
|
walkMaterialPassesOverSharedRefs,
|
|
104
104
|
} from '@forgeax/engine-assets-runtime';
|
|
105
|
-
import type { Component, ComponentSchema, EntityHandle, World } from '@forgeax/engine-ecs';
|
|
105
|
+
import type { Component, ComponentSchema, EntityHandle, Query, World } from '@forgeax/engine-ecs';
|
|
106
106
|
import {
|
|
107
107
|
InstanceTransformsStrideMismatchError,
|
|
108
108
|
readRenderArrayView,
|
|
@@ -152,11 +152,9 @@ import {
|
|
|
152
152
|
toShared,
|
|
153
153
|
} from '@forgeax/engine-types';
|
|
154
154
|
import {
|
|
155
|
-
|
|
156
|
-
bloomEnabledFromF32,
|
|
157
|
-
Camera,
|
|
158
|
-
cameraProjectionFromF32,
|
|
155
|
+
Atmosphere,
|
|
159
156
|
DirectionalLight,
|
|
157
|
+
Fog,
|
|
160
158
|
Instances,
|
|
161
159
|
Layer,
|
|
162
160
|
Lines,
|
|
@@ -173,16 +171,23 @@ import {
|
|
|
173
171
|
SpotLight,
|
|
174
172
|
SpriteInstances,
|
|
175
173
|
SpriteRegionOverride,
|
|
176
|
-
tonemapFromF32,
|
|
177
174
|
tonemapToU32,
|
|
178
175
|
} from './components';
|
|
179
176
|
import { GlyphText } from './components/glyph-text';
|
|
180
177
|
import { computeInvRangeSquared, degToCos } from './components/light-helpers';
|
|
178
|
+
import { selectEnvironment } from './environment/frame';
|
|
181
179
|
import {
|
|
182
180
|
MaterialSkinAttrMissingError,
|
|
183
181
|
ShadowInvalidConfigError,
|
|
184
182
|
SkinMaterialMismatchError,
|
|
185
183
|
} from './errors/render';
|
|
184
|
+
import { extractCameraSnapshots } from './extract/camera';
|
|
185
|
+
import type {
|
|
186
|
+
EnvironmentCandidate,
|
|
187
|
+
EnvironmentFrame,
|
|
188
|
+
FogCandidate,
|
|
189
|
+
FogFrame,
|
|
190
|
+
} from './extract/environment';
|
|
186
191
|
import { resolveVisibility, type VisibilitySnapshot } from './extract/visibility';
|
|
187
192
|
import type {
|
|
188
193
|
RenderFeatureHiddenEntityReport,
|
|
@@ -197,9 +202,11 @@ import {
|
|
|
197
202
|
import { isStandardPbrMaterialShader } from './pbr-pipeline';
|
|
198
203
|
import { expandPointsLinesBounds } from './points-lines/bounds';
|
|
199
204
|
import type { PointsLinesRetainedSnapshot, PointsLinesStyle } from './points-lines/snapshot';
|
|
200
|
-
import { type CameraSnapshot,
|
|
201
|
-
import { getActiveCamera, selectActiveCameraIndex } from './systems/active-camera';
|
|
205
|
+
import { type CameraSnapshot, STANDARD_OUTPUT_TRANSFORM_FEATURE_ID } from './render-contract';
|
|
202
206
|
import { selectPasses } from './systems/pass-selector';
|
|
207
|
+
|
|
208
|
+
export { extractCameraSnapshots } from './extract/camera';
|
|
209
|
+
|
|
203
210
|
import type { SkinPaletteAllocator } from './systems/skin-palette-allocator';
|
|
204
211
|
import type { SkinPaletteSlice } from './systems/skin-palette-types';
|
|
205
212
|
|
|
@@ -604,10 +611,32 @@ export interface RenderableSnapshot {
|
|
|
604
611
|
* deltas and the record stage only receives this frozen POD snapshot.
|
|
605
612
|
*/
|
|
606
613
|
readonly morph?: MorphSnapshot;
|
|
614
|
+
/** Renderer-owned previous-frame facts attached during temporal projection. */
|
|
615
|
+
readonly temporal?: RenderableTemporalSnapshot;
|
|
607
616
|
/** Detached M2 authoring facts for the optional Points/Lines projection. */
|
|
608
617
|
readonly pointsLines?: PointsLinesRetainedSnapshot;
|
|
609
618
|
}
|
|
610
619
|
|
|
620
|
+
export type RenderablePreviousSource = 'last-submitted' | 'current-seed';
|
|
621
|
+
export type RenderableReactiveReason =
|
|
622
|
+
| 'new-slot'
|
|
623
|
+
| 'generation-reuse'
|
|
624
|
+
| 'reentered'
|
|
625
|
+
| 'geometry-revision'
|
|
626
|
+
| 'material-revision'
|
|
627
|
+
| 'skinning-deformation'
|
|
628
|
+
| 'morph-deformation';
|
|
629
|
+
export interface RenderableTemporalSnapshot {
|
|
630
|
+
readonly previousEpoch: number | undefined;
|
|
631
|
+
readonly previousSource: RenderablePreviousSource;
|
|
632
|
+
readonly reactive: boolean;
|
|
633
|
+
readonly reactiveReasons: readonly RenderableReactiveReason[];
|
|
634
|
+
readonly previousTransform: TransformSnapshot;
|
|
635
|
+
readonly previousInstances: InstancesSnapshot | undefined;
|
|
636
|
+
readonly previousSkin: SkinPaletteSlice | undefined;
|
|
637
|
+
readonly previousMorphWeights: Float32Array | undefined;
|
|
638
|
+
}
|
|
639
|
+
|
|
611
640
|
export interface MorphSnapshot {
|
|
612
641
|
readonly weights: Float32Array;
|
|
613
642
|
readonly targetCount: number;
|
|
@@ -758,9 +787,9 @@ export interface MaterialSnapshot {
|
|
|
758
787
|
*
|
|
759
788
|
* Populated by iterating `textureFieldNames`; absent keys mean the
|
|
760
789
|
* paramValue was missing / mis-typed (record falls back to default white).
|
|
761
|
-
* `emissiveTexture` / `occlusionTexture` are
|
|
762
|
-
*
|
|
763
|
-
*
|
|
790
|
+
* `emissiveTexture` / `occlusionTexture` are included here as ordinary
|
|
791
|
+
* Standard user-region fields; the production layout does not duplicate
|
|
792
|
+
* them in a lightmap injection region.
|
|
764
793
|
*/
|
|
765
794
|
readonly textureHandles?: ReadonlyMap<string, Handle<'TextureAsset', 'shared'>> | undefined;
|
|
766
795
|
/**
|
|
@@ -973,6 +1002,10 @@ function appendMaterialDispatchEntries(
|
|
|
973
1002
|
export interface ExtractedFrame {
|
|
974
1003
|
readonly cameras: CameraSnapshot[];
|
|
975
1004
|
readonly lights: ExtractedLights;
|
|
1005
|
+
/** Resource-owner environment facts selected once at the extract boundary. */
|
|
1006
|
+
readonly environment: EnvironmentFrame | undefined;
|
|
1007
|
+
/** False when the resource-owner world failed environment/fog selection. */
|
|
1008
|
+
readonly environmentReady: boolean;
|
|
976
1009
|
readonly renderables: RenderableSnapshot[];
|
|
977
1010
|
/**
|
|
978
1011
|
* Single dispatch list sorted by queue value (ascending, stable sort).
|
|
@@ -984,6 +1017,8 @@ export interface ExtractedFrame {
|
|
|
984
1017
|
readonly skylightCount: number;
|
|
985
1018
|
readonly skybox: SkyboxSnapshot | undefined;
|
|
986
1019
|
readonly skyboxCount: number;
|
|
1020
|
+
/** Resource-owner Fog facts selected once at the frame boundary. */
|
|
1021
|
+
readonly fog: FogFrame | undefined;
|
|
987
1022
|
/**
|
|
988
1023
|
* feat-20260528-frustum-culling M3 / w11: frustum culling statistics
|
|
989
1024
|
* collected during the extract phase. `total` is the count of entities
|
|
@@ -1062,6 +1097,10 @@ const BUILTIN_USER_REGION_TEXTURE_FIELDS: readonly string[] = [
|
|
|
1062
1097
|
'metallicRoughnessTexture',
|
|
1063
1098
|
'normalTexture',
|
|
1064
1099
|
'specularTintTexture',
|
|
1100
|
+
'emissiveTexture',
|
|
1101
|
+
'occlusionTexture',
|
|
1102
|
+
'transmissionTexture',
|
|
1103
|
+
'thicknessTexture',
|
|
1065
1104
|
];
|
|
1066
1105
|
const BUILTIN_USER_REGION_TEXTURE_FIELD_SET = new Set(BUILTIN_USER_REGION_TEXTURE_FIELDS);
|
|
1067
1106
|
const BUILTIN_BASE_COLOR_TEXTURE_FIELD_SET = new Set(['baseColorTexture']);
|
|
@@ -1350,11 +1389,11 @@ function collectMaterialTextureSamplers(
|
|
|
1350
1389
|
* `AssetRegistry.materialShaderTextureFieldNames`). Each declared texture
|
|
1351
1390
|
* field whose paramValue resolves to a handle lands in the returned map keyed
|
|
1352
1391
|
* by field name; this is the single path through which an arbitrary number of user-region
|
|
1353
|
-
* textures (
|
|
1392
|
+
* textures (8 Standard or 9+ custom, e.g. parallax `heightTexture`) flow.
|
|
1354
1393
|
*
|
|
1355
|
-
* When the shader is not registered the built-in
|
|
1356
|
-
* standard materials still resolve.
|
|
1357
|
-
*
|
|
1394
|
+
* When the shader is not registered the built-in Standard field set is used
|
|
1395
|
+
* so standard materials still resolve. Emissive and occlusion are ordinary
|
|
1396
|
+
* schema-driven user-region textures in that set.
|
|
1358
1397
|
*
|
|
1359
1398
|
* feat-20260623-world-space-video-asset M4 / w14 (D-5): a field whose paramValue
|
|
1360
1399
|
* catalogues to a VideoAsset is routed into `videoOut` (a VideoAsset-branded
|
|
@@ -1665,8 +1704,7 @@ export function resolveMaterialSnapshot(
|
|
|
1665
1704
|
// feat-20260621-learn-render-5-5-parallax M2 / w7 (D-3): iterate the
|
|
1666
1705
|
// shader's derive(paramSchema).textureFieldNames SSOT instead of a hardcoded
|
|
1667
1706
|
// user-region field list, so an Nth texture (e.g. parallax heightTexture)
|
|
1668
|
-
// resolves through the same path
|
|
1669
|
-
// (lightmap) textures, NOT in textureFieldNames, so they keep named reads.
|
|
1707
|
+
// resolves through the same path, including emissive/occlusion fields.
|
|
1670
1708
|
const videoTextureFields = new Map<string, Handle<'VideoAsset', 'shared'>>();
|
|
1671
1709
|
const textureHandles = collectUserRegionTextureHandles(
|
|
1672
1710
|
pv,
|
|
@@ -2192,59 +2230,15 @@ export interface PreparedExtractContext {
|
|
|
2192
2230
|
readonly assets: AssetRegistry | null | undefined;
|
|
2193
2231
|
readonly pipelineState: ExtractPipelineSurface | null | undefined;
|
|
2194
2232
|
readonly materialSnapshotCache: MaterialSnapshotCache | undefined;
|
|
2233
|
+
/** `undefined` keeps direct extractFrame's local Fog semantics; `null` means
|
|
2234
|
+
* the frame owner already selected that no Fog is present for this world. */
|
|
2235
|
+
readonly resourceOwnerFog: FogFrame | null | undefined;
|
|
2195
2236
|
readonly cull: 'self' | 'none' | 'external';
|
|
2196
2237
|
readonly cullCameras: readonly CameraSnapshot[] | undefined;
|
|
2197
2238
|
readonly hierarchy: SceneHierarchySnapshot;
|
|
2198
2239
|
readonly visibility: VisibilitySnapshot;
|
|
2199
2240
|
}
|
|
2200
2241
|
|
|
2201
|
-
export function extractCameraSnapshots(world: World): CameraSnapshot[] {
|
|
2202
|
-
const worldInternal = createWorldInternalView(world);
|
|
2203
|
-
const cameras: CameraSnapshot[] = [];
|
|
2204
|
-
const cameraEntities: number[] = [];
|
|
2205
|
-
const cameraQuery = world.query({ read: [Camera], with: [Transform] }).unwrap();
|
|
2206
|
-
for (const row of cameraQuery) {
|
|
2207
|
-
const cam = row.get(Camera);
|
|
2208
|
-
const entity = row.entity;
|
|
2209
|
-
const view = worldInternal._getArrayView(entity, Transform, 'world');
|
|
2210
|
-
if (view === undefined) continue;
|
|
2211
|
-
const worldMat = new Float32Array(view);
|
|
2212
|
-
cameras.push({
|
|
2213
|
-
entityKey: entity as number,
|
|
2214
|
-
position: mat4.getTranslation(vec3.create(), worldMat),
|
|
2215
|
-
world: worldMat,
|
|
2216
|
-
fov: cam.fov,
|
|
2217
|
-
aspect: cam.aspect,
|
|
2218
|
-
near: cam.near,
|
|
2219
|
-
far: cam.far,
|
|
2220
|
-
projection: cameraProjectionFromF32(cam.projection),
|
|
2221
|
-
orthoLeft: cam.left,
|
|
2222
|
-
orthoRight: cam.right,
|
|
2223
|
-
orthoBottom: cam.bottom,
|
|
2224
|
-
orthoTop: cam.top,
|
|
2225
|
-
tonemap: tonemapFromF32(cam.tonemap),
|
|
2226
|
-
exposure: cam.exposure,
|
|
2227
|
-
whitePoint: cam.whitePoint,
|
|
2228
|
-
antialias: antialiasFromF32(cam.antialias),
|
|
2229
|
-
bloom: bloomEnabledFromF32(cam.bloom),
|
|
2230
|
-
bloomThreshold: cam.bloomThreshold,
|
|
2231
|
-
bloomIntensity: cam.bloomIntensity,
|
|
2232
|
-
bloomBlurRadius: cam.bloomBlurRadius,
|
|
2233
|
-
clearColor: [
|
|
2234
|
-
cam.clearColor[0] ?? 0,
|
|
2235
|
-
cam.clearColor[1] ?? 0,
|
|
2236
|
-
cam.clearColor[2] ?? 0,
|
|
2237
|
-
cam.clearColor[3] ?? 1,
|
|
2238
|
-
],
|
|
2239
|
-
});
|
|
2240
|
-
cameraEntities.push(entity as number);
|
|
2241
|
-
}
|
|
2242
|
-
const activeCameraIndex = selectActiveCameraIndex(cameraEntities, getActiveCamera(world)?.entity);
|
|
2243
|
-
if (activeCameraIndex < 0) return cameras;
|
|
2244
|
-
const selected = cameras[activeCameraIndex];
|
|
2245
|
-
return selected === undefined ? cameras : [selected];
|
|
2246
|
-
}
|
|
2247
|
-
|
|
2248
2242
|
function tonemapParams(camera: CameraSnapshot): Uint8Array {
|
|
2249
2243
|
const bytes = new ArrayBuffer(16);
|
|
2250
2244
|
const floats = new Float32Array(bytes);
|
|
@@ -2261,6 +2255,7 @@ export function prepareExtractContext(
|
|
|
2261
2255
|
readonly assets?: AssetRegistry | null;
|
|
2262
2256
|
readonly pipelineState?: ExtractPipelineSurface | null;
|
|
2263
2257
|
readonly materialSnapshotCache?: MaterialSnapshotCache;
|
|
2258
|
+
readonly resourceOwnerFog?: FogFrame | null;
|
|
2264
2259
|
readonly cull?: 'self' | 'none' | 'external';
|
|
2265
2260
|
readonly cullCameras?: readonly CameraSnapshot[];
|
|
2266
2261
|
} = {},
|
|
@@ -2270,6 +2265,7 @@ export function prepareExtractContext(
|
|
|
2270
2265
|
assets: options.assets,
|
|
2271
2266
|
pipelineState: options.pipelineState,
|
|
2272
2267
|
materialSnapshotCache: options.materialSnapshotCache,
|
|
2268
|
+
resourceOwnerFog: options.resourceOwnerFog,
|
|
2273
2269
|
cull: options.cull ?? 'self',
|
|
2274
2270
|
cullCameras: options.cullCameras,
|
|
2275
2271
|
hierarchy,
|
|
@@ -2277,6 +2273,41 @@ export function prepareExtractContext(
|
|
|
2277
2273
|
};
|
|
2278
2274
|
}
|
|
2279
2275
|
|
|
2276
|
+
const fogQueries = new WeakMap<World, Query<readonly [typeof Fog]>>();
|
|
2277
|
+
|
|
2278
|
+
function selectFogFrame(world: World): FogFrame | undefined {
|
|
2279
|
+
// Query compilation is owned once per World; Query refreshes its matched
|
|
2280
|
+
// tables when the ECS structure changes, while iteration reads current Fog
|
|
2281
|
+
// values. This keeps the frame boundary free of repeated descriptor work.
|
|
2282
|
+
const fogCandidates: FogCandidate[] = [];
|
|
2283
|
+
let fogQuery = fogQueries.get(world);
|
|
2284
|
+
if (fogQuery === undefined) {
|
|
2285
|
+
fogQuery = world.query({ read: [Fog] }).unwrap();
|
|
2286
|
+
fogQueries.set(world, fogQuery);
|
|
2287
|
+
}
|
|
2288
|
+
for (const row of fogQuery) {
|
|
2289
|
+
const value = row.get(Fog);
|
|
2290
|
+
fogCandidates.push({
|
|
2291
|
+
entityKey: row.entity,
|
|
2292
|
+
color: [value.color[0] ?? 0, value.color[1] ?? 0, value.color[2] ?? 0],
|
|
2293
|
+
density: value.density,
|
|
2294
|
+
heightFalloff: value.heightFalloff,
|
|
2295
|
+
maxOpacity: value.maxOpacity,
|
|
2296
|
+
});
|
|
2297
|
+
}
|
|
2298
|
+
const fogSelection = selectEnvironment({
|
|
2299
|
+
environments: [],
|
|
2300
|
+
fogs: fogCandidates,
|
|
2301
|
+
suns: [],
|
|
2302
|
+
lane: 'direct',
|
|
2303
|
+
});
|
|
2304
|
+
if (fogSelection.ok) return fogSelection.value.fog;
|
|
2305
|
+
routeWorldError(world, fogSelection.error, {
|
|
2306
|
+
systemName: 'RenderSystem.extract (fog-selection)',
|
|
2307
|
+
});
|
|
2308
|
+
throw fogSelection.error;
|
|
2309
|
+
}
|
|
2310
|
+
|
|
2280
2311
|
export function extractFrames(
|
|
2281
2312
|
worlds: readonly World[],
|
|
2282
2313
|
owner: number | ExtractFramesOwner,
|
|
@@ -2304,6 +2335,12 @@ export function extractFrames(
|
|
|
2304
2335
|
}
|
|
2305
2336
|
|
|
2306
2337
|
const failedWorlds = new Set<World>();
|
|
2338
|
+
// Resource-owner selection is a frame-level concern. Select Fog once before
|
|
2339
|
+
// per-world extraction so non-owner worlds do not scan their ECS tables for
|
|
2340
|
+
// a value that the merge layer will discard.
|
|
2341
|
+
const resourceOwnerWorld = worlds[resourceOwner];
|
|
2342
|
+
const resourceOwnerFog =
|
|
2343
|
+
resourceOwnerWorld === undefined ? null : (selectFogFrame(resourceOwnerWorld) ?? null);
|
|
2307
2344
|
// ── D-2: per-world extract with error isolation ────────────────────────
|
|
2308
2345
|
//
|
|
2309
2346
|
// Each world runs extractFrame over the final state published by
|
|
@@ -2334,6 +2371,7 @@ export function extractFrames(
|
|
|
2334
2371
|
const prepared = prepareExtractContext(world, {
|
|
2335
2372
|
...(assets !== undefined ? { assets } : {}),
|
|
2336
2373
|
...(pipelineState !== undefined ? { pipelineState } : {}),
|
|
2374
|
+
resourceOwnerFog: wi === resourceOwner ? resourceOwnerFog : null,
|
|
2337
2375
|
...(materialSnapshotCachesByWorld === undefined
|
|
2338
2376
|
? {}
|
|
2339
2377
|
: {
|
|
@@ -2531,6 +2569,8 @@ export function extractFrames(
|
|
|
2531
2569
|
const skylightCount = resourceOwnerFrame?.skylightCount ?? 0;
|
|
2532
2570
|
const skybox = resourceOwnerFrame?.skybox;
|
|
2533
2571
|
const skyboxCount = resourceOwnerFrame?.skyboxCount ?? 0;
|
|
2572
|
+
const fog = resourceOwnerFrame?.fog;
|
|
2573
|
+
const environment = resourceOwnerFrame?.environment;
|
|
2534
2574
|
// User-authored PostProcessParams entities are singleton scene resources, so
|
|
2535
2575
|
// they come from the resourceOwner world (holistic snapshot selection).
|
|
2536
2576
|
const postProcessParams = new Map(resourceOwnerFrame?.postProcessParams);
|
|
@@ -2549,16 +2589,16 @@ export function extractFrames(
|
|
|
2549
2589
|
// cameraOwner === resourceOwner this is a no-op (identical entry). The 'na'
|
|
2550
2590
|
// Standard tonemap identity mirrors the engine provider key set at the
|
|
2551
2591
|
// bottom of extractFrame (SSOT: same identity, same 16B layout).
|
|
2552
|
-
const
|
|
2553
|
-
const cameraTonemapParam = cameraOwnerFrame?.postProcessParams.get(
|
|
2592
|
+
const OUTPUT_TRANSFORM_PARAM_KEY = STANDARD_OUTPUT_TRANSFORM_FEATURE_ID;
|
|
2593
|
+
const cameraTonemapParam = cameraOwnerFrame?.postProcessParams.get(OUTPUT_TRANSFORM_PARAM_KEY);
|
|
2554
2594
|
if (cameraTonemapParam !== undefined) {
|
|
2555
|
-
postProcessParams.set(
|
|
2595
|
+
postProcessParams.set(OUTPUT_TRANSFORM_PARAM_KEY, cameraTonemapParam);
|
|
2556
2596
|
} else {
|
|
2557
2597
|
// The camera-owner world produced no tonemap param (no Camera surfaced
|
|
2558
2598
|
// there this frame); do not leave a stale resource-owner entry that would
|
|
2559
2599
|
// apply a foreign camera's exposure. Removing it lets the tonemap pass fall
|
|
2560
2600
|
// back to its param-less zero path only when genuinely no camera exists.
|
|
2561
|
-
postProcessParams.delete(
|
|
2601
|
+
postProcessParams.delete(OUTPUT_TRANSFORM_PARAM_KEY);
|
|
2562
2602
|
}
|
|
2563
2603
|
|
|
2564
2604
|
// D-3: frustumStats — culled/total summed across worlds.
|
|
@@ -2579,6 +2619,9 @@ export function extractFrames(
|
|
|
2579
2619
|
skylightCount,
|
|
2580
2620
|
skybox,
|
|
2581
2621
|
skyboxCount,
|
|
2622
|
+
fog,
|
|
2623
|
+
environment,
|
|
2624
|
+
environmentReady: resourceOwnerFrame !== undefined && environment !== undefined,
|
|
2582
2625
|
frustumStats,
|
|
2583
2626
|
visibilityStats,
|
|
2584
2627
|
postProcessParams,
|
|
@@ -2666,7 +2709,12 @@ export function extractFrame(world: World, context: PreparedExtractContext): Ext
|
|
|
2666
2709
|
pipelineState,
|
|
2667
2710
|
materialSnapshotCache: persistentMaterialSnapshotCache,
|
|
2668
2711
|
cull: cullMode,
|
|
2712
|
+
resourceOwnerFog,
|
|
2669
2713
|
} = context;
|
|
2714
|
+
// Environment reads are owned by the retained resource projection and are
|
|
2715
|
+
// established at the frame boundary; record never revisits World state.
|
|
2716
|
+
const fog =
|
|
2717
|
+
resourceOwnerFog === undefined ? selectFogFrame(world) : (resourceOwnerFog ?? undefined);
|
|
2670
2718
|
const visibility = context.visibility.hasAnyHiddenIntent ? context.visibility : undefined;
|
|
2671
2719
|
const skinPaletteAllocator = pipelineState?.skinPaletteAllocator ?? null;
|
|
2672
2720
|
|
|
@@ -3144,6 +3192,79 @@ export function extractFrame(world: World, context: PreparedExtractContext): Ext
|
|
|
3144
3192
|
}
|
|
3145
3193
|
}
|
|
3146
3194
|
|
|
3195
|
+
const environmentCandidates: EnvironmentCandidate[] = [];
|
|
3196
|
+
const imageEnvironment =
|
|
3197
|
+
skylight?.equirectHandle !== undefined && skylight.equirectHandle > 0
|
|
3198
|
+
? skylight
|
|
3199
|
+
: skybox?.equirectHandle !== undefined && skybox.equirectHandle > 0
|
|
3200
|
+
? skybox
|
|
3201
|
+
: undefined;
|
|
3202
|
+
if (imageEnvironment !== undefined) {
|
|
3203
|
+
environmentCandidates.push({
|
|
3204
|
+
kind: 'image',
|
|
3205
|
+
entityKey: imageEnvironment.entityHandle,
|
|
3206
|
+
sourceKey: `equirect:${imageEnvironment.equirectHandle}`,
|
|
3207
|
+
});
|
|
3208
|
+
}
|
|
3209
|
+
const atmosphereQuery = world.query({ read: [Atmosphere] }).unwrap();
|
|
3210
|
+
for (const row of atmosphereQuery) {
|
|
3211
|
+
const value = row.get(Atmosphere);
|
|
3212
|
+
const atmosphere = {
|
|
3213
|
+
turbidity: value.turbidity,
|
|
3214
|
+
rayleigh: value.rayleigh,
|
|
3215
|
+
mieCoefficient: value.mieCoefficient,
|
|
3216
|
+
mieDirectionalG: value.mieDirectionalG,
|
|
3217
|
+
sunAngularRadius: value.sunAngularRadius,
|
|
3218
|
+
} as const;
|
|
3219
|
+
environmentCandidates.push({
|
|
3220
|
+
kind: 'atmosphere',
|
|
3221
|
+
entityKey: row.entity,
|
|
3222
|
+
sourceKey: `atmosphere:${row.entity}`,
|
|
3223
|
+
atmosphere,
|
|
3224
|
+
});
|
|
3225
|
+
}
|
|
3226
|
+
const directionalDirection = directional?.direction;
|
|
3227
|
+
const directionalLength =
|
|
3228
|
+
directionalDirection === undefined
|
|
3229
|
+
? 0
|
|
3230
|
+
: Math.hypot(
|
|
3231
|
+
directionalDirection[0] ?? 0,
|
|
3232
|
+
directionalDirection[1] ?? 0,
|
|
3233
|
+
directionalDirection[2] ?? 0,
|
|
3234
|
+
);
|
|
3235
|
+
const sun =
|
|
3236
|
+
directional === undefined || directionalLength <= 1e-6
|
|
3237
|
+
? []
|
|
3238
|
+
: [
|
|
3239
|
+
{
|
|
3240
|
+
entityKey: 0,
|
|
3241
|
+
direction: [
|
|
3242
|
+
-(directionalDirection?.[0] ?? 0) / directionalLength,
|
|
3243
|
+
-(directionalDirection?.[1] ?? 0) / directionalLength,
|
|
3244
|
+
-(directionalDirection?.[2] ?? 0) / directionalLength,
|
|
3245
|
+
] as [number, number, number],
|
|
3246
|
+
color: [
|
|
3247
|
+
directional.color[0] ?? 0,
|
|
3248
|
+
directional.color[1] ?? 0,
|
|
3249
|
+
directional.color[2] ?? 0,
|
|
3250
|
+
] as [number, number, number],
|
|
3251
|
+
intensity: directional.intensity,
|
|
3252
|
+
},
|
|
3253
|
+
];
|
|
3254
|
+
const environmentSelection = selectEnvironment({
|
|
3255
|
+
environments: environmentCandidates,
|
|
3256
|
+
fogs: fog === undefined ? [] : [fog],
|
|
3257
|
+
suns: sun,
|
|
3258
|
+
lane: 'direct',
|
|
3259
|
+
});
|
|
3260
|
+
if (!environmentSelection.ok) {
|
|
3261
|
+
routeWorldError(world, environmentSelection.error, {
|
|
3262
|
+
systemName: 'RenderSystem.extract (environment-selection)',
|
|
3263
|
+
});
|
|
3264
|
+
throw environmentSelection.error;
|
|
3265
|
+
}
|
|
3266
|
+
const environment: EnvironmentFrame = environmentSelection.value;
|
|
3267
|
+
|
|
3147
3268
|
// feat-20260528-frustum-culling M3 / w10: precompute per-camera frustum
|
|
3148
3269
|
// planes so entities can be tested against all cameras in the inner loop.
|
|
3149
3270
|
// Cameras with degenerate projection parameters (e.g. zero fov, zero aspect)
|
|
@@ -4541,18 +4662,21 @@ export function extractFrame(world: World, context: PreparedExtractContext): Ext
|
|
|
4541
4662
|
// recordFrame's `activeCameras[0]` selection.
|
|
4542
4663
|
const tonemapCamera = cameras[0];
|
|
4543
4664
|
if (tonemapCamera !== undefined) {
|
|
4544
|
-
postProcessParams.set(
|
|
4665
|
+
postProcessParams.set(STANDARD_OUTPUT_TRANSFORM_FEATURE_ID, tonemapParams(tonemapCamera));
|
|
4545
4666
|
}
|
|
4546
4667
|
|
|
4547
4668
|
return {
|
|
4548
4669
|
cameras,
|
|
4549
4670
|
lights,
|
|
4671
|
+
environment,
|
|
4672
|
+
environmentReady: true,
|
|
4550
4673
|
renderables,
|
|
4551
4674
|
dispatch,
|
|
4552
4675
|
skylight,
|
|
4553
4676
|
skylightCount,
|
|
4554
4677
|
skybox,
|
|
4555
4678
|
skyboxCount,
|
|
4679
|
+
fog,
|
|
4556
4680
|
frustumStats: { culled: frustumCulled, total: frustumTotal },
|
|
4557
4681
|
visibilityStats: { explicitlyHidden: explicitlyHidden.size },
|
|
4558
4682
|
postProcessParams,
|