@forgeax/engine-render 0.1.29 → 0.1.31
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 +248 -21
- package/dist/assembly/atmosphere-shader-prewarm.d.ts +1 -1
- package/dist/assembly/atmosphere-shader-prewarm.d.ts.map +1 -1
- package/dist/assembly/device-feature-admission.d.ts +4 -3
- package/dist/assembly/device-feature-admission.d.ts.map +1 -1
- package/dist/assembly/dynamic-geometry-host.d.ts +6 -0
- package/dist/assembly/dynamic-geometry-host.d.ts.map +1 -1
- package/dist/assembly/host-contract.d.ts +6 -0
- package/dist/assembly/host-contract.d.ts.map +1 -1
- package/dist/assembly/material/assembly.d.ts +26 -3
- package/dist/assembly/material/assembly.d.ts.map +1 -1
- package/dist/assembly/material/pipeline-helpers.d.ts +24 -0
- package/dist/assembly/material/pipeline-helpers.d.ts.map +1 -0
- package/dist/assembly/material-shader-policy.d.ts.map +1 -1
- package/dist/assembly/recovery/device-loss-fanout.d.ts.map +1 -1
- package/dist/assembly/recovery/recovery-attempt.d.ts +1 -6
- package/dist/assembly/recovery/recovery-attempt.d.ts.map +1 -1
- package/dist/assembly/recovery/renderer-recover.d.ts +1 -0
- package/dist/assembly/recovery/renderer-recover.d.ts.map +1 -1
- package/dist/assembly/renderer-facade.d.ts.map +1 -1
- package/dist/assembly/shader-prewarm-policy.d.ts +1 -1
- package/dist/assembly/shader-prewarm-policy.d.ts.map +1 -1
- package/dist/assembly/webgpu-ready.d.ts +1 -1
- package/dist/assembly/webgpu-ready.d.ts.map +1 -1
- package/dist/assembly/webgpu-renderer.d.ts.map +1 -1
- package/dist/capture/scene-projection.d.ts +41 -0
- package/dist/capture/scene-projection.d.ts.map +1 -0
- package/dist/{chunk-BQVQOQJH.mjs → chunk-7MQ3XBSP.mjs} +20 -14
- package/dist/chunk-7MQ3XBSP.mjs.map +1 -0
- package/dist/{chunk-S4DNKQYQ.mjs → chunk-C3DDSXYK.mjs} +86 -33
- package/dist/chunk-C3DDSXYK.mjs.map +1 -0
- package/dist/{chunk-BTWH7BP4.mjs → chunk-FUUO4UND.mjs} +73 -29
- package/dist/chunk-FUUO4UND.mjs.map +1 -0
- package/dist/{chunk-NRNXBLIJ.mjs → chunk-JRBDO2KB.mjs} +46 -6
- package/dist/chunk-JRBDO2KB.mjs.map +1 -0
- package/dist/{chunk-NICXSHAT.mjs → chunk-MDQJPY3T.mjs} +8 -6
- package/dist/chunk-MDQJPY3T.mjs.map +1 -0
- package/dist/{chunk-JQTSEI3Z.mjs → chunk-NO4WZCAH.mjs} +3 -3
- package/dist/chunk-NO4WZCAH.mjs.map +1 -0
- package/dist/{chunk-FUODTTIA.mjs → chunk-PSEQ6QPH.mjs} +621 -108
- package/dist/chunk-PSEQ6QPH.mjs.map +1 -0
- package/dist/{chunk-33XZFTQU.mjs → chunk-S5UE2T5P.mjs} +48 -6
- package/dist/chunk-S5UE2T5P.mjs.map +1 -0
- package/dist/components/directional-light.d.ts +2 -2
- package/dist/components/dynamic-resolution.d.ts +15 -0
- package/dist/components/dynamic-resolution.d.ts.map +1 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/light-helpers.d.ts.map +1 -1
- package/dist/components/reflection-probe.d.ts +1 -0
- package/dist/components/reflection-probe.d.ts.map +1 -1
- package/dist/components/skylight.d.ts +4 -1
- package/dist/components/skylight.d.ts.map +1 -1
- package/dist/construct-renderer.mjs +2172 -796
- package/dist/construct-renderer.mjs.map +1 -1
- package/dist/device/device-scope.d.ts +2 -0
- package/dist/device/device-scope.d.ts.map +1 -1
- package/dist/device/gpu-residency.d.ts +2 -2
- package/dist/device/gpu-residency.d.ts.map +1 -1
- package/dist/dynamic-geometry.d.ts.map +1 -1
- package/dist/environment/background.d.ts +3 -2
- package/dist/environment/background.d.ts.map +1 -1
- package/dist/environment/ibl.d.ts +11 -0
- package/dist/environment/ibl.d.ts.map +1 -0
- package/dist/environment/storage.d.ts +14 -0
- package/dist/environment/storage.d.ts.map +1 -0
- package/dist/errors/gpu-driven.d.ts +2 -2
- package/dist/errors/gpu-driven.d.ts.map +1 -1
- package/dist/errors/render.d.ts +35 -1
- package/dist/errors/render.d.ts.map +1 -1
- package/dist/extract/camera.d.ts.map +1 -1
- package/dist/extract/contracts.d.ts +7 -0
- package/dist/extract/contracts.d.ts.map +1 -1
- package/dist/extract/gpu-driven.d.ts +18 -1
- package/dist/extract/gpu-driven.d.ts.map +1 -1
- package/dist/gpu-driven/batch-topology.d.ts.map +1 -1
- package/dist/gpu-driven/material-artifacts.d.ts +24 -0
- package/dist/gpu-driven/material-artifacts.d.ts.map +1 -0
- package/dist/gpu-driven/material-bindings.d.ts +7 -0
- package/dist/gpu-driven/material-bindings.d.ts.map +1 -0
- package/dist/gpu-driven/prepared-draw.d.ts +2 -0
- package/dist/gpu-driven/prepared-draw.d.ts.map +1 -1
- package/dist/gpu-driven/production-raster.d.ts +27 -6
- package/dist/gpu-driven/production-raster.d.ts.map +1 -1
- package/dist/gpu-resource.d.ts +5 -2
- package/dist/gpu-resource.d.ts.map +1 -1
- package/dist/gpu-scene-schema.d.ts.map +1 -1
- package/dist/gpu-scene.d.ts.map +1 -1
- package/dist/hdrp-buffers.d.ts +3 -0
- package/dist/hdrp-buffers.d.ts.map +1 -1
- package/dist/ibl/IblPipelineCache.d.ts +2 -0
- package/dist/ibl/IblPipelineCache.d.ts.map +1 -1
- package/dist/ibl/skylight-bind-group.d.ts +3 -1
- package/dist/ibl/skylight-bind-group.d.ts.map +1 -1
- package/dist/index.d.ts +83 -81
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +7 -5
- package/dist/index.mjs.map +1 -1
- package/dist/inspection-types.d.ts +16 -1
- package/dist/inspection-types.d.ts.map +1 -1
- package/dist/internal.mjs +6 -6
- package/dist/material-row.d.ts +10 -0
- package/dist/material-row.d.ts.map +1 -1
- package/dist/pbr-pipeline.d.ts +3 -1
- package/dist/pbr-pipeline.d.ts.map +1 -1
- package/dist/pipeline/render-extent.d.ts +51 -0
- package/dist/pipeline/render-extent.d.ts.map +1 -0
- package/dist/pipeline/standard-build-context.d.ts +7 -0
- package/dist/pipeline/standard-build-context.d.ts.map +1 -0
- package/dist/pipeline/standard-forward-lane.d.ts +3 -2
- package/dist/pipeline/standard-forward-lane.d.ts.map +1 -1
- package/dist/pipeline/standard-pipeline.d.ts.map +1 -1
- package/dist/pipeline/standard-post.d.ts +1 -1
- package/dist/pipeline/standard-post.d.ts.map +1 -1
- package/dist/pipeline/standard-profile.d.ts +2 -1
- package/dist/pipeline/standard-profile.d.ts.map +1 -1
- package/dist/pipeline-builder.d.ts +3 -1
- package/dist/pipeline-builder.d.ts.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/post-process-errors.d.ts +9 -2
- package/dist/post-process-errors.d.ts.map +1 -1
- package/dist/prepare/extended-lighting/resources.d.ts +3 -3
- package/dist/record/frame-lighting.d.ts.map +1 -1
- package/dist/record/frame-snapshot.d.ts +3 -8
- package/dist/record/frame-snapshot.d.ts.map +1 -1
- package/dist/record/frame.d.ts +3 -2
- package/dist/record/frame.d.ts.map +1 -1
- package/dist/record/main-pass-geometry.d.ts +7 -2
- package/dist/record/main-pass-geometry.d.ts.map +1 -1
- package/dist/record/main-pass-material.d.ts +6 -3
- package/dist/record/main-pass-material.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/prepared-material-bindings.d.ts.map +1 -1
- package/dist/record/recovery-pipeline.d.ts +9 -1
- package/dist/record/recovery-pipeline.d.ts.map +1 -1
- package/dist/record/render-context.d.ts +34 -3
- package/dist/record/render-context.d.ts.map +1 -1
- package/dist/record/shadow-pass.d.ts +2 -2
- package/dist/record/shadow-pass.d.ts.map +1 -1
- package/dist/record/typed-frame-graph.d.ts +5 -2
- package/dist/record/typed-frame-graph.d.ts.map +1 -1
- package/dist/recovery/render-system-candidate.d.ts.map +1 -1
- package/dist/reflection/background.d.ts +14 -0
- package/dist/reflection/background.d.ts.map +1 -0
- package/dist/reflection/filter.d.ts.map +1 -1
- package/dist/reflection/projection.d.ts +1 -0
- package/dist/reflection/projection.d.ts.map +1 -1
- package/dist/reflection/record-owner.d.ts +4 -2
- package/dist/reflection/record-owner.d.ts.map +1 -1
- package/dist/render-contract.d.ts +47 -32
- 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 +17 -1
- package/dist/render-pipeline.d.ts.map +1 -1
- package/dist/render-system-extract-tail.d.ts +9 -2
- package/dist/render-system-extract-tail.d.ts.map +1 -1
- package/dist/render-system-extract.d.ts +29 -2
- package/dist/render-system-extract.d.ts.map +1 -1
- package/dist/render-system.d.ts.map +1 -1
- package/dist/scene/render-scene.d.ts +2 -0
- package/dist/scene/render-scene.d.ts.map +1 -1
- package/dist/ssao-config.d.ts +8 -6
- package/dist/ssao-config.d.ts.map +1 -1
- package/dist/ssr/graph.d.ts.map +1 -1
- package/dist/temporal/gpu.d.ts.map +1 -1
- package/dist/temporal/index.mjs +5 -5
- package/dist/temporal/standard-scene-data.d.ts +2 -1
- package/dist/temporal/standard-scene-data.d.ts.map +1 -1
- package/dist/temporal/target-coverage-attachment.d.ts +15 -0
- package/dist/temporal/target-coverage-attachment.d.ts.map +1 -0
- package/dist/temporal/temporal-view.d.ts +6 -2
- package/dist/temporal/temporal-view.d.ts.map +1 -1
- package/dist/temporal/view.d.ts +6 -0
- package/dist/temporal/view.d.ts.map +1 -1
- package/dist/typed-render-graph-primitives.d.ts +6 -0
- package/dist/typed-render-graph-primitives.d.ts.map +1 -1
- package/dist/volume/component.d.ts +1 -0
- package/dist/volume/component.d.ts.map +1 -1
- package/package.json +21 -21
- package/src/__tests__/capture-scene-projection.unit.test.ts +24 -0
- package/src/__tests__/device-feature-admission.unit.test.ts +15 -24
- package/src/__tests__/device-loss-fanout.unit.test.ts +43 -0
- package/src/__tests__/dynamic-geometry-batch.unit.test.ts +157 -0
- package/src/__tests__/dynamic-geometry.unit.test.ts +36 -0
- package/src/__tests__/dynamic-resolution-plugin.integration.test.ts +81 -0
- package/src/__tests__/factory-contract.integration.test.ts +164 -1
- package/src/__tests__/frame-observation.contract.test.ts +21 -0
- package/src/__tests__/gpu-driven-baseline.characterization.test.ts +1 -1
- package/src/__tests__/gpu-driven-batch-topology-pbr.unit.test.ts +20 -1
- package/src/__tests__/gpu-driven-lod-cache.unit.test.ts +0 -3
- package/src/__tests__/gpu-driven-mesh-world-identity.unit.test.ts +0 -3
- package/src/__tests__/gpu-driven-pbr.dawn.test.ts +11 -6
- package/src/__tests__/gpu-driven-production.integration.test.ts +13 -25
- package/src/__tests__/gpu-driven-view.unit.test.ts +1 -0
- package/src/__tests__/gpu-pass-timing-browser-runner.ts +15 -0
- package/src/__tests__/gpu-pass-timing.browser.test.ts +14 -1
- package/src/__tests__/gpu-resource-scope.unit.test.ts +71 -0
- package/src/__tests__/gpu-scene.unit.test.ts +55 -1
- package/src/__tests__/materials-standard-contract.unit.test.ts +5 -1
- package/src/__tests__/mesh-submission-lifetime.unit.test.ts +8 -0
- package/src/__tests__/morph-neutral-admission.unit.test.ts +19 -0
- package/src/__tests__/physical-clearcoat.integration.test.ts +6 -1
- package/src/__tests__/post-process-error-policy-owner.unit.test.ts +6 -5
- package/src/__tests__/prepared-gpu-driven-pbr.integration.test.ts +216 -5
- package/src/__tests__/reflection-fallback-async-publication.unit.test.ts +68 -1
- package/src/__tests__/reflection-probe-authoring.unit.test.ts +12 -10
- package/src/__tests__/reflection-probe-box.dawn.test.ts +71 -0
- package/src/__tests__/reflection-probe-filter.unit.test.ts +9 -0
- package/src/__tests__/reflection-probe-orientation.dawn.test.ts +294 -0
- package/src/__tests__/reflection-probe-record-owner.characterization.unit.test.ts +5 -15
- package/src/__tests__/reflection-probe-updates.unit.test.ts +129 -0
- package/src/__tests__/render-error-code-owner.test-d.ts +3 -0
- package/src/__tests__/render-error-detail-ssot.test-d.ts +5 -1
- package/src/__tests__/render-extent.unit.test.ts +63 -0
- package/src/__tests__/render-scene-projection.unit.test.ts +3 -2
- package/src/__tests__/renderer-factory-material-contract.unit.test.ts +173 -9
- package/src/__tests__/shader-manifest-fixture.ts +6 -0
- package/src/__tests__/skinned-shadow-caster.test.ts +8 -1
- package/src/__tests__/specular-environment-scale.dawn.test.ts +4 -2
- package/src/__tests__/ssao-config.unit.test.ts +7 -0
- package/src/__tests__/ssao-surface.dawn.test.ts +252 -0
- package/src/__tests__/ssr-cube-silhouette.dawn.test.ts +270 -0
- package/src/__tests__/ssr-gpu-dispatch.browser.test.ts +51 -43
- package/src/__tests__/ssr-gpu-dispatch.dawn.test.ts +4 -0
- package/src/__tests__/ssr-gpu-dispatch.ts +10 -5
- package/src/__tests__/ssr-graph-topology.unit.test.ts +2 -2
- package/src/__tests__/ssr-hiz.browser.test.ts +1 -1
- package/src/__tests__/ssr-hiz.dawn.test.ts +1 -1
- package/src/__tests__/ssr-spatial.integration.test.ts +1 -1
- package/src/__tests__/standard-cluster-variant-resolution.unit.test.ts +40 -0
- package/src/__tests__/standard-pbr-artifact-assembly.unit.test.ts +238 -1
- package/src/__tests__/standard-profile-oracle.unit.test.ts +27 -0
- package/src/__tests__/taa-coverage-edge.dawn.test.ts +6 -0
- package/src/__tests__/taa-neighborhood-equivalence.dawn.test.ts +5 -1
- package/src/__tests__/taa-stability-feedback.ts +1 -0
- package/src/__tests__/temporal-reset-matrix.unit.test.ts +2 -2
- package/src/__tests__/temporal-view.unit.test.ts +17 -0
- package/src/__tests__/transmission-prewarm.unit.test.ts +57 -0
- package/src/__tests__/volumetric-fog-stage-readback.dawn.test.ts +62 -13
- package/src/__tests__/volumetric-fog-topology.unit.test.ts +7 -7
- package/src/assembly/atmosphere-shader-prewarm.ts +3 -2
- package/src/assembly/device-feature-admission.ts +9 -4
- package/src/assembly/dynamic-geometry-host.ts +236 -163
- package/src/assembly/host-contract.ts +9 -0
- package/src/assembly/material/assembly.ts +350 -6
- package/src/assembly/material/pipeline-helpers.ts +100 -0
- package/src/assembly/material-shader-policy.ts +39 -18
- package/src/assembly/recovery/device-loss-fanout.ts +5 -0
- package/src/assembly/recovery/recovery-attempt.ts +2 -29
- package/src/assembly/recovery/renderer-recover.ts +6 -9
- package/src/assembly/renderer-facade.ts +22 -1
- package/src/assembly/shader-prewarm-policy.ts +14 -1
- package/src/assembly/webgpu-ready.ts +28 -19
- package/src/assembly/webgpu-renderer.ts +95 -95
- package/src/capture/scene-projection.ts +37 -0
- package/src/components/__tests__/dynamic-resolution-schema.unit.test.ts +65 -0
- package/src/components/__tests__/light-radius.integration.test.ts +59 -0
- package/src/components/directional-light.ts +3 -3
- package/src/components/dynamic-resolution.ts +67 -0
- package/src/components/index.ts +1 -0
- package/src/components/light-helpers.ts +6 -1
- package/src/components/reflection-probe.ts +1 -0
- package/src/components/skylight.ts +4 -1
- package/src/device/device-scope.ts +13 -7
- package/src/device/gpu-residency.ts +11 -11
- package/src/dynamic-geometry.ts +13 -8
- package/src/environment/background.ts +30 -12
- package/src/environment/ibl.ts +211 -0
- package/src/environment/storage.ts +63 -0
- package/src/errors/gpu-driven.ts +10 -3
- package/src/errors/render.ts +64 -0
- package/src/extract/camera.ts +12 -1
- package/src/extract/contracts.ts +10 -0
- package/src/extract/gpu-driven.ts +72 -17
- package/src/gpu-driven/batch-topology.ts +33 -11
- package/src/gpu-driven/material-artifacts.ts +179 -0
- package/src/gpu-driven/material-bindings.ts +41 -0
- package/src/gpu-driven/prepared-draw.ts +13 -2
- package/src/gpu-driven/production-raster.ts +681 -164
- package/src/gpu-resource.ts +21 -2
- package/src/gpu-scene-schema.ts +11 -2
- package/src/gpu-scene.ts +14 -3
- package/src/hdrp-buffers.ts +69 -0
- package/src/ibl/IblPipelineCache.ts +5 -0
- package/src/ibl/skylight-bind-group.ts +27 -17
- package/src/index.ts +92 -81
- package/src/inspection-types.ts +16 -1
- package/src/material-row.ts +60 -11
- package/src/pbr-pipeline.ts +13 -2
- package/src/pipeline/render-extent.ts +111 -0
- package/src/pipeline/standard-build-context.ts +7 -0
- package/src/pipeline/standard-forward-lane.ts +41 -24
- package/src/pipeline/standard-pipeline.ts +47 -18
- package/src/pipeline/standard-post.ts +4 -0
- package/src/pipeline/standard-profile.ts +2 -1
- package/src/pipeline-builder.ts +12 -3
- package/src/plugin.ts +4 -0
- package/src/post-process-errors.ts +26 -18
- package/src/prepare/__tests__/extended-lighting-capability.unit.test.ts +2 -2
- package/src/prepare/extended-lighting/resources.ts +3 -3
- package/src/record/__tests__/main-pass-geometry.unit.test.ts +68 -0
- package/src/record/__tests__/material-bg-cache.unit.test.ts +45 -0
- package/src/record/__tests__/material-slot-plan.unit.test.ts +9 -0
- package/src/record/__tests__/recovery-pipeline.unit.test.ts +47 -1
- package/src/record/__tests__/sprite-material-abi.unit.test.ts +7 -3
- package/src/record/__tests__/temporal-payload.unit.test.ts +2 -0
- package/src/record/frame-lighting.ts +3 -1
- package/src/record/frame-snapshot.ts +13 -11
- package/src/record/frame.ts +150 -74
- package/src/record/main-pass-geometry.ts +60 -9
- package/src/record/main-pass-material.ts +47 -19
- package/src/record/main-pass.ts +63 -4
- package/src/record/prepared-material-bindings.ts +4 -0
- package/src/record/recovery-pipeline.ts +56 -0
- package/src/record/render-context.ts +34 -3
- package/src/record/shadow-pass.ts +187 -50
- package/src/record/typed-frame-graph.ts +60 -3
- package/src/record/view-ubo.ts +1 -1
- package/src/recovery/render-system-candidate.ts +54 -11
- package/src/reflection/background.ts +151 -0
- package/src/reflection/filter.ts +3 -0
- package/src/reflection/projection.ts +16 -6
- package/src/reflection/record-owner.ts +282 -86
- package/src/render-contract.ts +50 -32
- package/src/render-graph-primitives.ts +28 -3
- package/src/render-pipeline.ts +20 -1
- package/src/render-system-extract-tail.ts +23 -3
- package/src/render-system-extract.ts +127 -42
- package/src/render-system.ts +35 -7
- package/src/scene/render-scene.ts +8 -0
- package/src/ssao-config.ts +25 -8
- package/src/ssr/graph.ts +78 -58
- package/src/temporal/gpu.ts +5 -0
- package/src/temporal/standard-scene-data.ts +7 -1
- package/src/temporal/target-coverage-attachment.ts +72 -0
- package/src/temporal/temporal-view.ts +10 -4
- package/src/temporal/view.ts +12 -2
- package/src/transmission/__tests__/standard-transmission.dawn.test.ts +24 -9
- package/src/typed-render-graph-primitives.ts +38 -0
- package/src/volume/component.ts +1 -0
- package/src/volume/passes.ts +3 -3
- package/dist/chunk-33XZFTQU.mjs.map +0 -1
- package/dist/chunk-BQVQOQJH.mjs.map +0 -1
- package/dist/chunk-BTWH7BP4.mjs.map +0 -1
- package/dist/chunk-FUODTTIA.mjs.map +0 -1
- package/dist/chunk-JQTSEI3Z.mjs.map +0 -1
- package/dist/chunk-NICXSHAT.mjs.map +0 -1
- package/dist/chunk-NRNXBLIJ.mjs.map +0 -1
- package/dist/chunk-S4DNKQYQ.mjs.map +0 -1
package/src/index.ts
CHANGED
|
@@ -10,15 +10,15 @@ export {
|
|
|
10
10
|
materialContribution,
|
|
11
11
|
renderPipelineContribution,
|
|
12
12
|
samplerContribution,
|
|
13
|
-
} from './assets/asset-decoders';
|
|
13
|
+
} from './assets/asset-decoders.js';
|
|
14
14
|
// Runtime contract: leases, frame receipts, detached inspection, profile,
|
|
15
15
|
// lifecycle state, and the single renderer event stream.
|
|
16
16
|
export type {
|
|
17
17
|
CubeCameraFaceView,
|
|
18
18
|
CubeCameraFaceViewInput,
|
|
19
|
-
} from './capture/cube-views';
|
|
20
|
-
export { buildCubeCameraFaceViews } from './capture/cube-views';
|
|
21
|
-
export { Atmosphere } from './components/atmosphere';
|
|
19
|
+
} from './capture/cube-views.js';
|
|
20
|
+
export { buildCubeCameraFaceViews } from './capture/cube-views.js';
|
|
21
|
+
export { Atmosphere } from './components/atmosphere.js';
|
|
22
22
|
// ECS render vocabulary and grouped closed values.
|
|
23
23
|
export type {
|
|
24
24
|
Antialias,
|
|
@@ -29,7 +29,7 @@ export type {
|
|
|
29
29
|
CameraExposure,
|
|
30
30
|
CameraProjection,
|
|
31
31
|
Tonemap,
|
|
32
|
-
} from './components/camera';
|
|
32
|
+
} from './components/camera.js';
|
|
33
33
|
export {
|
|
34
34
|
ANTIALIAS_FXAA,
|
|
35
35
|
ANTIALIAS_MSAA,
|
|
@@ -61,7 +61,7 @@ export {
|
|
|
61
61
|
TONEMAP_REINHARD_EXTENDED,
|
|
62
62
|
validateCameraColorGrading,
|
|
63
63
|
validateCameraExposure,
|
|
64
|
-
} from './components/camera';
|
|
64
|
+
} from './components/camera.js';
|
|
65
65
|
export {
|
|
66
66
|
CUBE_CAMERA_FACE_ORDER,
|
|
67
67
|
CUBE_CAMERA_UPDATE_CONTINUOUS,
|
|
@@ -73,27 +73,33 @@ export {
|
|
|
73
73
|
type CubeCameraUpdateIntent,
|
|
74
74
|
cubeCameraUpdateIntentFromF32,
|
|
75
75
|
cubeCameraUpdateIntentToF32,
|
|
76
|
-
} from './components/cube-camera';
|
|
77
|
-
export * from './components/directional-light';
|
|
78
|
-
export {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
export
|
|
85
|
-
export
|
|
86
|
-
export {
|
|
87
|
-
export
|
|
88
|
-
export {
|
|
76
|
+
} from './components/cube-camera.js';
|
|
77
|
+
export * from './components/directional-light.js';
|
|
78
|
+
export {
|
|
79
|
+
DynamicResolution,
|
|
80
|
+
type DynamicResolutionData,
|
|
81
|
+
validateDynamicResolutionCamera,
|
|
82
|
+
validateDynamicResolutionParameters,
|
|
83
|
+
} from './components/dynamic-resolution.js';
|
|
84
|
+
export { Fog } from './components/fog.js';
|
|
85
|
+
export { Instances, type InstancesData } from './components/instances.js';
|
|
86
|
+
export { Layer } from './components/layer.js';
|
|
87
|
+
export * from './components/light-helpers.js';
|
|
88
|
+
export { LightProbe } from './components/light-probe.js';
|
|
89
|
+
export { Lines } from './components/lines.js';
|
|
90
|
+
export * from './components/mesh-filter.js';
|
|
91
|
+
export * from './components/mesh-renderer.js';
|
|
92
|
+
export { MotionBlur } from './components/motion-blur.js';
|
|
93
|
+
export { PointLight } from './components/point-light.js';
|
|
94
|
+
export { PointLightShadow } from './components/point-light-shadow.js';
|
|
89
95
|
export {
|
|
90
96
|
type PointShape,
|
|
91
97
|
PointShapeValue,
|
|
92
98
|
Points,
|
|
93
99
|
pointShapeFromU32,
|
|
94
|
-
} from './components/points';
|
|
95
|
-
export { PostProcessParams } from './components/post-process-params';
|
|
96
|
-
export { RectAreaLight } from './components/rect-area-light';
|
|
100
|
+
} from './components/points.js';
|
|
101
|
+
export { PostProcessParams } from './components/post-process-params.js';
|
|
102
|
+
export { RectAreaLight } from './components/rect-area-light.js';
|
|
97
103
|
export {
|
|
98
104
|
REFLECTION_PROBE_UPDATE_CONTINUOUS,
|
|
99
105
|
REFLECTION_PROBE_UPDATE_ON_CHANGE,
|
|
@@ -103,8 +109,8 @@ export {
|
|
|
103
109
|
type ReflectionProbeUpdateIntent,
|
|
104
110
|
reflectionProbeUpdateIntentFromF32,
|
|
105
111
|
reflectionProbeUpdateIntentToF32,
|
|
106
|
-
} from './components/reflection-probe';
|
|
107
|
-
export { SceneInstance } from './components/scene-instance';
|
|
112
|
+
} from './components/reflection-probe.js';
|
|
113
|
+
export { SceneInstance } from './components/scene-instance.js';
|
|
108
114
|
export {
|
|
109
115
|
ScreenSpaceReflection,
|
|
110
116
|
type ScreenSpaceReflectionData,
|
|
@@ -113,17 +119,17 @@ export {
|
|
|
113
119
|
SKYBOX_MODE_CUBEMAP,
|
|
114
120
|
SkyboxBackground,
|
|
115
121
|
type SkyboxMode,
|
|
116
|
-
} from './components/skybox-background';
|
|
117
|
-
export { Skylight } from './components/skylight';
|
|
118
|
-
export { SortKey } from './components/sort-key';
|
|
119
|
-
export type { SpotLightAuthoring, SpotLightProjector } from './components/spot-light';
|
|
120
|
-
export { SpotLight } from './components/spot-light';
|
|
122
|
+
} from './components/skybox-background.js';
|
|
123
|
+
export { Skylight } from './components/skylight.js';
|
|
124
|
+
export { SortKey } from './components/sort-key.js';
|
|
125
|
+
export type { SpotLightAuthoring, SpotLightProjector } from './components/spot-light.js';
|
|
126
|
+
export { SpotLight } from './components/spot-light.js';
|
|
121
127
|
export {
|
|
122
128
|
Visibility,
|
|
123
129
|
type VisibilityState,
|
|
124
130
|
VisibilityStateValue,
|
|
125
131
|
visibilityStateFromU32,
|
|
126
|
-
} from './components/visibility';
|
|
132
|
+
} from './components/visibility.js';
|
|
127
133
|
export type {
|
|
128
134
|
DynamicGeometryCandidate,
|
|
129
135
|
DynamicGeometryCandidateState,
|
|
@@ -134,17 +140,17 @@ export type {
|
|
|
134
140
|
DynamicGeometryOrdering,
|
|
135
141
|
DynamicGeometryPrepareInput,
|
|
136
142
|
DynamicGeometryReceipt,
|
|
137
|
-
} from './dynamic-geometry';
|
|
143
|
+
} from './dynamic-geometry.js';
|
|
138
144
|
export {
|
|
139
145
|
createDynamicGeometryLifecycle,
|
|
140
146
|
DynamicGeometryError,
|
|
141
|
-
} from './dynamic-geometry';
|
|
147
|
+
} from './dynamic-geometry.js';
|
|
142
148
|
export type {
|
|
143
149
|
EnvironmentInspection,
|
|
144
150
|
EnvironmentInspectionFailure,
|
|
145
151
|
EnvironmentInspectionGeneration,
|
|
146
152
|
EnvironmentInspectionStatus,
|
|
147
|
-
} from './environment/inspection';
|
|
153
|
+
} from './environment/inspection.js';
|
|
148
154
|
// Public structured operation failure union. Concrete error classes stay
|
|
149
155
|
// behind the Renderer Result/event boundary.
|
|
150
156
|
export type {
|
|
@@ -155,6 +161,7 @@ export type {
|
|
|
155
161
|
} from './errors/gpu-driven';
|
|
156
162
|
export { GpuDrivenPreparationError } from './errors/gpu-driven';
|
|
157
163
|
export type {
|
|
164
|
+
DynamicResolutionError,
|
|
158
165
|
ReflectionProbeBudgetExceededDetail,
|
|
159
166
|
RenderError,
|
|
160
167
|
RenderErrorCode,
|
|
@@ -165,27 +172,30 @@ export type {
|
|
|
165
172
|
RenderTargetStateInvalidDetail,
|
|
166
173
|
SceneDataUnavailableDetail,
|
|
167
174
|
SceneDataUnavailableReason,
|
|
168
|
-
} from './errors/render';
|
|
175
|
+
} from './errors/render.js';
|
|
169
176
|
export {
|
|
170
177
|
AtmosphereInvalidParameterError,
|
|
178
|
+
DynamicResolutionInvalidParameterError,
|
|
179
|
+
DynamicResolutionRequiresTaaError,
|
|
180
|
+
DynamicResolutionTimingUnavailableError,
|
|
171
181
|
EnvironmentGenerationFailedError,
|
|
172
182
|
EnvironmentSourceConflictError,
|
|
173
183
|
FogCardinalityError,
|
|
174
184
|
OwnerStageFailedError,
|
|
175
185
|
SceneDataUnavailableError,
|
|
176
186
|
TaaCapsInsufficientError,
|
|
177
|
-
} from './errors/render';
|
|
187
|
+
} from './errors/render.js';
|
|
178
188
|
export type {
|
|
179
189
|
EnvironmentFrame,
|
|
180
190
|
EnvironmentSource,
|
|
181
191
|
FogFrame,
|
|
182
192
|
FramePlan,
|
|
183
|
-
} from './extract/environment';
|
|
193
|
+
} from './extract/environment.js';
|
|
184
194
|
export {
|
|
185
195
|
resolveVisibility,
|
|
186
196
|
type VisibilityResolution,
|
|
187
197
|
type VisibilitySnapshot,
|
|
188
|
-
} from './extract/visibility';
|
|
198
|
+
} from './extract/visibility.js';
|
|
189
199
|
export type {
|
|
190
200
|
RenderFeatureLogicalTarget,
|
|
191
201
|
RenderFeatureMaterialShaderBindingContract,
|
|
@@ -193,7 +203,7 @@ export type {
|
|
|
193
203
|
RenderFeaturePlan,
|
|
194
204
|
RenderFeaturePlanContext,
|
|
195
205
|
RenderFeatureResourceDeclaration,
|
|
196
|
-
} from './features/plan';
|
|
206
|
+
} from './features/plan.js';
|
|
197
207
|
// Minimal declarative extension contract. Implementations use relative
|
|
198
208
|
// imports; the root does not expose prepared state, graph projectors, target
|
|
199
209
|
// handles, or builtin feature factories.
|
|
@@ -207,7 +217,7 @@ export type {
|
|
|
207
217
|
RenderFeatureShaderModuleMode,
|
|
208
218
|
RenderFeatureStatus,
|
|
209
219
|
RenderFeatureWorldVisibilitySnapshot,
|
|
210
|
-
} from './features/types';
|
|
220
|
+
} from './features/types.js';
|
|
211
221
|
export {
|
|
212
222
|
beginProbeIblUpdate,
|
|
213
223
|
createIblKernelCache,
|
|
@@ -219,7 +229,7 @@ export {
|
|
|
219
229
|
REFLECTION_PROBE_IBL_STAGES,
|
|
220
230
|
type ReflectionProbeIblStage,
|
|
221
231
|
resetIblKernelCaches,
|
|
222
|
-
} from './ibl/kernel-cache';
|
|
232
|
+
} from './ibl/kernel-cache.js';
|
|
223
233
|
export type {
|
|
224
234
|
BloomInspection,
|
|
225
235
|
GpuDrivenLane,
|
|
@@ -243,7 +253,7 @@ export type {
|
|
|
243
253
|
RenderFeatureGraphInspection,
|
|
244
254
|
RenderFeatureHostInspection,
|
|
245
255
|
TransmissionInspection,
|
|
246
|
-
} from './inspection-types';
|
|
256
|
+
} from './inspection-types.js';
|
|
247
257
|
export {
|
|
248
258
|
type InstanceBackendKind,
|
|
249
259
|
type InstanceCollectionCreateInput,
|
|
@@ -272,7 +282,7 @@ export {
|
|
|
272
282
|
Materials,
|
|
273
283
|
MaterialTransmissionContractError,
|
|
274
284
|
srgb,
|
|
275
|
-
} from './materials';
|
|
285
|
+
} from './materials.js';
|
|
276
286
|
export {
|
|
277
287
|
type MeshMaterialBindingObservation,
|
|
278
288
|
type MeshMaterialBindingPreparationFailure,
|
|
@@ -283,12 +293,13 @@ export {
|
|
|
283
293
|
type MeshMaterialBindingTextureObservation,
|
|
284
294
|
projectMeshMaterialBindingObservation,
|
|
285
295
|
summarizeMeshMaterialBindings,
|
|
286
|
-
} from './mesh-material-bindings';
|
|
296
|
+
} from './mesh-material-bindings.js';
|
|
297
|
+
export type { RenderExtent } from './pipeline/render-extent.js';
|
|
287
298
|
export type {
|
|
288
299
|
StandardClusterTransportInspection,
|
|
289
300
|
StandardLightingInspection,
|
|
290
301
|
StandardNoLocalLightingInspection,
|
|
291
|
-
} from './pipeline/standard-lighting/inspection';
|
|
302
|
+
} from './pipeline/standard-lighting/inspection.js';
|
|
292
303
|
export type {
|
|
293
304
|
AutoExposureCapabilityUnavailableDetail,
|
|
294
305
|
AutoExposureError,
|
|
@@ -303,7 +314,7 @@ export type {
|
|
|
303
314
|
AutoExposureResetReason,
|
|
304
315
|
AutoExposureStageFailedDetail,
|
|
305
316
|
AutoExposureStaleGenerationDetail,
|
|
306
|
-
} from './pipeline/standard-output/auto-exposure/inspection';
|
|
317
|
+
} from './pipeline/standard-output/auto-exposure/inspection.js';
|
|
307
318
|
export {
|
|
308
319
|
AutoExposureCapabilityUnavailableError,
|
|
309
320
|
AutoExposureInvalidParameterError,
|
|
@@ -311,24 +322,24 @@ export {
|
|
|
311
322
|
AutoExposureStaleGenerationError,
|
|
312
323
|
createAutoExposureError,
|
|
313
324
|
createAutoExposureInspection,
|
|
314
|
-
} from './pipeline/standard-output/auto-exposure/inspection';
|
|
325
|
+
} from './pipeline/standard-output/auto-exposure/inspection.js';
|
|
315
326
|
export type {
|
|
316
327
|
StandardLutFailure,
|
|
317
328
|
StandardLutInspection,
|
|
318
329
|
StandardLutState,
|
|
319
|
-
} from './pipeline/standard-output/lut-state';
|
|
330
|
+
} from './pipeline/standard-output/lut-state.js';
|
|
320
331
|
// The host-facing default is a stable profile value; implementation-only
|
|
321
332
|
// pipeline helpers remain behind the package boundary.
|
|
322
333
|
export {
|
|
323
334
|
DEFAULT_STANDARD_PROFILE,
|
|
324
335
|
type StandardVolumetricFogProfile,
|
|
325
336
|
type StandardVolumetricFogQuality,
|
|
326
|
-
} from './pipeline/standard-profile';
|
|
327
|
-
export { renderComponentsPlugin } from './plugin';
|
|
337
|
+
} from './pipeline/standard-profile.js';
|
|
338
|
+
export { renderComponentsPlugin } from './plugin.js';
|
|
328
339
|
export {
|
|
329
340
|
inspectPointShadow,
|
|
330
341
|
type PointShadowInspection,
|
|
331
|
-
} from './point-shadow-inspection';
|
|
342
|
+
} from './point-shadow-inspection.js';
|
|
332
343
|
export {
|
|
333
344
|
admitPointsLines,
|
|
334
345
|
type LinesStyleInput,
|
|
@@ -337,8 +348,8 @@ export {
|
|
|
337
348
|
type PointsLinesAdmissionInput,
|
|
338
349
|
type PointsLinesAdmissionLimits,
|
|
339
350
|
type PointsStyleInput,
|
|
340
|
-
} from './points-lines/admission';
|
|
341
|
-
export type { PointsLinesInspection } from './points-lines/inspection';
|
|
351
|
+
} from './points-lines/admission.js';
|
|
352
|
+
export type { PointsLinesInspection } from './points-lines/inspection.js';
|
|
342
353
|
/**
|
|
343
354
|
* Public bounded GPU pass facts. Use the single `gpuPassTiming` opt-in,
|
|
344
355
|
* `draw()` receipt, and `observe(receipt, { include: ['timings'] })` route.
|
|
@@ -375,17 +386,17 @@ export {
|
|
|
375
386
|
createProbeFilterState,
|
|
376
387
|
type ProbeFilterState,
|
|
377
388
|
probeFilterIsSteady,
|
|
378
|
-
} from './reflection/filter';
|
|
389
|
+
} from './reflection/filter.js';
|
|
379
390
|
export {
|
|
380
391
|
buildReflectionProbeTable,
|
|
381
392
|
type ReflectionProbeTable,
|
|
382
393
|
type ReflectionProbeTableRow,
|
|
383
394
|
reflectionProbeTableBytes,
|
|
384
|
-
} from './reflection/gpu-table';
|
|
395
|
+
} from './reflection/gpu-table.js';
|
|
385
396
|
export {
|
|
386
397
|
inspectReflectionFallback,
|
|
387
398
|
type ReflectionFallbackFailureInput,
|
|
388
|
-
} from './reflection/inspection';
|
|
399
|
+
} from './reflection/inspection.js';
|
|
389
400
|
export {
|
|
390
401
|
admitReflectionProbe,
|
|
391
402
|
DEFAULT_REFLECTION_PROBE_LIMITS,
|
|
@@ -401,7 +412,7 @@ export {
|
|
|
401
412
|
type SkylightSelection,
|
|
402
413
|
selectReflectionProbe,
|
|
403
414
|
validateReflectionProbeInput,
|
|
404
|
-
} from './reflection/projection';
|
|
415
|
+
} from './reflection/projection.js';
|
|
405
416
|
export type {
|
|
406
417
|
CameraOutputSnapshot,
|
|
407
418
|
CubeCameraSnapshot,
|
|
@@ -419,25 +430,25 @@ export type {
|
|
|
419
430
|
RenderProfile,
|
|
420
431
|
RenderResult,
|
|
421
432
|
RenderWorldLease,
|
|
422
|
-
} from './render-contract';
|
|
423
|
-
export { RENDER_PHASE_CATALOG } from './render-contract';
|
|
433
|
+
} from './render-contract.js';
|
|
434
|
+
export { RENDER_PHASE_CATALOG } from './render-contract.js';
|
|
424
435
|
export type {
|
|
425
436
|
TemporalInspectionInput,
|
|
426
437
|
TemporalInspectionStatus,
|
|
427
|
-
} from './renderer-inspect';
|
|
428
|
-
export type { RenderSceneBounds } from './scene/render-scene-types';
|
|
438
|
+
} from './renderer-inspect.js';
|
|
439
|
+
export type { RenderSceneBounds } from './scene/render-scene-types.js';
|
|
429
440
|
export type {
|
|
430
441
|
GpuFrameTiming,
|
|
431
442
|
GpuFrameTimingProtocol,
|
|
432
443
|
GpuFrameTimingRecord,
|
|
433
444
|
GpuFrameTimingSample,
|
|
434
445
|
GpuFrameTimingSummary,
|
|
435
|
-
} from './scene/visibility/gpu-frame-timing';
|
|
446
|
+
} from './scene/visibility/gpu-frame-timing.js';
|
|
436
447
|
export {
|
|
437
448
|
createGpuFrameTiming,
|
|
438
449
|
recordGpuFrameTiming,
|
|
439
450
|
summarizeGpuFrameTiming,
|
|
440
|
-
} from './scene/visibility/gpu-frame-timing';
|
|
451
|
+
} from './scene/visibility/gpu-frame-timing.js';
|
|
441
452
|
export type {
|
|
442
453
|
LodOcclusionDegradation,
|
|
443
454
|
LodOcclusionFallback,
|
|
@@ -451,19 +462,19 @@ export type {
|
|
|
451
462
|
LodOcclusionWorldAttribution,
|
|
452
463
|
LodOcclusionWorldInspection,
|
|
453
464
|
LodOcclusionWorldInspectionInput,
|
|
454
|
-
} from './scene/visibility/inspection';
|
|
465
|
+
} from './scene/visibility/inspection.js';
|
|
455
466
|
export {
|
|
456
467
|
consumeLodOcclusionInspection,
|
|
457
468
|
inspectLodOcclusion,
|
|
458
469
|
LOD_OCCLUSION_INSPECTION_MAX_BYTES,
|
|
459
470
|
LOD_OCCLUSION_INSPECTION_SCHEMA,
|
|
460
471
|
serializeLodOcclusionInspection,
|
|
461
|
-
} from './scene/visibility/inspection';
|
|
472
|
+
} from './scene/visibility/inspection.js';
|
|
462
473
|
export {
|
|
463
474
|
SHADOW_ATLAS_DEFAULT_FACE_SIZE,
|
|
464
475
|
SHADOW_ATLAS_DEFAULT_LAYERS,
|
|
465
476
|
ShadowAtlas,
|
|
466
|
-
} from './shadow-atlas';
|
|
477
|
+
} from './shadow-atlas.js';
|
|
467
478
|
export type {
|
|
468
479
|
SsrAdmissionBudget,
|
|
469
480
|
SsrAdmissionFailure,
|
|
@@ -482,7 +493,7 @@ export type {
|
|
|
482
493
|
SsrSpatialStatus,
|
|
483
494
|
SsrSpatialWork,
|
|
484
495
|
SsrTemporalReceipt,
|
|
485
|
-
} from './ssr/admission';
|
|
496
|
+
} from './ssr/admission.js';
|
|
486
497
|
export {
|
|
487
498
|
admitSsrM0,
|
|
488
499
|
admitSsrSpatial,
|
|
@@ -492,32 +503,32 @@ export {
|
|
|
492
503
|
SSR_FORMAT_STAGES,
|
|
493
504
|
validateScreenSpaceReflection,
|
|
494
505
|
zeroSsrAdmissionWork,
|
|
495
|
-
} from './ssr/admission';
|
|
506
|
+
} from './ssr/admission.js';
|
|
496
507
|
export {
|
|
497
508
|
composeSsrReflection,
|
|
498
509
|
type SsrCompositionInput,
|
|
499
510
|
type SsrCompositionInputError,
|
|
500
511
|
type SsrCompositionResult,
|
|
501
512
|
type SsrReflectionColor,
|
|
502
|
-
} from './ssr/composition';
|
|
513
|
+
} from './ssr/composition.js';
|
|
503
514
|
export type {
|
|
504
515
|
SsrConfigField,
|
|
505
516
|
SsrConfigInvalidError,
|
|
506
517
|
SsrConfigRange,
|
|
507
518
|
SsrSpatialUnavailableReason,
|
|
508
519
|
SsrUnavailableError,
|
|
509
|
-
} from './ssr/errors';
|
|
520
|
+
} from './ssr/errors.js';
|
|
510
521
|
export type {
|
|
511
522
|
SsrSpatialHistoryInspection,
|
|
512
523
|
SsrSpatialInspection,
|
|
513
524
|
SsrSpatialInspectionFailure,
|
|
514
525
|
SsrSpatialInspectionProjection,
|
|
515
|
-
} from './ssr/inspection';
|
|
526
|
+
} from './ssr/inspection.js';
|
|
516
527
|
export {
|
|
517
528
|
projectSsrSpatialInspection,
|
|
518
529
|
serializeSsrSpatialInspection,
|
|
519
|
-
} from './ssr/inspection';
|
|
520
|
-
export { getActiveCamera, setActiveCamera } from './systems/active-camera';
|
|
530
|
+
} from './ssr/inspection.js';
|
|
531
|
+
export { getActiveCamera, setActiveCamera } from './systems/active-camera.js';
|
|
521
532
|
export type {
|
|
522
533
|
RenderTarget,
|
|
523
534
|
RenderTargetAdmissionLimits,
|
|
@@ -533,8 +544,8 @@ export type {
|
|
|
533
544
|
RenderTargetTextureAspect,
|
|
534
545
|
RenderTargetTextureSource,
|
|
535
546
|
RenderTargetTextureSourceOptions,
|
|
536
|
-
} from './targets/contracts';
|
|
537
|
-
export type { TemporalInspection, TemporalResourceInspection } from './temporal/inspection';
|
|
547
|
+
} from './targets/contracts.js';
|
|
548
|
+
export type { TemporalInspection, TemporalResourceInspection } from './temporal/inspection.js';
|
|
538
549
|
export {
|
|
539
550
|
SCENE_DATA_TEMPORAL_V1_DESCRIPTOR,
|
|
540
551
|
SCENE_DATA_TEMPORAL_V1_SCHEMA,
|
|
@@ -542,15 +553,15 @@ export {
|
|
|
542
553
|
type SceneDataSchemaId,
|
|
543
554
|
type SceneDataTarget,
|
|
544
555
|
type SceneDataTemporalV1Descriptor,
|
|
545
|
-
} from './temporal/scene-data';
|
|
556
|
+
} from './temporal/scene-data.js';
|
|
546
557
|
export {
|
|
547
558
|
createSceneDataCatalog,
|
|
548
559
|
type SceneDataAvailability,
|
|
549
560
|
type SceneDataCatalog,
|
|
550
561
|
type SceneDataCatalogOptions,
|
|
551
562
|
type SceneDataInspection,
|
|
552
|
-
} from './temporal/scene-data-catalog';
|
|
553
|
-
export type { TemporalView } from './temporal/view';
|
|
563
|
+
} from './temporal/scene-data-catalog.js';
|
|
564
|
+
export type { TemporalView } from './temporal/view.js';
|
|
554
565
|
export {
|
|
555
566
|
hasVolumetricFogCapability,
|
|
556
567
|
type IntegratedVolumeResource,
|
|
@@ -561,7 +572,7 @@ export {
|
|
|
561
572
|
type VolumetricFogLightKind,
|
|
562
573
|
type VolumetricFogLightPairResolution,
|
|
563
574
|
type VolumetricFogLightResolution,
|
|
564
|
-
} from './volume/capability';
|
|
575
|
+
} from './volume/capability.js';
|
|
565
576
|
export {
|
|
566
577
|
type ValidatedVolumetricFog,
|
|
567
578
|
type VolumeBounds,
|
|
@@ -570,12 +581,12 @@ export {
|
|
|
570
581
|
type VolumetricFogAuthoring,
|
|
571
582
|
type VolumetricFogLightSelection,
|
|
572
583
|
validateVolumetricFog,
|
|
573
|
-
} from './volume/component';
|
|
574
|
-
export { extractVolumetricFog, type VolumetricFogExtract } from './volume/extract';
|
|
584
|
+
} from './volume/component.js';
|
|
585
|
+
export { extractVolumetricFog, type VolumetricFogExtract } from './volume/extract.js';
|
|
575
586
|
export {
|
|
576
587
|
inspectVolumetricFog,
|
|
577
588
|
type VolumetricFogInspection,
|
|
578
589
|
type VolumetricFogInspectionInput,
|
|
579
590
|
type VolumetricFogInspectionStatus,
|
|
580
591
|
type VolumetricFogResourceStage,
|
|
581
|
-
} from './volume/inspection';
|
|
592
|
+
} from './volume/inspection.js';
|
package/src/inspection-types.ts
CHANGED
|
@@ -455,7 +455,9 @@ export interface ReflectionFallbackReceipt {
|
|
|
455
455
|
}
|
|
456
456
|
|
|
457
457
|
/**
|
|
458
|
-
*
|
|
458
|
+
* Completed fallback attachment proof, available only when the renderer opts
|
|
459
|
+
* into captureReflectionFallbackReadback. Normal rendering publishes source
|
|
460
|
+
* receipts after GPU completion without copying, mapping, or hashing pixels.
|
|
459
461
|
*
|
|
460
462
|
* This is an aggregate attachment fact, not a per-renderable row. Row
|
|
461
463
|
* receipts deliberately carry source/coverage identity only, so one pixel
|
|
@@ -502,6 +504,19 @@ export interface ReflectionFallbackInspection {
|
|
|
502
504
|
}
|
|
503
505
|
|
|
504
506
|
export interface ReflectionProbeInspection {
|
|
507
|
+
readonly workBudgetPerFrame?: number;
|
|
508
|
+
readonly updates?: readonly {
|
|
509
|
+
readonly worldId: number;
|
|
510
|
+
readonly entityKey: number;
|
|
511
|
+
readonly intent: 'once' | 'on-change' | 'continuous';
|
|
512
|
+
readonly activeGeneration: number;
|
|
513
|
+
readonly requestedRevision: number;
|
|
514
|
+
readonly capturedRevision: number;
|
|
515
|
+
readonly pending: boolean;
|
|
516
|
+
readonly captureStartedFrame: number;
|
|
517
|
+
readonly lastCompletedFrame: number;
|
|
518
|
+
readonly latencyFrames: number | undefined;
|
|
519
|
+
}[];
|
|
505
520
|
readonly selection: ReflectionProbeSelectionInspection;
|
|
506
521
|
readonly factCount: number;
|
|
507
522
|
readonly acceptedCount: number;
|
package/src/material-row.ts
CHANGED
|
@@ -2,15 +2,12 @@ import {
|
|
|
2
2
|
type MaterialShaderArtifactReceipt,
|
|
3
3
|
STANDARD_PIPELINE_PARAM_SCHEMA,
|
|
4
4
|
} from '@forgeax/engine-shader';
|
|
5
|
-
import { derive, type UboFieldLayout } from '@forgeax/engine-types';
|
|
5
|
+
import { derive, type ParamSchemaEntry, type UboFieldLayout } from '@forgeax/engine-types';
|
|
6
6
|
import { GPU_SCENE_LAYOUTS } from './gpu-scene-schema';
|
|
7
7
|
import type { MaterialSnapshot } from './render-system-extract';
|
|
8
8
|
|
|
9
9
|
const ROW = GPU_SCENE_LAYOUTS.material;
|
|
10
10
|
const STANDARD_PIPELINE_DERIVED = derive(STANDARD_PIPELINE_PARAM_SCHEMA);
|
|
11
|
-
const STANDARD_PARAM_ENTRIES = new Map(
|
|
12
|
-
STANDARD_PIPELINE_PARAM_SCHEMA.map((entry) => [entry.name, entry]),
|
|
13
|
-
);
|
|
14
11
|
|
|
15
12
|
function isNumericValue(value: unknown): value is number | readonly number[] {
|
|
16
13
|
return typeof value === 'number' || Array.isArray(value);
|
|
@@ -42,19 +39,26 @@ function numericFallback(
|
|
|
42
39
|
return material.normalScale ?? 1;
|
|
43
40
|
case 'specularColor':
|
|
44
41
|
return material.specularColor ?? [1, 1, 1];
|
|
45
|
-
default:
|
|
46
|
-
|
|
47
|
-
return isNumericValue(defaultValue) ? defaultValue : undefined;
|
|
48
|
-
}
|
|
42
|
+
default:
|
|
43
|
+
return undefined;
|
|
49
44
|
}
|
|
50
45
|
}
|
|
51
46
|
|
|
52
47
|
function numericValue(
|
|
53
48
|
name: string,
|
|
54
49
|
material: MaterialSnapshot,
|
|
50
|
+
schema: readonly ParamSchemaEntry[],
|
|
51
|
+
allowStandardFallback = false,
|
|
55
52
|
): number | readonly number[] | undefined {
|
|
56
53
|
const snapshotValue = material.paramSnapshot?.[name];
|
|
57
|
-
|
|
54
|
+
if (isNumericValue(snapshotValue)) return snapshotValue;
|
|
55
|
+
if (allowStandardFallback) {
|
|
56
|
+
const materialValue = numericFallback(name, material);
|
|
57
|
+
if (materialValue !== undefined) return materialValue;
|
|
58
|
+
}
|
|
59
|
+
const defaultValue = schema.find((entry) => entry.name === name)?.default;
|
|
60
|
+
if (isNumericValue(defaultValue)) return defaultValue;
|
|
61
|
+
return undefined;
|
|
58
62
|
}
|
|
59
63
|
|
|
60
64
|
function writeScalar(view: DataView, member: UboFieldLayout, value: number): void {
|
|
@@ -102,7 +106,9 @@ function writeVec4(view: DataView, offset: number, values: readonly number[]): v
|
|
|
102
106
|
}
|
|
103
107
|
|
|
104
108
|
function validateReceipt(receipt: MaterialShaderArtifactReceipt): void {
|
|
105
|
-
const expectedFields = ROW.fields
|
|
109
|
+
const expectedFields = ROW.fields
|
|
110
|
+
.filter((field) => !field.name.startsWith('_gpuDrivenPadding'))
|
|
111
|
+
.map((field) => field.name);
|
|
106
112
|
if (
|
|
107
113
|
receipt.materialRow.byteLength !== ROW.stride ||
|
|
108
114
|
receipt.materialRow.fields.length !== expectedFields.length ||
|
|
@@ -123,7 +129,11 @@ export function packStandardPbrMaterialRow(
|
|
|
123
129
|
const payload = new Uint8Array(ROW.stride);
|
|
124
130
|
const view = new DataView(payload.buffer);
|
|
125
131
|
for (const member of STANDARD_PIPELINE_DERIVED.numericMembers) {
|
|
126
|
-
writeNumeric(
|
|
132
|
+
writeNumeric(
|
|
133
|
+
view,
|
|
134
|
+
member,
|
|
135
|
+
numericValue(member.name, material, STANDARD_PIPELINE_PARAM_SCHEMA, true),
|
|
136
|
+
);
|
|
127
137
|
}
|
|
128
138
|
for (const record of STANDARD_PIPELINE_DERIVED.coordinateRecords) {
|
|
129
139
|
const coordinates = material.textureCoordinates?.get(record.parameter);
|
|
@@ -143,3 +153,42 @@ export function packStandardPbrMaterialRow(
|
|
|
143
153
|
}
|
|
144
154
|
return payload;
|
|
145
155
|
}
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Pack any producer-owned numeric/coordinate schema into the shared GPU Scene
|
|
159
|
+
* row page. Resource handles are intentionally absent: the scene-index shader
|
|
160
|
+
* reads texture/sampler bindings from the ordinary material group while this
|
|
161
|
+
* row carries only the values its generated `MaterialParameters` struct owns.
|
|
162
|
+
* `undefined` means the schema exceeds the page and must remain outside the
|
|
163
|
+
* capable lane.
|
|
164
|
+
*/
|
|
165
|
+
export function packMaterialProgramRow(
|
|
166
|
+
schema: readonly ParamSchemaEntry[],
|
|
167
|
+
material: MaterialSnapshot,
|
|
168
|
+
rowStride = ROW.stride,
|
|
169
|
+
): Uint8Array | undefined {
|
|
170
|
+
const derived = derive(schema);
|
|
171
|
+
if (derived.totalBytes > rowStride || rowStride < 16 || rowStride % 16 !== 0) return undefined;
|
|
172
|
+
const payload = new Uint8Array(rowStride);
|
|
173
|
+
const view = new DataView(payload.buffer);
|
|
174
|
+
for (const member of derived.numericMembers) {
|
|
175
|
+
writeNumeric(view, member, numericValue(member.name, material, schema));
|
|
176
|
+
}
|
|
177
|
+
for (const record of derived.coordinateRecords) {
|
|
178
|
+
const coordinates = material.textureCoordinates?.get(record.parameter);
|
|
179
|
+
const transform = coordinates?.transform;
|
|
180
|
+
writeVec4(view, record.offset, [
|
|
181
|
+
transform?.offset?.[0] ?? 0,
|
|
182
|
+
transform?.offset?.[1] ?? 0,
|
|
183
|
+
transform?.scale?.[0] ?? 1,
|
|
184
|
+
transform?.scale?.[1] ?? 1,
|
|
185
|
+
]);
|
|
186
|
+
writeVec4(view, record.offset + 16, [
|
|
187
|
+
coordinates?.set ?? 0,
|
|
188
|
+
transform?.rotation ?? 0,
|
|
189
|
+
coordinates?.physicalUvScale?.[0] ?? 1,
|
|
190
|
+
coordinates?.physicalUvScale?.[1] ?? 1,
|
|
191
|
+
]);
|
|
192
|
+
}
|
|
193
|
+
return payload;
|
|
194
|
+
}
|
package/src/pbr-pipeline.ts
CHANGED
|
@@ -444,6 +444,8 @@ export interface PbrCaps {
|
|
|
444
444
|
readonly probeBlend?: boolean;
|
|
445
445
|
/** Whether the device can carry the optional SpotLight projector texture. */
|
|
446
446
|
readonly projectorAvailable?: boolean;
|
|
447
|
+
/** Omit unused backdrop slots on minimum-limit devices; physical slots stay fixed. */
|
|
448
|
+
readonly transmissionBackdrop?: boolean;
|
|
447
449
|
}
|
|
448
450
|
|
|
449
451
|
/**
|
|
@@ -777,6 +779,7 @@ export function shadowCasterVariantSet(
|
|
|
777
779
|
skinned: boolean,
|
|
778
780
|
gpuDrivenSceneIndex = false,
|
|
779
781
|
alphaMask = false,
|
|
782
|
+
vertexColorAvailable = false,
|
|
780
783
|
): string {
|
|
781
784
|
const skinningDisabled = !skinned;
|
|
782
785
|
const defines: Record<string, boolean> = {
|
|
@@ -786,6 +789,7 @@ export function shadowCasterVariantSet(
|
|
|
786
789
|
SKINNING_DISABLED: skinningDisabled,
|
|
787
790
|
STORAGE_BUFFER_AVAILABLE: storageBuffer,
|
|
788
791
|
};
|
|
792
|
+
if (vertexColorAvailable) defines.VERTEX_COLOR_AVAILABLE = true;
|
|
789
793
|
return Object.entries(defines)
|
|
790
794
|
.sort(([left], [right]) => (left < right ? -1 : left > right ? 1 : 0))
|
|
791
795
|
.map(([name, value]) => `${name}=${String(value)}`)
|
|
@@ -1501,7 +1505,7 @@ export function buildBindGroupLayoutDescriptor(
|
|
|
1501
1505
|
const afterIbl = [...userRegion, ...appendInjection(userRegion, 'ibl')];
|
|
1502
1506
|
const afterTransmission = [...afterIbl, ...appendInjection(afterIbl, 'transmission')];
|
|
1503
1507
|
const merged = [
|
|
1504
|
-
...afterTransmission,
|
|
1508
|
+
...(options.caps?.transmissionBackdrop === false ? afterIbl : afterTransmission),
|
|
1505
1509
|
...appendTextureInjection(afterTransmission, physicalFields),
|
|
1506
1510
|
];
|
|
1507
1511
|
// Scene-index Standard variants consume one producer-owned material row
|
|
@@ -1516,7 +1520,14 @@ export function buildBindGroupLayoutDescriptor(
|
|
|
1516
1520
|
}
|
|
1517
1521
|
return {
|
|
1518
1522
|
label: 'pbr-material-skylight-bgl',
|
|
1519
|
-
entries:
|
|
1523
|
+
entries: [
|
|
1524
|
+
...merged,
|
|
1525
|
+
{
|
|
1526
|
+
binding: 47,
|
|
1527
|
+
visibility: GPU_SHADER_STAGE_FRAGMENT,
|
|
1528
|
+
texture: { sampleType: 'float', viewDimension: 'cube' },
|
|
1529
|
+
},
|
|
1530
|
+
],
|
|
1520
1531
|
};
|
|
1521
1532
|
}
|
|
1522
1533
|
case 'unlit-material': {
|