@hypersoniclabs/helix-cli 0.1.25-helix3.520 → 0.1.25-helix3.521
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/itemLod/artifact.d.ts +41 -2
- package/dist/itemLod/artifact.js +82 -17
- package/dist/itemLod/artifact.js.map +1 -1
- package/dist/itemLod/gbuffer.d.ts +72 -0
- package/dist/itemLod/gbuffer.js +245 -0
- package/dist/itemLod/gbuffer.js.map +1 -0
- package/dist/itemLod/impostor.d.ts +3 -1
- package/dist/itemLod/impostor.js +2 -0
- package/dist/itemLod/impostor.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/docs/item-lod.md +39 -2
- package/package.json +1 -1
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_abs.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_audio.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_engine.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_expression.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_jbeam.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_materials.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_stock_events.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/fmod_studio.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/fsb5.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/sim_audio.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/sim_audio_ac.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/sim_audio_beamng.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/sim_audio_fixtures.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/test_beamng_engine.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/test_sim_audio.cpython-312.pyc +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type ImpostorFraming, type ImpostorShading } from './impostor';
|
|
2
|
+
import { type GBufferPasses } from './gbuffer';
|
|
2
3
|
import { type LevelTextureSpec, type WrittenLevel, type WrittenTexture } from './levelGlb';
|
|
3
4
|
import { type ItemModel } from './model';
|
|
4
5
|
import { type ItemLodProfile, type SimplifiedLevel } from './simplify';
|
|
@@ -14,6 +15,14 @@ export declare const ITEM_LOD_SCHEMA = "helix.item-lod/1";
|
|
|
14
15
|
* is never recompiled). The document schema stays `helix.item-lod/1`: the runtime reads the schema id and ignores this one.
|
|
15
16
|
*/
|
|
16
17
|
export declare const ITEM_LOD_COMPILER = "item-lod/3";
|
|
18
|
+
/**
|
|
19
|
+
* The derivation-key contract each impostor shading is compiled under (the backend owns the key; this table is what its worker reads so the two cannot
|
|
20
|
+
* drift). `item-lod/3` is the albedo rendition, `item-lod/4` the same document with a `lit/1` atlas, `item-lod/5` the `gbuffer/1` impostor: a different
|
|
21
|
+
* layout (`hemi-oct/1`), three maps instead of one, and a bytes rule that keeps the impostor of any item over a few hundred triangles. A ready row is
|
|
22
|
+
* terminal for its key, so a change to any of those bytes is a new contract, never an edit of /5.
|
|
23
|
+
*/
|
|
24
|
+
export declare const ITEM_LOD_COMPILER_FOR_SHADING: Readonly<Record<ImpostorShading, string>>;
|
|
25
|
+
export declare const ITEM_LOD_GBUFFER_COMPILER = "item-lod/5";
|
|
17
26
|
/** Caps the artifact must hold (SCENE-PIPELINE-DESIGN section 4.5). */
|
|
18
27
|
export declare const ITEM_LOD_CAPS: {
|
|
19
28
|
readonly lod1TriangleRatio: number;
|
|
@@ -69,8 +78,30 @@ export interface ItemLodImpostor {
|
|
|
69
78
|
* `lit/1`: the atlas holds the item's own shading under the generator's neutral rig at `bakeScale` of its radiance (the runtime scales the
|
|
70
79
|
* light per channel against that rig). Absent: an albedo atlas, which the runtime lights flat (every artifact before this field).
|
|
71
80
|
*/
|
|
72
|
-
shading?: 'lit/1';
|
|
81
|
+
shading?: 'lit/1' | 'gbuffer/1';
|
|
73
82
|
bakeScale?: number;
|
|
83
|
+
/**
|
|
84
|
+
* How the 8 x 8 views are laid out. Absent: `oct/1`, the full-sphere octahedral layout of every artifact before `gbuffer/1`, half of whose views look
|
|
85
|
+
* from under the ground. `hemi-oct/1`: the upper hemisphere only, its outer ring on the horizon (see `gbuffer.ts`). A `gbuffer/1` impostor always says it.
|
|
86
|
+
*/
|
|
87
|
+
layout?: 'hemi-oct/1';
|
|
88
|
+
/**
|
|
89
|
+
* `gbuffer/1` only: the other maps. `object` and `bytes` above are the albedo map (sRGB RGB, alpha = coverage). `surface` is linear: R, G the view-space
|
|
90
|
+
* normal x, y, B roughness, A metalness. `emissive` (present when the item glows or has a clear coat) is sRGB RGB = radiance x `scale`, A = clear coat;
|
|
91
|
+
* `clearcoat` says whether that alpha is used.
|
|
92
|
+
*/
|
|
93
|
+
maps?: {
|
|
94
|
+
surface: {
|
|
95
|
+
object: string;
|
|
96
|
+
bytes: number;
|
|
97
|
+
};
|
|
98
|
+
emissive?: {
|
|
99
|
+
object: string;
|
|
100
|
+
bytes: number;
|
|
101
|
+
scale: number;
|
|
102
|
+
clearcoat: boolean;
|
|
103
|
+
};
|
|
104
|
+
};
|
|
74
105
|
}
|
|
75
106
|
export interface ItemLodArtifact {
|
|
76
107
|
schema: typeof ITEM_LOD_SCHEMA;
|
|
@@ -107,7 +138,8 @@ export interface ItemLodObject {
|
|
|
107
138
|
cid: string;
|
|
108
139
|
bytes: Uint8Array;
|
|
109
140
|
mediaType: 'model/gltf-binary' | 'image/ktx2';
|
|
110
|
-
|
|
141
|
+
/** `impostor` is the impostor's colour (or albedo) map; a `gbuffer/1` artifact adds `impostor-surface` and, when present, `impostor-emissive`. */
|
|
142
|
+
role: 'lod1' | 'lod2' | 'impostor' | 'impostor-surface' | 'impostor-emissive';
|
|
111
143
|
}
|
|
112
144
|
export interface ItemLodReportLevel {
|
|
113
145
|
triangles: number;
|
|
@@ -155,6 +187,11 @@ export interface ItemLodReport {
|
|
|
155
187
|
bytes: number;
|
|
156
188
|
coverage: number;
|
|
157
189
|
omitted?: boolean;
|
|
190
|
+
shading?: ImpostorShading;
|
|
191
|
+
maps?: {
|
|
192
|
+
surface: number;
|
|
193
|
+
emissive: number | null;
|
|
194
|
+
};
|
|
158
195
|
};
|
|
159
196
|
caps: CapCheck;
|
|
160
197
|
warnings: string[];
|
|
@@ -203,6 +240,8 @@ export interface CompileItemLodOptions {
|
|
|
203
240
|
* as bright, so the backend keeps an albedo rendition next to the lit one and serves each to the clients that can draw it.
|
|
204
241
|
*/
|
|
205
242
|
shading?: ImpostorShading;
|
|
243
|
+
/** `gbuffer/1` capture: the four G-buffer passes; defaults to the headless placements capture host. Injected by tests. */
|
|
244
|
+
captureGBuffer?: (captureGlb: Uint8Array, framing: ImpostorFraming, size?: number) => Promise<GBufferPasses>;
|
|
206
245
|
/** Atlas capture; defaults to the headless placements capture host. Injected by tests. */
|
|
207
246
|
captureAtlas?: (captureGlb: Uint8Array, framing: ImpostorFraming, size?: number, shading?: ImpostorShading) => Promise<Uint8Array>;
|
|
208
247
|
onProgress?: (message: string) => void;
|
package/dist/itemLod/artifact.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.itemLodObjectPath = exports.ITEM_LOD_CAPS = exports.ITEM_LOD_COMPILER = exports.ITEM_LOD_SCHEMA = void 0;
|
|
3
|
+
exports.itemLodObjectPath = exports.ITEM_LOD_CAPS = exports.ITEM_LOD_GBUFFER_COMPILER = exports.ITEM_LOD_COMPILER_FOR_SHADING = exports.ITEM_LOD_COMPILER = exports.ITEM_LOD_SCHEMA = void 0;
|
|
4
4
|
exports.checkItemLodCaps = checkItemLodCaps;
|
|
5
5
|
exports.validateItemLodArtifact = validateItemLodArtifact;
|
|
6
6
|
exports.writeSmallerLevel = writeSmallerLevel;
|
|
@@ -10,6 +10,7 @@ const promises_1 = require("node:fs/promises");
|
|
|
10
10
|
const node_path_1 = require("node:path");
|
|
11
11
|
const helix_manifest_1 = require("@hypersoniclabs/helix-manifest");
|
|
12
12
|
const impostor_1 = require("./impostor");
|
|
13
|
+
const gbuffer_1 = require("./gbuffer");
|
|
13
14
|
const atlas_1 = require("./atlas");
|
|
14
15
|
const flat_1 = require("./flat");
|
|
15
16
|
const levelGlb_1 = require("./levelGlb");
|
|
@@ -28,6 +29,14 @@ exports.ITEM_LOD_SCHEMA = 'helix.item-lod/1';
|
|
|
28
29
|
* is never recompiled). The document schema stays `helix.item-lod/1`: the runtime reads the schema id and ignores this one.
|
|
29
30
|
*/
|
|
30
31
|
exports.ITEM_LOD_COMPILER = 'item-lod/3';
|
|
32
|
+
/**
|
|
33
|
+
* The derivation-key contract each impostor shading is compiled under (the backend owns the key; this table is what its worker reads so the two cannot
|
|
34
|
+
* drift). `item-lod/3` is the albedo rendition, `item-lod/4` the same document with a `lit/1` atlas, `item-lod/5` the `gbuffer/1` impostor: a different
|
|
35
|
+
* layout (`hemi-oct/1`), three maps instead of one, and a bytes rule that keeps the impostor of any item over a few hundred triangles. A ready row is
|
|
36
|
+
* terminal for its key, so a change to any of those bytes is a new contract, never an edit of /5.
|
|
37
|
+
*/
|
|
38
|
+
exports.ITEM_LOD_COMPILER_FOR_SHADING = { albedo: 'item-lod/3', 'lit/1': 'item-lod/4', 'gbuffer/1': 'item-lod/5' };
|
|
39
|
+
exports.ITEM_LOD_GBUFFER_COMPILER = 'item-lod/5';
|
|
31
40
|
/** Caps the artifact must hold (SCENE-PIPELINE-DESIGN section 4.5). */
|
|
32
41
|
exports.ITEM_LOD_CAPS = {
|
|
33
42
|
lod1TriangleRatio: simplify_1.ITEM_LOD1.maxRatio,
|
|
@@ -156,12 +165,34 @@ function validateItemLodArtifact(value) {
|
|
|
156
165
|
errors.push('impostor.center and radius are required');
|
|
157
166
|
if (!isCount(i.bytes))
|
|
158
167
|
errors.push('impostor.bytes must be a count');
|
|
159
|
-
if (i.shading !== undefined && i.shading !== 'lit/1')
|
|
160
|
-
errors.push('impostor.shading must be "lit/1" when present');
|
|
168
|
+
if (i.shading !== undefined && i.shading !== 'lit/1' && i.shading !== 'gbuffer/1')
|
|
169
|
+
errors.push('impostor.shading must be "lit/1" or "gbuffer/1" when present');
|
|
161
170
|
if (i.shading === 'lit/1' && !(typeof i.bakeScale === 'number' && i.bakeScale > 0 && i.bakeScale <= 1))
|
|
162
171
|
errors.push('impostor.bakeScale must be in (0, 1] for a lit impostor');
|
|
163
|
-
if (i.shading
|
|
172
|
+
if (i.shading !== 'lit/1' && i.bakeScale !== undefined)
|
|
164
173
|
errors.push('impostor.bakeScale is only for a lit impostor');
|
|
174
|
+
if (i.layout !== undefined && i.layout !== gbuffer_1.GBUFFER_LAYOUT)
|
|
175
|
+
errors.push(`impostor.layout must be "${gbuffer_1.GBUFFER_LAYOUT}" when present`);
|
|
176
|
+
if (i.shading === 'gbuffer/1') {
|
|
177
|
+
if (i.layout !== gbuffer_1.GBUFFER_LAYOUT)
|
|
178
|
+
errors.push(`a gbuffer/1 impostor is on the ${gbuffer_1.GBUFFER_LAYOUT} layout`);
|
|
179
|
+
const maps = i.maps;
|
|
180
|
+
if (!maps || typeof maps !== 'object')
|
|
181
|
+
errors.push('a gbuffer/1 impostor needs impostor.maps.surface');
|
|
182
|
+
else {
|
|
183
|
+
if (!maps.surface || !isCid(maps.surface.object) || !isCount(maps.surface.bytes))
|
|
184
|
+
errors.push('impostor.maps.surface needs a CID and a byte count');
|
|
185
|
+
const glow = maps.emissive;
|
|
186
|
+
if (glow !== undefined && (!glow || !isCid(glow.object) || !isCount(glow.bytes) || glow.scale !== gbuffer_1.GBUFFER_EMISSIVE_SCALE || typeof glow.clearcoat !== 'boolean'))
|
|
187
|
+
errors.push(`impostor.maps.emissive needs a CID, a byte count, scale ${gbuffer_1.GBUFFER_EMISSIVE_SCALE} and a clearcoat flag`);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
if (i.layout !== undefined)
|
|
192
|
+
errors.push('impostor.layout is only for a gbuffer/1 impostor');
|
|
193
|
+
if (i.maps !== undefined)
|
|
194
|
+
errors.push('impostor.maps is only for a gbuffer/1 impostor');
|
|
195
|
+
}
|
|
165
196
|
}
|
|
166
197
|
const e = a.estimatedBytes;
|
|
167
198
|
if (!e || typeof e !== 'object')
|
|
@@ -277,32 +308,61 @@ async function compileItemLods(glb, options) {
|
|
|
277
308
|
}
|
|
278
309
|
const framing = (0, impostor_1.impostorFraming)(model.bounds);
|
|
279
310
|
const captureGlb = await (0, levelGlb_1.writeLevelGlb)(model, model.groups, cache, { mode: 'capture', textures: levelGlb_1.LOD1_TEXTURES });
|
|
280
|
-
progress('capturing impostor (64 views)');
|
|
281
311
|
const shading = options.shading ?? impostor_1.IMPOSTOR_SHADING;
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
312
|
+
progress('capturing impostor (64 views)');
|
|
313
|
+
// One impostor, as one or three KTX2 maps: the colour (or albedo) map is the artifact's `impostor.object`; a gbuffer/1 impostor adds its surface map and,
|
|
314
|
+
// when the item glows or has a clear coat, an emissive map. Every map is an `ItemLodObject` with its own role.
|
|
315
|
+
let atlas, impostorBytes, maps = null, preview;
|
|
316
|
+
if (shading === gbuffer_1.GBUFFER_SHADING) {
|
|
317
|
+
const passes = await (options.captureGBuffer ?? gbuffer_1.captureGBufferPasses)(captureGlb.bytes, framing, impostor_1.IMPOSTOR_SIZE);
|
|
318
|
+
const packed = (0, gbuffer_1.packGBuffer)(passes, impostor_1.IMPOSTOR_SIZE), encoded = await (0, gbuffer_1.encodeGBufferAtlases)(packed, impostor_1.IMPOSTOR_SIZE);
|
|
319
|
+
atlas = packed.albedo;
|
|
320
|
+
impostorBytes = encoded.albedo;
|
|
321
|
+
maps = { surface: encoded.surface, emissive: encoded.emissive, clearcoat: packed.clearcoat };
|
|
322
|
+
const images = await (0, gbuffer_1.gbufferPreviewPng)(packed, impostor_1.IMPOSTOR_SIZE);
|
|
323
|
+
preview = [{ name: 'impostor.png', bytes: images.albedo }, { name: 'impostor-surface.png', bytes: images.surface }];
|
|
324
|
+
}
|
|
325
|
+
else {
|
|
326
|
+
atlas = await (options.captureAtlas ?? impostor_1.captureImpostorAtlas)(captureGlb.bytes, framing, impostor_1.IMPOSTOR_SIZE, shading);
|
|
327
|
+
impostorBytes = await (0, impostor_1.encodeImpostorAtlas)(atlas);
|
|
328
|
+
preview = [{ name: 'impostor.png', bytes: await (0, impostor_1.impostorPreviewPng)(atlas) }];
|
|
329
|
+
}
|
|
330
|
+
const mapBytes = (maps?.surface.length ?? 0) + (maps?.emissive?.length ?? 0), totalImpostorBytes = impostorBytes.length + mapBytes;
|
|
331
|
+
progress(`impostor encoded (${totalImpostorBytes} bytes${maps ? ` in ${maps.emissive ? 3 : 2} maps` : ''})`);
|
|
332
|
+
// An impostor that is not smaller than the model it stands in for costs more to fetch than the model: leave it out. A gbuffer/1 impostor weighs three maps
|
|
333
|
+
// and a tiny item's own model is cheaper to draw than a billboard is to fetch, so it is left out only for an item that is both tiny and at least
|
|
334
|
+
// GBUFFER_BYTES_SLACK times its source in bytes; anything over GBUFFER_MIN_TRIANGLES keeps it whatever it weighs (its far placements are two triangles each).
|
|
335
|
+
const impostorOmitted = shading === gbuffer_1.GBUFFER_SHADING
|
|
336
|
+
? model.triangles <= gbuffer_1.GBUFFER_MIN_TRIANGLES && totalImpostorBytes >= gbuffer_1.GBUFFER_BYTES_SLACK * glb.length
|
|
337
|
+
: impostorBytes.length >= glb.length;
|
|
287
338
|
if (impostorOmitted) {
|
|
288
|
-
const reason =
|
|
339
|
+
const reason = shading === gbuffer_1.GBUFFER_SHADING
|
|
340
|
+
? `impostor omitted: ${model.triangles} triangles is at most ${gbuffer_1.GBUFFER_MIN_TRIANGLES} and its maps are ${totalImpostorBytes} bytes, at least ${gbuffer_1.GBUFFER_BYTES_SLACK} times the source model (${glb.length} bytes)`
|
|
341
|
+
: `impostor omitted: its atlas is ${impostorBytes.length} bytes, not smaller than the source model (${glb.length} bytes)`;
|
|
289
342
|
progress(reason);
|
|
290
343
|
impostorNotes.push(reason);
|
|
291
344
|
}
|
|
345
|
+
const impostorObjects = impostorOmitted ? [] : [
|
|
346
|
+
{ cid: (0, helix_manifest_1.cidFromBytes)(impostorBytes), bytes: impostorBytes, mediaType: 'image/ktx2', role: 'impostor' },
|
|
347
|
+
...(maps ? [{ cid: (0, helix_manifest_1.cidFromBytes)(maps.surface), bytes: maps.surface, mediaType: 'image/ktx2', role: 'impostor-surface' }] : []),
|
|
348
|
+
...(maps?.emissive ? [{ cid: (0, helix_manifest_1.cidFromBytes)(maps.emissive), bytes: maps.emissive, mediaType: 'image/ktx2', role: 'impostor-emissive' }] : []),
|
|
349
|
+
];
|
|
292
350
|
const objects = [
|
|
293
351
|
...emitted.map((level) => ({ cid: (0, helix_manifest_1.cidFromBytes)(level.written.bytes), bytes: level.written.bytes, mediaType: 'model/gltf-binary', role: level.lod === 1 ? 'lod1' : 'lod2' })),
|
|
294
|
-
...
|
|
352
|
+
...impostorObjects,
|
|
295
353
|
];
|
|
296
354
|
const levels = emitted.map((level, index) => ({
|
|
297
355
|
lod: level.lod, object: objects[index].cid, triangles: level.simplified.triangles, maxErrorM: Math.round(level.simplified.maxErrorM * 1e5) / 1e5,
|
|
298
356
|
bytes: level.written.bytes.length, textureMaxEdge: level.written.textureMaxEdge, cap: level.simplified.cap, drawCalls: level.written.primitives,
|
|
299
357
|
...(level.simplified.waived ? { waived: level.simplified.waived } : {}),
|
|
300
358
|
}));
|
|
301
|
-
const
|
|
359
|
+
const mapCount = impostorOmitted ? 0 : impostorObjects.length;
|
|
360
|
+
const estimatedBytes = impostorOmitted ? {} : { impostor: (0, textures_1.residentTextureBytes)(impostor_1.IMPOSTOR_SIZE, impostor_1.IMPOSTOR_SIZE) * mapCount };
|
|
302
361
|
for (const level of emitted)
|
|
303
362
|
estimatedBytes[level.lod === 1 ? 'lod1' : 'lod2'] = level.written.residentBytes;
|
|
304
363
|
const budgetNotes = emitted.filter(level => level.lod === 1 && level.simplified.budgetNote).map(level => level.simplified.budgetNote);
|
|
305
364
|
const warnings = [...model.warnings, ...budgetNotes, ...omitted.map(entry => entry.reason), ...impostorNotes];
|
|
365
|
+
const surfaceObject = impostorObjects.find(object => object.role === 'impostor-surface'), emissiveObject = impostorObjects.find(object => object.role === 'impostor-emissive');
|
|
306
366
|
const artifact = {
|
|
307
367
|
schema: exports.ITEM_LOD_SCHEMA,
|
|
308
368
|
source: options.source,
|
|
@@ -310,9 +370,14 @@ async function compileItemLods(glb, options) {
|
|
|
310
370
|
bounds: { min: model.bounds.min, max: model.bounds.max },
|
|
311
371
|
triangles: [model.triangles, ...emitted.map(level => level.simplified.triangles)],
|
|
312
372
|
levels,
|
|
313
|
-
impostor: impostorOmitted ? null : { object:
|
|
373
|
+
impostor: impostorOmitted ? null : { object: impostorObjects[0].cid, kind: 'octahedral', views: impostor_1.IMPOSTOR_VIEWS, size: impostor_1.IMPOSTOR_SIZE, format: 'ktx2-uastc',
|
|
314
374
|
center: framing.center, radius: Math.round(framing.radius * 1e6) / 1e6, bytes: impostorBytes.length,
|
|
315
|
-
...(shading === 'lit/1' ? { shading, bakeScale: impostor_1.IMPOSTOR_BAKE_SCALE } : {})
|
|
375
|
+
...(shading === 'lit/1' ? { shading, bakeScale: impostor_1.IMPOSTOR_BAKE_SCALE } : {}),
|
|
376
|
+
...(shading === gbuffer_1.GBUFFER_SHADING && maps && surfaceObject ? {
|
|
377
|
+
shading, layout: gbuffer_1.GBUFFER_LAYOUT,
|
|
378
|
+
maps: { surface: { object: surfaceObject.cid, bytes: surfaceObject.bytes.length },
|
|
379
|
+
...(emissiveObject && maps.emissive ? { emissive: { object: emissiveObject.cid, bytes: emissiveObject.bytes.length, scale: gbuffer_1.GBUFFER_EMISSIVE_SCALE, clearcoat: maps.clearcoat } } : {}) },
|
|
380
|
+
} : {}) },
|
|
316
381
|
estimatedBytes,
|
|
317
382
|
warnings,
|
|
318
383
|
};
|
|
@@ -321,7 +386,7 @@ async function compileItemLods(glb, options) {
|
|
|
321
386
|
throw new Error(`item-lod/1 artifact is invalid: ${validation.errors.join('; ')}`);
|
|
322
387
|
const artifactBytes = (0, helix_manifest_1.canonicalJsonBytes)(artifact);
|
|
323
388
|
const caps = checkItemLodCaps(artifact);
|
|
324
|
-
const previews =
|
|
389
|
+
const previews = preview;
|
|
325
390
|
const reported = (lod) => {
|
|
326
391
|
const level = emitted.find(candidate => candidate.lod === lod);
|
|
327
392
|
return level ? reportLevel(level.simplified, level.written, level.rung) : null;
|
|
@@ -331,7 +396,7 @@ async function compileItemLods(glb, options) {
|
|
|
331
396
|
report: {
|
|
332
397
|
sourceTriangles: model.triangles, sourceBytes: glb.length, materials: model.materials.length, images: model.images.length,
|
|
333
398
|
extensionsUsed: model.extensionsUsed, profile, lod1: reported(1), lod2: reported(2), omitted,
|
|
334
|
-
impostor: { bytes:
|
|
399
|
+
impostor: { bytes: totalImpostorBytes, coverage: Math.round((0, impostor_1.impostorCoverage)(atlas) * 1e4) / 1e4, shading, ...(maps ? { maps: { surface: maps.surface.length, emissive: maps.emissive?.length ?? null } } : {}), ...(impostorOmitted ? { omitted: true } : {}) }, caps, warnings,
|
|
335
400
|
millis: { total: Date.now() - started },
|
|
336
401
|
},
|
|
337
402
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifact.js","sourceRoot":"","sources":["../../src/itemLod/artifact.ts"],"names":[],"mappings":";;;AA4LA,4CA0BC;AAOD,0DA+DC;AAmCD,8CAUC;AAGD,0CA6HC;AAMD,gDAaC;AA5dD,+CAAoD;AACpD,yCAA0C;AAC1C,mEAAkF;AAClF,yCAAgP;AAChP,mCAA6C;AAC7C,iCAAwC;AACxC,yCAAgM;AAChM,mCAAwD;AACxD,yCAA+N;AAC/N,qCAAkD;AAClD,yCAAgE;AAEhE,8GAA8G;AAEjG,QAAA,eAAe,GAAG,kBAAkB,CAAC;AAClD;;;;;;;GAOG;AACU,QAAA,iBAAiB,GAAG,YAAY,CAAC;AAC9C,uEAAuE;AAC1D,QAAA,aAAa,GAAG;IAC3B,iBAAiB,EAAE,oBAAS,CAAC,QAAS;IACtC,eAAe,EAAE,wBAAa,CAAC,OAAO;IACtC,aAAa,EAAE,oBAAS,CAAC,YAAa;IACtC,eAAe,EAAE,wBAAa,CAAC,OAAO;IACtC,kJAAkJ;IAClJ,uBAAuB,EAAE,qCAA0B;IACnD,wBAAwB,EAAE,6BAAkB;IAC5C,wGAAwG;IACxG,YAAY,EAAE,iCAAsB;CAC5B,CAAC;AAEX,MAAM,GAAG,GAAG,2BAA2B,CAAC;AAsJxC,uFAAuF;AACvF,SAAgB,gBAAgB,CAAC,QAAyB;IACxD,MAAM,QAAQ,GAAa,EAAE,EAAE,OAAO,GAAa,EAAE,CAAC;IACtD,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,KAAK,SAAS,CAAC;IAC/C,wHAAwH;IACxH,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAa,CAAC,uBAAuB,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,qBAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,qBAAa,CAAC,iBAAiB,CAAC,CAAC;IACvL,IAAI,KAAK,GAAG,MAAM,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC1C,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC;QAC/B,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,SAAS,GAAG,OAAO,EAAE,CAAC;gBAC9B,IAAI,KAAK,CAAC,MAAM;oBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;;oBACtD,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,QAAQ,KAAK,CAAC,SAAS,+BAA+B,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,YAAY,iBAAiB,CAAC,CAAC;YAChK,CAAC;YACD,IAAI,KAAK,CAAC,GAAG,GAAG,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM;gBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,0BAA0B,KAAK,CAAC,GAAG,oBAAoB,OAAO,EAAE,CAAC,CAAC;YACjI,IAAI,KAAK,CAAC,cAAc,GAAG,qBAAa,CAAC,eAAe;gBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,mBAAmB,KAAK,CAAC,cAAc,YAAY,qBAAa,CAAC,eAAe,EAAE,CAAC,CAAC;QACrK,CAAC;aAAM,CAAC;YACN,IAAI,KAAK,CAAC,SAAS,GAAG,qBAAa,CAAC,aAAa;gBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,QAAQ,KAAK,CAAC,SAAS,oBAAoB,qBAAa,CAAC,aAAa,EAAE,CAAC,CAAC;YAClJ,IAAI,KAAK,CAAC,cAAc,GAAG,qBAAa,CAAC,eAAe;gBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,mBAAmB,KAAK,CAAC,cAAc,YAAY,qBAAa,CAAC,eAAe,EAAE,CAAC,CAAC;QACrK,CAAC;QACD,IAAI,KAAK,CAAC,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,qBAAa,CAAC,YAAY,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,SAAS,gBAAgB,qBAAa,CAAC,YAAY,GAAG,GAAG,uCAAuC,KAAK,GAAG,CAAC,CAAC;QAClO,IAAI,KAAK,CAAC,KAAK,IAAI,UAAU;YAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,KAAK,CAAC,KAAK,gDAAgD,UAAU,GAAG,CAAC,CAAC;QACrI,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC;QAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;IACpD,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,wBAAa,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,KAAK,yBAAc,CAAC;QAAE,QAAQ,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IACtK,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,KAAK,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxF,MAAM,OAAO,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAK,KAAgB,IAAI,CAAC,CAAC;AACnG,MAAM,MAAM,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAExJ,sGAAsG;AACtG,SAAgB,uBAAuB,CAAC,KAAc;IACpD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,CAAC,GAAG,KAAwC,CAAC;IACnD,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,4BAA4B,CAAC,EAAE,CAAC;IACjG,IAAI,CAAC,CAAC,MAAM,KAAK,uBAAe;QAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB,uBAAe,EAAE,CAAC,CAAC;IACnF,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS;QAAE,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;IACnI,MAAM,CAAC,GAAG,CAAC,CAAC,MAA4C,CAAC;IACzD,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;SAC9D,CAAC;QACJ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QAChF,KAAK,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAU;YAAE,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,QAAQ;gBAAE,MAAM,CAAC,IAAI,CAAC,UAAU,GAAG,2BAA2B,CAAC,CAAC;QAC9J,IAAI,CAAC,CAAC,WAAW,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QAC7G,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACvG,IAAI,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;IAC/L,CAAC;IACD,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IAC3K,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,IAAI,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;IAC5G,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,KAAK,UAAU,GAAG,CAAC,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;IACxN,IAAI,UAAU,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,CAAC,CAAC,MAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACjC,MAAM,IAAI,GAAG,UAAU,KAAK,GAAG,CAAC;YAChC,qHAAqH;YACrH,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACpE,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,qBAAqB,CAAC,CAAC;iBACjE,CAAC;gBACJ,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,MAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC;oBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,iCAAiC,CAAC,CAAC;gBACtI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChB,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,uBAAuB,CAAC,CAAC;YACtE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,mCAAmC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;YACnJ,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,0CAA0C,CAAC,CAAC;YACpK,KAAK,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,CAAU;gBAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,GAAG,kBAAkB,CAAC,CAAC;YACvI,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,kDAAkD,CAAC,CAAC;QAClK,CAAC,CAAC,CAAC;IACL,CAAC;IACD,MAAM,CAAC,GAAG,CAAC,CAAC,QAAuD,CAAC;IACpE,qGAAqG;IACrG,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC;SAC/C,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;SAC7E,CAAC;QACJ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QACnE,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC,MAAM,KAAK,YAAY;YAAE,MAAM,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;QACrK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;QACjI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QACrE,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO;YAAE,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QACnH,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;QAC/K,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;IACzH,CAAC;IACD,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC;IAC3B,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;SACtE,IAAI,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;SACnL,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QAClB,kEAAkE;QAClE,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAU,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,MAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YAClH,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;YACzC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB,GAAG,oCAAoC,IAAI,aAAa,CAAC,CAAC;QAChL,CAAC;IACH,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAC7H,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAoB,EAAE,CAAC;AACpG,CAAC;AAoBD,MAAM,WAAW,GAAG,CAAC,KAAsB,EAAE,OAAqB,EAAE,IAAY,EAAsB,EAAE,CAAC,CAAC;IACxG,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY;IACpJ,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,YAAY,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa;IACzI,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,QAAQ;IAC9I,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;CACnF,CAAC,CAAC;AAEH,MAAM,OAAO,GAAG,CAAC,QAAgB,EAAU,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC;AAI5F;;;GAGG;AACI,KAAK,UAAU,iBAAiB,CAAC,KAAgB,EAAE,UAA2B,EAAE,KAAmB,EAAE,MAAmC,EAAE,UAAkB;IACjK,IAAI,IAAI,GAAmD,IAAI,CAAC;IAChE,gGAAgG;IAChG,MAAM,IAAI,GAAG,MAAM,IAAA,uBAAY,EAAC,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,MAAM,IAAA,wBAAa,EAAC,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QACtH,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC/E,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM;YAAE,IAAI,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC1F,CAAC;IACD,OAAO,EAAE,GAAG,IAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACtC,CAAC;AAED,0HAA0H;AACnH,KAAK,UAAU,eAAe,CAAC,GAAe,EAAE,OAA8B;IACnF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,OAAO,GAAmB,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC;IAC1D,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC1B,MAAM,KAAK,GAAc,MAAM,IAAA,qBAAa,EAAC,GAAG,CAAC,CAAC;IAClD,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,IAAA,+BAAsB,EAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,QAAQ,CAAC,GAAG,KAAK,CAAC,SAAS,eAAe,KAAK,CAAC,MAAM,CAAC,MAAM,eAAe,KAAK,CAAC,MAAM,CAAC,MAAM,YAAY,OAAO,GAAG,CAAC,CAAC;IACvH,MAAM,KAAK,GAAG,IAAI,uBAAY,EAAE,CAAC;IAEjC,wHAAwH;IACxH,uHAAuH;IACvH,4CAA4C;IAC5C,MAAM,OAAO,GAAmB,EAAE,EAAE,OAAO,GAAsB,EAAE,EAAE,aAAa,GAAa,EAAE,CAAC;IAClG,IAAI,cAAc,GAAG,KAAK,CAAC,SAAS,EAAE,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC;IAC9D,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAU,EAAE,CAAC;QAClC,MAAM,UAAU,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,IAAA,uBAAY,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,IAAA,uBAAY,EAAC,KAAK,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QACvH,MAAM,GAAG,GAAG,CAAC,GAAG,UAAU,CAAC,SAAS,GAAG,cAAc,CAAC;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnG,IAAI,GAAG,KAAK,CAAC,IAAI,OAAO,KAAK,SAAS,IAAI,UAAU,CAAC,SAAS,GAAG,MAAM,GAAG,uCAA4B,EAAE,CAAC;YACvG,MAAM,MAAM,GAAG,0BAA0B,UAAU,CAAC,SAAS,sCAAsC,OAAO,CAAC,UAAU,CAAC,SAAS,GAAG,MAAM,CAAC,sDAAsD,OAAO,CAAC,uCAA4B,CAAC,+CAA+C,CAAC;YACpR,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5E,QAAQ,CAAC,MAAM,CAAC,CAAC;YACjB,SAAS;QACX,CAAC;QACD,IAAI,UAAU,CAAC,SAAS,GAAG,cAAc,GAAG,CAAC,CAAC,GAAG,qBAAa,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7E,MAAM,MAAM,GAAG,MAAM,GAAG,+BAA+B,OAAO,CAAC,GAAG,CAAC,4CAA4C,cAAc,OAAO,UAAU,CAAC,SAAS,eAAe,OAAO,CAAC,qBAAa,CAAC,YAAY,CAAC,cAAc,CAAC;YACzN,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5E,QAAQ,CAAC,MAAM,CAAC,CAAC;YACjB,SAAS;QACX,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YAC7C,6HAA6H;YAC7H,wFAAwF;YACxF,MAAM,MAAM,GAAG,MAAM,GAAG,0CAA0C,UAAU,CAAC,SAAS,+BAA+B,UAAU,CAAC,GAAG,2BAA2B,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,6BAA6B,CAAC;YAC5N,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5E,QAAQ,CAAC,MAAM,CAAC,CAAC;YACjB,SAAS;QACX,CAAC;QACD,IAAI,OAAsD,CAAC;QAC3D,IAAI,CAAC;YACH,IAAI,UAAU,GAAG,KAAK,EAAE,eAAe,GAAG,UAAU,CAAC;YACrD,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;gBACzB,MAAM,IAAI,GAAG,MAAM,IAAA,qBAAc,EAAC,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBACxF,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;gBAAC,eAAe,GAAG,EAAE,GAAG,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,oDAAoD,IAAI,CAAC,SAAS,0EAA0E,CAAC,EAAE,CAAC;YAChQ,CAAC;YACD,OAAO,GAAG,MAAM,iBAAiB,CAAC,UAAU,EAAE,eAAe,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,8BAAmB,CAAC,CAAC,CAAC,8BAAmB,EAAE,UAAU,CAAC,CAAC;YACzI,IAAI,eAAe,KAAK,UAAU;gBAAE,UAAU,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC;QAC/E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,CAAC,KAAK,YAAY,0BAAkB,CAAC;gBAAE,MAAM,KAAK,CAAC;YACxD,MAAM,MAAM,GAAG,MAAM,GAAG,aAAa,KAAK,CAAC,OAAO,EAAE,CAAC;YACrD,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5E,QAAQ,CAAC,MAAM,CAAC,CAAC;YACjB,SAAS;QACX,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG,MAAM,GAAG,kCAAkC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,gDAAgD,UAAU,SAAS,CAAC;YAC1J,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YACpG,QAAQ,CAAC,MAAM,CAAC,CAAC;YACjB,SAAS;QACX,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAChF,QAAQ,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,SAAS,eAAe,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,wBAAwB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;QAC9H,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC;QAAC,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;IACnF,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,0BAAe,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,MAAM,IAAA,wBAAa,EAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,wBAAa,EAAE,CAAC,CAAC;IACjH,QAAQ,CAAC,+BAA+B,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAoB,OAAO,CAAC,OAAO,IAAI,2BAAgB,CAAC;IACrE,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,IAAI,+BAAoB,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,wBAAa,EAAE,OAAO,CAAC,CAAC;IACtH,MAAM,aAAa,GAAG,MAAM,IAAA,8BAAmB,EAAC,KAAK,CAAC,CAAC;IACvD,QAAQ,CAAC,qBAAqB,aAAa,CAAC,MAAM,SAAS,CAAC,CAAC;IAC7D,oHAAoH;IACpH,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC;IAC3D,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,kCAAkC,aAAa,CAAC,MAAM,8CAA8C,GAAG,CAAC,MAAM,SAAS,CAAC;QACvI,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjB,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,OAAO,GAAoB;QAC/B,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAiB,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,IAAA,6BAAY,EAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3L,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAA,6BAAY,EAAC,aAAa,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAmB,CAAC,CAAC;KACrJ,CAAC;IACF,MAAM,MAAM,GAAmB,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5D,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,GAAG;QAChJ,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU;QAC/I,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxE,CAAC,CAAC,CAAC;IACJ,MAAM,cAAc,GAAsC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAA,+BAAoB,EAAC,wBAAa,EAAE,wBAAa,CAAC,EAAE,CAAC;IAClJ,KAAK,MAAM,KAAK,IAAI,OAAO;QAAE,cAAc,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;IAC7G,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,UAAW,CAAC,CAAC;IACvI,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,aAAa,CAAC,CAAC;IAC9G,MAAM,QAAQ,GAAoB;QAChC,MAAM,EAAE,uBAAe;QACvB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO;QACP,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE;QACxD,SAAS,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACjF,MAAM;QACN,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,yBAAc,EAAE,IAAI,EAAE,wBAAa,EAAE,MAAM,EAAE,YAAY;YAChK,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,aAAa,CAAC,MAAM;YACnG,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,8BAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QAC/E,cAAc;QACd,QAAQ;KACT,CAAC;IACF,MAAM,UAAU,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACrD,IAAI,CAAC,UAAU,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1G,MAAM,aAAa,GAAG,IAAA,mCAAkB,EAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,IAAA,6BAAkB,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpF,MAAM,QAAQ,GAAG,CAAC,GAAU,EAA6B,EAAE;QACzD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QAC/D,OAAO,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjF,CAAC,CAAC;IACF,OAAO;QACL,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,IAAA,6BAAY,EAAC,aAAa,CAAC,EAAE,OAAO,EAAE,QAAQ;QACpF,MAAM,EAAE;YACN,eAAe,EAAE,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;YACzH,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO;YAC5F,QAAQ,EAAE,EAAE,KAAK,EAAE,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAA,2BAAgB,EAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ;YACnK,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE;SACxC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,MAAqB,EAAU,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,KAAK,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC5G,MAAM,iBAAiB,GAAG,CAAC,MAAqB,EAAU,EAAE,CAAC,WAAW,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;AAAlI,QAAA,iBAAiB,qBAAiH;AAE/I,8HAA8H;AACvH,KAAK,UAAU,kBAAkB,CAAC,SAAiB,EAAE,KAAmB;IAC7E,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,GAAG,GAAG,KAAK,EAAE,QAAgB,EAAE,KAA0B,EAAE,EAAE;QACjE,MAAM,IAAI,GAAG,IAAA,gBAAI,EAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACvC,MAAM,IAAA,gBAAK,EAAC,IAAA,mBAAO,EAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,MAAM,IAAA,oBAAS,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC,CAAC;IACF,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO;QAAE,MAAM,GAAG,CAAC,IAAA,yBAAiB,EAAC,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACvF,MAAM,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IAChD,MAAM,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC9G,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ;QAAE,MAAM,GAAG,CAAC,YAAY,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3F,OAAO,EAAE,YAAY,EAAE,IAAA,gBAAI,EAAC,SAAS,EAAE,eAAe,CAAC,EAAE,KAAK,EAAE,CAAC;AACnE,CAAC"}
|
|
1
|
+
{"version":3,"file":"artifact.js","sourceRoot":"","sources":["../../src/itemLod/artifact.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { type ImpostorFraming } from './impostor';
|
|
2
|
+
/**
|
|
3
|
+
* `gbuffer/1`: the impostor holds what the item's materials ARE (albedo, normal, roughness, metalness, glow, clear coat), not how a neutral rig
|
|
4
|
+
* lit them. The runtime lights it with the same three.js physical material and the same lights as the full model (the sun, hemisphere and ambient
|
|
5
|
+
* lights, the environment, the probe grid), so a placed item has the right brightness and hue at every heading and time of day without a fitted
|
|
6
|
+
* constant. The frames are on the `hemi-oct/1` layout. The atlas is three KTX2 files of 8 x 8 views of IMPOSTOR_SIZE / 8 px:
|
|
7
|
+
*
|
|
8
|
+
* - albedo: sRGB RGB albedo, A = coverage (this is also what an albedo-only reader would draw).
|
|
9
|
+
* - surface: linear, R and G = the view-space normal's x and y (z is rebuilt: a visible surface faces the camera), B = roughness, A = metalness.
|
|
10
|
+
* - emissive: sRGB RGB = emissive radiance x GBUFFER_EMISSIVE_SCALE, A = clear coat strength. Present only when the item glows or has a clear coat.
|
|
11
|
+
*/
|
|
12
|
+
export declare const GBUFFER_SHADING: "gbuffer/1";
|
|
13
|
+
export declare const GBUFFER_LAYOUT: "hemi-oct/1";
|
|
14
|
+
/** The emissive map stores radiance at this fraction (8-bit headroom); the runtime multiplies it back. */
|
|
15
|
+
export declare const GBUFFER_EMISSIVE_SCALE = 0.25;
|
|
16
|
+
/**
|
|
17
|
+
* The impostor is left out of a `gbuffer/1` artifact only for an item that is both tiny (at most this many triangles: its instanced model costs
|
|
18
|
+
* less to draw than a billboard costs to fetch) and whose three maps cost at least GBUFFER_BYTES_SLACK times its source's bytes. Anything bigger
|
|
19
|
+
* keeps its impostor whatever its bytes: far placements of it are drawn as two triangles instead of the model, which is the point of the file.
|
|
20
|
+
*/
|
|
21
|
+
export declare const GBUFFER_MIN_TRIANGLES = 300;
|
|
22
|
+
export declare const GBUFFER_BYTES_SLACK = 2;
|
|
23
|
+
export type Vec3 = [number, number, number];
|
|
24
|
+
/**
|
|
25
|
+
* The direction of frame (i, j) on `hemi-oct/1`: the upper hemisphere folded into the octahedral diamond, the diamond turned 45 degrees onto
|
|
26
|
+
* the 8 x 8 grid so that the grid's outer ring IS the horizon. (u, v) = (2i/(n-1) - 1, 2j/(n-1) - 1); x = (u + v) / 2, z = (u - v) / 2,
|
|
27
|
+
* y = 1 - |x| - |z|, normalised. The 28 frames of the outer ring look along the horizon, 9.5 to 16.2 degrees apart in azimuth; none looks from below
|
|
28
|
+
* the ground a prop stands on, and a player at ground level, who sees every far item from within a few degrees of the horizon, sits ON the ring.
|
|
29
|
+
*/
|
|
30
|
+
export declare function hemiOctDirection(i: number, j: number, views?: number): Vec3;
|
|
31
|
+
/** The four capture passes, each RGBA with the view cell layout of the atlas, bottom row first, alpha = coverage. */
|
|
32
|
+
export interface GBufferPasses {
|
|
33
|
+
/** sRGB albedo. */
|
|
34
|
+
albedo: Uint8Array;
|
|
35
|
+
/** Linear view-space normal x, y, z mapped to 0..1 (camera space of the view: x right, y up, z toward the viewer). */
|
|
36
|
+
normal: Uint8Array;
|
|
37
|
+
/** Linear roughness, metalness, clear coat. */
|
|
38
|
+
material: Uint8Array;
|
|
39
|
+
/** sRGB emissive radiance x GBUFFER_EMISSIVE_SCALE. */
|
|
40
|
+
emissive: Uint8Array;
|
|
41
|
+
}
|
|
42
|
+
export interface GBufferAtlases {
|
|
43
|
+
albedo: Uint8Array;
|
|
44
|
+
surface: Uint8Array;
|
|
45
|
+
/** Null when no texel glows and none has a clear coat. */
|
|
46
|
+
emissive: Uint8Array | null;
|
|
47
|
+
/** True when the emissive map's alpha carries a clear coat. */
|
|
48
|
+
clearcoat: boolean;
|
|
49
|
+
emissiveTexels: number;
|
|
50
|
+
coatTexels: number;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Dilates `channels` of `data` into texels `coverage` leaves empty, inside each view cell, so filtering at a silhouette never mixes in black.
|
|
54
|
+
* Same step count and neighbour order as `dilateImpostorColors`, but the occupancy comes from a separate mask because only the albedo map's alpha is coverage.
|
|
55
|
+
*/
|
|
56
|
+
export declare function dilateWithMask(data: Uint8Array, coverage: Uint8Array, size: number, channels: readonly number[], steps?: number): Uint8Array;
|
|
57
|
+
/** Packs the four capture passes into the three maps and dilates each into the empty texels of its view cell. */
|
|
58
|
+
export declare function packGBuffer(passes: GBufferPasses, size?: number): GBufferAtlases;
|
|
59
|
+
/** The four G-buffer passes of an item on `hemi-oct/1`, from a capture GLB (static, single-material primitives), in the shared headless capture host. */
|
|
60
|
+
export declare function captureGBufferPasses(captureGlb: Uint8Array, framing: ImpostorFraming, size?: number): Promise<GBufferPasses>;
|
|
61
|
+
export interface EncodedGBuffer {
|
|
62
|
+
albedo: Uint8Array;
|
|
63
|
+
surface: Uint8Array;
|
|
64
|
+
emissive: Uint8Array | null;
|
|
65
|
+
}
|
|
66
|
+
/** UASTC KTX2 with mips for each map: albedo and the emissive map as sRGB colour, the surface map as linear data. */
|
|
67
|
+
export declare function encodeGBufferAtlases(atlases: GBufferAtlases, size?: number): Promise<EncodedGBuffer>;
|
|
68
|
+
/** A top-row-first PNG of the albedo atlas and, for review, the surface map's normal as RGB over its own coverage; never part of the artifact. */
|
|
69
|
+
export declare function gbufferPreviewPng(atlases: GBufferAtlases, size?: number): Promise<{
|
|
70
|
+
albedo: Uint8Array;
|
|
71
|
+
surface: Uint8Array;
|
|
72
|
+
}>;
|