@aura3d/workflows 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AnimationLabWorkflow.d.ts +3 -0
- package/dist/AnimationLabWorkflow.d.ts.map +1 -0
- package/dist/AnimationLabWorkflow.js +156 -0
- package/dist/AnimationLabWorkflow.js.map +1 -0
- package/dist/AssetViewerWorkflow.d.ts +3 -0
- package/dist/AssetViewerWorkflow.d.ts.map +1 -0
- package/dist/AssetViewerWorkflow.js +35 -0
- package/dist/AssetViewerWorkflow.js.map +1 -0
- package/dist/ComparisonWorkflow.d.ts +3 -0
- package/dist/ComparisonWorkflow.d.ts.map +1 -0
- package/dist/ComparisonWorkflow.js +67 -0
- package/dist/ComparisonWorkflow.js.map +1 -0
- package/dist/InteractiveSceneWorkflow.d.ts +3 -0
- package/dist/InteractiveSceneWorkflow.d.ts.map +1 -0
- package/dist/InteractiveSceneWorkflow.js +43 -0
- package/dist/InteractiveSceneWorkflow.js.map +1 -0
- package/dist/MaterialStudioWorkflow.d.ts +3 -0
- package/dist/MaterialStudioWorkflow.d.ts.map +1 -0
- package/dist/MaterialStudioWorkflow.js +47 -0
- package/dist/MaterialStudioWorkflow.js.map +1 -0
- package/dist/ProductConfiguratorWorkflow.d.ts +3 -0
- package/dist/ProductConfiguratorWorkflow.d.ts.map +1 -0
- package/dist/ProductConfiguratorWorkflow.js +25 -0
- package/dist/ProductConfiguratorWorkflow.js.map +1 -0
- package/dist/SceneShowcaseWorkflow.d.ts +3 -0
- package/dist/SceneShowcaseWorkflow.d.ts.map +1 -0
- package/dist/SceneShowcaseWorkflow.js +44 -0
- package/dist/SceneShowcaseWorkflow.js.map +1 -0
- package/dist/WorkflowDiagnostics.d.ts +11 -0
- package/dist/WorkflowDiagnostics.d.ts.map +1 -0
- package/dist/WorkflowDiagnostics.js +34 -0
- package/dist/WorkflowDiagnostics.js.map +1 -0
- package/dist/WorkflowTypes.d.ts +90 -0
- package/dist/WorkflowTypes.d.ts.map +1 -0
- package/dist/WorkflowTypes.js +2 -0
- package/dist/WorkflowTypes.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/production-runtime/ArchitectureWorkflow.d.ts +7 -0
- package/dist/production-runtime/ArchitectureWorkflow.d.ts.map +1 -0
- package/dist/production-runtime/ArchitectureWorkflow.js +2 -0
- package/dist/production-runtime/ArchitectureWorkflow.js.map +1 -0
- package/dist/production-runtime/AssetInspectionWorkflow.d.ts +7 -0
- package/dist/production-runtime/AssetInspectionWorkflow.d.ts.map +1 -0
- package/dist/production-runtime/AssetInspectionWorkflow.js +2 -0
- package/dist/production-runtime/AssetInspectionWorkflow.js.map +1 -0
- package/dist/production-runtime/CinematicWorkflow.d.ts +7 -0
- package/dist/production-runtime/CinematicWorkflow.d.ts.map +1 -0
- package/dist/production-runtime/CinematicWorkflow.js +2 -0
- package/dist/production-runtime/CinematicWorkflow.js.map +1 -0
- package/dist/production-runtime/MaterialAuthoringWorkflow.d.ts +7 -0
- package/dist/production-runtime/MaterialAuthoringWorkflow.d.ts.map +1 -0
- package/dist/production-runtime/MaterialAuthoringWorkflow.js +2 -0
- package/dist/production-runtime/MaterialAuthoringWorkflow.js.map +1 -0
- package/dist/production-runtime/ProductRenderWorkflow.d.ts +7 -0
- package/dist/production-runtime/ProductRenderWorkflow.d.ts.map +1 -0
- package/dist/production-runtime/ProductRenderWorkflow.js +2 -0
- package/dist/production-runtime/ProductRenderWorkflow.js.map +1 -0
- package/dist/production-runtime/ProductionExampleRuntime.d.ts +66 -0
- package/dist/production-runtime/ProductionExampleRuntime.d.ts.map +1 -0
- package/dist/production-runtime/ProductionExampleRuntime.js +189 -0
- package/dist/production-runtime/ProductionExampleRuntime.js.map +1 -0
- package/dist/production-runtime/ProductionWorkflows.d.ts +69 -0
- package/dist/production-runtime/ProductionWorkflows.d.ts.map +1 -0
- package/dist/production-runtime/ProductionWorkflows.js +128 -0
- package/dist/production-runtime/ProductionWorkflows.js.map +1 -0
- package/dist/production-runtime/WorkflowDiagnostics.d.ts +7 -0
- package/dist/production-runtime/WorkflowDiagnostics.d.ts.map +1 -0
- package/dist/production-runtime/WorkflowDiagnostics.js +2 -0
- package/dist/production-runtime/WorkflowDiagnostics.js.map +1 -0
- package/dist/production-runtime/index.d.ts +11 -0
- package/dist/production-runtime/index.d.ts.map +1 -0
- package/dist/production-runtime/index.js +9 -0
- package/dist/production-runtime/index.js.map +1 -0
- package/dist/workflow-foundation/index.d.ts +26 -0
- package/dist/workflow-foundation/index.d.ts.map +1 -0
- package/dist/workflow-foundation/index.js +25 -0
- package/dist/workflow-foundation/index.js.map +1 -0
- package/package.json +22 -0
- package/src/AnimationLabWorkflow.ts +165 -0
- package/src/AssetViewerWorkflow.ts +37 -0
- package/src/ComparisonWorkflow.ts +68 -0
- package/src/InteractiveSceneWorkflow.ts +44 -0
- package/src/MaterialStudioWorkflow.ts +48 -0
- package/src/ProductConfiguratorWorkflow.ts +32 -0
- package/src/SceneShowcaseWorkflow.ts +45 -0
- package/src/WorkflowDiagnostics.ts +47 -0
- package/src/WorkflowTypes.ts +113 -0
- package/src/index.ts +34 -0
- package/src/production-runtime/ArchitectureWorkflow.ts +2 -0
- package/src/production-runtime/AssetInspectionWorkflow.ts +2 -0
- package/src/production-runtime/CinematicWorkflow.ts +2 -0
- package/src/production-runtime/MaterialAuthoringWorkflow.ts +2 -0
- package/src/production-runtime/ProductRenderWorkflow.ts +2 -0
- package/src/production-runtime/ProductionExampleRuntime.ts +267 -0
- package/src/production-runtime/ProductionWorkflows.ts +203 -0
- package/src/production-runtime/WorkflowDiagnostics.ts +2 -0
- package/src/production-runtime/index.ts +32 -0
- package/src/workflow-foundation/index.ts +27 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnimationLabWorkflow.d.ts","sourceRoot":"","sources":["../../../../packages/workflows/src/AnimationLabWorkflow.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAI/F,wBAAgB,0BAA0B,CAAC,OAAO,GAAE,2BAAgC,GAAG,0BAA0B,CAuFhH"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { AnimationClip, AnimationTrack } from "@aura3d/animation";
|
|
2
|
+
import { composeMat4 } from "@aura3d/scene";
|
|
3
|
+
import { Geometry, PBRMaterial, createLightingDefault } from "@aura3d/rendering";
|
|
4
|
+
import { createWorkflowDiagnostics } from "./WorkflowDiagnostics.js";
|
|
5
|
+
export function createAnimationLabWorkflow(options = {}) {
|
|
6
|
+
const speed = Number.isFinite(options.speed) && options.speed !== undefined && options.speed > 0 ? options.speed : 1;
|
|
7
|
+
const clips = createAnimationClips();
|
|
8
|
+
const activeClip = clips.find((clip) => clip.name === (options.clip ?? "walk")) ?? clips[1];
|
|
9
|
+
const lighting = createLightingDefault("studioProduct");
|
|
10
|
+
const material = new PBRMaterial({ name: "animation-lab-character", baseColor: [0.72, 0.55, 0.32, 1], metallic: 0.18, roughness: 0.42 });
|
|
11
|
+
const accent = new PBRMaterial({ name: "animation-lab-accent", baseColor: [0.18, 0.3, 0.28, 1], metallic: 0.08, roughness: 0.5 });
|
|
12
|
+
const sample = (timeSeconds) => {
|
|
13
|
+
const t = wrapTime(timeSeconds * speed, activeClip.duration);
|
|
14
|
+
const root = sampleVec3(activeClip, "root.position", t);
|
|
15
|
+
const armSwing = sampleScalar(activeClip, "arms.swing", t);
|
|
16
|
+
const legSwing = sampleScalar(activeClip, "legs.swing", t);
|
|
17
|
+
const headBob = sampleScalar(activeClip, "head.bob", t);
|
|
18
|
+
const renderItems = [
|
|
19
|
+
{
|
|
20
|
+
label: "animation-lab-body",
|
|
21
|
+
geometry: Geometry.capsule({ radius: 0.34, height: 1.25, segments: 24, rings: 12, textured: true }),
|
|
22
|
+
material,
|
|
23
|
+
modelMatrix: composeMat4([root[0], 0.78 + root[1], root[2]], [0, 0, 0, 1], [1.05, 1, 0.85])
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
label: "animation-lab-head",
|
|
27
|
+
geometry: Geometry.uvSphere(0.28, 32, 16, { textured: true }),
|
|
28
|
+
material,
|
|
29
|
+
modelMatrix: composeMat4([root[0], 1.66 + headBob, root[2]], [0, 0, 0, 1], [1, 1, 1])
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
label: "animation-lab-left-arm",
|
|
33
|
+
geometry: Geometry.cylinder({ radius: 0.09, height: 0.78, segments: 18, textured: true }),
|
|
34
|
+
material: accent,
|
|
35
|
+
modelMatrix: composeMat4([root[0] - 0.44, 0.9, root[2] + armSwing], [0.18, 0, 0, 0.98], [1, 1, 1])
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
label: "animation-lab-right-arm",
|
|
39
|
+
geometry: Geometry.cylinder({ radius: 0.09, height: 0.78, segments: 18, textured: true }),
|
|
40
|
+
material: accent,
|
|
41
|
+
modelMatrix: composeMat4([root[0] + 0.44, 0.9, root[2] - armSwing], [-0.18, 0, 0, 0.98], [1, 1, 1])
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
label: "animation-lab-left-leg",
|
|
45
|
+
geometry: Geometry.cylinder({ radius: 0.12, height: 0.78, segments: 18, textured: true }),
|
|
46
|
+
material: accent,
|
|
47
|
+
modelMatrix: composeMat4([root[0] - 0.18, 0.18, root[2] - legSwing], [0.12, 0, 0, 0.99], [1, 1, 1])
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
label: "animation-lab-right-leg",
|
|
51
|
+
geometry: Geometry.cylinder({ radius: 0.12, height: 0.78, segments: 18, textured: true }),
|
|
52
|
+
material: accent,
|
|
53
|
+
modelMatrix: composeMat4([root[0] + 0.18, 0.18, root[2] + legSwing], [-0.12, 0, 0, 0.99], [1, 1, 1])
|
|
54
|
+
}
|
|
55
|
+
];
|
|
56
|
+
return {
|
|
57
|
+
renderItems,
|
|
58
|
+
cameraPolicy: "auto-frame",
|
|
59
|
+
cameraFrameOptions: { paddingRatio: 0.24, yawRadians: -0.28, pitchRadians: -0.08 },
|
|
60
|
+
environmentLighting: lighting.environmentLighting,
|
|
61
|
+
shadow: false,
|
|
62
|
+
postprocess: { ...lighting.postprocess, targetFormat: "rgba8" }
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
const source = sample(0);
|
|
66
|
+
return {
|
|
67
|
+
kind: "animation-lab",
|
|
68
|
+
source,
|
|
69
|
+
renderItems: source.renderItems,
|
|
70
|
+
clips,
|
|
71
|
+
mixer: {
|
|
72
|
+
timeScale: speed,
|
|
73
|
+
actionCount: 1,
|
|
74
|
+
actions: [{ clipName: activeClip.name, duration: activeClip.duration, time: 0, weight: 1, timeScale: speed, playing: true, paused: false, loopMode: "repeat" }],
|
|
75
|
+
layers: [],
|
|
76
|
+
values: {
|
|
77
|
+
"root.position": [0, 0, 0],
|
|
78
|
+
"arms.swing": 0,
|
|
79
|
+
"legs.swing": 0,
|
|
80
|
+
"head.bob": 0
|
|
81
|
+
},
|
|
82
|
+
applyErrors: []
|
|
83
|
+
},
|
|
84
|
+
diagnostics: createWorkflowDiagnostics("animation-lab", {
|
|
85
|
+
featureChecklist: ["keyframe-clips", "clip-switching", "animated-transforms", "timeline-sampling", "camera-framing", "postprocess"]
|
|
86
|
+
}),
|
|
87
|
+
update: sample,
|
|
88
|
+
dispose: () => undefined
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
function createAnimationClips() {
|
|
92
|
+
return [
|
|
93
|
+
createClip("idle", 1.6, [0, 0, 0], 0.05, 0.02, 0.03),
|
|
94
|
+
createClip("walk", 1.2, [0, 0, 0.1], 0.24, 0.22, 0.06),
|
|
95
|
+
createClip("run", 0.8, [0, 0, 0.16], 0.34, 0.32, 0.09)
|
|
96
|
+
];
|
|
97
|
+
}
|
|
98
|
+
function createClip(name, duration, rootEnd, arm, leg, bob) {
|
|
99
|
+
return new AnimationClip({
|
|
100
|
+
name,
|
|
101
|
+
duration,
|
|
102
|
+
tracks: [
|
|
103
|
+
new AnimationTrack({
|
|
104
|
+
target: "root.position",
|
|
105
|
+
valueType: "vector3",
|
|
106
|
+
keyframes: [
|
|
107
|
+
{ time: 0, value: [0, 0, 0] },
|
|
108
|
+
{ time: duration / 2, value: [rootEnd[0], bob, rootEnd[2] / 2] },
|
|
109
|
+
{ time: duration, value: rootEnd }
|
|
110
|
+
]
|
|
111
|
+
}),
|
|
112
|
+
new AnimationTrack({
|
|
113
|
+
target: "arms.swing",
|
|
114
|
+
valueType: "scalar",
|
|
115
|
+
keyframes: [
|
|
116
|
+
{ time: 0, value: -arm },
|
|
117
|
+
{ time: duration / 2, value: arm },
|
|
118
|
+
{ time: duration, value: -arm }
|
|
119
|
+
]
|
|
120
|
+
}),
|
|
121
|
+
new AnimationTrack({
|
|
122
|
+
target: "legs.swing",
|
|
123
|
+
valueType: "scalar",
|
|
124
|
+
keyframes: [
|
|
125
|
+
{ time: 0, value: leg },
|
|
126
|
+
{ time: duration / 2, value: -leg },
|
|
127
|
+
{ time: duration, value: leg }
|
|
128
|
+
]
|
|
129
|
+
}),
|
|
130
|
+
new AnimationTrack({
|
|
131
|
+
target: "head.bob",
|
|
132
|
+
valueType: "scalar",
|
|
133
|
+
keyframes: [
|
|
134
|
+
{ time: 0, value: 0 },
|
|
135
|
+
{ time: duration / 2, value: bob },
|
|
136
|
+
{ time: duration, value: 0 }
|
|
137
|
+
]
|
|
138
|
+
})
|
|
139
|
+
]
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
function sampleVec3(clip, target, time) {
|
|
143
|
+
const value = clip.tracks.find((track) => track.target === target)?.sample(time);
|
|
144
|
+
return Array.isArray(value) && value.length === 3 ? [value[0], value[1], value[2]] : [0, 0, 0];
|
|
145
|
+
}
|
|
146
|
+
function sampleScalar(clip, target, time) {
|
|
147
|
+
const value = clip.tracks.find((track) => track.target === target)?.sample(time);
|
|
148
|
+
return typeof value === "number" ? value : 0;
|
|
149
|
+
}
|
|
150
|
+
function wrapTime(timeSeconds, duration) {
|
|
151
|
+
if (duration <= 0)
|
|
152
|
+
return 0;
|
|
153
|
+
const wrapped = timeSeconds % duration;
|
|
154
|
+
return wrapped < 0 ? wrapped + duration : wrapped;
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=AnimationLabWorkflow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnimationLabWorkflow.js","sourceRoot":"","sources":["../../../../packages/workflows/src/AnimationLabWorkflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AssetViewerWorkflow.d.ts","sourceRoot":"","sources":["../../../../packages/workflows/src/AssetViewerWorkflow.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAE7F,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,yBAAyB,CAAC,CA+BvH"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { createRenderableScene, loadRenderableAsset } from "@aura3d/assets";
|
|
2
|
+
import { createWorkflowDiagnostics } from "./WorkflowDiagnostics.js";
|
|
3
|
+
export async function createAssetViewerWorkflow(options) {
|
|
4
|
+
const loadOptions = {
|
|
5
|
+
baseUrl: options.baseUrl,
|
|
6
|
+
signal: options.signal,
|
|
7
|
+
dependencyChain: options.dependencyChain,
|
|
8
|
+
manager: options.manager,
|
|
9
|
+
type: options.type
|
|
10
|
+
};
|
|
11
|
+
const asset = await loadRenderableAsset(options.url, loadOptions);
|
|
12
|
+
const scene = await createRenderableScene(asset, {
|
|
13
|
+
camera: options.camera ?? "auto-frame",
|
|
14
|
+
lighting: options.lighting ?? "studioProduct",
|
|
15
|
+
shadows: options.shadows ?? true,
|
|
16
|
+
postprocess: options.postprocess ?? "product-default",
|
|
17
|
+
viewport: options.viewport,
|
|
18
|
+
qualityPreset: options.qualityPreset,
|
|
19
|
+
renderResources: options.renderResources
|
|
20
|
+
});
|
|
21
|
+
return {
|
|
22
|
+
kind: "asset-viewer",
|
|
23
|
+
asset,
|
|
24
|
+
scene,
|
|
25
|
+
source: scene.source,
|
|
26
|
+
camera: scene.rendererInput?.camera,
|
|
27
|
+
diagnostics: createWorkflowDiagnostics("asset-viewer", {
|
|
28
|
+
asset,
|
|
29
|
+
warnings: scene.warnings,
|
|
30
|
+
featureChecklist: ["asset-loading", "render-resources", "auto-camera", "lighting", "shadows", "postprocess"]
|
|
31
|
+
}),
|
|
32
|
+
dispose: () => scene.dispose()
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=AssetViewerWorkflow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AssetViewerWorkflow.js","sourceRoot":"","sources":["../../../../packages/workflows/src/AssetViewerWorkflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAGlE,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,OAAmC;IACjF,MAAM,WAAW,GAA+B;QAC9C,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC;IACF,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,MAAM,qBAAqB,CAAC,KAAK,EAAE;QAC/C,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,YAAY;QACtC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,eAAe;QAC7C,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;QAChC,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,iBAAiB;QACrD,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,eAAe,EAAE,OAAO,CAAC,eAAe;KACzC,CAAC,CAAC;IACH,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,KAAK;QACL,KAAK;QACL,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,aAAa,EAAE,MAAM;QACnC,WAAW,EAAE,yBAAyB,CAAC,cAAc,EAAE;YACrD,KAAK;YACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,gBAAgB,EAAE,CAAC,eAAe,EAAE,kBAAkB,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,CAAC;SAC7G,CAAC;QACF,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE;KAC/B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComparisonWorkflow.d.ts","sourceRoot":"","sources":["../../../../packages/workflows/src/ComparisonWorkflow.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE3F,wBAAgB,wBAAwB,CAAC,OAAO,GAAE,yBAA8B,GAAG,wBAAwB,CA8D1G"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { composeMat4 } from "@aura3d/scene";
|
|
2
|
+
import { Geometry, PBRMaterial, createLightingDefault } from "@aura3d/rendering";
|
|
3
|
+
import { createWorkflowDiagnostics } from "./WorkflowDiagnostics.js";
|
|
4
|
+
export function createComparisonWorkflow(options = {}) {
|
|
5
|
+
const focus = options.focus ?? "setup";
|
|
6
|
+
const lighting = createLightingDefault("studioProduct");
|
|
7
|
+
const a3dMaterial = new PBRMaterial({ name: "comparison-a3d", baseColor: [0.12, 0.48, 0.82, 1], metallic: 0.1, roughness: 0.34 });
|
|
8
|
+
const threeMaterial = new PBRMaterial({ name: "comparison-three-baseline", baseColor: [0.75, 0.75, 0.75, 1], metallic: 0.05, roughness: 0.5 });
|
|
9
|
+
const migrationMaterial = new PBRMaterial({ name: "comparison-migration", baseColor: [0.88, 0.56, 0.2, 1], metallic: 0.18, roughness: 0.38 });
|
|
10
|
+
const renderItems = [
|
|
11
|
+
{
|
|
12
|
+
label: "comparison-a3d-workflow",
|
|
13
|
+
geometry: Geometry.uvSphere(0.48, 40, 20, { textured: true }),
|
|
14
|
+
material: a3dMaterial,
|
|
15
|
+
modelMatrix: composeMat4([-1.15, 0.05, 0], [0, 0, 0, 1], [1, 1, 1])
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
label: "comparison-threejs-reference",
|
|
19
|
+
geometry: Geometry.texturedCube(0.88),
|
|
20
|
+
material: threeMaterial,
|
|
21
|
+
modelMatrix: composeMat4([0, 0, 0], [0, 0.25, 0, 0.97], [1, 1, 1])
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
label: "comparison-migration-output",
|
|
25
|
+
geometry: Geometry.cylinder({ radius: 0.36, height: 1, segments: 32, textured: true }),
|
|
26
|
+
material: migrationMaterial,
|
|
27
|
+
modelMatrix: composeMat4([1.15, 0, 0], [0, 0, 0, 1], [1, 1, 1])
|
|
28
|
+
}
|
|
29
|
+
];
|
|
30
|
+
const comparison = {
|
|
31
|
+
focus,
|
|
32
|
+
a3dSteps: [
|
|
33
|
+
"create workflow render source",
|
|
34
|
+
"load optional asset/environment through public package APIs",
|
|
35
|
+
"render through Renderer.create with diagnostics"
|
|
36
|
+
],
|
|
37
|
+
threeJsSteps: [
|
|
38
|
+
"create scene, camera, renderer, lights, controls, loader, material setup, and animation loop separately",
|
|
39
|
+
"wire resource disposal and resize handling manually",
|
|
40
|
+
"add diagnostics through user-land instrumentation"
|
|
41
|
+
],
|
|
42
|
+
migrationNotes: [
|
|
43
|
+
"A3D comparison workflow renders a A3D-owned parity scene; it does not embed Three.js at runtime.",
|
|
44
|
+
"Use @aura3d/three-compat for adapter coverage and warnings when moving Three.js example code."
|
|
45
|
+
]
|
|
46
|
+
};
|
|
47
|
+
const source = {
|
|
48
|
+
renderItems,
|
|
49
|
+
cameraPolicy: "auto-frame",
|
|
50
|
+
cameraFrameOptions: { paddingRatio: 0.22, yawRadians: -0.36, pitchRadians: -0.1 },
|
|
51
|
+
environmentLighting: lighting.environmentLighting,
|
|
52
|
+
shadow: false,
|
|
53
|
+
postprocess: { ...lighting.postprocess, targetFormat: "rgba8" }
|
|
54
|
+
};
|
|
55
|
+
return {
|
|
56
|
+
kind: "comparison",
|
|
57
|
+
source,
|
|
58
|
+
renderItems,
|
|
59
|
+
comparison,
|
|
60
|
+
diagnostics: createWorkflowDiagnostics("comparison", {
|
|
61
|
+
warnings: ["Comparison workflow summarizes migration/setup parity; same-scene Three.js visual superiority still requires benchmark reports."],
|
|
62
|
+
featureChecklist: ["a3d-workflow-source", "threejs-setup-comparison", "migration-notes", "render-diagnostics", "postprocess"]
|
|
63
|
+
}),
|
|
64
|
+
dispose: () => undefined
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=ComparisonWorkflow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComparisonWorkflow.js","sourceRoot":"","sources":["../../../../packages/workflows/src/ComparisonWorkflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { InteractiveSceneWorkflowOptions, InteractiveSceneWorkflowResult } from "./WorkflowTypes";
|
|
2
|
+
export declare function createInteractiveSceneWorkflow(_options?: InteractiveSceneWorkflowOptions): InteractiveSceneWorkflowResult;
|
|
3
|
+
//# sourceMappingURL=InteractiveSceneWorkflow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InteractiveSceneWorkflow.d.ts","sourceRoot":"","sources":["../../../../packages/workflows/src/InteractiveSceneWorkflow.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,+BAA+B,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AAEvG,wBAAgB,8BAA8B,CAAC,QAAQ,GAAE,+BAAoC,GAAG,8BAA8B,CAsC7H"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { composeMat4 } from "@aura3d/scene";
|
|
2
|
+
import { Geometry, PBRMaterial, createLightingDefault } from "@aura3d/rendering";
|
|
3
|
+
import { createWorkflowDiagnostics } from "./WorkflowDiagnostics.js";
|
|
4
|
+
export function createInteractiveSceneWorkflow(_options = {}) {
|
|
5
|
+
const lighting = createLightingDefault("studioProduct");
|
|
6
|
+
const material = new PBRMaterial({ name: "interactive-workflow-material", baseColor: [0.95, 0.62, 0.18, 1], metallic: 0.25, roughness: 0.36 });
|
|
7
|
+
const createSource = (timeSeconds) => {
|
|
8
|
+
const renderItems = [
|
|
9
|
+
{
|
|
10
|
+
label: "interactive-orbit-a",
|
|
11
|
+
geometry: Geometry.uvSphere(0.42, 32, 16, { textured: true }),
|
|
12
|
+
material,
|
|
13
|
+
modelMatrix: composeMat4([Math.cos(timeSeconds) * 0.9, 0, Math.sin(timeSeconds) * 0.35], [0, 0, 0, 1], [1, 1, 1])
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
label: "interactive-orbit-b",
|
|
17
|
+
geometry: Geometry.texturedCube(1),
|
|
18
|
+
material: new PBRMaterial({ name: "interactive-workflow-blue", baseColor: [0.2, 0.48, 0.92, 1], metallic: 0.1, roughness: 0.44 }),
|
|
19
|
+
modelMatrix: composeMat4([Math.cos(timeSeconds + Math.PI) * 0.9, 0, Math.sin(timeSeconds + Math.PI) * 0.35], [0, 0, 0, 1], [0.62, 0.62, 0.62])
|
|
20
|
+
}
|
|
21
|
+
];
|
|
22
|
+
return {
|
|
23
|
+
renderItems,
|
|
24
|
+
cameraPolicy: "auto-frame",
|
|
25
|
+
cameraFrameOptions: { paddingRatio: 0.28, yawRadians: -0.5, pitchRadians: -0.14 },
|
|
26
|
+
environmentLighting: lighting.environmentLighting,
|
|
27
|
+
shadow: false,
|
|
28
|
+
postprocess: { ...lighting.postprocess, targetFormat: "rgba8" }
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
const source = createSource(0);
|
|
32
|
+
return {
|
|
33
|
+
kind: "interactive-scene",
|
|
34
|
+
source,
|
|
35
|
+
renderItems: source.renderItems,
|
|
36
|
+
diagnostics: createWorkflowDiagnostics("interactive-scene", {
|
|
37
|
+
featureChecklist: ["update-loop", "animated-transforms", "input-ready-scene", "camera-framing", "postprocess"]
|
|
38
|
+
}),
|
|
39
|
+
update: createSource,
|
|
40
|
+
dispose: () => undefined
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=InteractiveSceneWorkflow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InteractiveSceneWorkflow.js","sourceRoot":"","sources":["../../../../packages/workflows/src/InteractiveSceneWorkflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAGlE,MAAM,UAAU,8BAA8B,CAAC,WAA4C,EAAE;IAC3F,MAAM,QAAQ,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,EAAE,IAAI,EAAE,+BAA+B,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/I,MAAM,YAAY,GAAG,CAAC,WAAmB,EAAE,EAAE;QAC3C,MAAM,WAAW,GAAG;YAClB;gBACE,KAAK,EAAE,qBAAqB;gBAC5B,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBAC7D,QAAQ;gBACR,WAAW,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;aAClH;YACD;gBACE,KAAK,EAAE,qBAAqB;gBAC5B,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;gBAClC,QAAQ,EAAE,IAAI,WAAW,CAAC,EAAE,IAAI,EAAE,2BAA2B,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;gBACjI,WAAW,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;aAC/I;SACF,CAAC;QACF,OAAO;YACL,WAAW;YACX,YAAY,EAAE,YAAqB;YACnC,kBAAkB,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,CAAC,IAAI,EAAE;YACjF,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;YACjD,MAAM,EAAE,KAAK;YACb,WAAW,EAAE,EAAE,GAAG,QAAQ,CAAC,WAAW,EAAE,YAAY,EAAE,OAAgB,EAAE;SACzE,CAAC;IACJ,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAC/B,OAAO;QACL,IAAI,EAAE,mBAAmB;QACzB,MAAM;QACN,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,WAAW,EAAE,yBAAyB,CAAC,mBAAmB,EAAE;YAC1D,gBAAgB,EAAE,CAAC,aAAa,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,aAAa,CAAC;SAC/G,CAAC;QACF,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS;KACzB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { MaterialStudioWorkflowOptions, MaterialStudioWorkflowResult } from "./WorkflowTypes";
|
|
2
|
+
export declare function createMaterialStudioWorkflow(options?: MaterialStudioWorkflowOptions): MaterialStudioWorkflowResult;
|
|
3
|
+
//# sourceMappingURL=MaterialStudioWorkflow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaterialStudioWorkflow.d.ts","sourceRoot":"","sources":["../../../../packages/workflows/src/MaterialStudioWorkflow.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,6BAA6B,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAEnG,wBAAgB,4BAA4B,CAAC,OAAO,GAAE,6BAAkC,GAAG,4BAA4B,CA0CtH"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { composeMat4 } from "@aura3d/scene";
|
|
2
|
+
import { Geometry, NormalMappedPBRMaterial, PBRMaterial, TexturedPBRMaterial, Texture, createLightingDefault } from "@aura3d/rendering";
|
|
3
|
+
import { createWorkflowDiagnostics } from "./WorkflowDiagnostics.js";
|
|
4
|
+
export function createMaterialStudioWorkflow(options = {}) {
|
|
5
|
+
const white = new Texture({ width: 1, height: 1, colorSpace: "srgb", data: new Uint8Array([240, 236, 220, 255]) });
|
|
6
|
+
const rough = new Texture({ width: 1, height: 1, colorSpace: "linear", data: new Uint8Array([255, 128, 255, 255]) });
|
|
7
|
+
const normal = new Texture({ width: 1, height: 1, colorSpace: "linear", data: new Uint8Array([128, 128, 255, 255]) });
|
|
8
|
+
const lighting = createLightingDefault(options.mode === "transparent" ? "interiorGallery" : "studioProduct");
|
|
9
|
+
const renderItems = [
|
|
10
|
+
{
|
|
11
|
+
label: "workflow-polished-metal",
|
|
12
|
+
geometry: Geometry.uvSphere(0.58, 48, 24, { textured: true }),
|
|
13
|
+
material: new PBRMaterial({ name: "workflow-polished-metal", baseColor: [0.86, 0.82, 0.72, 1], metallic: 1, roughness: 0.18 }),
|
|
14
|
+
modelMatrix: composeMat4([-1.25, 0, 0], [0, 0, 0, 1], [1, 1, 1])
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
label: "workflow-textured-pbr",
|
|
18
|
+
geometry: Geometry.uvSphere(0.58, 48, 24, { textured: true }),
|
|
19
|
+
material: new TexturedPBRMaterial({ name: "workflow-textured-pbr", baseColorTexture: white, metallicRoughnessTexture: rough, normalTexture: normal, roughness: 0.45 }),
|
|
20
|
+
modelMatrix: composeMat4([0, 0, 0], [0, 0, 0, 1], [1, 1, 1])
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
label: "workflow-normal-material",
|
|
24
|
+
geometry: Geometry.texturedCube(1),
|
|
25
|
+
material: new NormalMappedPBRMaterial({ name: "workflow-normal-material", normalTexture: normal, baseColor: [0.28, 0.58, 0.9, 1], normalScale: 0.8 }),
|
|
26
|
+
modelMatrix: composeMat4([1.25, 0, 0], [0, 0, 0, 1], [0.85, 0.85, 0.85])
|
|
27
|
+
}
|
|
28
|
+
];
|
|
29
|
+
const source = {
|
|
30
|
+
renderItems,
|
|
31
|
+
cameraPolicy: "auto-frame",
|
|
32
|
+
cameraFrameOptions: { paddingRatio: 0.18, yawRadians: -0.36, pitchRadians: -0.12 },
|
|
33
|
+
environmentLighting: lighting.environmentLighting,
|
|
34
|
+
shadow: false,
|
|
35
|
+
postprocess: { ...lighting.postprocess, targetFormat: "rgba8" }
|
|
36
|
+
};
|
|
37
|
+
return {
|
|
38
|
+
kind: "material-studio",
|
|
39
|
+
source,
|
|
40
|
+
renderItems,
|
|
41
|
+
diagnostics: createWorkflowDiagnostics("material-studio", {
|
|
42
|
+
featureChecklist: ["pbr", "textured-pbr", "normal-mapped-pbr", "material-comparison", "postprocess"]
|
|
43
|
+
}),
|
|
44
|
+
dispose: () => undefined
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=MaterialStudioWorkflow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaterialStudioWorkflow.js","sourceRoot":"","sources":["../../../../packages/workflows/src/MaterialStudioWorkflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { ProductConfiguratorWorkflowOptions, ProductConfiguratorWorkflowResult } from "./WorkflowTypes";
|
|
2
|
+
export declare function createProductConfiguratorWorkflow(options: ProductConfiguratorWorkflowOptions): Promise<ProductConfiguratorWorkflowResult>;
|
|
3
|
+
//# sourceMappingURL=ProductConfiguratorWorkflow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProductConfiguratorWorkflow.d.ts","sourceRoot":"","sources":["../../../../packages/workflows/src/ProductConfiguratorWorkflow.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,kCAAkC,EAAE,iCAAiC,EAAE,MAAM,iBAAiB,CAAC;AAE7G,wBAAsB,iCAAiC,CAAC,OAAO,EAAE,kCAAkC,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAqB/I"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { createProductCameraFrame, createProductLightingPreset, createProductMaterialMode, createProductRenderScene, loadProductAsset } from "@aura3d/product-studio";
|
|
2
|
+
import { createWorkflowDiagnostics } from "./WorkflowDiagnostics.js";
|
|
3
|
+
export async function createProductConfiguratorWorkflow(options) {
|
|
4
|
+
const asset = await loadProductAsset(options.asset);
|
|
5
|
+
const lighting = createProductLightingPreset(options.lighting ?? "catalog-softbox");
|
|
6
|
+
const camera = createProductCameraFrame(asset, {
|
|
7
|
+
preset: options.camera ?? "front-three-quarter",
|
|
8
|
+
viewport: options.viewport ?? { width: 1280, height: 900 }
|
|
9
|
+
});
|
|
10
|
+
const materialMode = createProductMaterialMode(options.materialMode ?? "asset");
|
|
11
|
+
const scene = createProductRenderScene(asset, { lighting, camera, materialMode });
|
|
12
|
+
return {
|
|
13
|
+
kind: "product-configurator",
|
|
14
|
+
asset,
|
|
15
|
+
scene,
|
|
16
|
+
source: scene.source,
|
|
17
|
+
camera: scene.camera,
|
|
18
|
+
diagnostics: createWorkflowDiagnostics("product-configurator", {
|
|
19
|
+
asset,
|
|
20
|
+
featureChecklist: ["product-asset", "material-modes", "lighting-presets", "camera-presets", "export-ready"]
|
|
21
|
+
}),
|
|
22
|
+
dispose: () => asset.resources.dispose()
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=ProductConfiguratorWorkflow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProductConfiguratorWorkflow.js","sourceRoot":"","sources":["../../../../packages/workflows/src/ProductConfiguratorWorkflow.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,EACzB,wBAAwB,EACxB,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAGlE,MAAM,CAAC,KAAK,UAAU,iCAAiC,CAAC,OAA2C;IACjG,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,2BAA2B,CAAC,OAAO,CAAC,QAAQ,IAAI,iBAAiB,CAAC,CAAC;IACpF,MAAM,MAAM,GAAG,wBAAwB,CAAC,KAAK,EAAE;QAC7C,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,qBAAqB;QAC/C,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;KAC3D,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,yBAAyB,CAAC,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,CAAC;IAChF,MAAM,KAAK,GAAG,wBAAwB,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IAClF,OAAO;QACL,IAAI,EAAE,sBAAsB;QAC5B,KAAK;QACL,KAAK;QACL,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,WAAW,EAAE,yBAAyB,CAAC,sBAAsB,EAAE;YAC7D,KAAK;YACL,gBAAgB,EAAE,CAAC,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,cAAc,CAAC;SAC5G,CAAC;QACF,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE;KACzC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneShowcaseWorkflow.d.ts","sourceRoot":"","sources":["../../../../packages/workflows/src/SceneShowcaseWorkflow.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAEjG,wBAAgB,2BAA2B,CAAC,OAAO,GAAE,4BAAiC,GAAG,2BAA2B,CAuCnH"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { composeMat4 } from "@aura3d/scene";
|
|
2
|
+
import { Geometry, PBRMaterial, createLightingDefault } from "@aura3d/rendering";
|
|
3
|
+
import { createWorkflowDiagnostics } from "./WorkflowDiagnostics.js";
|
|
4
|
+
export function createSceneShowcaseWorkflow(options = {}) {
|
|
5
|
+
const lighting = createLightingDefault(options.preset === "dramatic" ? "gameNight" : options.preset === "gallery" ? "interiorGallery" : "studioProduct");
|
|
6
|
+
const renderItems = [
|
|
7
|
+
{
|
|
8
|
+
label: "showcase-center",
|
|
9
|
+
geometry: Geometry.uvSphere(0.72, 48, 24, { textured: true }),
|
|
10
|
+
material: new PBRMaterial({ name: "showcase-center-material", baseColor: [0.9, 0.3, 0.16, 1], metallic: 0.35, roughness: 0.32 }),
|
|
11
|
+
modelMatrix: composeMat4([0, 0.25, 0], [0, 0, 0, 1], [1, 1, 1])
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
label: "showcase-left",
|
|
15
|
+
geometry: Geometry.texturedCube(1),
|
|
16
|
+
material: new PBRMaterial({ name: "showcase-left-material", baseColor: [0.18, 0.45, 0.9, 1], metallic: 0.1, roughness: 0.48 }),
|
|
17
|
+
modelMatrix: composeMat4([-1.25, -0.15, -0.2], [0, 0.18, 0, 0.98], [0.72, 0.72, 0.72])
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
label: "showcase-right",
|
|
21
|
+
geometry: Geometry.cylinder({ radius: 0.42, height: 1.1, textured: true }),
|
|
22
|
+
material: new PBRMaterial({ name: "showcase-right-material", baseColor: [0.2, 0.72, 0.42, 1], metallic: 0.05, roughness: 0.55 }),
|
|
23
|
+
modelMatrix: composeMat4([1.25, -0.1, -0.15], [0, 0, 0, 1], [1, 1, 1])
|
|
24
|
+
}
|
|
25
|
+
];
|
|
26
|
+
const source = {
|
|
27
|
+
renderItems,
|
|
28
|
+
cameraPolicy: "auto-frame",
|
|
29
|
+
cameraFrameOptions: { paddingRatio: 0.2, yawRadians: -0.42, pitchRadians: -0.16 },
|
|
30
|
+
environmentLighting: lighting.environmentLighting,
|
|
31
|
+
shadow: false,
|
|
32
|
+
postprocess: { ...lighting.postprocess, targetFormat: "rgba8" }
|
|
33
|
+
};
|
|
34
|
+
return {
|
|
35
|
+
kind: "scene-showcase",
|
|
36
|
+
source,
|
|
37
|
+
renderItems,
|
|
38
|
+
diagnostics: createWorkflowDiagnostics("scene-showcase", {
|
|
39
|
+
featureChecklist: ["multi-object-scene", "pbr", "lighting-preset", "camera-framing", "postprocess"]
|
|
40
|
+
}),
|
|
41
|
+
dispose: () => undefined
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=SceneShowcaseWorkflow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneShowcaseWorkflow.js","sourceRoot":"","sources":["../../../../packages/workflows/src/SceneShowcaseWorkflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { RenderDeviceDiagnostics } from "@aura3d/rendering";
|
|
2
|
+
import type { RenderableAsset } from "@aura3d/assets";
|
|
3
|
+
import type { ProductAsset } from "@aura3d/product-studio";
|
|
4
|
+
import type { A3DWorkflowDiagnostics, A3DWorkflowKind } from "./WorkflowTypes";
|
|
5
|
+
export declare function createWorkflowDiagnostics(workflow: A3DWorkflowKind, options?: {
|
|
6
|
+
readonly warnings?: readonly string[];
|
|
7
|
+
readonly featureChecklist?: readonly string[];
|
|
8
|
+
readonly asset?: RenderableAsset | ProductAsset;
|
|
9
|
+
readonly renderDiagnostics?: RenderDeviceDiagnostics;
|
|
10
|
+
}): A3DWorkflowDiagnostics;
|
|
11
|
+
//# sourceMappingURL=WorkflowDiagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkflowDiagnostics.d.ts","sourceRoot":"","sources":["../../../../packages/workflows/src/WorkflowDiagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAE/E,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,eAAe,EACzB,OAAO,GAAE;IACP,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,GAAG,YAAY,CAAC;IAChD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,uBAAuB,CAAC;CACjD,GACL,sBAAsB,CAQxB"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export function createWorkflowDiagnostics(workflow, options = {}) {
|
|
2
|
+
return {
|
|
3
|
+
workflow,
|
|
4
|
+
warnings: options.warnings ?? [],
|
|
5
|
+
featureChecklist: options.featureChecklist ?? [],
|
|
6
|
+
...(options.asset ? { asset: summarizeAsset(options.asset) } : {}),
|
|
7
|
+
...(options.renderDiagnostics ? { renderDiagnostics: options.renderDiagnostics } : {})
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
function summarizeAsset(asset) {
|
|
11
|
+
if ("gltf" in asset && asset.gltf) {
|
|
12
|
+
return {
|
|
13
|
+
kind: "gltf",
|
|
14
|
+
meshCount: asset.gltf.loaderDiagnostics.meshCount,
|
|
15
|
+
materialCount: asset.gltf.loaderDiagnostics.materialCount,
|
|
16
|
+
textureCount: asset.gltf.loaderDiagnostics.textureCount
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
if ("resources" in asset) {
|
|
20
|
+
return {
|
|
21
|
+
kind: asset.category,
|
|
22
|
+
meshCount: asset.gltf.loaderDiagnostics.meshCount,
|
|
23
|
+
materialCount: asset.gltf.loaderDiagnostics.materialCount,
|
|
24
|
+
textureCount: asset.gltf.loaderDiagnostics.textureCount
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
return {
|
|
28
|
+
kind: asset.kind,
|
|
29
|
+
meshCount: 0,
|
|
30
|
+
materialCount: 0,
|
|
31
|
+
textureCount: 0
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=WorkflowDiagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkflowDiagnostics.js","sourceRoot":"","sources":["../../../../packages/workflows/src/WorkflowDiagnostics.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,yBAAyB,CACvC,QAAyB,EACzB,UAKI,EAAE;IAEN,OAAO;QACL,QAAQ;QACR,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE;QAChC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,EAAE;QAChD,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvF,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAAqC;IAC3D,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QAClC,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS;YACjD,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,aAAa;YACzD,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY;SACxD,CAAC;IACJ,CAAC;IACD,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;QACzB,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,QAAQ;YACpB,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS;YACjD,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,aAAa;YACzD,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY;SACxD,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,SAAS,EAAE,CAAC;QACZ,aAAa,EAAE,CAAC;QAChB,YAAY,EAAE,CAAC;KAChB,CAAC;AACJ,CAAC"}
|