@aura3d/engine 4.5.0 → 4.6.0
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 +1 -0
- package/dist/animation/pose/BoneMask.d.ts +8 -0
- package/dist/animation/pose/BoneMask.d.ts.map +1 -1
- package/dist/animation/pose/BoneMask.js +18 -1
- package/dist/animation/pose/BoneMask.js.map +1 -1
- package/dist/animation/pose/PoseMixer.d.ts +18 -2
- package/dist/animation/pose/PoseMixer.d.ts.map +1 -1
- package/dist/animation/pose/PoseMixer.js +52 -4
- package/dist/animation/pose/PoseMixer.js.map +1 -1
- package/dist/animation/pose/RetargetWorker.d.ts +8 -1
- package/dist/animation/pose/RetargetWorker.d.ts.map +1 -1
- package/dist/animation/pose/RetargetWorker.js +30 -2
- package/dist/animation/pose/RetargetWorker.js.map +1 -1
- package/dist/aura3d-cli/index.d.ts +6 -0
- package/dist/aura3d-cli/index.d.ts.map +1 -1
- package/dist/aura3d-cli/index.js +28 -0
- package/dist/aura3d-cli/index.js.map +1 -1
- package/dist/create-aura3d/cli.js +22 -2
- package/dist/create-aura3d/cli.js.map +1 -1
- package/dist/create-aura3d/index.d.ts +11 -0
- package/dist/create-aura3d/index.d.ts.map +1 -1
- package/dist/create-aura3d/index.js +9 -2
- package/dist/create-aura3d/index.js.map +1 -1
- package/dist/create-aura3d/template-assets.d.ts +53 -0
- package/dist/create-aura3d/template-assets.d.ts.map +1 -0
- package/dist/create-aura3d/template-assets.js +116 -0
- package/dist/create-aura3d/template-assets.js.map +1 -0
- package/dist/engine/agent-api/Clock.d.ts +5 -2
- package/dist/engine/agent-api/Clock.d.ts.map +1 -1
- package/dist/engine/agent-api/Clock.js +9 -4
- package/dist/engine/agent-api/Clock.js.map +1 -1
- package/dist/engine/agent-api/animationMask.d.ts +14 -2
- package/dist/engine/agent-api/animationMask.d.ts.map +1 -1
- package/dist/engine/agent-api/animationMask.js +19 -4
- package/dist/engine/agent-api/animationMask.js.map +1 -1
- package/dist/engine/agent-api/app/actorAnimationHandle.d.ts.map +1 -1
- package/dist/engine/agent-api/app/actorAnimationHandle.js +7 -4
- package/dist/engine/agent-api/app/actorAnimationHandle.js.map +1 -1
- package/dist/engine/agent-api/app/canvas.d.ts +21 -0
- package/dist/engine/agent-api/app/canvas.d.ts.map +1 -1
- package/dist/engine/agent-api/app/canvas.js +119 -7
- package/dist/engine/agent-api/app/canvas.js.map +1 -1
- package/dist/engine/agent-api/app/createAuraApp.d.ts.map +1 -1
- package/dist/engine/agent-api/app/createAuraApp.js +104 -15
- package/dist/engine/agent-api/app/createAuraApp.js.map +1 -1
- package/dist/engine/agent-api/app/frameLoop.d.ts +13 -0
- package/dist/engine/agent-api/app/frameLoop.d.ts.map +1 -1
- package/dist/engine/agent-api/app/frameLoop.js +93 -12
- package/dist/engine/agent-api/app/frameLoop.js.map +1 -1
- package/dist/engine/agent-api/app/parentFit.d.ts +20 -2
- package/dist/engine/agent-api/app/parentFit.d.ts.map +1 -1
- package/dist/engine/agent-api/app/parentFit.js +13 -9
- package/dist/engine/agent-api/app/parentFit.js.map +1 -1
- package/dist/engine/agent-api/app/renderPath.d.ts +31 -2
- package/dist/engine/agent-api/app/renderPath.d.ts.map +1 -1
- package/dist/engine/agent-api/app/renderPath.js +128 -22
- package/dist/engine/agent-api/app/renderPath.js.map +1 -1
- package/dist/engine/agent-api/app/rendererOptions.d.ts +27 -4
- package/dist/engine/agent-api/app/rendererOptions.d.ts.map +1 -1
- package/dist/engine/agent-api/app/rendererOptions.js +63 -16
- package/dist/engine/agent-api/app/rendererOptions.js.map +1 -1
- package/dist/engine/agent-api/app/runtimeNodes.d.ts +2 -0
- package/dist/engine/agent-api/app/runtimeNodes.d.ts.map +1 -1
- package/dist/engine/agent-api/app/runtimeNodes.js +76 -2
- package/dist/engine/agent-api/app/runtimeNodes.js.map +1 -1
- package/dist/engine/agent-api/compiler/animation.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/animation.js +4 -3
- package/dist/engine/agent-api/compiler/animation.js.map +1 -1
- package/dist/engine/agent-api/compiler/compileScene.d.ts +21 -5
- package/dist/engine/agent-api/compiler/compileScene.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/compileScene.js +103 -11
- package/dist/engine/agent-api/compiler/compileScene.js.map +1 -1
- package/dist/engine/agent-api/compiler/contactShadowKey.d.ts +14 -0
- package/dist/engine/agent-api/compiler/contactShadowKey.d.ts.map +1 -0
- package/dist/engine/agent-api/compiler/contactShadowKey.js +66 -0
- package/dist/engine/agent-api/compiler/contactShadowKey.js.map +1 -0
- package/dist/engine/agent-api/compiler/environment.d.ts +37 -0
- package/dist/engine/agent-api/compiler/environment.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/environment.js +129 -11
- package/dist/engine/agent-api/compiler/environment.js.map +1 -1
- package/dist/engine/agent-api/compiler/mountedRoots.d.ts +6 -0
- package/dist/engine/agent-api/compiler/mountedRoots.d.ts.map +1 -0
- package/dist/engine/agent-api/compiler/mountedRoots.js +25 -0
- package/dist/engine/agent-api/compiler/mountedRoots.js.map +1 -0
- package/dist/engine/agent-api/compiler/primitives.d.ts +13 -1
- package/dist/engine/agent-api/compiler/primitives.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/primitives.js +28 -3
- package/dist/engine/agent-api/compiler/primitives.js.map +1 -1
- package/dist/engine/agent-api/compiler/renderer.d.ts +5 -3
- package/dist/engine/agent-api/compiler/renderer.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/renderer.js +33 -7
- package/dist/engine/agent-api/compiler/renderer.js.map +1 -1
- package/dist/engine/agent-api/compiler/shadows.d.ts +4 -1
- package/dist/engine/agent-api/compiler/shadows.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/shadows.js +6 -2
- package/dist/engine/agent-api/compiler/shadows.js.map +1 -1
- package/dist/engine/agent-api/nodes/instances.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/instances.js +16 -4
- package/dist/engine/agent-api/nodes/instances.js.map +1 -1
- package/dist/engine/agent-api/nodes/model.d.ts +15 -0
- package/dist/engine/agent-api/nodes/model.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/model.js +37 -0
- package/dist/engine/agent-api/nodes/model.js.map +1 -1
- package/dist/engine/agent-api/nodes/physics.d.ts +25 -0
- package/dist/engine/agent-api/nodes/physics.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/physics.js +107 -11
- package/dist/engine/agent-api/nodes/physics.js.map +1 -1
- package/dist/engine/agent-api/nodes/primitives.d.ts +16 -1
- package/dist/engine/agent-api/nodes/primitives.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/primitives.js +11 -8
- package/dist/engine/agent-api/nodes/primitives.js.map +1 -1
- package/dist/engine/agent-api/nodes/types/runtime.d.ts +5 -0
- package/dist/engine/agent-api/nodes/types/runtime.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/types.d.ts +2 -0
- package/dist/engine/agent-api/nodes/types.d.ts.map +1 -1
- package/dist/engine/contracts/environment.d.ts +9 -0
- package/dist/engine/contracts/environment.d.ts.map +1 -1
- package/dist/engine/contracts/environment.js.map +1 -1
- package/dist/engine/contracts/lighting.d.ts +3 -0
- package/dist/engine/contracts/lighting.d.ts.map +1 -1
- package/dist/engine/contracts/lighting.js.map +1 -1
- package/dist/engine/lanes/prd02.d.ts +12 -4
- package/dist/engine/lanes/prd02.d.ts.map +1 -1
- package/dist/engine/lanes/prd02.js +23 -7
- package/dist/engine/lanes/prd02.js.map +1 -1
- package/dist/game/touch/TouchControls.d.ts.map +1 -1
- package/dist/game/touch/TouchControls.js +48 -12
- package/dist/game/touch/TouchControls.js.map +1 -1
- package/dist/react/index.d.ts +13 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +88 -8
- package/dist/react/index.js.map +1 -1
- package/dist/rendering/DepthPass.d.ts +7 -0
- package/dist/rendering/DepthPass.d.ts.map +1 -1
- package/dist/rendering/DepthPass.js +40 -4
- package/dist/rendering/DepthPass.js.map +1 -1
- package/dist/rendering/ForwardPass.d.ts +69 -5
- package/dist/rendering/ForwardPass.d.ts.map +1 -1
- package/dist/rendering/ForwardPass.js +119 -27
- package/dist/rendering/ForwardPass.js.map +1 -1
- package/dist/rendering/RenderDevice.d.ts +5 -0
- package/dist/rendering/RenderDevice.d.ts.map +1 -1
- package/dist/rendering/RenderDevice.js.map +1 -1
- package/dist/rendering/RendererPostprocessPlan.d.ts.map +1 -1
- package/dist/rendering/RendererPostprocessPlan.js +8 -1
- package/dist/rendering/RendererPostprocessPlan.js.map +1 -1
- package/dist/rendering/WebGL2Device.d.ts +3 -0
- package/dist/rendering/WebGL2Device.d.ts.map +1 -1
- package/dist/rendering/WebGL2Device.js +20 -0
- package/dist/rendering/WebGL2Device.js.map +1 -1
- package/dist/rendering/forward/Lighting.d.ts +32 -0
- package/dist/rendering/forward/Lighting.d.ts.map +1 -1
- package/dist/rendering/forward/Lighting.js +103 -3
- package/dist/rendering/forward/Lighting.js.map +1 -1
- package/dist/rendering/index.d.ts +2 -2
- package/dist/rendering/index.d.ts.map +1 -1
- package/dist/rendering/index.js +1 -1
- package/dist/rendering/index.js.map +1 -1
- package/dist/rendering/post/v2Stages.d.ts.map +1 -1
- package/dist/rendering/post/v2Stages.js +2 -0
- package/dist/rendering/post/v2Stages.js.map +1 -1
- package/dist/rendering/quality/DirectPath.d.ts +13 -0
- package/dist/rendering/quality/DirectPath.d.ts.map +1 -1
- package/dist/rendering/quality/DirectPath.js +33 -1
- package/dist/rendering/quality/DirectPath.js.map +1 -1
- package/dist/rendering/renderer/Background.d.ts.map +1 -1
- package/dist/rendering/renderer/Background.js +31 -2
- package/dist/rendering/renderer/Background.js.map +1 -1
- package/dist/rendering/renderer/InstanceFrustumCull.d.ts +5 -3
- package/dist/rendering/renderer/InstanceFrustumCull.d.ts.map +1 -1
- package/dist/rendering/renderer/InstanceFrustumCull.js +17 -6
- package/dist/rendering/renderer/InstanceFrustumCull.js.map +1 -1
- package/dist/rendering/shaders/chunks/lighting_ibl.glsl.d.ts +6 -1
- package/dist/rendering/shaders/chunks/lighting_ibl.glsl.d.ts.map +1 -1
- package/dist/rendering/shaders/chunks/lighting_ibl.glsl.js +8 -2
- package/dist/rendering/shaders/chunks/lighting_ibl.glsl.js.map +1 -1
- package/dist/rendering/shadows/CascadeUse.d.ts +3 -0
- package/dist/rendering/shadows/CascadeUse.d.ts.map +1 -1
- package/dist/rendering/shadows/CascadeUse.js +16 -1
- package/dist/rendering/shadows/CascadeUse.js.map +1 -1
- package/dist/rendering/shadows/Prd02ShadowsContributor.d.ts +4 -0
- package/dist/rendering/shadows/Prd02ShadowsContributor.d.ts.map +1 -1
- package/dist/rendering/shadows/Prd02ShadowsContributor.js +3 -1
- package/dist/rendering/shadows/Prd02ShadowsContributor.js.map +1 -1
- package/dist/rendering/webgl2/ContextLifecycle.d.ts.map +1 -1
- package/dist/rendering/webgl2/ContextLifecycle.js +14 -2
- package/dist/rendering/webgl2/ContextLifecycle.js.map +1 -1
- package/dist/rendering/webgl2/MultiDraw.d.ts +2 -0
- package/dist/rendering/webgl2/MultiDraw.d.ts.map +1 -1
- package/dist/rendering/webgl2/MultiDraw.js +24 -6
- package/dist/rendering/webgl2/MultiDraw.js.map +1 -1
- package/package.json +25 -25
- package/templates/cinematic-scene/package.json +2 -2
- package/templates/mini-game/package.json +2 -2
- package/templates/product-viewer/package.json +2 -2
- package/templates/production-asset-inspector/package.json +1 -1
- package/templates/production-material-studio/package.json +1 -1
- package/templates/production-product-configurator/package.json +1 -1
- package/templates/production-product-viewer/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// beat-three.js L-P1: pick the render path for one mount (direct canvas MSAA vs HDR multisampled target).
|
|
2
|
-
import { isQualityMode, qrCoreOutputOn, resolveBloomFusionConfig, resolveRenderPath, withDirectPath } from "../../../rendering/index.js";
|
|
2
|
+
import { directPathItemBlockers, isQualityMode, qrCoreOutputOn, resolveBloomFusionConfig, resolveRenderPath, withDirectPath } from "../../../rendering/index.js";
|
|
3
3
|
import { groups } from "../nodes/groups.js";
|
|
4
|
-
import { parseBloomFusionOption } from "./rendererOptions.js";
|
|
4
|
+
import { ignoreInvalidUrlValue, parseBloomFusionOption } from "./rendererOptions.js";
|
|
5
5
|
/** Fusion is allowed only under quality `auto` or `cinematic`; the mount (`applyRenderPathToCanvas`) and the report both use this. */
|
|
6
6
|
export function bloomFusionAllowed(quality) {
|
|
7
7
|
return quality === "auto" || quality === "cinematic";
|
|
@@ -11,8 +11,8 @@ export function bloomFusionAllowed(quality) {
|
|
|
11
11
|
* effect (the only source of a bloom pass), so every other combination reports `"off"`. The option is validated first so a
|
|
12
12
|
* typo throws whatever the quality.
|
|
13
13
|
*/
|
|
14
|
-
function reportedBloomFusion(quality, path, legacyLdrRoute, snapshot, options) {
|
|
15
|
-
const mode = parseBloomFusionOption(options.renderer);
|
|
14
|
+
function reportedBloomFusion(quality, path, legacyLdrRoute, snapshot, options, search, policy) {
|
|
15
|
+
const mode = parseBloomFusionOption(options.renderer, search, policy);
|
|
16
16
|
if (!bloomFusionAllowed(quality) || path !== "hdr-msaa" || legacyLdrRoute)
|
|
17
17
|
return "off";
|
|
18
18
|
const hasBloom = groups.flatten(snapshot.nodes).some((node) => node.kind === "effect" && node.effect === "bloom");
|
|
@@ -55,6 +55,61 @@ export function configureBloomFusionDevice(device, canvas, rendererOptions) {
|
|
|
55
55
|
export function isDirectRenderPath(canvas) {
|
|
56
56
|
return canvas !== undefined && directPathCanvases.has(canvas);
|
|
57
57
|
}
|
|
58
|
+
/*
|
|
59
|
+
* RP-01 / RP-03: reasons, found after the path was chosen, why this canvas must leave the direct path. The direct-path decision
|
|
60
|
+
* reads the authored snapshot, so it cannot see a GLB's own BLEND or transmission materials (known only once decoded) or a custom
|
|
61
|
+
* post pass registered after mount. Each mount on the canvas reads these as extra blockers, so the re-mount takes the HDR target.
|
|
62
|
+
*/
|
|
63
|
+
const directPathVetoes = new WeakMap();
|
|
64
|
+
/** Add a reason that keeps `canvas` off the direct path; returns a release function (reference counted per reason). */
|
|
65
|
+
export function vetoDirectPath(canvas, reason) {
|
|
66
|
+
let reasons = directPathVetoes.get(canvas);
|
|
67
|
+
if (!reasons)
|
|
68
|
+
directPathVetoes.set(canvas, (reasons = new Map()));
|
|
69
|
+
reasons.set(reason, (reasons.get(reason) ?? 0) + 1);
|
|
70
|
+
let released = false;
|
|
71
|
+
return () => {
|
|
72
|
+
if (released)
|
|
73
|
+
return;
|
|
74
|
+
released = true;
|
|
75
|
+
const count = (reasons.get(reason) ?? 1) - 1;
|
|
76
|
+
if (count > 0)
|
|
77
|
+
reasons.set(reason, count);
|
|
78
|
+
else
|
|
79
|
+
reasons.delete(reason);
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
export function directPathVetoReasons(canvas) {
|
|
83
|
+
return canvas === undefined ? [] : [...(directPathVetoes.get(canvas)?.keys() ?? [])];
|
|
84
|
+
}
|
|
85
|
+
/** RP-01: decoded-material blockers of a mounted scene's GLB actors (their render items at the default placement). */
|
|
86
|
+
export function decodedModelDirectPathBlockers(actors) {
|
|
87
|
+
if (actors.length === 0)
|
|
88
|
+
return [];
|
|
89
|
+
const items = [];
|
|
90
|
+
for (const entry of actors) {
|
|
91
|
+
try {
|
|
92
|
+
items.push(...entry.actor.collectRenderItems());
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
// An actor that cannot collect here is not evidence either way; the frame loop reports its own errors.
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return directPathItemBlockers(items);
|
|
99
|
+
}
|
|
100
|
+
const decodedBlockers = new WeakMap();
|
|
101
|
+
/** Called by the mount once its GLBs are decoded (direct path only); read once by the frame loop through {@link takeDecodedDirectPathBlockers}. */
|
|
102
|
+
export function recordDecodedDirectPathBlockers(canvas, blockers) {
|
|
103
|
+
if (blockers.length > 0)
|
|
104
|
+
decodedBlockers.set(canvas, blockers);
|
|
105
|
+
else
|
|
106
|
+
decodedBlockers.delete(canvas);
|
|
107
|
+
}
|
|
108
|
+
export function takeDecodedDirectPathBlockers(canvas) {
|
|
109
|
+
const blockers = decodedBlockers.get(canvas) ?? [];
|
|
110
|
+
decodedBlockers.delete(canvas);
|
|
111
|
+
return blockers;
|
|
112
|
+
}
|
|
58
113
|
/** Effects the forward pass draws itself; every other effect is a post pass or a frame contributor that reads the HDR target. */
|
|
59
114
|
const FORWARD_ONLY_EFFECTS = new Set(["fog"]);
|
|
60
115
|
const DIRECT_SAFE_NODE_KINDS = new Set(["model", "primitive", "group", "light", "environment", "interaction", "label"]);
|
|
@@ -69,6 +124,21 @@ export function renderPathBlockers(snapshot, options) {
|
|
|
69
124
|
blockers.push("URL tone-mapping or exposure override");
|
|
70
125
|
if (snapshot.backgroundToneMapped === false)
|
|
71
126
|
blockers.push("background opts out of tone mapping");
|
|
127
|
+
// RP-02: the background-image shader encodes with its own ACES fit (Narkowicz), not the r185 curve the direct path's forward
|
|
128
|
+
// shader uses, so on the direct path the backdrop and the scene would be tone-mapped differently (linear 0.18 grey: 141 vs 127).
|
|
129
|
+
if (snapshot.backgroundImage !== undefined)
|
|
130
|
+
blockers.push("background image");
|
|
131
|
+
for (const reason of nodeDirectPathBlockers(snapshot.nodes))
|
|
132
|
+
blockers.push(reason);
|
|
133
|
+
return blockers;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* The node-level part of {@link renderPathBlockers}: effects other than fog, node kinds the direct path does not draw, HDRI
|
|
137
|
+
* environments, and custom, transmissive or transparent materials (authored, from the asset manifest, or overrides). Also used for
|
|
138
|
+
* nodes added at runtime (RP-03).
|
|
139
|
+
*/
|
|
140
|
+
export function nodeDirectPathBlockers(nodes) {
|
|
141
|
+
const blockers = [];
|
|
72
142
|
const seen = new Set();
|
|
73
143
|
const note = (message) => {
|
|
74
144
|
if (seen.has(message))
|
|
@@ -76,7 +146,7 @@ export function renderPathBlockers(snapshot, options) {
|
|
|
76
146
|
seen.add(message);
|
|
77
147
|
blockers.push(message);
|
|
78
148
|
};
|
|
79
|
-
for (const node of groups.flatten(
|
|
149
|
+
for (const node of groups.flatten(nodes)) {
|
|
80
150
|
if (node.kind === "effect") {
|
|
81
151
|
if (!FORWARD_ONLY_EFFECTS.has(node.effect))
|
|
82
152
|
note(`effect "${node.effect}"`);
|
|
@@ -91,6 +161,9 @@ export function renderPathBlockers(snapshot, options) {
|
|
|
91
161
|
note("hdri environment");
|
|
92
162
|
if (node.kind !== "model" && node.kind !== "primitive")
|
|
93
163
|
continue;
|
|
164
|
+
if (node.kind === "model")
|
|
165
|
+
for (const reason of modelAssetBlockers(node))
|
|
166
|
+
note(reason);
|
|
94
167
|
const material = node.material;
|
|
95
168
|
if (!material)
|
|
96
169
|
continue;
|
|
@@ -106,41 +179,74 @@ export function renderPathBlockers(snapshot, options) {
|
|
|
106
179
|
}
|
|
107
180
|
return blockers;
|
|
108
181
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
182
|
+
/**
|
|
183
|
+
* RP-01: material facts the asset manifest records for a typed GLB (`metadata.materialMetadata`, written by `aura3d assets add`
|
|
184
|
+
* and `assets typegen`), plus `materialOverrides` opacity. A BLEND or partly transparent material blends after the in-shader encode
|
|
185
|
+
* on the direct path. Transmission is not in the manifest; the mount catches it after decode (`decodedModelDirectPathBlockers`).
|
|
186
|
+
*/
|
|
187
|
+
function modelAssetBlockers(node) {
|
|
188
|
+
const reasons = [];
|
|
189
|
+
const facts = node.asset?.metadata?.materialMetadata;
|
|
190
|
+
if (Array.isArray(facts)) {
|
|
191
|
+
const transparent = facts.some((fact) => fact !== null && typeof fact === "object"
|
|
192
|
+
// glTF ignores base-colour alpha on OPAQUE and MASK materials, so opacity counts only when no alpha mode was recorded.
|
|
193
|
+
&& (typeof fact.alphaMode === "string" ? fact.alphaMode.toUpperCase() === "BLEND" : typeof fact.opacity === "number" && fact.opacity < 1));
|
|
194
|
+
if (transparent)
|
|
195
|
+
reasons.push("model asset has a transparent (BLEND) material");
|
|
116
196
|
}
|
|
197
|
+
if (node.materialOverrides?.some((override) => typeof override.opacity === "number" && override.opacity < 1))
|
|
198
|
+
reasons.push("transparent material override");
|
|
199
|
+
return reasons;
|
|
200
|
+
}
|
|
201
|
+
function requestedQuality(options, search, policy) {
|
|
202
|
+
let fromOptions;
|
|
117
203
|
if (options.quality !== undefined) {
|
|
118
204
|
if (!isQualityMode(options.quality)) {
|
|
119
205
|
throw new Error(`QUALITY_OPTION_INVALID:quality=${String(options.quality)} (expected auto|production|safe-basic|cinematic)`);
|
|
120
206
|
}
|
|
121
|
-
|
|
207
|
+
fromOptions = options.quality;
|
|
208
|
+
}
|
|
209
|
+
// `?aura3d-render=<mode>` wins over the option (like `?aura3d-quality=`): compare a page's two render paths without a rebuild.
|
|
210
|
+
// RP-04: a typo there warns and keeps the code option (strict apps still throw).
|
|
211
|
+
const fromUrl = search ? new URLSearchParams(search).get("aura3d-render") : null;
|
|
212
|
+
if (fromUrl !== null) {
|
|
213
|
+
if (isQualityMode(fromUrl))
|
|
214
|
+
return fromUrl;
|
|
215
|
+
ignoreInvalidUrlValue(`?aura3d-render=${fromUrl} (expected auto|production|safe-basic|cinematic); using "${fromOptions ?? "auto"}"`, policy);
|
|
122
216
|
}
|
|
123
217
|
// `renderer.qualityProfile` is a deprecated pixel-ratio/draw-budget preset, not a pipeline request.
|
|
124
|
-
return
|
|
218
|
+
return fromOptions;
|
|
125
219
|
}
|
|
126
|
-
export function resolveAppRenderPath(snapshot, options, flags) {
|
|
127
|
-
const
|
|
220
|
+
export function resolveAppRenderPath(snapshot, options, flags, context = {}) {
|
|
221
|
+
const search = context.search !== undefined ? context.search : typeof location !== "undefined" ? location.search : null;
|
|
222
|
+
const warnings = [];
|
|
223
|
+
const policy = { strict: options.strict ?? flags.on("A3D_QR_STRICT"), warnings };
|
|
224
|
+
const quality = requestedQuality(options, search, policy) ?? "auto";
|
|
128
225
|
if (!qrCoreOutputOn(flags)) {
|
|
129
226
|
const explicit = flags.values.A3D_QR_CORE_OUTPUT !== undefined;
|
|
130
227
|
return {
|
|
131
|
-
report: { path: "direct", quality, reason: explicit ? "A3D_QR_CORE_OUTPUT is off: legacy LDR route" : "A3D_QR_CORE is off: legacy LDR route (its own post chain is kept)", bloomFusion: reportedBloomFusion(quality, "direct", true, snapshot, options) },
|
|
228
|
+
report: { path: "direct", quality, reason: explicit ? "A3D_QR_CORE_OUTPUT is off: legacy LDR route" : "A3D_QR_CORE is off: legacy LDR route (its own post chain is kept)", bloomFusion: reportedBloomFusion(quality, "direct", true, snapshot, options, search, policy) },
|
|
132
229
|
flags,
|
|
133
|
-
direct: false
|
|
230
|
+
direct: false,
|
|
231
|
+
warnings
|
|
134
232
|
};
|
|
135
233
|
}
|
|
136
234
|
if (flags.values.A3D_QR_CORE_OUTPUT !== undefined) {
|
|
137
|
-
return { report: { path: "hdr-msaa", quality, reason: "A3D_QR_CORE_OUTPUT is set explicitly", bloomFusion: reportedBloomFusion(quality, "hdr-msaa", false, snapshot, options) }, flags, direct: false };
|
|
235
|
+
return { report: { path: "hdr-msaa", quality, reason: "A3D_QR_CORE_OUTPUT is set explicitly", bloomFusion: reportedBloomFusion(quality, "hdr-msaa", false, snapshot, options, search, policy) }, flags, direct: false, warnings };
|
|
236
|
+
}
|
|
237
|
+
// RP-06: blockers are computed for safe-basic too, so what it does not render is named instead of dropped silently.
|
|
238
|
+
const blockers = quality === "auto" || quality === "safe-basic"
|
|
239
|
+
? [...new Set([...renderPathBlockers(snapshot, options), ...(context.extraBlockers ?? [])])]
|
|
240
|
+
: [];
|
|
241
|
+
const decision = resolveRenderPath({ quality, blockers });
|
|
242
|
+
if (quality === "safe-basic" && blockers.length > 0) {
|
|
243
|
+
warnings.push(`SAFE_BASIC_DROPS: quality "safe-basic" renders on the direct path, which has no post chain or HDR target, so these are not rendered: ${blockers.join("; ")}. Use quality "auto" or "production" to keep them.`);
|
|
138
244
|
}
|
|
139
|
-
const decision = resolveRenderPath({ quality, blockers: quality === "auto" ? renderPathBlockers(snapshot, options) : [] });
|
|
140
245
|
return {
|
|
141
|
-
report: { path: decision.path, quality: decision.quality, reason: decision.reason, bloomFusion: reportedBloomFusion(decision.quality, decision.path, false, snapshot, options) },
|
|
246
|
+
report: { path: decision.path, quality: decision.quality, reason: decision.reason, bloomFusion: reportedBloomFusion(decision.quality, decision.path, false, snapshot, options, search, policy) },
|
|
142
247
|
flags: decision.path === "direct" ? withDirectPath(flags) : flags,
|
|
143
|
-
direct: decision.path === "direct"
|
|
248
|
+
direct: decision.path === "direct",
|
|
249
|
+
warnings
|
|
144
250
|
};
|
|
145
251
|
}
|
|
146
252
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderPath.js","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/app/renderPath.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"renderPath.js","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/app/renderPath.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,11 +42,34 @@ export declare function resetRendererOptionDeprecationsForTests(): void;
|
|
|
42
42
|
*/
|
|
43
43
|
export declare function parseQualityRendererOptions(renderer: AuraCreateAppRendererOptions | undefined, search?: string | null, root?: {
|
|
44
44
|
readonly performanceQuality?: unknown;
|
|
45
|
-
}): ParsedQualityRendererOptions;
|
|
45
|
+
}, urlPolicy?: Pick<UrlOptionPolicy, "strict">): ParsedQualityRendererOptions;
|
|
46
|
+
/** How URL-sourced debug switches behave on an invalid value (RP-04). */
|
|
47
|
+
export interface UrlOptionPolicy {
|
|
48
|
+
/** Throw on an invalid URL value, like an invalid code option. Default false: warn and fall back. */
|
|
49
|
+
readonly strict?: boolean;
|
|
50
|
+
/** Receives one `QUALITY_URL_IGNORED:` message per ignored URL value. */
|
|
51
|
+
readonly warnings?: string[];
|
|
52
|
+
/** Also `console.warn` the message (once per message). Default true; false when the caller prints `warnings` itself. */
|
|
53
|
+
readonly console?: boolean;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* RP-04: a typo in a debug URL switch (`?aura3d-render=`, `?aura3d-bloom-fusion=`, `?aura3d-quality=`, `?aura3d-adaptive=`) used to
|
|
57
|
+
* throw inside the mount, so every game showed its "needs WebGL 2" error screen. URL values are a tester's switch, not code: warn
|
|
58
|
+
* once (console and `diagnostics().warnings`) and keep the code option or default. Strict apps keep the throw.
|
|
59
|
+
*/
|
|
60
|
+
export declare function ignoreInvalidUrlValue(message: string, policy: UrlOptionPolicy | undefined): void;
|
|
46
61
|
/**
|
|
47
62
|
* Bloom pass-fusion mode (PRD beat-threejs-2 contract 2.1): `renderer.bloomFusion` (`"separable"` default | `"fused-2d"`),
|
|
48
|
-
* overridden by `?aura3d-bloom-fusion=`.
|
|
49
|
-
*
|
|
63
|
+
* overridden by `?aura3d-bloom-fusion=`. An invalid code option throws so a typo never silently runs the default; an invalid URL
|
|
64
|
+
* value warns and falls back to the code option (RP-04) unless `policy.strict`. The mode only takes effect under
|
|
65
|
+
* `quality: "auto"` / `"cinematic"`; `production` never fuses.
|
|
66
|
+
*/
|
|
67
|
+
export declare function parseBloomFusionOption(renderer: Pick<AuraCreateAppRendererOptions, "bloomFusion"> | undefined, search?: string | null, policy?: UrlOptionPolicy): AuraBloomFusion;
|
|
68
|
+
/**
|
|
69
|
+
* Top-tennis C11 (engine part): `renderer.quality` diagnostics, reported in `diagnostics().warnings` (not the console, since the
|
|
70
|
+
* string form is valid). A tier-name string is a fixed tier: every device, phones included, mounts at that tier, which a reader
|
|
71
|
+
* of `renderer: { quality: "high" }` easily takes for a no-op or for "best available". An unknown name used to mount at "high"
|
|
72
|
+
* with no message while the quality lane is off.
|
|
50
73
|
*/
|
|
51
|
-
export declare function
|
|
74
|
+
export declare function rendererQualityWarnings(renderer: Pick<AuraCreateAppRendererOptions, "quality"> | undefined): string[];
|
|
52
75
|
//# sourceMappingURL=rendererOptions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rendererOptions.d.ts","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/app/rendererOptions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,4BAA4B,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AAC3J,OAAO,EAA4C,KAAK,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE7G;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,IAAI,EAAG,oBAAoB,CAAU;gBAElC,OAAO,EAAE,MAAM;CAI5B;AAED,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,MAAM,CAAC,aAAa,GAAG,YAAY,EAAE,yBAAyB,CAAC,CAqB5G,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,4BAA4B,EAAE,0BAA0B,CAAC,CA6D9G,CAAC;AAEF,wBAAgB,6BAA6B,CAAC,EAAE,EAAE,4BAA4B,GAAG,SAAS,GAAG,0BAA0B,CAOtH;AAED,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,4BAA4B,GAAG,SAAS,GAAG,QAAQ,CAAC,4BAA4B,CAAC,GAAG;IAC7I,QAAQ,CAAC,OAAO,EAAE,0BAA0B,CAAC;CAC9C,CAYA;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAM7E;AAQD,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAEtE,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,SAAS,EAAE,mBAAmB,GAAG,MAAM,CAAC;IACjD,6EAA6E;IAC7E,QAAQ,CAAC,eAAe,EAAE,KAAK,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAClE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,+CAA+C;IAC/C,QAAQ,CAAC,cAAc,EAAE,KAAK,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;IACpC,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAiBD,kFAAkF;AAClF,wBAAgB,uCAAuC,IAAI,IAAI,
|
|
1
|
+
{"version":3,"file":"rendererOptions.d.ts","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/app/rendererOptions.ts"],"names":[],"mappings":"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"}
|
|
@@ -141,6 +141,7 @@ function deprecation(id, message, out) {
|
|
|
141
141
|
/** Test seam: forget which one-time deprecation warnings were already emitted. */
|
|
142
142
|
export function resetRendererOptionDeprecationsForTests() {
|
|
143
143
|
warnedDeprecations.clear();
|
|
144
|
+
warnedUrlValues.clear();
|
|
144
145
|
}
|
|
145
146
|
/**
|
|
146
147
|
* Parse `renderer.quality` (tier string or `{ tier, overrides }`),
|
|
@@ -150,7 +151,7 @@ export function resetRendererOptionDeprecationsForTests() {
|
|
|
150
151
|
* `source: "url"`). `qualityProfile` and root `performanceQuality` stay
|
|
151
152
|
* accepted and emit a one-time deprecation warning pointing at `quality`.
|
|
152
153
|
*/
|
|
153
|
-
export function parseQualityRendererOptions(renderer, search = typeof location !== "undefined" ? location.search : null, root = {}) {
|
|
154
|
+
export function parseQualityRendererOptions(renderer, search = typeof location !== "undefined" ? location.search : null, root = {}, urlPolicy) {
|
|
154
155
|
const warnings = [];
|
|
155
156
|
const quality = renderer?.quality;
|
|
156
157
|
let requested;
|
|
@@ -186,16 +187,24 @@ export function parseQualityRendererOptions(renderer, search = typeof location !
|
|
|
186
187
|
const params = new URLSearchParams(search);
|
|
187
188
|
const urlTier = params.get("aura3d-quality");
|
|
188
189
|
if (urlTier !== null) {
|
|
189
|
-
|
|
190
|
-
|
|
190
|
+
// RP-04: a URL typo warns and keeps the code option (strict apps still throw).
|
|
191
|
+
if (urlTier === "auto" || QUALITY_TIER_NAMES.includes(urlTier)) {
|
|
192
|
+
requested = urlTier;
|
|
193
|
+
requestedSource = "url";
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
ignoreInvalidUrlValue(`?aura3d-quality=${urlTier} (expected low|medium|high|ultra|auto); using "${requested}"`, { strict: urlPolicy?.strict, warnings, console: false });
|
|
197
|
+
}
|
|
191
198
|
}
|
|
192
199
|
const urlAdaptive = params.get("aura3d-adaptive");
|
|
193
200
|
if (urlAdaptive !== null) {
|
|
194
|
-
if (urlAdaptive
|
|
195
|
-
|
|
201
|
+
if (urlAdaptive === "0" || urlAdaptive === "1") {
|
|
202
|
+
adaptive = urlAdaptive === "1";
|
|
203
|
+
adaptiveSource = "url";
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
ignoreInvalidUrlValue(`?aura3d-adaptive=${urlAdaptive} (expected 0|1); using ${adaptive ? "1" : "0"}`, { strict: urlPolicy?.strict, warnings, console: false });
|
|
196
207
|
}
|
|
197
|
-
adaptive = urlAdaptive === "1";
|
|
198
|
-
adaptiveSource = "url";
|
|
199
208
|
}
|
|
200
209
|
}
|
|
201
210
|
if (renderer?.qualityProfile !== undefined) {
|
|
@@ -206,23 +215,61 @@ export function parseQualityRendererOptions(renderer, search = typeof location !
|
|
|
206
215
|
}
|
|
207
216
|
return { requested, requestedSource, overrides, adaptive, adaptiveSource, targetFrameRate, batching, warnings };
|
|
208
217
|
}
|
|
218
|
+
const warnedUrlValues = new Set();
|
|
219
|
+
/**
|
|
220
|
+
* RP-04: a typo in a debug URL switch (`?aura3d-render=`, `?aura3d-bloom-fusion=`, `?aura3d-quality=`, `?aura3d-adaptive=`) used to
|
|
221
|
+
* throw inside the mount, so every game showed its "needs WebGL 2" error screen. URL values are a tester's switch, not code: warn
|
|
222
|
+
* once (console and `diagnostics().warnings`) and keep the code option or default. Strict apps keep the throw.
|
|
223
|
+
*/
|
|
224
|
+
export function ignoreInvalidUrlValue(message, policy) {
|
|
225
|
+
if (policy?.strict)
|
|
226
|
+
throw new Error(`QUALITY_OPTION_INVALID:${message}`);
|
|
227
|
+
const warning = `QUALITY_URL_IGNORED: ${message}`;
|
|
228
|
+
policy?.warnings?.push(warning);
|
|
229
|
+
if (policy?.console !== false && !warnedUrlValues.has(warning)) {
|
|
230
|
+
warnedUrlValues.add(warning);
|
|
231
|
+
if (typeof console !== "undefined")
|
|
232
|
+
console.warn(`[aura3d] ${warning}`);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
209
235
|
/**
|
|
210
236
|
* Bloom pass-fusion mode (PRD beat-threejs-2 contract 2.1): `renderer.bloomFusion` (`"separable"` default | `"fused-2d"`),
|
|
211
|
-
* overridden by `?aura3d-bloom-fusion=`.
|
|
212
|
-
*
|
|
237
|
+
* overridden by `?aura3d-bloom-fusion=`. An invalid code option throws so a typo never silently runs the default; an invalid URL
|
|
238
|
+
* value warns and falls back to the code option (RP-04) unless `policy.strict`. The mode only takes effect under
|
|
239
|
+
* `quality: "auto"` / `"cinematic"`; `production` never fuses.
|
|
213
240
|
*/
|
|
214
|
-
export function parseBloomFusionOption(renderer, search = typeof location !== "undefined" ? location.search : null) {
|
|
215
|
-
|
|
216
|
-
|
|
241
|
+
export function parseBloomFusionOption(renderer, search = typeof location !== "undefined" ? location.search : null, policy) {
|
|
242
|
+
const mode = renderer?.bloomFusion ?? DEFAULT_BLOOM_FUSION_MODE;
|
|
243
|
+
if (!isBloomFusion(mode))
|
|
244
|
+
throw new Error(`QUALITY_OPTION_INVALID:renderer.bloomFusion=${String(mode)} (expected separable|fused-2d)`);
|
|
217
245
|
if (search) {
|
|
218
246
|
const fromUrl = new URLSearchParams(search).get("aura3d-bloom-fusion");
|
|
219
247
|
if (fromUrl !== null) {
|
|
220
|
-
|
|
221
|
-
|
|
248
|
+
if (isBloomFusion(fromUrl))
|
|
249
|
+
return fromUrl;
|
|
250
|
+
ignoreInvalidUrlValue(`?aura3d-bloom-fusion=${fromUrl} (expected separable|fused-2d); using "${mode}"`, policy);
|
|
222
251
|
}
|
|
223
252
|
}
|
|
224
|
-
if (!isBloomFusion(mode))
|
|
225
|
-
throw new Error(`QUALITY_OPTION_INVALID:${where}=${String(mode)} (expected separable|fused-2d)`);
|
|
226
253
|
return mode;
|
|
227
254
|
}
|
|
255
|
+
/**
|
|
256
|
+
* Top-tennis C11 (engine part): `renderer.quality` diagnostics, reported in `diagnostics().warnings` (not the console, since the
|
|
257
|
+
* string form is valid). A tier-name string is a fixed tier: every device, phones included, mounts at that tier, which a reader
|
|
258
|
+
* of `renderer: { quality: "high" }` easily takes for a no-op or for "best available". An unknown name used to mount at "high"
|
|
259
|
+
* with no message while the quality lane is off.
|
|
260
|
+
*/
|
|
261
|
+
export function rendererQualityWarnings(renderer) {
|
|
262
|
+
const quality = renderer?.quality;
|
|
263
|
+
if (quality === undefined || quality === "auto")
|
|
264
|
+
return [];
|
|
265
|
+
const tier = typeof quality === "string" ? quality : quality !== null && typeof quality === "object" ? quality.tier : quality;
|
|
266
|
+
if (tier === undefined || tier === "auto")
|
|
267
|
+
return [];
|
|
268
|
+
if (typeof tier !== "string" || !QUALITY_TIER_NAMES.includes(tier)) {
|
|
269
|
+
return [`RENDERER_QUALITY_INVALID: renderer.quality${typeof quality === "object" ? ".tier" : ""}=${String(tier)} is not a tier (expected low|medium|high|ultra|auto); the mount uses "high".`];
|
|
270
|
+
}
|
|
271
|
+
if (typeof quality !== "string")
|
|
272
|
+
return [];
|
|
273
|
+
return [`RENDERER_QUALITY_STRING: renderer.quality "${tier}" is a fixed tier, so every device, phones included, mounts at "${tier}" (pixel-ratio cap, shadow and post settings). Use "auto" or { tier: "auto" } to let the tier follow the device where the quality lane (A3D_QR_TIERS) is on.`];
|
|
274
|
+
}
|
|
228
275
|
//# sourceMappingURL=rendererOptions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rendererOptions.js","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/app/rendererOptions.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"rendererOptions.js","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/app/rendererOptions.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,6 +46,8 @@ export interface MutableAuraRuntimeNodeRegistry extends AuraRuntimeNodeRegistry
|
|
|
46
46
|
attachCompiled(scene: CompiledScene): void;
|
|
47
47
|
detachCompiled(scene: CompiledScene): void;
|
|
48
48
|
reset(snapshot: AuraSceneSnapshot): void;
|
|
49
|
+
/** The live scene plus nodes added through the compiled subtree path (RP-03), for a remount that must keep them. */
|
|
50
|
+
sceneWithRuntimeAdditions(): AuraSceneSnapshot | undefined;
|
|
49
51
|
}
|
|
50
52
|
export declare function collectRuntimeNodeHandles(snapshot: AuraSceneSnapshot): Map<string, AuraRuntimeNodeHandle>;
|
|
51
53
|
export declare function createRuntimeNodeHandle(node: MutableAuraRuntimeSceneNode, runtime: AuraRuntimeNodeSpec): AuraRuntimeNodeHandle;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtimeNodes.d.ts","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/app/runtimeNodes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAyC,gBAAgB,EAAE,qBAAqB,EAAwC,uBAAuB,EAAE,mBAAmB,EAAE,aAAa,EAAE,iBAAiB,EAAoB,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAEtS,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAQ3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAE3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"runtimeNodes.d.ts","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/app/runtimeNodes.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ import { resolveQrFlags } from "../../contracts/flags.js";
|
|
|
10
10
|
import { asRuntimeCompiled } from "../../contracts/compiler.js";
|
|
11
11
|
import { nodeHandleExtensionsAll } from "../../contracts/runtimeNodes.js";
|
|
12
12
|
import { assertCustomUniformWrite, recordCustomUniformWrite } from "../compiler/customMaterial.js";
|
|
13
|
+
import { isDirectRenderPath, nodeDirectPathBlockers } from "./renderPath.js";
|
|
13
14
|
const asAttachable = (scene) => {
|
|
14
15
|
const internals = asRuntimeCompiled(scene);
|
|
15
16
|
return internals ? internals : undefined;
|
|
@@ -36,6 +37,26 @@ const removeRuntimeNodeById = (nodes, runtimeId) => {
|
|
|
36
37
|
}
|
|
37
38
|
return { nodes: next, removed };
|
|
38
39
|
};
|
|
40
|
+
/** Insert `node` as the last child of the group whose runtime id is `parentId`; top level when no such group exists. */
|
|
41
|
+
const insertRuntimeNode = (nodes, node, parentId) => {
|
|
42
|
+
if (parentId !== undefined) {
|
|
43
|
+
let placed = false;
|
|
44
|
+
const visit = (list) => list.map((entry) => {
|
|
45
|
+
if (placed || entry.kind !== "group")
|
|
46
|
+
return entry;
|
|
47
|
+
if (entry.runtime?.id === parentId) {
|
|
48
|
+
placed = true;
|
|
49
|
+
return { ...entry, children: [...entry.children, node] };
|
|
50
|
+
}
|
|
51
|
+
const children = visit(entry.children);
|
|
52
|
+
return placed ? { ...entry, children } : entry;
|
|
53
|
+
});
|
|
54
|
+
const next = visit(nodes);
|
|
55
|
+
if (placed)
|
|
56
|
+
return next;
|
|
57
|
+
}
|
|
58
|
+
return [...nodes, node];
|
|
59
|
+
};
|
|
39
60
|
export function createAuraRuntimeNodeRegistry(snapshot, deps = {}) {
|
|
40
61
|
let handles = new Map();
|
|
41
62
|
let registryVersion = 0;
|
|
@@ -47,6 +68,21 @@ export function createAuraRuntimeNodeRegistry(snapshot, deps = {}) {
|
|
|
47
68
|
let setScene = deps.setScene;
|
|
48
69
|
let diagnostic = deps.diagnostic;
|
|
49
70
|
const compilerFlagOn = () => flags.on("A3D_QR_COMPILER");
|
|
71
|
+
/*
|
|
72
|
+
* RP-03: nodes added through the compiled subtree path live only in the compiled scene, not in the app snapshot. They are kept
|
|
73
|
+
* here so a remount (to take the HDR target, see `add`) carries them over instead of dropping them. Cleared on `reset`.
|
|
74
|
+
*/
|
|
75
|
+
let compiledAdds = [];
|
|
76
|
+
/** Mounted (snapshot) node ids removed through the compiled subtree path; a remount must not bring them back. */
|
|
77
|
+
let compiledRemovals = new Set();
|
|
78
|
+
const sceneWithCompiledAdds = (scene) => {
|
|
79
|
+
let nodes = [...scene.nodes];
|
|
80
|
+
for (const id of compiledRemovals)
|
|
81
|
+
nodes = removeRuntimeNodeById(nodes, id).nodes;
|
|
82
|
+
for (const entry of compiledAdds)
|
|
83
|
+
nodes = insertRuntimeNode(nodes, entry.node, entry.parent);
|
|
84
|
+
return { ...scene, nodes };
|
|
85
|
+
};
|
|
50
86
|
// C-37 (PRD 15 T3.12 seam): flatten every registered NodeHandleExtension
|
|
51
87
|
// whose flag is on and whose `appliesTo` covers the node kind onto the
|
|
52
88
|
// handle (`handle.animation`, `handle.materials`, ...). Applied lazily on
|
|
@@ -99,14 +135,35 @@ export function createAuraRuntimeNodeRegistry(snapshot, deps = {}) {
|
|
|
99
135
|
const id = runtime?.id ?? `runtime-add-${++autoId}`;
|
|
100
136
|
const node = (runtime?.id ? raw : { ...raw, runtime: { ...(runtime ?? {}), id } });
|
|
101
137
|
registryVersion += 1;
|
|
138
|
+
/*
|
|
139
|
+
* RP-03: a direct-path app has no post chain and no HDR target, so an effect, a custom-shader or transparent material added
|
|
140
|
+
* now would be dropped or drawn wrong, silently. Remount with the node in the scene: the mount re-decides the path and takes
|
|
141
|
+
* the HDR target. Earlier compiled additions ride along.
|
|
142
|
+
*/
|
|
143
|
+
const directBlockers = app?.canvas && isDirectRenderPath(app.canvas) ? nodeDirectPathBlockers([node]) : [];
|
|
144
|
+
const scene = getScene?.();
|
|
145
|
+
if (directBlockers.length > 0 && scene && setScene) {
|
|
146
|
+
const next = sceneWithCompiledAdds(scene);
|
|
147
|
+
compiledAdds = [];
|
|
148
|
+
compiledRemovals = new Set();
|
|
149
|
+
setScene({ ...next, nodes: insertRuntimeNode(next.nodes, node, options.parent) });
|
|
150
|
+
// After setScene: the remount resets the app's warning list.
|
|
151
|
+
diagnostic?.(`DIRECT_PATH_REMOUNT: runtime node "${id}" needs the HDR target (${directBlockers.join("; ")}); the scene was remounted so it renders.`);
|
|
152
|
+
const remounted = handles.get(id);
|
|
153
|
+
if (remounted)
|
|
154
|
+
return applyHandleExtensions(remounted);
|
|
155
|
+
const handle = applyHandleExtensions(createRuntimeNodeHandle(node, node.runtime));
|
|
156
|
+
handles.set(id, handle);
|
|
157
|
+
return handle;
|
|
158
|
+
}
|
|
102
159
|
if (compiled && compilerFlagOn()) {
|
|
103
160
|
compiled.addSubtree(node, options.parent);
|
|
161
|
+
compiledAdds.push({ id, node, ...(options.parent === undefined ? {} : { parent: options.parent }) });
|
|
104
162
|
const handle = applyHandleExtensions(createRuntimeNodeHandle(node, node.runtime));
|
|
105
163
|
handles.set(id, handle);
|
|
106
164
|
return handle;
|
|
107
165
|
}
|
|
108
166
|
// Legacy seam (C-37 PR 0b-1): append to the snapshot and remount.
|
|
109
|
-
const scene = getScene?.();
|
|
110
167
|
if (scene && setScene) {
|
|
111
168
|
diagnostic?.(`RUNTIME_ADD_REMOUNT: runtime node "${id}" appended and remounted (enable A3D_QR_COMPILER for subtree compile)`);
|
|
112
169
|
setScene({ ...scene, nodes: [...scene.nodes, node] });
|
|
@@ -126,12 +183,23 @@ export function createAuraRuntimeNodeRegistry(snapshot, deps = {}) {
|
|
|
126
183
|
},
|
|
127
184
|
remove(idOrHandle) {
|
|
128
185
|
const id = typeof idOrHandle === "string" ? idOrHandle : idOrHandle.id;
|
|
129
|
-
if (!handles.has(id))
|
|
186
|
+
if (!handles.has(id)) {
|
|
187
|
+
// A mounted group or look has no handle (the app flattens it away), but the compiled scene keeps its children by its id.
|
|
188
|
+
if (compiled && compilerFlagOn() && compiled.removeSubtree(id)) {
|
|
189
|
+
registryVersion += 1;
|
|
190
|
+
compiledRemovals.add(id);
|
|
191
|
+
return true;
|
|
192
|
+
}
|
|
130
193
|
return false;
|
|
194
|
+
}
|
|
131
195
|
registryVersion += 1;
|
|
132
196
|
handles.delete(id);
|
|
133
197
|
if (compiled && compilerFlagOn()) {
|
|
134
198
|
compiled.removeSubtree(id);
|
|
199
|
+
const wasAdded = compiledAdds.some((entry) => entry.id === id);
|
|
200
|
+
compiledAdds = compiledAdds.filter((entry) => entry.id !== id);
|
|
201
|
+
if (!wasAdded)
|
|
202
|
+
compiledRemovals.add(id);
|
|
135
203
|
return true;
|
|
136
204
|
}
|
|
137
205
|
const scene = getScene?.();
|
|
@@ -155,7 +223,13 @@ export function createAuraRuntimeNodeRegistry(snapshot, deps = {}) {
|
|
|
155
223
|
detachCompiled() {
|
|
156
224
|
compiled = undefined;
|
|
157
225
|
},
|
|
226
|
+
sceneWithRuntimeAdditions() {
|
|
227
|
+
const scene = getScene?.();
|
|
228
|
+
return scene ? sceneWithCompiledAdds(scene) : undefined;
|
|
229
|
+
},
|
|
158
230
|
reset(nextSnapshot) {
|
|
231
|
+
compiledAdds = [];
|
|
232
|
+
compiledRemovals = new Set();
|
|
159
233
|
handles = collectRuntimeNodeHandles(nextSnapshot);
|
|
160
234
|
registryVersion += 1;
|
|
161
235
|
}
|