@forgeax/engine-render 0.1.20 → 0.1.23
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 +365 -29
- package/dist/assembly/backend-contract.d.ts +13 -0
- package/dist/assembly/backend-contract.d.ts.map +1 -1
- package/dist/assembly/device-feature-admission.d.ts +18 -0
- package/dist/assembly/device-feature-admission.d.ts.map +1 -0
- package/dist/assembly/directional-shadow-inspection.d.ts +38 -0
- package/dist/assembly/directional-shadow-inspection.d.ts.map +1 -0
- package/dist/assembly/factory.d.ts +30 -19
- package/dist/assembly/factory.d.ts.map +1 -1
- package/dist/assembly/host-contract.d.ts +19 -0
- package/dist/assembly/host-contract.d.ts.map +1 -1
- package/dist/assembly/render-target-host.d.ts +46 -0
- package/dist/assembly/render-target-host.d.ts.map +1 -0
- package/dist/assets/render-asset-port.d.ts.map +1 -1
- package/dist/authoring.mjs +4 -1
- package/dist/authoring.mjs.map +1 -1
- package/dist/capture/cube-views.d.ts +21 -0
- package/dist/capture/cube-views.d.ts.map +1 -0
- package/dist/capture/scheduler.d.ts +54 -0
- package/dist/capture/scheduler.d.ts.map +1 -0
- package/dist/{chunk-PCHBPYML.mjs → chunk-4L3P6DT5.mjs} +2 -2
- package/dist/chunk-4L3P6DT5.mjs.map +1 -0
- package/dist/{chunk-VFPLTKCU.mjs → chunk-4NPUASZR.mjs} +15 -4
- package/dist/chunk-4NPUASZR.mjs.map +1 -0
- package/dist/chunk-DIYW3M5D.mjs +5085 -0
- package/dist/chunk-DIYW3M5D.mjs.map +1 -0
- package/dist/chunk-FBC4R44J.mjs +1003 -0
- package/dist/chunk-FBC4R44J.mjs.map +1 -0
- package/dist/{chunk-CDTWTHZR.mjs → chunk-FF7K3FSO.mjs} +474 -168
- package/dist/chunk-FF7K3FSO.mjs.map +1 -0
- package/dist/chunk-HZUPSYW7.mjs +1104 -0
- package/dist/chunk-HZUPSYW7.mjs.map +1 -0
- package/dist/{chunk-TBQJOK2L.mjs → chunk-QODA5UKU.mjs} +321 -269
- package/dist/chunk-QODA5UKU.mjs.map +1 -0
- package/dist/chunk-YALPS44A.mjs +296 -0
- package/dist/chunk-YALPS44A.mjs.map +1 -0
- package/dist/{chunk-4XINDLAY.mjs → chunk-ZUWKAZ2I.mjs} +1963 -2178
- package/dist/chunk-ZUWKAZ2I.mjs.map +1 -0
- package/dist/cluster-binner.d.ts +5 -0
- package/dist/cluster-binner.d.ts.map +1 -1
- package/dist/components/camera.d.ts +1 -0
- package/dist/components/camera.d.ts.map +1 -1
- package/dist/components/cube-camera.d.ts +20 -0
- package/dist/components/cube-camera.d.ts.map +1 -0
- package/dist/components/directional-light.d.ts +11 -2
- package/dist/components/directional-light.d.ts.map +1 -1
- package/dist/components/directional-shadow-filter.d.ts +25 -0
- package/dist/components/directional-shadow-filter.d.ts.map +1 -0
- package/dist/components/index.d.ts +5 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/light-helpers.d.ts +4 -0
- package/dist/components/light-helpers.d.ts.map +1 -1
- package/dist/components/light-probe.d.ts +9 -0
- package/dist/components/light-probe.d.ts.map +1 -0
- package/dist/components/rect-area-light.d.ts +12 -0
- package/dist/components/rect-area-light.d.ts.map +1 -0
- package/dist/components/reflection-probe.d.ts +17 -0
- package/dist/components/reflection-probe.d.ts.map +1 -0
- package/dist/components/scene-instance.d.ts +4 -0
- package/dist/components/scene-instance.d.ts.map +1 -1
- package/dist/components/spot-light.d.ts +3 -0
- package/dist/components/spot-light.d.ts.map +1 -1
- package/dist/construct-renderer.mjs +14836 -9620
- package/dist/construct-renderer.mjs.map +1 -1
- package/dist/device/gpu-residency.d.ts +8 -1
- package/dist/device/gpu-residency.d.ts.map +1 -1
- package/dist/device/lifecycle-transaction.d.ts +2 -0
- package/dist/device/lifecycle-transaction.d.ts.map +1 -0
- package/dist/environment/frame.d.ts.map +1 -1
- package/dist/environment/lifecycle.d.ts +5 -0
- package/dist/environment/lifecycle.d.ts.map +1 -1
- package/dist/errors/gpu-driven.d.ts +26 -0
- package/dist/errors/gpu-driven.d.ts.map +1 -0
- package/dist/errors/index.d.ts +1 -0
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/recover.d.ts +9 -1
- package/dist/errors/recover.d.ts.map +1 -1
- package/dist/errors/render.d.ts +166 -93
- package/dist/errors/render.d.ts.map +1 -1
- package/dist/extract/directional-shadow-projection.d.ts +23 -0
- package/dist/extract/directional-shadow-projection.d.ts.map +1 -0
- package/dist/extract/environment.d.ts +14 -0
- package/dist/extract/environment.d.ts.map +1 -1
- package/dist/extract/gpu-driven.d.ts +50 -0
- package/dist/extract/gpu-driven.d.ts.map +1 -0
- package/dist/extract/visibility.d.ts.map +1 -1
- package/dist/features/fullscreen.d.ts.map +1 -1
- package/dist/features/targets.d.ts.map +1 -1
- package/dist/features/types.d.ts +10 -0
- package/dist/features/types.d.ts.map +1 -1
- package/dist/fullscreen-post-process-pass.d.ts +13 -2
- package/dist/fullscreen-post-process-pass.d.ts.map +1 -1
- package/dist/gpu-driven/batch-topology.d.ts +34 -0
- package/dist/gpu-driven/batch-topology.d.ts.map +1 -1
- package/dist/gpu-driven/prepared-draw.d.ts +63 -0
- package/dist/gpu-driven/prepared-draw.d.ts.map +1 -0
- package/dist/gpu-driven/production-raster.d.ts +97 -2
- package/dist/gpu-driven/production-raster.d.ts.map +1 -1
- package/dist/gpu-driven/view-gpu.d.ts +64 -1
- package/dist/gpu-driven/view-gpu.d.ts.map +1 -1
- package/dist/gpu-scene-schema.d.ts +14 -0
- package/dist/gpu-scene-schema.d.ts.map +1 -1
- package/dist/gpu-scene.d.ts +8 -1
- package/dist/gpu-scene.d.ts.map +1 -1
- package/dist/gpu-usage.d.ts +0 -1
- package/dist/gpu-usage.d.ts.map +1 -1
- package/dist/hdrp-buffers.d.ts +21 -19
- package/dist/hdrp-buffers.d.ts.map +1 -1
- package/dist/ibl/IblPipelineCache.d.ts +4 -0
- package/dist/ibl/IblPipelineCache.d.ts.map +1 -1
- package/dist/ibl/kernel-cache.d.ts +36 -0
- package/dist/ibl/kernel-cache.d.ts.map +1 -0
- package/dist/index.d.ts +39 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +91 -6
- package/dist/index.mjs.map +1 -1
- package/dist/inspection-types.d.ts +214 -1
- package/dist/inspection-types.d.ts.map +1 -1
- package/dist/instances-derived-bounds.d.ts +50 -0
- package/dist/instances-derived-bounds.d.ts.map +1 -0
- package/dist/internal.d.ts +9 -0
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.mjs +23 -2
- package/dist/internal.mjs.map +1 -1
- package/dist/light-buffer-layout.d.ts +58 -140
- package/dist/light-buffer-layout.d.ts.map +1 -1
- package/dist/materials.d.ts.map +1 -1
- package/dist/mesh-material-bindings.d.ts +54 -0
- package/dist/mesh-material-bindings.d.ts.map +1 -1
- package/dist/pbr-pipeline.d.ts +38 -14
- package/dist/pbr-pipeline.d.ts.map +1 -1
- package/dist/pipeline/standard-forward-lane.d.ts +2 -1
- package/dist/pipeline/standard-forward-lane.d.ts.map +1 -1
- package/dist/pipeline/standard-lighting/errors.d.ts +4 -0
- package/dist/pipeline/standard-lighting/errors.d.ts.map +1 -0
- package/dist/pipeline/standard-lighting/graph.d.ts +24 -0
- package/dist/pipeline/standard-lighting/graph.d.ts.map +1 -0
- package/dist/pipeline/standard-lighting/inspection.d.ts +38 -0
- package/dist/pipeline/standard-lighting/inspection.d.ts.map +1 -0
- package/dist/pipeline/standard-lighting/layout.d.ts +28 -0
- package/dist/pipeline/standard-lighting/layout.d.ts.map +1 -0
- package/dist/pipeline/standard-lighting/light-frame.d.ts +33 -0
- package/dist/pipeline/standard-lighting/light-frame.d.ts.map +1 -0
- package/dist/pipeline/standard-lighting/membership.d.ts +14 -0
- package/dist/pipeline/standard-lighting/membership.d.ts.map +1 -0
- package/dist/pipeline/standard-lighting/prepare.d.ts +16 -0
- package/dist/pipeline/standard-lighting/prepare.d.ts.map +1 -0
- package/dist/pipeline/standard-lighting/topology.d.ts +45 -0
- package/dist/pipeline/standard-lighting/topology.d.ts.map +1 -0
- package/dist/pipeline/standard-lighting/transport.d.ts +36 -0
- package/dist/pipeline/standard-lighting/transport.d.ts.map +1 -0
- package/dist/pipeline/standard-pipeline.d.ts +4 -13
- package/dist/pipeline/standard-pipeline.d.ts.map +1 -1
- package/dist/pipeline/standard-post.d.ts.map +1 -1
- package/dist/pipeline/standard-profile.d.ts +5 -26
- package/dist/pipeline/standard-profile.d.ts.map +1 -1
- package/dist/pipeline-builder.d.ts +2 -0
- package/dist/pipeline-builder.d.ts.map +1 -1
- package/dist/pipeline-spec.d.ts +40 -7
- package/dist/pipeline-spec.d.ts.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/point-shadow-inspection.d.ts +21 -0
- package/dist/point-shadow-inspection.d.ts.map +1 -0
- package/dist/prepare/extended-lighting/ltc-resources.d.ts +31 -0
- package/dist/prepare/extended-lighting/ltc-resources.d.ts.map +1 -0
- package/dist/prepare/extended-lighting/resources.d.ts +72 -0
- package/dist/prepare/extended-lighting/resources.d.ts.map +1 -0
- package/dist/prepare/extended-lighting/spot-modifiers.d.ts +42 -0
- package/dist/prepare/extended-lighting/spot-modifiers.d.ts.map +1 -0
- package/dist/prepare/extended-lighting/state.d.ts +24 -0
- package/dist/prepare/extended-lighting/state.d.ts.map +1 -0
- package/dist/record/frame-lighting.d.ts +33 -36
- package/dist/record/frame-lighting.d.ts.map +1 -1
- package/dist/record/frame-snapshot.d.ts +78 -24
- package/dist/record/frame-snapshot.d.ts.map +1 -1
- package/dist/record/frame-targets.d.ts +5 -0
- package/dist/record/frame-targets.d.ts.map +1 -1
- package/dist/record/frame.d.ts +16 -6
- package/dist/record/frame.d.ts.map +1 -1
- package/dist/record/gpu-pass-timing/contract.d.ts +96 -0
- package/dist/record/gpu-pass-timing/contract.d.ts.map +1 -0
- package/dist/record/gpu-pass-timing/errors.d.ts +18 -0
- package/dist/record/gpu-pass-timing/errors.d.ts.map +1 -0
- package/dist/record/gpu-pass-timing/index.d.ts +8 -0
- package/dist/record/gpu-pass-timing/index.d.ts.map +1 -0
- package/dist/record/gpu-pass-timing/parser.d.ts +11 -0
- package/dist/record/gpu-pass-timing/parser.d.ts.map +1 -0
- package/dist/record/gpu-pass-timing/session.d.ts +43 -0
- package/dist/record/gpu-pass-timing/session.d.ts.map +1 -0
- package/dist/record/gpu-timing.d.ts +20 -3
- package/dist/record/gpu-timing.d.ts.map +1 -1
- package/dist/record/helpers.d.ts +0 -20
- package/dist/record/helpers.d.ts.map +1 -1
- package/dist/record/main-pass-geometry.d.ts +6 -1
- package/dist/record/main-pass-geometry.d.ts.map +1 -1
- package/dist/record/main-pass-material.d.ts +25 -2
- package/dist/record/main-pass-material.d.ts.map +1 -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 +98 -6
- 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.map +1 -1
- package/dist/record/typed-frame-graph.d.ts +119 -4
- package/dist/record/typed-frame-graph.d.ts.map +1 -1
- package/dist/record/view-ubo.d.ts +7 -5
- package/dist/record/view-ubo.d.ts.map +1 -1
- package/dist/reflection/filter.d.ts +22 -0
- package/dist/reflection/filter.d.ts.map +1 -0
- package/dist/reflection/gpu-table.d.ts +25 -0
- package/dist/reflection/gpu-table.d.ts.map +1 -0
- package/dist/reflection/inspection.d.ts +10 -0
- package/dist/reflection/inspection.d.ts.map +1 -0
- package/dist/reflection/projection.d.ts +140 -0
- package/dist/reflection/projection.d.ts.map +1 -0
- package/dist/reflection/record-owner.d.ts +60 -0
- package/dist/reflection/record-owner.d.ts.map +1 -0
- package/dist/render-contract.d.ts +62 -14
- package/dist/render-contract.d.ts.map +1 -1
- package/dist/render-graph-primitives.d.ts +1 -0
- package/dist/render-graph-primitives.d.ts.map +1 -1
- package/dist/render-pipeline.d.ts +49 -2
- package/dist/render-pipeline.d.ts.map +1 -1
- package/dist/render-system-extract.d.ts +160 -31
- package/dist/render-system-extract.d.ts.map +1 -1
- package/dist/render-system.d.ts +28 -2
- package/dist/render-system.d.ts.map +1 -1
- package/dist/renderer.d.ts +43 -0
- package/dist/renderer.d.ts.map +1 -0
- package/dist/scene/probe-blend-record.d.ts +22 -0
- package/dist/scene/probe-blend-record.d.ts.map +1 -0
- package/dist/scene/probe-blend.d.ts +142 -0
- package/dist/scene/probe-blend.d.ts.map +1 -0
- package/dist/scene/render-scene-types.d.ts +0 -6
- package/dist/scene/render-scene-types.d.ts.map +1 -1
- package/dist/scene/render-scene.d.ts +117 -9
- package/dist/scene/render-scene.d.ts.map +1 -1
- package/dist/scene/visibility/bounds.d.ts +20 -0
- package/dist/scene/visibility/bounds.d.ts.map +1 -0
- package/dist/scene/visibility/budget.d.ts +16 -0
- package/dist/scene/visibility/budget.d.ts.map +1 -0
- package/dist/scene/visibility/facet.d.ts +73 -0
- package/dist/scene/visibility/facet.d.ts.map +1 -0
- package/dist/scene/visibility/gpu-frame-timing.d.ts +41 -0
- package/dist/scene/visibility/gpu-frame-timing.d.ts.map +1 -0
- package/dist/scene/visibility/gpu-lod.d.ts +46 -0
- package/dist/scene/visibility/gpu-lod.d.ts.map +1 -0
- package/dist/scene/visibility/inspection.d.ts +132 -0
- package/dist/scene/visibility/inspection.d.ts.map +1 -0
- package/dist/scene/visibility/lod-selector.d.ts +25 -0
- package/dist/scene/visibility/lod-selector.d.ts.map +1 -0
- package/dist/scene/visibility/occlusion-confidence.d.ts +81 -0
- package/dist/scene/visibility/occlusion-confidence.d.ts.map +1 -0
- package/dist/scene/visibility/occlusion-pass.d.ts +57 -0
- package/dist/scene/visibility/occlusion-pass.d.ts.map +1 -0
- package/dist/scene/visibility/occlusion-query-pool.d.ts +57 -0
- package/dist/scene/visibility/occlusion-query-pool.d.ts.map +1 -0
- package/dist/scene/visibility/occlusion-runtime.d.ts +96 -0
- package/dist/scene/visibility/occlusion-runtime.d.ts.map +1 -0
- package/dist/scene/visibility/types.d.ts +34 -0
- package/dist/scene/visibility/types.d.ts.map +1 -0
- package/dist/shadow-atlas.d.ts +3 -3
- package/dist/shadow-atlas.d.ts.map +1 -1
- package/dist/ssao-buffers.d.ts +3 -0
- package/dist/ssao-buffers.d.ts.map +1 -1
- package/dist/ssr/admission.d.ts +122 -0
- package/dist/ssr/admission.d.ts.map +1 -0
- package/dist/ssr/composition.d.ts +32 -0
- package/dist/ssr/composition.d.ts.map +1 -0
- package/dist/ssr/errors.d.ts +39 -0
- package/dist/ssr/errors.d.ts.map +1 -0
- package/dist/ssr/identity.d.ts +13 -0
- package/dist/ssr/identity.d.ts.map +1 -0
- package/dist/systems/skin-palette-allocator.d.ts +1 -1
- package/dist/targets/contracts.d.ts +66 -0
- package/dist/targets/contracts.d.ts.map +1 -0
- package/dist/targets/graph-projection.d.ts +29 -0
- package/dist/targets/graph-projection.d.ts.map +1 -0
- package/dist/targets/material-source.d.ts +34 -0
- package/dist/targets/material-source.d.ts.map +1 -0
- package/dist/targets/owner.d.ts +32 -0
- package/dist/targets/owner.d.ts.map +1 -0
- package/dist/targets/physical.d.ts +18 -0
- package/dist/targets/physical.d.ts.map +1 -0
- package/dist/targets/readback.d.ts +39 -0
- package/dist/targets/readback.d.ts.map +1 -0
- package/dist/temporal/frame-coordinator.d.ts +13 -0
- package/dist/temporal/frame-coordinator.d.ts.map +1 -1
- package/dist/temporal/frame.d.ts +2 -0
- package/dist/temporal/frame.d.ts.map +1 -1
- package/dist/temporal/index.mjs +6 -5
- package/dist/temporal/view.d.ts +7 -0
- package/dist/temporal/view.d.ts.map +1 -1
- package/dist/tilemap-chunk-extract-system.d.ts +1 -1
- package/dist/typed-render-graph-primitives.d.ts +5 -1
- package/dist/typed-render-graph-primitives.d.ts.map +1 -1
- package/dist/typed-shadow-passes.d.ts +1 -1
- package/dist/typed-shadow-passes.d.ts.map +1 -1
- package/dist/volume/passes.d.ts +9 -5
- package/dist/volume/passes.d.ts.map +1 -1
- package/package.json +20 -20
- package/src/__tests__/bloom-exact-zero.unit.test.ts +48 -19
- package/src/__tests__/bloom-lifecycle.integration.test.ts +41 -13
- package/src/__tests__/camera-target-consumption.unit.test.ts +53 -0
- package/src/__tests__/cluster-binner.unit.test.ts +35 -0
- package/src/__tests__/cluster-grid-default-surface.unit.test.ts +12 -2
- package/src/__tests__/cube-camera-scheduler.unit.test.ts +70 -0
- package/src/__tests__/cube-camera-single-submit.perf.test.ts +75 -0
- package/src/__tests__/cube-camera-view-matrices.unit.test.ts +41 -0
- package/src/__tests__/cube-camera-vocabulary.unit.test.ts +47 -0
- package/src/__tests__/cube-camera.integration.test.ts +42 -0
- package/src/__tests__/detached-inspection.integration.test.ts +6 -0
- package/src/__tests__/device-feature-admission.unit.test.ts +85 -0
- package/src/__tests__/direct-light-snapshot.unit.test.ts +62 -6
- package/src/__tests__/docs-gate-green.unit.test.ts +38 -0
- package/src/__tests__/environment-generation.integration.test.ts +16 -0
- package/src/__tests__/evidence-identity.ts +13 -0
- package/src/__tests__/evidence-identity.unit.test.ts +24 -0
- package/src/__tests__/extended-lighting-recovery.browser.test.ts +14 -0
- package/src/__tests__/extended-lighting-recovery.dawn.test.ts +14 -0
- package/src/__tests__/extended-lighting-recovery.integration.test.ts +81 -0
- package/src/__tests__/extended-lighting-resources.unit.test.ts +51 -0
- package/src/__tests__/extended-lighting-zero-feature.integration.test.ts +52 -0
- package/src/__tests__/factory-contract.integration.test.ts +288 -29
- package/src/__tests__/fog-component.unit.test.ts +67 -0
- package/src/__tests__/fog.integration.test.ts +86 -0
- package/src/__tests__/frame-observation.contract.test.ts +15 -0
- package/src/__tests__/fullscreen-feature-plan.unit.test.ts +37 -0
- package/src/__tests__/gpu-driven-batch-topology-pbr.unit.test.ts +146 -0
- package/src/__tests__/gpu-driven-indirect-raster-evidence.ts +10 -8
- package/src/__tests__/gpu-driven-indirect-raster.dawn.test.ts +18 -1
- package/src/__tests__/gpu-driven-production.integration.test.ts +579 -17
- package/src/__tests__/gpu-driven-scaling.unit.test.ts +66 -2
- package/src/__tests__/gpu-driven-view-gpu-evidence.ts +26 -1
- package/src/__tests__/gpu-driven-view-graph.integration.test.ts +101 -6
- package/src/__tests__/gpu-driven-view.browser.test.ts +3 -3
- package/src/__tests__/gpu-driven-view.dawn.test.ts +3 -3
- package/src/__tests__/gpu-driven-view.unit.test.ts +50 -0
- package/src/__tests__/gpu-lod-evidence.ts +188 -0
- package/src/__tests__/gpu-lod-fallback.integration.test.ts +10 -0
- package/src/__tests__/gpu-lod-indirect.integration.test.ts +40 -0
- package/src/__tests__/gpu-lod-parity.dawn.test.ts +29 -0
- package/src/__tests__/gpu-lod-readiness.integration.test.ts +52 -0
- package/src/__tests__/gpu-lod-schema.unit.test.ts +66 -0
- package/src/__tests__/gpu-lod-selector.unit.test.ts +28 -0
- package/src/__tests__/gpu-lod-silhouette.browser.test.ts +13 -0
- package/src/__tests__/gpu-pass-timing-browser-runner.ts +281 -0
- package/src/__tests__/gpu-pass-timing-coexistence.integration.test.ts +80 -0
- package/src/__tests__/gpu-pass-timing-contract.unit.test.ts +243 -0
- package/src/__tests__/gpu-pass-timing-exact-zero.unit.test.ts +131 -0
- package/src/__tests__/gpu-pass-timing-lifecycle.integration.test.ts +230 -0
- package/src/__tests__/gpu-pass-timing-observation.unit.test.ts +233 -0
- package/src/__tests__/gpu-pass-timing-session.unit.test.ts +438 -0
- package/src/__tests__/gpu-pass-timing.browser.test.ts +26 -0
- package/src/__tests__/gpu-pass-timing.rhi-null.unit.test.ts +125 -0
- package/src/__tests__/gpu-resource-store-stride.unit.test.ts +66 -1
- package/src/__tests__/gpu-scene.dawn.test.ts +8 -1
- package/src/__tests__/gpu-scene.unit.test.ts +49 -3
- package/src/__tests__/hdrp-group2-visibility.unit.test.ts +24 -0
- package/src/__tests__/instances-culling.integration.test.ts +94 -0
- package/src/__tests__/instances-derived-bounds.unit.test.ts +118 -0
- package/src/__tests__/light-buffer-layout.unit.test.ts +113 -3
- package/src/__tests__/light-inspection.unit.test.ts +55 -0
- package/src/__tests__/light-resource-error.unit.test.ts +43 -0
- package/src/__tests__/lighting-scene-roundtrip.integration.test.ts +109 -0
- package/src/__tests__/lod-bounds.unit.test.ts +42 -0
- package/src/__tests__/lod-cpu-lane.integration.test.ts +55 -0
- package/src/__tests__/lod-cpu-no-change.perf.test.ts +19 -0
- package/src/__tests__/lod-gpu-frame-timing.unit.test.ts +49 -0
- package/src/__tests__/lod-multi-view.integration.test.ts +63 -0
- package/src/__tests__/lod-occlusion-device-loss.integration.test.ts +27 -0
- package/src/__tests__/lod-occlusion-final-decision.integration.test.ts +47 -0
- package/src/__tests__/lod-occlusion-inspection.integration.test.ts +217 -0
- package/src/__tests__/lod-occlusion-inspection.schema.test-d.ts +14 -0
- package/src/__tests__/lod-occlusion-inspection.unit.test.ts +72 -0
- package/src/__tests__/lod-occlusion-visual-evidence.ts +91 -0
- package/src/__tests__/lod-occlusion.browser.test.ts +15 -0
- package/src/__tests__/lod-occlusion.dawn.test.ts +20 -0
- package/src/__tests__/lod-selector.profile.test.ts +35 -0
- package/src/__tests__/lod-selector.unit.test.ts +68 -0
- package/src/__tests__/lod-visibility-identity.unit.test.ts +198 -0
- package/src/__tests__/lod-visibility-lifecycle.integration.test.ts +132 -0
- package/src/__tests__/ltc-resources.unit.test.ts +32 -0
- package/src/__tests__/material-contract-inventory.unit.test.ts +17 -0
- package/src/__tests__/material-observation.integration.test.ts +101 -0
- package/src/__tests__/occlusion-confidence.unit.test.ts +168 -0
- package/src/__tests__/occlusion-invalidation.integration.test.ts +37 -0
- package/src/__tests__/occlusion-pass-routing.unit.test.ts +16 -0
- package/src/__tests__/occlusion-pass.dawn.test.ts +20 -0
- package/src/__tests__/occlusion-pass.integration.test.ts +43 -0
- package/src/__tests__/occlusion-pass.rhi-null.test.ts +22 -0
- package/src/__tests__/occlusion-query-pool.rhi-null.test.ts +21 -0
- package/src/__tests__/occlusion-query-pool.unit.test.ts +95 -0
- package/src/__tests__/occlusion-query-ticket.integration.test.ts +47 -0
- package/src/__tests__/occlusion-query.dawn.test.ts +16 -0
- package/src/__tests__/occlusion-query.evidence.ts +178 -0
- package/src/__tests__/occlusion-query.rhi-null.test.ts +31 -0
- package/src/__tests__/occlusion-runtime.unit.test.ts +120 -0
- package/src/__tests__/pbr-view-layout.unit.test.ts +16 -0
- package/src/__tests__/point-shadow-inspection.unit.test.ts +60 -0
- package/src/__tests__/prepared-gpu-driven-pbr.integration.test.ts +196 -0
- package/src/__tests__/probe-bindings.unit.test.ts +200 -0
- package/src/__tests__/probe-blend-numeric.unit.test.ts +67 -0
- package/src/__tests__/probe-blend-oracle.unit.test.ts +136 -0
- package/src/__tests__/probe-capacity.integration.test.ts +97 -0
- package/src/__tests__/probe-recovery.integration.test.ts +104 -0
- package/src/__tests__/probe-scene-dirty.integration.test.ts +211 -0
- package/src/__tests__/profiler-phase-catalog.test.ts +4 -1
- package/src/__tests__/profiler-phase-token.test.ts +1 -0
- package/src/__tests__/public-surface.test-d.ts +10 -0
- package/src/__tests__/rect-area-boundary.unit.test.ts +24 -0
- package/src/__tests__/reflection-fallback-graph.unit.test.ts +67 -0
- package/src/__tests__/reflection-fallback-inspection.unit.test.ts +77 -0
- package/src/__tests__/reflection-fallback-lifecycle.integration.test.ts +21 -0
- package/src/__tests__/reflection-fallback-projection.unit.test.ts +90 -0
- package/src/__tests__/reflection-fallback-source.unit.test.ts +32 -0
- package/src/__tests__/reflection-probe-authoring.unit.test.ts +71 -0
- package/src/__tests__/reflection-probe-filter.unit.test.ts +54 -0
- package/src/__tests__/reflection-probe-ibl-topology.unit.test.ts +45 -0
- package/src/__tests__/reflection-probe-owner-placement.unit.test.ts +39 -0
- package/src/__tests__/reflection-probe-pass-encode.integration.test.ts +101 -0
- package/src/__tests__/reflection-probe-performance.perf.test.ts +60 -0
- package/src/__tests__/reflection-probe-record-owner.characterization.unit.test.ts +120 -0
- package/src/__tests__/reflection-probe-recovery.integration.test.ts +55 -0
- package/src/__tests__/reflection-probe-selection.unit.test.ts +46 -0
- package/src/__tests__/render-error-code-owner.test-d.ts +19 -3
- package/src/__tests__/render-feature-docs.unit.test.ts +12 -7
- package/src/__tests__/render-graph-fallback.integration.test.ts +24 -0
- package/src/__tests__/render-perf/extended-lighting.bench.test.ts +66 -0
- package/src/__tests__/render-scene-projection.unit.test.ts +447 -18
- package/src/__tests__/render-target-admission.unit.test.ts +80 -0
- package/src/__tests__/render-target-graph-projection.unit.test.ts +102 -0
- package/src/__tests__/render-target-inspection.unit.test.ts +52 -0
- package/src/__tests__/render-target-material-source.test-d.ts +30 -0
- package/src/__tests__/render-target-material-source.unit.test.ts +97 -0
- package/src/__tests__/render-target-owner-placement.unit.test.ts +203 -0
- package/src/__tests__/render-target-owner.unit.test.ts +122 -0
- package/src/__tests__/render-target-probe-soak.perf.test.ts +94 -0
- package/src/__tests__/render-target-public-schema.json +107 -0
- package/src/__tests__/render-target-public-schema.unit.test.ts +91 -0
- package/src/__tests__/render-target-public-surface.test-d.ts +83 -0
- package/src/__tests__/render-target-readback.integration.test.ts +90 -0
- package/src/__tests__/render-target-recovery.integration.test.ts +85 -0
- package/src/__tests__/renderer-factory-material-contract.unit.test.ts +124 -0
- package/src/__tests__/renderer-lifecycle.integration.test.ts +14 -0
- package/src/__tests__/shader-stage-surface.unit.test.ts +19 -4
- package/src/__tests__/skin-motion-regression.unit.test.ts +154 -0
- package/src/__tests__/skinned-shadow-caster.test.ts +13 -4
- package/src/__tests__/spot-modifier-projection.unit.test.ts +70 -0
- package/src/__tests__/ssr-admission-matrix.integration.test.ts +206 -0
- package/src/__tests__/ssr-composition.unit.test.ts +46 -0
- package/src/__tests__/ssr-fallback-zero-work.bench.test.ts +94 -0
- package/src/__tests__/ssr-recovery-errors.unit.test.ts +58 -0
- package/src/__tests__/standard-cluster-capability.integration.test.ts +63 -0
- package/src/__tests__/standard-cluster-transport.unit.test.ts +121 -0
- package/src/__tests__/standard-cluster-variant-resolution.unit.test.ts +299 -0
- package/src/__tests__/standard-clustered-pipeline.unit.test.ts +15 -5
- package/src/__tests__/standard-lighting-inspection.integration.test.ts +138 -0
- package/src/__tests__/standard-lighting-ssot.unit.test.ts +18 -0
- package/src/__tests__/standard-lighting-write.unit.test.ts +441 -0
- package/src/__tests__/standard-lighting.integration.test.ts +67 -0
- package/src/__tests__/standard-pipeline.dawn.test.ts +206 -5
- package/src/__tests__/standard-pipeline.integration.test.ts +181 -150
- package/src/__tests__/standard-probe-binding.unit.test.ts +25 -0
- package/src/__tests__/standard-profile-oracle.unit.test.ts +23 -38
- package/src/__tests__/temporal-fallback-generation.integration.test.ts +16 -0
- package/src/__tests__/temporal-view.unit.test.ts +3 -3
- package/src/__tests__/transmission-prewarm.unit.test.ts +69 -0
- package/src/__tests__/typed-pipeline-topology.unit.test.ts +395 -14
- package/src/__tests__/urp-pipeline-targets.unit.test.ts +2 -2
- package/src/__tests__/visibility-budget.integration.test.ts +140 -0
- package/src/__tests__/visibility-budget.unit.test.ts +70 -0
- package/src/__tests__/visibility-extract.integration.test.ts +11 -6
- package/src/__tests__/visibility-resolver.unit.test.ts +15 -0
- package/src/__tests__/volumetric-fog-point-spot-accumulation.integration.test.ts +6 -3
- package/src/__tests__/volumetric-fog-stage-readback.dawn.test.ts +31 -28
- package/src/assembly/backend-contract.ts +13 -0
- package/src/assembly/device-feature-admission.ts +80 -0
- package/src/assembly/directional-shadow-inspection.ts +122 -0
- package/src/assembly/factory.ts +1411 -366
- package/src/assembly/host-contract.ts +35 -0
- package/src/assembly/render-target-host.ts +847 -0
- package/src/assets/asset-decoders.ts +1 -1
- package/src/assets/render-asset-port.ts +7 -1
- package/src/capture/cube-views.ts +69 -0
- package/src/capture/scheduler.ts +265 -0
- package/src/cluster-binner.ts +31 -0
- package/src/components/__tests__/lighting-authoring.unit.test.ts +39 -0
- package/src/components/__tests__/rect-area-light.unit.test.ts +33 -0
- package/src/components/__tests__/schema-contract.unit.test.ts +12 -0
- package/src/components/__tests__/schema-parity.unit.test.ts +9 -0
- package/src/components/camera.ts +4 -0
- package/src/components/cube-camera.ts +52 -0
- package/src/components/directional-light.ts +22 -2
- package/src/components/directional-shadow-filter.ts +57 -0
- package/src/components/index.ts +5 -0
- package/src/components/light-helpers.ts +133 -8
- package/src/components/light-probe.ts +13 -0
- package/src/components/rect-area-light.ts +15 -0
- package/src/components/reflection-probe.ts +49 -0
- package/src/components/scene-instance.ts +6 -0
- package/src/components/spot-light.ts +3 -0
- package/src/device/__tests__/extended-lighting-recovery.unit.test.ts +24 -0
- package/src/device/gpu-residency.ts +140 -9
- package/src/device/lifecycle-transaction.ts +12 -0
- package/src/environment/frame.ts +6 -24
- package/src/environment/lifecycle.ts +20 -1
- package/src/errors/gpu-driven.ts +92 -0
- package/src/errors/index.ts +1 -0
- package/src/errors/recover.ts +32 -0
- package/src/errors/render.ts +341 -143
- package/src/extract/camera.ts +3 -3
- package/src/extract/directional-shadow-projection.ts +61 -0
- package/src/extract/environment.ts +57 -0
- package/src/extract/gpu-driven.ts +108 -0
- package/src/extract/visibility.ts +2 -1
- package/src/features/fullscreen.ts +3 -0
- package/src/features/targets.ts +4 -1
- package/src/features/types.ts +10 -0
- package/src/fullscreen-post-process-pass.ts +43 -2
- package/src/gpu-driven/batch-topology.ts +207 -28
- package/src/gpu-driven/prepared-draw.ts +208 -0
- package/src/gpu-driven/production-raster.ts +953 -43
- package/src/gpu-driven/view-gpu.ts +411 -29
- package/src/gpu-scene-schema.ts +13 -0
- package/src/gpu-scene.ts +140 -64
- package/src/gpu-usage.ts +0 -1
- package/src/hdrp-buffers.ts +169 -63
- package/src/ibl/IblPipelineCache.ts +11 -0
- package/src/ibl/kernel-cache.ts +88 -0
- package/src/index.ts +222 -0
- package/src/inspection-types.ts +276 -1
- package/src/instances-derived-bounds.ts +171 -0
- package/src/internal.ts +38 -0
- package/src/light-buffer-layout.ts +155 -310
- package/src/materials.ts +16 -2
- package/src/mesh-material-bindings.ts +132 -0
- package/src/pbr-pipeline.ts +255 -60
- package/src/pipeline/standard-forward-lane.ts +93 -16
- package/src/pipeline/standard-lighting/errors.ts +6 -0
- package/src/pipeline/standard-lighting/graph.ts +158 -0
- package/src/pipeline/standard-lighting/inspection.ts +88 -0
- package/src/pipeline/standard-lighting/layout.ts +31 -0
- package/src/pipeline/standard-lighting/light-frame.ts +35 -0
- package/src/pipeline/standard-lighting/membership.ts +43 -0
- package/src/pipeline/standard-lighting/prepare.ts +37 -0
- package/src/pipeline/standard-lighting/topology.ts +120 -0
- package/src/pipeline/standard-lighting/transport.ts +78 -0
- package/src/pipeline/standard-pipeline.ts +124 -193
- package/src/pipeline/standard-post.ts +26 -7
- package/src/pipeline/standard-profile.ts +17 -47
- package/src/pipeline-builder.ts +5 -2
- package/src/pipeline-spec.ts +95 -21
- package/src/plugin.ts +4 -0
- package/src/point-shadow-inspection.ts +55 -0
- package/src/prepare/__tests__/extended-lighting-capability.unit.test.ts +56 -0
- package/src/prepare/extended-lighting/ltc-resources.ts +136 -0
- package/src/prepare/extended-lighting/resources.ts +389 -0
- package/src/prepare/extended-lighting/spot-modifiers.ts +194 -0
- package/src/prepare/extended-lighting/state.ts +92 -0
- package/src/record/__tests__/gpu-timing.unit.test.ts +177 -0
- package/src/record/__tests__/temporal-payload.unit.test.ts +64 -1
- package/src/record/__tests__/transparent-group2-selection.unit.test.ts +73 -0
- package/src/record/__tests__/typed-frame-graph-plan.unit.test.ts +20 -1
- package/src/record/__tests__/view-ubo-layout.unit.test.ts +40 -0
- package/src/record/frame-lighting.ts +591 -452
- package/src/record/frame-snapshot.ts +92 -39
- package/src/record/frame-targets.ts +17 -0
- package/src/record/frame.ts +662 -158
- package/src/record/gpu-pass-timing/contract.ts +180 -0
- package/src/record/gpu-pass-timing/errors.ts +34 -0
- package/src/record/gpu-pass-timing/index.ts +37 -0
- package/src/record/gpu-pass-timing/parser.ts +97 -0
- package/src/record/gpu-pass-timing/session.ts +938 -0
- package/src/record/gpu-timing.ts +112 -39
- package/src/record/helpers.ts +0 -58
- package/src/record/main-pass-geometry.ts +324 -119
- package/src/record/main-pass-material.ts +103 -10
- package/src/record/main-pass-sprite-draws.ts +99 -103
- package/src/record/main-pass.ts +71 -15
- package/src/record/mesh-ssbo.ts +47 -36
- package/src/record/render-context.ts +136 -3
- package/src/record/shadow-pass.ts +83 -68
- package/src/record/skybox-post-pass.ts +20 -4
- package/src/record/typed-frame-graph.ts +1034 -43
- package/src/record/view-ubo.ts +72 -47
- package/src/reflection/filter.ts +81 -0
- package/src/reflection/gpu-table.ts +44 -0
- package/src/reflection/inspection.ts +67 -0
- package/src/reflection/projection.ts +476 -0
- package/src/reflection/record-owner.ts +1283 -0
- package/src/render-contract.ts +93 -10
- package/src/render-graph-primitives.ts +9 -4
- package/src/render-pipeline.ts +122 -2
- package/src/render-system-extract.ts +1041 -225
- package/src/render-system.ts +1310 -85
- package/src/renderer.ts +222 -0
- package/src/scene/__tests__/changed-block-summary.candidate.test.ts +36 -0
- package/src/scene/probe-blend-record.ts +54 -0
- package/src/scene/probe-blend.ts +813 -0
- package/src/scene/render-scene-types.ts +0 -7
- package/src/scene/render-scene.ts +942 -171
- package/src/scene/visibility/bounds.ts +57 -0
- package/src/scene/visibility/budget.ts +40 -0
- package/src/scene/visibility/facet.ts +400 -0
- package/src/scene/visibility/gpu-frame-timing.ts +101 -0
- package/src/scene/visibility/gpu-lod.ts +119 -0
- package/src/scene/visibility/inspection.ts +313 -0
- package/src/scene/visibility/lod-selector.ts +84 -0
- package/src/scene/visibility/occlusion-confidence.ts +478 -0
- package/src/scene/visibility/occlusion-pass.ts +165 -0
- package/src/scene/visibility/occlusion-query-pool.ts +178 -0
- package/src/scene/visibility/occlusion-runtime.ts +672 -0
- package/src/scene/visibility/types.ts +50 -0
- package/src/shadow-atlas.ts +5 -5
- package/src/ssao-buffers.ts +9 -2
- package/src/ssr/admission.ts +451 -0
- package/src/ssr/composition.ts +73 -0
- package/src/ssr/errors.ts +76 -0
- package/src/ssr/identity.ts +12 -0
- package/src/systems/skin-palette-allocator.ts +1 -1
- package/src/targets/contracts.ts +182 -0
- package/src/targets/graph-projection.ts +169 -0
- package/src/targets/material-source.ts +143 -0
- package/src/targets/owner.ts +214 -0
- package/src/targets/physical.ts +18 -0
- package/src/targets/readback.ts +153 -0
- package/src/temporal/frame-coordinator.ts +26 -0
- package/src/temporal/frame.ts +14 -1
- package/src/temporal/view.ts +11 -0
- package/src/tilemap-chunk-extract-system.ts +4 -4
- package/src/transmission/__tests__/standard-transmission.dawn.test.ts +59 -20
- package/src/typed-render-graph-primitives.ts +53 -3
- package/src/typed-shadow-passes.ts +46 -40
- package/src/volume/passes.ts +61 -58
- package/dist/.tsbuildinfo +0 -1
- package/dist/chunk-4XINDLAY.mjs.map +0 -1
- package/dist/chunk-CDTWTHZR.mjs.map +0 -1
- package/dist/chunk-M2MP4ZOU.mjs +0 -73
- package/dist/chunk-M2MP4ZOU.mjs.map +0 -1
- package/dist/chunk-PCHBPYML.mjs.map +0 -1
- package/dist/chunk-TBQJOK2L.mjs.map +0 -1
- package/dist/chunk-VFPLTKCU.mjs.map +0 -1
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inputs owned by the render extract/persistent-scene boundary. Bounds are
|
|
3
|
+
* deliberately derived here instead of being added to the author-facing
|
|
4
|
+
* `Instances` component or written back to a Pack asset.
|
|
5
|
+
*/
|
|
6
|
+
export interface DerivedInstancesUnionBoundsInput {
|
|
7
|
+
readonly meshAabb: ArrayLike<number> | undefined;
|
|
8
|
+
readonly entityWorld: ArrayLike<number>;
|
|
9
|
+
readonly transforms: ArrayLike<number> | undefined;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Renderer-owned cache key. Each generation is supplied by the owner that can
|
|
13
|
+
* observe that mutation: mesh/AABB publication, entity world transform, and
|
|
14
|
+
* the packed instance matrix array respectively.
|
|
15
|
+
*/
|
|
16
|
+
export interface InstanceBoundsCacheKey {
|
|
17
|
+
/** Optional scene/world scope for composite scenes; omitted for standalone tests. */
|
|
18
|
+
readonly worldId?: number;
|
|
19
|
+
readonly entityKey: number;
|
|
20
|
+
readonly meshGeneration: number;
|
|
21
|
+
readonly transformGeneration: number;
|
|
22
|
+
readonly matrixGeneration: number;
|
|
23
|
+
}
|
|
24
|
+
export type InstanceBoundsCacheInput = InstanceBoundsCacheKey & DerivedInstancesUnionBoundsInput;
|
|
25
|
+
/**
|
|
26
|
+
* Stable bitwise fingerprint for detached numeric facts used by the cache.
|
|
27
|
+
* Float32 bits are hashed rather than decimal text so a real matrix/AABB
|
|
28
|
+
* change invalidates the projection without keeping another mutable ledger.
|
|
29
|
+
*/
|
|
30
|
+
export declare function fingerprintNumericArray(values: ArrayLike<number>): number;
|
|
31
|
+
/**
|
|
32
|
+
* Derive the world-space AABB enclosing every instance of a mesh.
|
|
33
|
+
*
|
|
34
|
+
* `undefined` is a conservative signal: the caller must skip CPU culling
|
|
35
|
+
* when an input is missing, malformed, or empty. This prevents an empty
|
|
36
|
+
* `Instances` row from becoming a synthetic identity draw/bounds candidate.
|
|
37
|
+
*/
|
|
38
|
+
export declare function deriveInstancesUnionBounds(input: DerivedInstancesUnionBoundsInput): Float32Array | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* Small renderer-owned per-entity cache. A changed generation replaces the
|
|
41
|
+
* entry atomically; packed-id reuse is safe when its owner supplies a new
|
|
42
|
+
* generation (the normal RenderScene slot generation contract).
|
|
43
|
+
*/
|
|
44
|
+
export declare class InstanceBoundsCache {
|
|
45
|
+
private readonly entries;
|
|
46
|
+
private key;
|
|
47
|
+
get(input: InstanceBoundsCacheInput): Float32Array | undefined;
|
|
48
|
+
invalidate(entityKey?: number, worldId?: number): void;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=instances-derived-bounds.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instances-derived-bounds.d.ts","sourceRoot":"","sources":["../src/instances-derived-bounds.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;CACpD;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,qFAAqF;IACrF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,MAAM,wBAAwB,GAAG,sBAAsB,GAAG,gCAAgC,CAAC;AAEjG;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CASzE;AAyCD;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,gCAAgC,GACtC,YAAY,GAAG,SAAS,CA8B1B;AAMD;;;;GAIG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+C;IAEvE,OAAO,CAAC,GAAG;IAIX,GAAG,CAAC,KAAK,EAAE,wBAAwB,GAAG,YAAY,GAAG,SAAS;IAsB9D,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;CAOvD"}
|
package/dist/internal.d.ts
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
export { type ResolvedTilesetRuntime, resolveTilesetRuntime, type TilesetAtlasLookup, type TilesetRuntimeError, type TilesetRuntimeErrorCode, } from '@forgeax/engine-assets-runtime';
|
|
2
|
+
export { DeviceScope } from './device/device-scope';
|
|
3
|
+
export { createLightResourceUnavailable } from './errors/render';
|
|
4
|
+
export { deriveLtcResourcePlan, type LtcResourcePlan, } from './prepare/extended-lighting/ltc-resources';
|
|
5
|
+
export { deriveExtendedLightingCapability, EXTENDED_LIGHTING_REQUIRED_SAMPLED_TEXTURES, type ExtendedLightingCapabilityResult, type ExtendedLightingResourceCandidate, extendedLightingSampledTextureCapacityAvailable, } from './prepare/extended-lighting/resources';
|
|
6
|
+
export { createExtendedLightingState, type ExtendedLightingState, projectExtendedLightingInspection, promoteExtendedLightingCandidate, recordExtendedLightingFailure, } from './prepare/extended-lighting/state';
|
|
2
7
|
export { type GraphTargetCaptureReadbackValidation, validateGraphTargetCaptureReadback, } from './record/frame-snapshot';
|
|
8
|
+
export { buildRectAreaWorldFrame, rectAreaFacesPoint, } from './render-system-extract';
|
|
9
|
+
export { admitProbeContributors, blendLightProbes, PROBE_MAX_CONTRIBUTORS, scaledProbeWeight, } from './scene/probe-blend';
|
|
10
|
+
export { createVisibilityBudget, type VisibilityBudget, } from './scene/visibility/budget';
|
|
11
|
+
export { type OcclusionRuntimeTestHooks, setOcclusionRuntimeTestHooks, } from './scene/visibility/occlusion-runtime';
|
|
3
12
|
export { TemporalFrameCoordinator } from './temporal/frame-coordinator';
|
|
4
13
|
//# sourceMappingURL=internal.d.ts.map
|
package/dist/internal.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,sBAAsB,EAC3B,qBAAqB,EACrB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,GAC7B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,KAAK,oCAAoC,EACzC,kCAAkC,GACnC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,sBAAsB,EAC3B,qBAAqB,EACrB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,GAC7B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EACL,qBAAqB,EACrB,KAAK,eAAe,GACrB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,gCAAgC,EAChC,2CAA2C,EAC3C,KAAK,gCAAgC,EACrC,KAAK,iCAAiC,EACtC,+CAA+C,GAChD,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,2BAA2B,EAC3B,KAAK,qBAAqB,EAC1B,iCAAiC,EACjC,gCAAgC,EAChC,6BAA6B,GAC9B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,KAAK,oCAAoC,EACzC,kCAAkC,GACnC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,sBAAsB,EACtB,KAAK,gBAAgB,GACtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,KAAK,yBAAyB,EAC9B,4BAA4B,GAC7B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC"}
|
package/dist/internal.mjs
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
|
-
export {
|
|
2
|
-
|
|
1
|
+
export { PROBE_MAX_CONTRIBUTORS, admitProbeContributors, blendLightProbes, buildRectAreaWorldFrame, createExtendedLightingState, projectExtendedLightingInspection, promoteExtendedLightingCandidate, recordExtendedLightingFailure, rectAreaFacesPoint, scaledProbeWeight, setOcclusionRuntimeTestHooks } from './chunk-DIYW3M5D.mjs';
|
|
2
|
+
import './chunk-FJ6P52EE.mjs';
|
|
3
|
+
export { createVisibilityBudget } from './chunk-FF7K3FSO.mjs';
|
|
4
|
+
import './chunk-JDWARUOI.mjs';
|
|
5
|
+
export { TemporalFrameCoordinator } from './chunk-4L3P6DT5.mjs';
|
|
6
|
+
import { EXTENDED_LIGHTING_TOPOLOGY } from './chunk-HZUPSYW7.mjs';
|
|
7
|
+
export { DeviceScope, EXTENDED_LIGHTING_REQUIRED_SAMPLED_TEXTURES, deriveExtendedLightingCapability, extendedLightingSampledTextureCapacityAvailable, validateGraphTargetCaptureReadback } from './chunk-HZUPSYW7.mjs';
|
|
8
|
+
export { createLightResourceUnavailable } from './chunk-QODA5UKU.mjs';
|
|
3
9
|
export { resolveTilesetRuntime } from '@forgeax/engine-assets-runtime';
|
|
10
|
+
import '@forgeax/engine-shader';
|
|
11
|
+
import '@forgeax/engine-types';
|
|
12
|
+
|
|
13
|
+
function deriveLtcResourcePlan(input) {
|
|
14
|
+
const admitted = input.ltcAvailable;
|
|
15
|
+
return {
|
|
16
|
+
topology: EXTENDED_LIGHTING_TOPOLOGY,
|
|
17
|
+
generation: input.scope.generation,
|
|
18
|
+
rectAdmission: admitted ? "admitted" : "omitted",
|
|
19
|
+
tableCount: admitted ? 2 : 0,
|
|
20
|
+
uploadCount: admitted && input.residentGeneration !== input.scope.generation ? 2 : 0
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export { deriveLtcResourcePlan };
|
|
4
25
|
//# sourceMappingURL=internal.mjs.map
|
|
5
26
|
//# sourceMappingURL=internal.mjs.map
|
package/dist/internal.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"internal.mjs","sourcesContent":[]}
|
|
1
|
+
{"version":3,"sources":["../src/prepare/extended-lighting/ltc-resources.ts"],"names":[],"mappings":";;;;;;;;;;;;AAoCO,SAAS,sBAAsB,KAAA,EAA8C;AAClF,EAAA,MAAM,WAAW,KAAA,CAAM,YAAA;AACvB,EAAA,OAAO;AAAA,IACL,QAAA,EAAU,0BAAA;AAAA,IACV,UAAA,EAAY,MAAM,KAAA,CAAM,UAAA;AAAA,IACxB,aAAA,EAAe,WAAW,UAAA,GAAa,SAAA;AAAA,IACvC,UAAA,EAAY,WAAW,CAAA,GAAI,CAAA;AAAA,IAC3B,aAAa,QAAA,IAAY,KAAA,CAAM,uBAAuB,KAAA,CAAM,KAAA,CAAM,aAAa,CAAA,GAAI;AAAA,GACrF;AACF","file":"internal.mjs","sourcesContent":["// @forgeax/engine-render - DeviceScope-owned RectArea LTC resources.\n\nimport type { Result, RhiDevice, RhiError, Texture } from '@forgeax/engine-rhi';\nimport { LTC_TABLE_HEIGHT, LTC_TABLE_WIDTH, LTC_TABLES } from '@forgeax/engine-shader';\nimport { err, ok } from '@forgeax/engine-types';\nimport { type DeviceScope, LifecycleTransaction } from '../../device/device-scope';\nimport {\n GPU_TEXTURE_USAGE_COPY_DST,\n GPU_TEXTURE_USAGE_TEXTURE_BINDING,\n} from '../../gpu-texture-usage';\nimport { deriveExtendedLightingCapability, EXTENDED_LIGHTING_TOPOLOGY } from './resources';\n\nexport interface LtcResourcePlanInput {\n readonly scope: DeviceScope;\n readonly ltcAvailable: boolean;\n readonly residentGeneration?: number;\n}\n\nexport interface LtcResourcePlan {\n readonly topology: typeof EXTENDED_LIGHTING_TOPOLOGY;\n readonly generation: number;\n readonly rectAdmission: 'admitted' | 'omitted';\n readonly tableCount: number;\n readonly uploadCount: number;\n}\n\nexport interface LtcResourceCandidate {\n readonly topology: typeof EXTENDED_LIGHTING_TOPOLOGY;\n readonly generation: number;\n readonly scope: DeviceScope;\n readonly lambertTexture: Texture;\n readonly ggxTexture: Texture;\n readonly tableCount: 2;\n readonly uploadCount: 2;\n}\n\nexport function deriveLtcResourcePlan(input: LtcResourcePlanInput): LtcResourcePlan {\n const admitted = input.ltcAvailable;\n return {\n topology: EXTENDED_LIGHTING_TOPOLOGY,\n generation: input.scope.generation,\n rectAdmission: admitted ? 'admitted' : 'omitted',\n tableCount: admitted ? 2 : 0,\n uploadCount: admitted && input.residentGeneration !== input.scope.generation ? 2 : 0,\n };\n}\n\nfunction failure(expected: string, actual: string): Result<never, RhiError> {\n return err({\n code: 'webgpu-runtime-error',\n expected,\n hint: 'inspect device capabilities and retry the extendedLighting candidate',\n detail: { error: { code: 'ltc-resource', message: actual } },\n } as RhiError);\n}\n\nfunction textureBytes(table: Uint16Array): Uint8Array {\n return new Uint8Array(table.buffer, table.byteOffset, table.byteLength);\n}\n\n/** Create both tracked tables atomically; unavailable LTC only omits Rect. */\nexport async function createLtcResourceCandidate(input: {\n readonly device: RhiDevice | undefined;\n readonly scope: DeviceScope;\n}): Promise<Result<LtcResourceCandidate | undefined, RhiError>> {\n if (input.device === undefined) return ok(undefined);\n if (!deriveExtendedLightingCapability(input.device).admitted) return ok(undefined);\n const device = input.device;\n\n const transaction = new LifecycleTransaction(input.scope);\n let lambertTexture: Texture | undefined;\n let ggxTexture: Texture | undefined;\n const createTable = (label: string, table: Uint16Array): Texture => {\n const texture = device.createTexture({\n label,\n size: { width: LTC_TABLE_WIDTH, height: LTC_TABLE_HEIGHT, depthOrArrayLayers: 1 },\n mipLevelCount: 1,\n sampleCount: 1,\n dimension: '2d',\n format: 'rgba16float',\n usage: GPU_TEXTURE_USAGE_COPY_DST | GPU_TEXTURE_USAGE_TEXTURE_BINDING,\n viewFormats: [],\n textureBindingViewDimension: undefined,\n });\n if (texture === undefined || !texture.ok) {\n throw texture?.error ?? new Error('LTC texture creation returned no result');\n }\n const write = device.queue.writeTexture(\n { texture: texture.value, mipLevel: 0, origin: { x: 0, y: 0, z: 0 } },\n textureBytes(table),\n { offset: 0, bytesPerRow: LTC_TABLE_WIDTH * 8, rowsPerImage: LTC_TABLE_HEIGHT },\n { width: LTC_TABLE_WIDTH, height: LTC_TABLE_HEIGHT, depthOrArrayLayers: 1 },\n );\n if (!write.ok) throw write.error;\n return texture.value;\n };\n\n transaction.add({\n kind: 'texture',\n create: () => {\n lambertTexture = createTable('extended-lighting-ltc-lambert', LTC_TABLES.lambert);\n return lambertTexture;\n },\n cleanup: (value) => {\n const destroyed = input.device?.destroyTexture(value);\n if (destroyed !== undefined && !destroyed.ok) throw destroyed.error;\n },\n });\n transaction.add({\n kind: 'texture',\n create: () => {\n ggxTexture = createTable('extended-lighting-ltc-ggx', LTC_TABLES.ggx);\n return ggxTexture;\n },\n cleanup: (value) => {\n const destroyed = input.device?.destroyTexture(value);\n if (destroyed !== undefined && !destroyed.ok) throw destroyed.error;\n },\n });\n\n const committed = await transaction.commit();\n if (!committed.ok)\n return failure(committed.error.primary.expected, committed.error.primary.message);\n if (lambertTexture === undefined || ggxTexture === undefined) {\n return failure('two LTC textures', 'the transaction committed without both tables');\n }\n return ok({\n topology: EXTENDED_LIGHTING_TOPOLOGY,\n generation: input.scope.generation,\n scope: input.scope,\n lambertTexture,\n ggxTexture,\n tableCount: 2,\n uploadCount: 2,\n });\n}\n"]}
|
|
@@ -1,117 +1,20 @@
|
|
|
1
1
|
import { type Result, RhiError } from '@forgeax/engine-rhi';
|
|
2
|
-
import type { PointLightSnapshot, SpotLightSnapshot } from './render-system-extract';
|
|
3
|
-
/** Byte size of one HDRP LightSlot in std430 (16 x f32). AC-11 absolute-value lock. */
|
|
4
|
-
export declare const BYTES_PER_LIGHT_SLOT = 64;
|
|
5
|
-
/**
|
|
6
|
-
* LightSlot kind discriminant — closed enum matching WGSL `KIND_POINT` / `KIND_SPOT`.
|
|
7
|
-
* Values are u32 bit-tags (not sequential); AC-12 exhaustive switch.
|
|
8
|
-
*/
|
|
9
|
-
export declare const LightSlotKind: {
|
|
10
|
-
readonly POINT: 0;
|
|
11
|
-
readonly SPOT: 1;
|
|
12
|
-
};
|
|
13
|
-
export type LightSlotKind = (typeof LightSlotKind)[keyof typeof LightSlotKind];
|
|
14
|
-
/**
|
|
15
|
-
* Byte-offset layout of one LightSlot in std430 (16 f32 = 64 B).
|
|
16
|
-
*
|
|
17
|
-
* Mirrors the WGSL `LightSlot` struct field order byte-for-byte.
|
|
18
|
-
* All offsets verified by w14 lightslot-layout.test.ts.
|
|
19
|
-
*
|
|
20
|
-
* feat-20260612-point-light-shadows-urp-hdrp M4 / T-M4-4 (plan-strategy §D-8):
|
|
21
|
-
* the prior u32x3 pad lanes at byte 52..64 carry shadow-side data on the HDRP
|
|
22
|
-
* path. `kind_and_pad.x = kind` (u32), `.y = shadow identity` (i32, sentinel
|
|
23
|
-
* -1 = no shadow). For point lights `.z/.w` carry near/far (f32 via bitcast);
|
|
24
|
-
* for spot lights `.z` carries shadowIntensity and `.w` carries the PCF
|
|
25
|
-
* kernel width (f32 via bitcast). The shader reads these lanes through
|
|
26
|
-
* `bitcast<f32>(...)` to
|
|
27
|
-
* keep the WGSL struct as `vec4<u32>` (alignment + naga_oil unchanged).
|
|
28
|
-
*/
|
|
29
|
-
export declare const LIGHTSLOT_LAYOUT: {
|
|
30
|
-
readonly byteSize: 64;
|
|
31
|
-
readonly positionOffset: 0;
|
|
32
|
-
readonly invRangeSquaredOffset: 12;
|
|
33
|
-
readonly colorOffset: 16;
|
|
34
|
-
readonly cosInnerOffset: 28;
|
|
35
|
-
readonly directionOffset: 32;
|
|
36
|
-
readonly cosOuterOffset: 44;
|
|
37
|
-
readonly kindOffset: 48;
|
|
38
|
-
readonly shadowPayloadOffset: 52;
|
|
39
|
-
readonly shadowAtlasLayerOffset: 52;
|
|
40
|
-
readonly shadowAtlasTileOffset: 52;
|
|
41
|
-
readonly shadowNearOffset: 56;
|
|
42
|
-
readonly shadowFarOffset: 60;
|
|
43
|
-
readonly spotPcfKernelSizeOffset: 60;
|
|
44
|
-
readonly floatCount: 16;
|
|
45
|
-
readonly vec4Count: 4;
|
|
46
|
-
};
|
|
2
|
+
import type { PointLightSnapshot, RectAreaDirectLightSnapshot, SpotLightSnapshot } from './render-system-extract';
|
|
47
3
|
/**
|
|
48
4
|
* Minimum storage-buffer count needed by the M3 record stage.
|
|
49
5
|
*
|
|
50
6
|
* 1. Mesh SSBO (entity_world + normalMatrix; per-renderable dynamic
|
|
51
7
|
* offset, 256 B stride).
|
|
52
|
-
* 2.
|
|
53
|
-
* 3.
|
|
8
|
+
* 2. Cluster light_data SSBO.
|
|
9
|
+
* 3. Cluster membership grid SSBO.
|
|
10
|
+
* 4. Cluster light-index-list SSBO.
|
|
54
11
|
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
12
|
+
* Cluster needs four storage-backed resources in the Standard bind group.
|
|
13
|
+
* This is the complete local-light transport.
|
|
57
14
|
*/
|
|
58
15
|
export declare const STORAGE_BUFFER_MIN_REQUIRED = 4;
|
|
59
|
-
/** Byte size of one
|
|
60
|
-
export declare const
|
|
61
|
-
/**
|
|
62
|
-
* Byte size of one SpotLight std430 slot (five 16-byte columns).
|
|
63
|
-
*
|
|
64
|
-
* feat-20260625-spot-light-shadow-mapping M2 / w8 (D-4) grew 48 -> 64 for
|
|
65
|
-
* `shadowAtlasTile`; the visual-parity contract then adds a fifth column for
|
|
66
|
-
* `shadowIntensity` rather than overloading the tile/PCF lanes.
|
|
67
|
-
*/
|
|
68
|
-
export declare const SPOT_LIGHT_STD430_BYTES = 80;
|
|
69
|
-
/** Sentinel value for SpotLight slot[15] meaning "no shadow / clipped". */
|
|
70
|
-
export declare const SPOT_LIGHT_SHADOW_TILE_SENTINEL = -1;
|
|
71
|
-
/** Sentinel for a projector-only SpotLight with no shadow atlas tile. */
|
|
72
|
-
export declare const SPOT_LIGHT_PROJECTOR_ONLY_SENTINEL = -2;
|
|
73
|
-
/** Byte size of the array header (count u32 + 12 B pad to 16 B stride). */
|
|
74
|
-
export declare const LIGHT_ARRAY_HEADER_BYTES = 16;
|
|
75
|
-
/** Maximum number of slots packed in the first-slice cap layout (D-S3). */
|
|
76
|
-
export declare const LIGHT_ARRAY_MAX_SLOTS = 4;
|
|
77
|
-
/** Sentinel value for PointLight slot[7] / LightSlot pad meaning "no shadow". */
|
|
78
|
-
export declare const POINT_LIGHT_SHADOW_LAYER_SENTINEL = -1;
|
|
79
|
-
/**
|
|
80
|
-
* Pack one PointLightSnapshot into 8 floats / 32 B byte-for-byte std430.
|
|
81
|
-
*
|
|
82
|
-
* Returns a fresh `Float32Array` per call; `Float32Array.byteLength === 32`
|
|
83
|
-
* by construction (Float32Array(8).buffer.byteLength === 32). Slot 7
|
|
84
|
-
* (byte 28..32) carries `shadowAtlasLayer: i32` (sentinel -1 = no shadow,
|
|
85
|
-
* 0..3 = cube_array atlas layer index for shadow casters). The lane is
|
|
86
|
-
* written through an Int32Array view of the same backing ArrayBuffer so the
|
|
87
|
-
* shader's `i32` read at byte 28..32 of `struct PointLight` (common.wgsl)
|
|
88
|
-
* sees the correct two's-complement bits (-1 = 0xFFFFFFFF).
|
|
89
|
-
*/
|
|
90
|
-
export declare function packPointLight(snap: PointLightSnapshot): Float32Array;
|
|
91
|
-
/**
|
|
92
|
-
* Pack one SpotLightSnapshot into 20 floats (80 B byte-for-byte std430).
|
|
93
|
-
*
|
|
94
|
-
* cosInner / cosOuter ride the otherwise-padding `.w` lanes of the
|
|
95
|
-
* `color` and `direction` vec4 columns (AC-04 c + plan D-S2 16 B alignment
|
|
96
|
-
* via packing rather than padding rows). Slot 15 carries `shadowAtlasTile: i32`
|
|
97
|
-
* (sentinel -1 = unassigned/clipped, 0..3 = atlas tile) written through an
|
|
98
|
-
* Int32Array view so the shader's `i32` read at byte 60..64 of struct SpotLight
|
|
99
|
-
* (common.wgsl) sees the correct two's-complement bits (-1 = 0xFFFFFFFF).
|
|
100
|
-
* Slots 12..14 carry the shared receiver controls; slot 15 remains the i32
|
|
101
|
-
* shadow tile sentinel; slot 16 carries shadowIntensity and slots 17..19 are
|
|
102
|
-
* alignment tail padding. Surface and volume consumers therefore share one
|
|
103
|
-
* extracted shadow configuration.
|
|
104
|
-
*/
|
|
105
|
-
export declare function packSpotLight(snap: SpotLightSnapshot): Float32Array;
|
|
106
|
-
/**
|
|
107
|
-
* Pack the 16-byte std430 array header (count u32 + 12 B pad) for the
|
|
108
|
-
* point/spot light storage buffers.
|
|
109
|
-
*
|
|
110
|
-
* Returns a fresh `ArrayBuffer` so callers can either re-view it as
|
|
111
|
-
* `Uint8Array` for `queue.writeBuffer` or as `Uint32Array` for in-place
|
|
112
|
-
* inspection.
|
|
113
|
-
*/
|
|
114
|
-
export declare function packLightArrayHeader(count: number): ArrayBuffer;
|
|
16
|
+
/** Byte size of one Point/Spot/Rect DirectLightSlot. */
|
|
17
|
+
export declare const BYTES_PER_DIRECT_LIGHT_SLOT = 80;
|
|
115
18
|
/**
|
|
116
19
|
* Cap gate at createRenderer time: check whether the device has enough
|
|
117
20
|
* storage-buffer slots for the PBR pipeline (M3 requires
|
|
@@ -127,46 +30,61 @@ export declare function packLightArrayHeader(count: number): ArrayBuffer;
|
|
|
127
30
|
*
|
|
128
31
|
* Uniform-fallback path decision (plan D-5): `cap === 0` is the wgpu
|
|
129
32
|
* WebGL2 backend signal (`downlevel_webgl2_defaults().limits.
|
|
130
|
-
* maxStorageBuffersPerShaderStage = 0`).
|
|
131
|
-
*
|
|
132
|
-
* entry in the PBR pipeline switches to `uniform`.
|
|
33
|
+
* maxStorageBuffersPerShaderStage = 0`). It remains a mesh/instance fallback;
|
|
34
|
+
* local-light frames require the single Cluster storage transport.
|
|
133
35
|
*/
|
|
36
|
+
/** Closed direct-light kind carried by the unified five-row slot. */
|
|
37
|
+
export declare const DirectLightSlotKind: {
|
|
38
|
+
readonly POINT: 0;
|
|
39
|
+
readonly SPOT: 1;
|
|
40
|
+
readonly RECT_AREA: 2;
|
|
41
|
+
};
|
|
42
|
+
export type DirectLightSlotKind = 'point' | 'spot' | 'rect-area';
|
|
43
|
+
/** Metadata identity used for absent shadow, IES, and Cookie resources. */
|
|
44
|
+
export declare const DIRECT_LIGHT_SLOT_METADATA_SENTINEL = 4294967295;
|
|
134
45
|
/**
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
*
|
|
138
|
-
* and stay on the unshadowed `evalPoint` path.
|
|
139
|
-
*
|
|
140
|
-
* `near` / `far` ride the otherwise-pad lanes (`kind_and_pad.zw` in the WGSL
|
|
141
|
-
* struct, byte 56..64) and feed the depth-ref reconstruction in
|
|
142
|
-
* `evalPointShadowed`. Spot lights (and shadow-less point lights) leave these
|
|
143
|
-
* lanes zero per std430 init.
|
|
46
|
+
* SpotLight projector marker carried in the shared shadow identity word. The
|
|
47
|
+
* lower 30 bits retain the selected shadow tile; projector-only spots use tile
|
|
48
|
+
* zero because their matrix is deliberately published in View lane zero.
|
|
144
49
|
*/
|
|
145
|
-
export
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
50
|
+
export declare const DIRECT_LIGHT_SLOT_PROJECTOR_FLAG = 1073741824;
|
|
51
|
+
export declare const DIRECT_LIGHT_SLOT_TILE_MASK: number;
|
|
52
|
+
/** Byte size of the five-row Point/Spot/Rect transport slot. */
|
|
53
|
+
export declare const DIRECT_LIGHT_SLOT_FLOAT_COUNT: number;
|
|
54
|
+
/** Five vec4 rows shared by host packing and the WGSL direct-light consumer. */
|
|
55
|
+
export declare const DIRECT_LIGHT_SLOT_LAYOUT: {
|
|
56
|
+
readonly byteSize: 80;
|
|
57
|
+
readonly rowByteOffsets: readonly [0, 16, 32, 48, 64];
|
|
58
|
+
readonly positionOffset: 0;
|
|
59
|
+
readonly rangeOffset: 12;
|
|
60
|
+
readonly colorOffset: 16;
|
|
61
|
+
readonly firstAngleOffset: 28;
|
|
62
|
+
readonly primaryAxisOffset: 32;
|
|
63
|
+
readonly secondAngleOffset: 44;
|
|
64
|
+
readonly auxiliaryAxisOffset: 48;
|
|
65
|
+
readonly metadataByteOffset: 64;
|
|
66
|
+
readonly kindByteOffset: 64;
|
|
67
|
+
readonly shadowByteOffset: 68;
|
|
68
|
+
readonly iesProfileByteOffset: 72;
|
|
69
|
+
readonly cookieByteOffset: 76;
|
|
70
|
+
/** Spot-only roll angle stored in the fourth row's w lane. */
|
|
71
|
+
readonly rollDegByteOffset: 60;
|
|
72
|
+
readonly floatCount: number;
|
|
73
|
+
readonly vec4Count: 5;
|
|
74
|
+
};
|
|
75
|
+
type DirectLightModifierMetadata = {
|
|
76
|
+
readonly iesProfileSlice?: number;
|
|
77
|
+
readonly cookieSlice?: number;
|
|
78
|
+
};
|
|
79
|
+
export type DirectLightSnapshot = (PointLightSnapshot & DirectLightModifierMetadata) | (SpotLightSnapshot & DirectLightModifierMetadata) | (RectAreaDirectLightSnapshot & DirectLightModifierMetadata);
|
|
150
80
|
/**
|
|
151
|
-
* Pack one
|
|
152
|
-
* (16 floats, std430). Point lights fill `cosInner=1.0`, `direction=vec3(0)`,
|
|
153
|
-
* `cosOuter=0.0`, `kind=POINT(0)`. Spot lights fill all fields verbatim;
|
|
154
|
-
* `direction` is already normalized by extract and this owner never repeats
|
|
155
|
-
* that operation.
|
|
156
|
-
*
|
|
157
|
-
* feat-20260612-point-light-shadows-urp-hdrp M4 / T-M4-4 (plan-strategy §D-8):
|
|
158
|
-
* the optional point `shadow` info threads through to bytes 52..64 as
|
|
159
|
-
* `(shadowAtlasLayer i32, near f32, far f32)`. Spot snapshots write their
|
|
160
|
-
* `shadowAtlasTile` directly into the same identity lane, put shadowIntensity
|
|
161
|
-
* in the `.z` lane, and the PCF kernel width in `.w`. The shader reads `near`/`far`
|
|
162
|
-
* through `bitcast<f32>(kind_and_pad.zw)` so the WGSL struct stays
|
|
163
|
-
* `kind_and_pad: vec4<u32>` (alignment + naga_oil compose unchanged). When
|
|
164
|
-
* `shadow` is undefined (no PointLightShadow) the lanes default to
|
|
165
|
-
* `(layer = -1, 0, 0)` -- shader gates on `layer >= 0` so unshadowed lights
|
|
166
|
-
* stay on the `evaluate_point_light` path. Spot lights write their tile or -1.
|
|
81
|
+
* Pack one Point, Spot, or Rect snapshot into the unified five-row slot.
|
|
167
82
|
*
|
|
168
|
-
*
|
|
83
|
+
* Row 0 is position plus inverse range. Row 1 is color plus the first
|
|
84
|
+
* angular/size fact. Row 2 is the primary axis plus the second angular/size
|
|
85
|
+
* fact. Row 3 is the auxiliary Rect axis. Row 4 is four u32 identities.
|
|
169
86
|
*/
|
|
170
|
-
export declare function
|
|
87
|
+
export declare function packDirectLightSlot(snapshot: DirectLightSnapshot, projectorSelected?: boolean): Float32Array;
|
|
171
88
|
export declare function assertStorageBufferCap(cap: number): Result<boolean, RhiError>;
|
|
89
|
+
export {};
|
|
172
90
|
//# sourceMappingURL=light-buffer-layout.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"light-buffer-layout.d.ts","sourceRoot":"","sources":["../src/light-buffer-layout.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"light-buffer-layout.d.ts","sourceRoot":"","sources":["../src/light-buffer-layout.ts"],"names":[],"mappings":"AAMA,OAAO,EAAW,KAAK,MAAM,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EACV,kBAAkB,EAClB,2BAA2B,EAC3B,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AAqBjC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C,wDAAwD;AACxD,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C;;;;;;;;;;;;;;;;;GAiBG;AACH,qEAAqE;AACrE,eAAO,MAAM,mBAAmB;;;;CAItB,CAAC;AACX,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,MAAM,GAAG,WAAW,CAAC;AAEjE,2EAA2E;AAC3E,eAAO,MAAM,mCAAmC,aAAa,CAAC;AAC9D;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,aAAa,CAAC;AAC3D,eAAO,MAAM,2BAA2B,QAAuC,CAAC;AAChF,gEAAgE;AAChE,eAAO,MAAM,6BAA6B,QACoB,CAAC;AAE/D,gFAAgF;AAChF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;IAenC,8DAA8D;;;;CAItD,CAAC;AAEX,KAAK,2BAA2B,GAAG;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAC3B,CAAC,kBAAkB,GAAG,2BAA2B,CAAC,GAClD,CAAC,iBAAiB,GAAG,2BAA2B,CAAC,GACjD,CAAC,2BAA2B,GAAG,2BAA2B,CAAC,CAAC;AAMhE;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,mBAAmB,EAC7B,iBAAiB,CAAC,EAAE,OAAO,GAC1B,YAAY,CAqEd;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAkB7E"}
|
package/dist/materials.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"materials.d.ts","sourceRoot":"","sources":["../src/materials.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EAGlB,mBAAmB,EACnB,aAAa,EACd,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,oCAAoC,GAC5C,YAAY,GACZ,OAAO,GACP,OAAO,GACP,OAAO,GACP,aAAa,CAAC;AAElB,2EAA2E;AAC3E,qBAAa,iCAAkC,SAAQ,KAAK;IAC1D,QAAQ,CAAC,IAAI,EAAG,wCAAwC,CAAU;IAClE,QAAQ,CAAC,QAAQ,gFAAgF;IACjG,QAAQ,CAAC,IAAI,sFACwE;IACrF,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,IAAI,EAAE,wCAAwC,CAAC;QACxD,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;QAC9B,QAAQ,CAAC,SAAS,EACd,cAAc,GACd,KAAK,GACL,WAAW,GACX,kBAAkB,GAClB,qBAAqB,CAAC;QAC1B,QAAQ,CAAC,MAAM,EAAE,oCAAoC,CAAC;QACtD,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;KAC3B,CAAC;gBAGA,SAAS,EAAE,CAAC,OAAO,iCAAiC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,EACnF,MAAM,EAAE,oCAAoC,EAC5C,MAAM,CAAC,EAAE,OAAO;CAYnB;AAED,eAAO,MAAM,gCAAgC,EAAE,aAG9C,CAAC;AAIF,QAAA,MAAM,aAAa,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"materials.d.ts","sourceRoot":"","sources":["../src/materials.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,13 +11,67 @@ export interface ResolvedMeshMaterialBinding {
|
|
|
11
11
|
readonly handle: number;
|
|
12
12
|
readonly source: MeshMaterialBindingSource;
|
|
13
13
|
}
|
|
14
|
+
/** Lifecycle values projected from an already prepared resident binding. */
|
|
15
|
+
export type MeshMaterialBindingReadiness = 'ready' | 'pending' | 'failed' | 'last-known-good';
|
|
16
|
+
/** Structured producer failure retained by the renderer's bounded projection. */
|
|
17
|
+
export interface MeshMaterialBindingPreparationFailure {
|
|
18
|
+
readonly code: string;
|
|
19
|
+
readonly expected: string;
|
|
20
|
+
readonly hint: string;
|
|
21
|
+
readonly detail?: Readonly<Record<string, unknown>>;
|
|
22
|
+
}
|
|
23
|
+
export interface MeshMaterialBindingSamplerObservation {
|
|
24
|
+
readonly handle: number;
|
|
25
|
+
readonly resident: boolean;
|
|
26
|
+
}
|
|
27
|
+
export interface MeshMaterialBindingTextureObservation {
|
|
28
|
+
readonly handle: number;
|
|
29
|
+
readonly mipLevelCount: number;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* One material-slot's bounded resident projection. The renderer reports only
|
|
33
|
+
* resources it actually resolved for the slot; Pack/AssetRegistry lifecycle
|
|
34
|
+
* records stay owned by the producer and are never copied here.
|
|
35
|
+
*/
|
|
36
|
+
export interface MeshMaterialBindingResidency {
|
|
37
|
+
readonly readiness: MeshMaterialBindingReadiness;
|
|
38
|
+
readonly samplers: readonly MeshMaterialBindingSamplerObservation[];
|
|
39
|
+
readonly textures: readonly MeshMaterialBindingTextureObservation[];
|
|
40
|
+
readonly preparationFailure?: MeshMaterialBindingPreparationFailure;
|
|
41
|
+
}
|
|
14
42
|
/** Public read-only observation of the bindings used by the last frame. */
|
|
15
43
|
export interface MeshMaterialBindingObservation {
|
|
16
44
|
readonly worldId: number;
|
|
17
45
|
readonly entityKey: number;
|
|
18
46
|
readonly bindings: readonly ResolvedMeshMaterialBinding[];
|
|
19
47
|
readonly diagnostics: readonly MeshMaterialBindingDiagnostic[];
|
|
48
|
+
/** One resident projection per resolved material slot. */
|
|
49
|
+
readonly residency: readonly MeshMaterialBindingResidency[];
|
|
20
50
|
}
|
|
51
|
+
export interface MeshMaterialBindingSummary {
|
|
52
|
+
readonly total: number;
|
|
53
|
+
readonly ready: number;
|
|
54
|
+
readonly pending: number;
|
|
55
|
+
readonly failed: number;
|
|
56
|
+
readonly lastKnownGood: number;
|
|
57
|
+
readonly textureCount: number;
|
|
58
|
+
readonly samplerCount: number;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Build the sole renderer observation projection from the resident seam.
|
|
62
|
+
* Missing facts remain `pending`; they are never guessed from a URL, asset
|
|
63
|
+
* name, or authoring field. Slot cardinality is normalized so aggregation is
|
|
64
|
+
* deterministic even while a preparation candidate is incomplete.
|
|
65
|
+
*/
|
|
66
|
+
export declare function projectMeshMaterialBindingObservation(input: {
|
|
67
|
+
readonly worldId: number;
|
|
68
|
+
readonly entityKey: number;
|
|
69
|
+
readonly bindings: readonly ResolvedMeshMaterialBinding[];
|
|
70
|
+
readonly diagnostics: readonly MeshMaterialBindingDiagnostic[];
|
|
71
|
+
readonly residency?: readonly MeshMaterialBindingResidency[];
|
|
72
|
+
}): MeshMaterialBindingObservation;
|
|
73
|
+
/** Recompute bounded readiness/resource counts from retained observations. */
|
|
74
|
+
export declare function summarizeMeshMaterialBindings(observations: readonly MeshMaterialBindingObservation[]): MeshMaterialBindingSummary;
|
|
21
75
|
export type ResolveMeshMaterialBindingsResult = {
|
|
22
76
|
readonly ok: true;
|
|
23
77
|
readonly bindings: readonly ResolvedMeshMaterialBinding[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mesh-material-bindings.d.ts","sourceRoot":"","sources":["../src/mesh-material-bindings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEpF,MAAM,MAAM,yBAAyB,GAAG,mBAAmB,GAAG,cAAc,GAAG,gBAAgB,CAAC;AAEhG,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,IAAI,EACT,yCAAyC,GACzC,0CAA0C,CAAC;IAC/C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,yEAAyE;IACzE,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,yBAAyB,CAAC;CAC5C;AAED,2EAA2E;AAC3E,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,2BAA2B,EAAE,CAAC;IAC1D,QAAQ,CAAC,WAAW,EAAE,SAAS,6BAA6B,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"mesh-material-bindings.d.ts","sourceRoot":"","sources":["../src/mesh-material-bindings.ts"],"names":[],"mappings":"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"}
|
package/dist/pbr-pipeline.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BindGroup, BindGroupEntry, BindGroupLayout,
|
|
1
|
+
import type { BindGroup, BindGroupEntry, BindGroupLayout, Buffer, PipelineLayout, RhiDevice, Sampler, TextureFormat, TextureView } from '@forgeax/engine-rhi';
|
|
2
2
|
import { type ShaderCatalog } from '@forgeax/engine-shader';
|
|
3
3
|
import { type ParamSchemaEntry } from '@forgeax/engine-types';
|
|
4
4
|
import type { PipelineSpec } from './pipeline-spec-types';
|
|
@@ -18,6 +18,10 @@ export interface PbrPipelineLayoutBundle {
|
|
|
18
18
|
readonly meshArrayBgl: BindGroupLayout;
|
|
19
19
|
/** Per-instance storage BindGroupLayout (slot 3). */
|
|
20
20
|
readonly instancesBgl: BindGroupLayout;
|
|
21
|
+
/** Probe-enabled slot-3 BGL; aliases `instancesBgl` when probes are unavailable. */
|
|
22
|
+
readonly probeInstancesBgl: BindGroupLayout;
|
|
23
|
+
/** Same pipeline layout with the probe-enabled slot-3 BGL, when supported. */
|
|
24
|
+
readonly probePipelineLayout: PipelineLayout | null;
|
|
21
25
|
/**
|
|
22
26
|
* Same 4 layouts in slot order. Useful for assertion sites that check the
|
|
23
27
|
* pipeline-layout `bindGroupLayouts` array shape (t57 (a) + (d)).
|
|
@@ -29,6 +33,8 @@ export interface PbrPipelineLayoutBundle {
|
|
|
29
33
|
BindGroupLayout
|
|
30
34
|
];
|
|
31
35
|
}
|
|
36
|
+
/** Derives the Standard PBR attachment list without allocating a closed path. */
|
|
37
|
+
export declare function standardPbrColorFormats(baseFormat: TextureFormat, fallbackDemand: boolean): readonly TextureFormat[];
|
|
32
38
|
/**
|
|
33
39
|
* The built-in standard-PBR material paramSchema's texture/user-region shape,
|
|
34
40
|
* used as the fallback when the material BGL is built without a registry
|
|
@@ -94,13 +100,20 @@ export declare const INJECTION_KIND_LENGTHS: {
|
|
|
94
100
|
*/
|
|
95
101
|
export interface PbrCaps {
|
|
96
102
|
readonly storageBuffer: boolean;
|
|
103
|
+
/**
|
|
104
|
+
* Whether the selected material variant declares the optional extended
|
|
105
|
+
* lighting view resources. The default keeps the historical helper shape
|
|
106
|
+
* for callers that build the canonical full PBR layout; the renderer passes
|
|
107
|
+
* the device/variant decision explicitly.
|
|
108
|
+
*/
|
|
109
|
+
readonly extendedLighting?: boolean;
|
|
110
|
+
/** Selects the optional binding(1) ProbeBlendRecord lane. */
|
|
111
|
+
readonly probeBlend?: boolean;
|
|
97
112
|
/** Whether the device can carry the optional SpotLight projector texture. */
|
|
98
113
|
readonly projectorAvailable?: boolean;
|
|
99
114
|
}
|
|
100
115
|
/**
|
|
101
116
|
* The view BGL entry list. binding 0 = view UBO (vertex + fragment);
|
|
102
|
-
* binding 1 = pointLights (storage or uniform, per caps);
|
|
103
|
-
* binding 2 = spotLights (storage or uniform, per caps);
|
|
104
117
|
* binding 3 = directional shadowMap atlas (texture_depth_2d, vertex+fragment).
|
|
105
118
|
* feat-20260613-csm-cascaded-shadow-maps: this is the CSM atlas — N
|
|
106
119
|
* cascades tiled into one 2D depth texture, sampled via per-cascade UV
|
|
@@ -140,9 +153,9 @@ export interface PbrCaps {
|
|
|
140
153
|
* layout and consumed only by the dedicated points-lines shader).
|
|
141
154
|
* Isolated here so M4 round-4 tests can recreate the layout.
|
|
142
155
|
*
|
|
143
|
-
*
|
|
144
|
-
*
|
|
145
|
-
*
|
|
156
|
+
* Local lights are not part of the view group. Standard material variants
|
|
157
|
+
* consume the one Cluster payload in group(2), while this group retains only
|
|
158
|
+
* camera and shadow resources.
|
|
146
159
|
*/
|
|
147
160
|
export declare function buildPbrViewBglEntries(caps: PbrCaps): GPUBindGroupLayoutEntry[];
|
|
148
161
|
/**
|
|
@@ -150,8 +163,8 @@ export declare function buildPbrViewBglEntries(caps: PbrCaps): GPUBindGroupLayou
|
|
|
150
163
|
* material, mesh-array, instances]`; the material BGL is derived from the
|
|
151
164
|
* standard material schema and engine injection chain.
|
|
152
165
|
*
|
|
153
|
-
* `caps.storageBuffer===false` switches
|
|
154
|
-
*
|
|
166
|
+
* `caps.storageBuffer===false` switches the mesh-array and instances entries
|
|
167
|
+
* to `uniform`; local-light resources are never part of this view group.
|
|
155
168
|
*
|
|
156
169
|
* Throws on each `createBindGroupLayout` / `createPipelineLayout` Result
|
|
157
170
|
* failure -- the engine bootstrap path (createRenderer) wraps the call in
|
|
@@ -171,19 +184,27 @@ export declare const SKIN_MATERIAL_SHADER_ID: "forgeax::pbr-skin";
|
|
|
171
184
|
export declare const SHADOW_CASTER_SHADER_ID: "forgeax::default-shadow-caster";
|
|
172
185
|
export declare function shadowCasterVariantSet(storageBuffer: boolean, skinned: boolean): string;
|
|
173
186
|
export declare function isSkinnedShadowCasterVariant(materialShaderId: string | undefined, variantSet: string | undefined): boolean;
|
|
187
|
+
export type PipelineGroup2Contract = 'mesh' | 'skin' | 'cluster' | 'skin-cluster';
|
|
188
|
+
/** Resolve group(2) from the composed WGSL artifact used to build the PSO. */
|
|
189
|
+
export declare function resolvePipelineGroup2Contract(source: string): PipelineGroup2Contract;
|
|
174
190
|
/** Returns true for the engine-shipped standard-PBR material shader family. */
|
|
175
191
|
export declare function isStandardPbrMaterialShader(shaderId: string | undefined): boolean;
|
|
176
192
|
/**
|
|
177
193
|
* Build the PBR skin pipeline layout (4 slots `[view, material,
|
|
178
|
-
* mesh-array(
|
|
194
|
+
* mesh-array(3-entry), instances]`). View / material / instances BGLs are
|
|
179
195
|
* shared with the standard-PBR layout (passed in via `pbr` bundle); the only
|
|
180
|
-
* new BGL is the
|
|
196
|
+
* new BGL is the 3-entry mesh-array slot for `meshes` + current/previous
|
|
197
|
+
* `palette` buffers.
|
|
181
198
|
*
|
|
182
199
|
* Throws on each `createBindGroupLayout` / `createPipelineLayout` Result
|
|
183
200
|
* failure -- the engine bootstrap path wraps the call in `runShimSyncStep`
|
|
184
201
|
* to fold the throw into the structured error pipe.
|
|
185
202
|
*/
|
|
186
203
|
export declare function buildPbrSkinLayouts(device: PbrPipelineDevice, caps: PbrCaps, pbr: PbrPipelineLayoutBundle): PbrPipelineLayoutBundle;
|
|
204
|
+
/** Project the canonical group(2) resources for a PBR skin draw. */
|
|
205
|
+
export declare function createPbrSkinMeshBindGroupEntries(meshBuffer: Buffer, meshSize: number, paletteBuffer: Buffer, paletteWindowBytes: number): BindGroupEntry[];
|
|
206
|
+
/** Project all dynamic offsets for the canonical PBR skin group(2) shape. */
|
|
207
|
+
export declare function pbrSkinMeshDynamicOffsets(meshOffset: number, paletteOffset: number): readonly [number, number, number];
|
|
187
208
|
/**
|
|
188
209
|
* Build a stand-alone 7-entry unlit material BGL. Round-4 D-5 keeps unlit
|
|
189
210
|
* material BG isolated from Skylight binding 7..13 -- unlit demos do not
|
|
@@ -253,13 +274,14 @@ export declare const SPRITE_PASS_PER_INSTANCE_REGION_VARIANT_SET = "";
|
|
|
253
274
|
* - `'unlit-material'` — 7 entries: base PBR material only (no inject)
|
|
254
275
|
* - `'hdrp-7-slot'` — 7 entries (binding 0 + 3..8): HDRP cluster + SSAO group(2) BGL
|
|
255
276
|
* 2. Caps-driven literal shapes (no shader):
|
|
256
|
-
* - `'pbr-view'` —
|
|
257
|
-
*
|
|
277
|
+
* - `'pbr-view'` — camera/shadow bindings, optional projector
|
|
278
|
+
* texture/sampler (11/12), and the Points/Lines UBO (10). Local lights
|
|
279
|
+
* are carried exclusively by the Standard Cluster group(2).
|
|
258
280
|
* (directional 3/4, point 5/6, cascade 7, spot atlas 8; the former
|
|
259
281
|
* spot lightViewProj matrices moved into the View UBO)
|
|
260
282
|
* - `'pbr-mesh-array'` — 1 entry: per-entity mesh SSBO (dynamic-offset)
|
|
261
283
|
* - `'pbr-instances'` — 1 entry: per-instance SSBO (no dynamic-offset)
|
|
262
|
-
* - `'pbr-skin-mesh-array'` —
|
|
284
|
+
* - `'pbr-skin-mesh-array'` — 3 entries: meshes + current/previous palette
|
|
263
285
|
* 3. Attachment-driven (fullscreen post-process):
|
|
264
286
|
* - `'fullscreen-post'` — 2 entries: input texture + sampler. The texture
|
|
265
287
|
* `sampleType` is derived from `spec.attachments` (plan §R3 fix):
|
|
@@ -289,7 +311,9 @@ export interface BindGroupLayoutDescriptorOutput {
|
|
|
289
311
|
readonly entries: GPUBindGroupLayoutEntry[];
|
|
290
312
|
}
|
|
291
313
|
/** Build the canonical HDRP group(2) bind-group layout. */
|
|
292
|
-
export declare function createHdrpBindGroupLayoutDescriptor(
|
|
314
|
+
export declare function createHdrpBindGroupLayoutDescriptor(): BindGroupLayoutDescriptorOutput;
|
|
315
|
+
/** Build the HDRP group(2) layout for the clustered skin variant. */
|
|
316
|
+
export declare function createHdrpSkinBindGroupLayoutDescriptor(): BindGroupLayoutDescriptorOutput;
|
|
293
317
|
export declare function buildBindGroupLayoutDescriptor(spec: PipelineSpec, options: {
|
|
294
318
|
kind: BglKind;
|
|
295
319
|
registry?: ShaderCatalog;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pbr-pipeline.d.ts","sourceRoot":"","sources":["../src/pbr-pipeline.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,eAAe,EACf,
|
|
1
|
+
{"version":3,"file":"pbr-pipeline.d.ts","sourceRoot":"","sources":["../src/pbr-pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { RenderPipeline, RenderPipelineBuildContext, RenderPipelineFrame, RenderPipelineTopology } from '../render-pipeline';
|
|
2
|
-
|
|
2
|
+
import type { StandardTopologyInputValue } from './standard-lighting/topology';
|
|
3
|
+
declare function buildUrp(context: RenderPipelineBuildContext<RenderPipelineFrame>, topology: RenderPipelineTopology, lighting: StandardTopologyInputValue): ReturnType<RenderPipeline['build']>;
|
|
3
4
|
export declare const buildStandardForwardLane: typeof buildUrp;
|
|
4
5
|
export {};
|
|
5
6
|
//# sourceMappingURL=standard-forward-lane.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standard-forward-lane.d.ts","sourceRoot":"","sources":["../../src/pipeline/standard-forward-lane.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"standard-forward-lane.d.ts","sourceRoot":"","sources":["../../src/pipeline/standard-forward-lane.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,cAAc,EACd,0BAA0B,EAC1B,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AA+B5B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAW/E,iBAAS,QAAQ,CACf,OAAO,EAAE,0BAA0B,CAAC,mBAAmB,CAAC,EACxD,QAAQ,EAAE,sBAAsB,EAChC,QAAQ,EAAE,0BAA0B,GACnC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CA6TrC;AAED,eAAO,MAAM,wBAAwB,iBAAW,CAAC"}
|