@helix3/helix-cli 0.1.18-helix3.300 → 0.1.18-helix3.302
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/bridge/characterAddon.d.ts +4 -7
- package/dist/bridge/characterAddon.js.map +1 -1
- package/dist/bridge/internal/builtInExecution.js +4 -0
- package/dist/bridge/internal/builtInExecution.js.map +1 -1
- package/dist/character/avatarPreflight.d.ts +4 -1
- package/dist/character/avatarPreflight.js +13 -2
- package/dist/character/avatarPreflight.js.map +1 -1
- package/dist/character/importCharacter.d.ts +10 -7
- package/dist/character/importCharacter.js +136 -92
- package/dist/character/importCharacter.js.map +1 -1
- package/dist/character/slotBudgets.d.ts +37 -0
- package/dist/character/slotBudgets.generated.d.ts +15 -0
- package/dist/character/slotBudgets.generated.js +110 -0
- package/dist/character/slotBudgets.generated.js.map +1 -0
- package/dist/character/slotBudgets.js +45 -0
- package/dist/character/slotBudgets.js.map +1 -0
- package/dist/character/stages/poseAwareFit.d.ts +3 -2
- package/dist/character/stages/poseAwareFit.js +24 -2
- package/dist/character/stages/poseAwareFit.js.map +1 -1
- package/dist/character/testutil/slotBudgetExpectations.d.ts +11 -0
- package/dist/character/testutil/slotBudgetExpectations.js +21 -0
- package/dist/character/testutil/slotBudgetExpectations.js.map +1 -0
- package/dist/lib.js +6 -1
- package/dist/lib.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -1
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_abs.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
|
@@ -14,13 +14,10 @@ export interface BridgeCharacterAddonProfile {
|
|
|
14
14
|
fits: Record<string, unknown>;
|
|
15
15
|
ops: Record<string, unknown>[];
|
|
16
16
|
/**
|
|
17
|
-
* Per-LOD triangle targets, high->low,
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* past its slot's real cap conforms cleanly but is rejected at publish. Only lets an author state
|
|
22
|
-
* the same override `character import --lod-tris` already accepts on the plain (non-addon) path;
|
|
23
|
-
* it is not the automatic per-slot enforcement `batch-backlog.md` #2 still wants.
|
|
17
|
+
* Per-LOD triangle targets, high->low. Optional: without it, conform aims at this slot's own server-side
|
|
18
|
+
* ceiling automatically (`character/slotBudgets.ts` — combined triangles across LODs, generated from the
|
|
19
|
+
* backend's `CHARACTER_ADD_ON_SLOT_TIERS`). With it (#218), these exact targets are used — and the packaged
|
|
20
|
+
* result is still held to the slot's ceiling, failing conform instead of failing at publish.
|
|
24
21
|
*/
|
|
25
22
|
lodTris?: number[];
|
|
26
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"characterAddon.js","sourceRoot":"","sources":["../../src/bridge/characterAddon.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"characterAddon.js","sourceRoot":"","sources":["../../src/bridge/characterAddon.ts"],"names":[],"mappings":"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"}
|
|
@@ -295,6 +295,10 @@ async function executeCharacterAddon(plan, outputDir, options, sourcePath) {
|
|
|
295
295
|
// instead of shipping an over-cap GLB that only fails later at `helix item publish`. See
|
|
296
296
|
// `unifyMaterial.ts`'s header for why rebind-onto-dominant is the right pragmatic fix here.
|
|
297
297
|
maxMaterials: WEARABLE_LIMITS.maxMaterials,
|
|
298
|
+
// Aim LOD generation at — and verify against — the ceiling the server applies to THIS slot at publish
|
|
299
|
+
// (combined triangles across LODs, materials, texture edge; see character/slotBudgets.ts). A profile's
|
|
300
|
+
// explicit `lodTris` (#218) still wins as the targets, and is still held to the slot's ceiling.
|
|
301
|
+
slotType: profile.slotType,
|
|
298
302
|
...(profile.slotType === 'character.hair@1' ? { pushOut: false } : {}),
|
|
299
303
|
// Pose-aware poke-through fit, scoped to exactly the regions this slot is granted to cover (the same
|
|
300
304
|
// scope the poke-through check judges it by). Hair rests on the scalp by design — never pushed away.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtInExecution.js","sourceRoot":"","sources":["../../../src/bridge/internal/builtInExecution.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"builtInExecution.js","sourceRoot":"","sources":["../../../src/bridge/internal/builtInExecution.ts"],"names":[],"mappings":"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"}
|
|
@@ -84,6 +84,9 @@ export interface AvatarPreflightResult {
|
|
|
84
84
|
firstPersonHide: number | null;
|
|
85
85
|
};
|
|
86
86
|
}
|
|
87
|
-
export declare function preflightAvatar(buffer: Buffer, kind?: PreflightKind
|
|
87
|
+
export declare function preflightAvatar(buffer: Buffer, kind?: PreflightKind,
|
|
88
|
+
/** A NEW character add-on's slot type: narrows the add-on ceiling to that slot's server-side tier
|
|
89
|
+
* (`slotBudgets.ts`, generated from the backend's own table). */
|
|
90
|
+
characterSlotType?: string): AvatarPreflightResult;
|
|
88
91
|
/** One line per finding, plus the capability line, for the CLI's own output. */
|
|
89
92
|
export declare function formatPreflight(result: AvatarPreflightResult): string;
|
|
@@ -4,6 +4,7 @@ exports.DRAW_CALL_LIMITS = exports.HOME_ITEM_LIMITS = exports.WEAPON_LIMITS = ex
|
|
|
4
4
|
exports.preflightAvatar = preflightAvatar;
|
|
5
5
|
exports.formatPreflight = formatPreflight;
|
|
6
6
|
const glb_1 = require("../glb");
|
|
7
|
+
const slotBudgets_1 = require("./slotBudgets");
|
|
7
8
|
/**
|
|
8
9
|
* WHAT THE PLATFORM WILL SAY ABOUT THIS AVATAR, SAID HERE INSTEAD.
|
|
9
10
|
*
|
|
@@ -172,8 +173,18 @@ function describeDrawCallOverage(breakdown, limit, kind) {
|
|
|
172
173
|
+ 'to send it and let the server decide.');
|
|
173
174
|
return lines.join('\n');
|
|
174
175
|
}
|
|
175
|
-
function preflightAvatar(buffer, kind = 'avatar'
|
|
176
|
-
|
|
176
|
+
function preflightAvatar(buffer, kind = 'avatar',
|
|
177
|
+
/** A NEW character add-on's slot type: narrows the add-on ceiling to that slot's server-side tier
|
|
178
|
+
* (`slotBudgets.ts`, generated from the backend's own table). */
|
|
179
|
+
characterSlotType) {
|
|
180
|
+
const base = LIMITS_BY_KIND[kind] ?? exports.HOME_ITEM_LIMITS;
|
|
181
|
+
const tier = kind === 'add_on' && characterSlotType ? (0, slotBudgets_1.characterAddOnBudget)(characterSlotType) : null;
|
|
182
|
+
const limits = tier === null ? base : {
|
|
183
|
+
...base,
|
|
184
|
+
maxTriangles: Math.min(base.maxTriangles, tier.maxTriangles),
|
|
185
|
+
maxMaterials: Math.min(base.maxMaterials, tier.maxMaterials),
|
|
186
|
+
maxTextureEdge: Math.min(base.maxTextureEdge, tier.maxTextureEdge),
|
|
187
|
+
};
|
|
177
188
|
const summary = (0, glb_1.summarizeGlb)(buffer);
|
|
178
189
|
const extras = readSceneExtras(buffer);
|
|
179
190
|
const findings = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avatarPreflight.js","sourceRoot":"","sources":["../../src/character/avatarPreflight.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"avatarPreflight.js","sourceRoot":"","sources":["../../src/character/avatarPreflight.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,8 +40,17 @@ export interface ImportCharacterOptions {
|
|
|
40
40
|
output?: string;
|
|
41
41
|
/** Output basename (default: derived from the body file name) -> <name>.web.glb. */
|
|
42
42
|
name?: string;
|
|
43
|
-
/** Triangle target per LOD level, high->low
|
|
43
|
+
/** Triangle target per LOD level, high->low. Default: the slot-aware ladder for `slotType` (an add-on
|
|
44
|
+
* with a known slot — see `slotBudgets.ts`), else [10000, 5000, 1500]. An explicit value is honoured
|
|
45
|
+
* exactly (Bridge profile `lodTris`, #218) but is still held to the slot's combined ceiling. */
|
|
44
46
|
lodTris?: number[];
|
|
47
|
+
/**
|
|
48
|
+
* The add-on's published slot type (`character.top@1`, …), `rigScope: 'addon'` only. Makes packaging
|
|
49
|
+
* aim at — and verify against — the ceiling the server applies to that slot at publish (combined
|
|
50
|
+
* triangles across every LOD, materials, texture edge), read from the server's own source via
|
|
51
|
+
* `slotBudgets.generated.ts`. Undefined: no slot budget (the generic ladder, no combined check).
|
|
52
|
+
*/
|
|
53
|
+
slotType?: string;
|
|
45
54
|
/** Texture longest-edge cap (default 1024); the bake route halves it per LOD level like a mip chain. */
|
|
46
55
|
texSize?: number;
|
|
47
56
|
/** KTX2 codec per LOD level (a shorter list repeats its last entry; a single value = all levels).
|
|
@@ -220,10 +229,4 @@ export interface CharacterGeometryBounds {
|
|
|
220
229
|
* wrong scale — or pass one that renders at the wrong scale.
|
|
221
230
|
*/
|
|
222
231
|
export declare function assertCanonicalCharacterGeometry(doc: Document, scope: CharacterRigScope): CharacterGeometryBounds;
|
|
223
|
-
/**
|
|
224
|
-
* Converts an external biped character GLB into a helix-humanoid@1 drop-in, chaining the engine
|
|
225
|
-
* pipeline's stages: rename the rig (retargetSkeleton) -> embed the canonical skeleton at the source's
|
|
226
|
-
* proportions (conformToHelixRest) -> LODs (rebake route for micro-chart atlases) -> merge -> resize ->
|
|
227
|
-
* KTX2 -> <out>/<name>.web.glb. With `anim`, also retargets the clip -> <out>/anims/<clipName>.glb.
|
|
228
|
-
*/
|
|
229
232
|
export declare function importCharacter(opts: ImportCharacterOptions): Promise<ImportCharacterResult>;
|
|
@@ -36,6 +36,7 @@ const weldedSimplify_1 = require("./stages/weldedSimplify");
|
|
|
36
36
|
const bakeTexture_1 = require("./stages/bakeTexture");
|
|
37
37
|
const splitFacePrimitive_1 = require("./stages/splitFacePrimitive");
|
|
38
38
|
const mergeLods_1 = require("./stages/mergeLods");
|
|
39
|
+
const slotBudgets_1 = require("./slotBudgets");
|
|
39
40
|
const resizeTextures_1 = require("./stages/resizeTextures");
|
|
40
41
|
const unifyMaterial_1 = require("./stages/unifyMaterial");
|
|
41
42
|
const joinPerMesh_1 = require("./stages/joinPerMesh");
|
|
@@ -589,11 +590,16 @@ function assertCanonicalCharacterGeometry(doc, scope) {
|
|
|
589
590
|
* proportions (conformToHelixRest) -> LODs (rebake route for micro-chart atlases) -> merge -> resize ->
|
|
590
591
|
* KTX2 -> <out>/<name>.web.glb. With `anim`, also retargets the clip -> <out>/anims/<clipName>.glb.
|
|
591
592
|
*/
|
|
593
|
+
/** Attempts at re-packaging a slot-budgeted add-on whose combined LOD triangles landed over its ceiling. */
|
|
594
|
+
const MAX_BUDGET_ATTEMPTS = 3;
|
|
592
595
|
async function importCharacter(opts) {
|
|
593
596
|
const log = opts.onProgress ?? ((message) => console.log(message));
|
|
594
597
|
const cwd = opts.cwd ?? process.cwd();
|
|
595
|
-
const
|
|
596
|
-
const
|
|
598
|
+
const slotBudget = (opts.rigScope ?? 'character') === 'addon' && opts.slotType !== undefined ? (0, slotBudgets_1.characterAddOnBudget)(opts.slotType) : null;
|
|
599
|
+
const explicitLodTris = opts.lodTris !== undefined;
|
|
600
|
+
const lodTris = opts.lodTris ?? (slotBudget !== null ? (0, slotBudgets_1.slotAwareLodTris)(slotBudget.slotType) : [...slotBudgets_1.DEFAULT_LOD_TRIS]);
|
|
601
|
+
const texCap = Math.min(opts.texSize ?? 1024, slotBudget?.maxTextureEdge ?? Infinity);
|
|
602
|
+
const maxMaterials = slotBudget === null ? opts.maxMaterials : Math.min(opts.maxMaterials ?? Infinity, slotBudget.maxMaterials);
|
|
597
603
|
const error = opts.simplifyError ?? 0.02;
|
|
598
604
|
const lockBorder = opts.lockBorder ?? false;
|
|
599
605
|
const weld = opts.weld ?? true;
|
|
@@ -718,107 +724,145 @@ async function importCharacter(opts) {
|
|
|
718
724
|
const modeFor = (level) => ktxModes[Math.min(level, ktxModes.length - 1)];
|
|
719
725
|
const kb = (n) => Math.round(n / 1024);
|
|
720
726
|
const textureSizes = [];
|
|
721
|
-
const lods = [];
|
|
722
|
-
// Snapshot of each level's geometry BEFORE encodeKtx2 mutates its textures to KTX2-compressed
|
|
723
|
-
// binaries below (still plain PNG/JPEG) — the seam-weld fallback's "retarget from the previous
|
|
724
|
-
// level" floor needs a document `resizeTextures`'/sharp's PNG decode can still read; `lods[]`
|
|
725
|
-
// itself is unusable for that once a level's own encodeKtx2 has already run on it.
|
|
726
|
-
const preKtxLods = [];
|
|
727
727
|
let ktxBefore = 0, ktxAfter = 0;
|
|
728
728
|
let encoder = ktx2Enabled ? 'basis-wasm' : 'skipped';
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
if (
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
//
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
729
|
+
// LOD generation → merge → post-merge passes, as one re-runnable step: when a slot budget applies and the
|
|
730
|
+
// packaged result lands over the slot's COMBINED triangle ceiling, the ladder is rescaled and this runs
|
|
731
|
+
// again (see the loop below) instead of shipping a file the server will refuse.
|
|
732
|
+
const packageLevels = async (targets) => {
|
|
733
|
+
textureSizes.length = 0;
|
|
734
|
+
ktxBefore = 0;
|
|
735
|
+
ktxAfter = 0;
|
|
736
|
+
const lods = [];
|
|
737
|
+
// Snapshot of each level's geometry BEFORE encodeKtx2 mutates its textures to KTX2-compressed
|
|
738
|
+
// binaries below (still plain PNG/JPEG) — the seam-weld fallback's "retarget from the previous
|
|
739
|
+
// level" floor needs a document `resizeTextures`'/sharp's PNG decode can still read; `lods[]`
|
|
740
|
+
// itself is unusable for that once a level's own encodeKtx2 has already run on it.
|
|
741
|
+
const preKtxLods = [];
|
|
742
|
+
for (const [level, target] of targets.entries()) {
|
|
743
|
+
let doc = await io.readBinary(conformedBytes);
|
|
744
|
+
if (bake) {
|
|
745
|
+
const w = await (0, weldedSimplify_1.weldedSimplify)(doc, target, error);
|
|
746
|
+
// One atlas for the whole level: every primitive's charts are packed together, because the bake
|
|
747
|
+
// writes all of them into the same images. Per-mesh atlases would overlap in [0,1].
|
|
748
|
+
await doc.transform((0, functions_1.unwrap)({ watlas: watlas, overwrite: true, groupBy: 'scene' }));
|
|
749
|
+
const texSize = Math.max(128, texCap >> level); // halve per level, like a mip chain
|
|
750
|
+
const b = await (0, bakeTexture_1.bakeMaterials)(doc, source, texSize);
|
|
751
|
+
log(`lod: ${w.before} -> ${w.after} tris (target ${target}) rebaked ${texSize}px [${b.slots.join('+')}] (${b.sampled} texels, ${b.far} far)`);
|
|
752
|
+
textureSizes.push(texSize);
|
|
753
|
+
}
|
|
754
|
+
else {
|
|
755
|
+
const r = await (0, simplifyMesh_1.simplifyToTarget)(doc, target, error, lockBorder);
|
|
756
|
+
const missed = r.after > target * 1.15;
|
|
757
|
+
if (missed && weld && level > 0) {
|
|
758
758
|
doc = await io.readBinary(conformedBytes);
|
|
759
|
-
w = await (0, weldedSimplify_1.weldedSimplify)(doc, target,
|
|
759
|
+
let w = await (0, weldedSimplify_1.weldedSimplify)(doc, target, error);
|
|
760
|
+
// weldedSimplify itself can floor: on a geometrically complex mesh pushed to an aggressive
|
|
761
|
+
// target, meshopt's quadric collapse stops the moment the NEXT edge collapse would exceed
|
|
762
|
+
// `error`, which can mean near-zero reduction at this stage's default (the same `error`
|
|
763
|
+
// budget the plain attempt above already missed with). Real failure: Male Orangekombes and
|
|
764
|
+
// Male Panda Bag 2's LOD2 (target 1500) came back 51812 -> 51812 — completely unreduced, so
|
|
765
|
+
// LOD2 shipped LARGER than LOD0/LOD1. Escalate the error budget — the same relaxation the
|
|
766
|
+
// pilot's own decimate3.mjs scratch tool used by hand (0.05, later found up to 0.2 needed for
|
|
767
|
+
// some meshes) — and retry until the target is met or the ceiling is reached.
|
|
768
|
+
let relaxedError = error;
|
|
769
|
+
while (w.after > target * 1.15 && relaxedError < WELD_FALLBACK_MAX_ERROR) {
|
|
770
|
+
relaxedError = Math.min(WELD_FALLBACK_MAX_ERROR, relaxedError * 2.5);
|
|
771
|
+
doc = await io.readBinary(conformedBytes);
|
|
772
|
+
w = await (0, weldedSimplify_1.weldedSimplify)(doc, target, relaxedError);
|
|
773
|
+
}
|
|
774
|
+
// Belt-and-suspenders floor: whatever error-budget relaxation achieves, a LOD level must
|
|
775
|
+
// never ship with MORE triangles than the level before it (the actual defect: LOD2 > LOD0).
|
|
776
|
+
// Re-target from the PREVIOUS level's own already-simplified geometry when that happens —
|
|
777
|
+
// meshopt's simplify never increases triangle count, so decimating an already-lower-poly mesh
|
|
778
|
+
// can only tie or improve on it, guaranteeing a monotonically non-increasing LOD chain by
|
|
779
|
+
// construction regardless of how this mesh behaves under any error budget.
|
|
780
|
+
const previousLodTris = level > 0 ? sceneTris(preKtxLods[level - 1]).reduce((a, b) => a + b, 0) : Infinity;
|
|
781
|
+
if (w.after > previousLodTris) {
|
|
782
|
+
const previousBytes = await io.writeBinary(preKtxLods[level - 1]);
|
|
783
|
+
doc = await io.readBinary(previousBytes);
|
|
784
|
+
w = await (0, weldedSimplify_1.weldedSimplify)(doc, target, WELD_FALLBACK_MAX_ERROR);
|
|
785
|
+
log(`lod: retargeted from LOD${level - 1}'s own geometry (${previousLodTris} tris) — seam-weld fallback still exceeded it`);
|
|
786
|
+
}
|
|
787
|
+
log(`lod: ${w.before} -> ${w.after} tris (target ${target}) seam-weld fallback${relaxedError !== error ? ` (error ${relaxedError.toFixed(3)})` : ''}, uv-coherent ${(w.uvCoherence * 100).toFixed(0)}%`);
|
|
788
|
+
if (w.after > target * 1.15)
|
|
789
|
+
log(` ⚠ floored above target even after seam-weld relaxation`);
|
|
760
790
|
}
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
// can only tie or improve on it, guaranteeing a monotonically non-increasing LOD chain by
|
|
766
|
-
// construction regardless of how this mesh behaves under any error budget.
|
|
767
|
-
const previousLodTris = level > 0 ? sceneTris(preKtxLods[level - 1]).reduce((a, b) => a + b, 0) : Infinity;
|
|
768
|
-
if (w.after > previousLodTris) {
|
|
769
|
-
const previousBytes = await io.writeBinary(preKtxLods[level - 1]);
|
|
770
|
-
doc = await io.readBinary(previousBytes);
|
|
771
|
-
w = await (0, weldedSimplify_1.weldedSimplify)(doc, target, WELD_FALLBACK_MAX_ERROR);
|
|
772
|
-
log(`lod: retargeted from LOD${level - 1}'s own geometry (${previousLodTris} tris) — seam-weld fallback still exceeded it`);
|
|
791
|
+
else {
|
|
792
|
+
log(`lod: ${r.before} -> ${r.after} tris (target ${target})${missed ? ' ⚠ floored above target' : ''}`);
|
|
793
|
+
if (missed)
|
|
794
|
+
log(` seam-locked mesh (micro-chart atlas / disconnected islands). Try --bake, raise --simplify-error, or accept the floor.`);
|
|
773
795
|
}
|
|
774
|
-
|
|
775
|
-
if (
|
|
776
|
-
log(`
|
|
796
|
+
const resized = await (0, resizeTextures_1.resizeTextures)(doc, texCap);
|
|
797
|
+
if (level === 0 && resized.resized.length > 0)
|
|
798
|
+
log(`resize-textures: ${resized.resized.join('; ')}`);
|
|
777
799
|
}
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
800
|
+
preKtxLods.push(await io.readBinary(await io.writeBinary(doc)));
|
|
801
|
+
if (ktx2Enabled) {
|
|
802
|
+
const ktx = await (0, ktx2_1.encodeKtx2)(doc, { mode: modeFor(level), ...(opts.ktxQuality !== undefined && { quality: opts.ktxQuality }) });
|
|
803
|
+
const before = ktx.encoded.reduce((s, e) => s + e.before, 0), after = ktx.encoded.reduce((s, e) => s + e.after, 0);
|
|
804
|
+
ktxBefore += before;
|
|
805
|
+
ktxAfter += after;
|
|
806
|
+
encoder = ktx.encoder;
|
|
807
|
+
log(`ktx2 lod${level} (${ktx.mode}, ${ktx.encoder}): ${ktx.encoded.length} texture(s), ${kb(before)}KB -> ${kb(after)}KB`);
|
|
808
|
+
}
|
|
809
|
+
else if (level === 0) {
|
|
810
|
+
log('ktx2: skipped (ktx2: false) — textures stay png/jpeg');
|
|
782
811
|
}
|
|
783
|
-
|
|
784
|
-
if (level === 0 && resized.resized.length > 0)
|
|
785
|
-
log(`resize-textures: ${resized.resized.join('; ')}`);
|
|
812
|
+
lods.push(doc);
|
|
786
813
|
}
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
814
|
+
if (!bake)
|
|
815
|
+
textureSizes.push(texCap);
|
|
816
|
+
const merged = await (0, mergeLods_1.mergeLods)(lods);
|
|
817
|
+
log(`merge-lods: ${lods.length} LODs -> scenes [${merged.scenes.join(', ')}], textures ${merged.texturesBefore} -> ${merged.texturesAfter}`);
|
|
818
|
+
const packaged = merged.document;
|
|
819
|
+
// AFTER merge-lods: its material dedup would fold the face's cloned material back into the body's.
|
|
820
|
+
if (opts.splitFace ?? true) {
|
|
821
|
+
const s = (0, splitFacePrimitive_1.splitFacePrimitive)(packaged);
|
|
822
|
+
if (s.split)
|
|
823
|
+
log(`split-face: ${s.faceTris} head tris -> 'FaceMesh' per level (${s.headJoints} head-subtree joints), bodies keep ${s.bodyTris}`);
|
|
824
|
+
else
|
|
825
|
+
log(`⚠ split-face: no head-weighted triangles found — first-person mode cannot hide this character's head`);
|
|
795
826
|
}
|
|
796
|
-
|
|
797
|
-
|
|
827
|
+
if (maxMaterials !== undefined) {
|
|
828
|
+
const unified = await (0, unifyMaterial_1.unifyDominantMaterial)(packaged, { maxMaterials });
|
|
829
|
+
if (unified.dominant !== null) {
|
|
830
|
+
log(`unify-material: ${unified.materialsBefore} -> ${unified.materialsAfter} materials (over the ${maxMaterials}-material cap) — rebound ${unified.rebound} primitive(s) onto '${unified.dominant}'`);
|
|
831
|
+
const joined = (0, joinPerMesh_1.joinPrimitivesPerMesh)(packaged);
|
|
832
|
+
if (joined.meshesJoined > 0)
|
|
833
|
+
log(`join-per-mesh: ${joined.primitivesBefore} -> ${joined.primitivesAfter} primitives across ${joined.meshesJoined} LOD mesh(es)`);
|
|
834
|
+
}
|
|
798
835
|
}
|
|
799
|
-
|
|
800
|
-
}
|
|
801
|
-
if (
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
if (unified.dominant !== null) {
|
|
817
|
-
log(`unify-material: ${unified.materialsBefore} -> ${unified.materialsAfter} materials (over the ${opts.maxMaterials}-material cap) — rebound ${unified.rebound} primitive(s) onto '${unified.dominant}'`);
|
|
818
|
-
const joined = (0, joinPerMesh_1.joinPrimitivesPerMesh)(out);
|
|
819
|
-
if (joined.meshesJoined > 0)
|
|
820
|
-
log(`join-per-mesh: ${joined.primitivesBefore} -> ${joined.primitivesAfter} primitives across ${joined.meshesJoined} LOD mesh(es)`);
|
|
836
|
+
return packaged;
|
|
837
|
+
};
|
|
838
|
+
if (slotBudget !== null) {
|
|
839
|
+
log(`slot budget: ${slotBudget.slotType} ${slotBudget.tiered ? '' : '(untiered → flat add-on ceiling) '}`
|
|
840
|
+
+ `≤ ${slotBudget.maxTriangles} tris combined across LODs, ≤ ${slotBudget.maxMaterials} material(s), ≤ ${slotBudget.maxTextureEdge}px`
|
|
841
|
+
+ ` — LOD targets ${lodTris.join('/')}${explicitLodTris ? ' (explicit)' : ' (slot-aware)'}`);
|
|
842
|
+
}
|
|
843
|
+
let targets = lodTris;
|
|
844
|
+
let out;
|
|
845
|
+
for (let attempt = 1;; attempt++) {
|
|
846
|
+
out = await packageLevels(targets);
|
|
847
|
+
if (slotBudget === null)
|
|
848
|
+
break;
|
|
849
|
+
const combined = sceneTris(out).reduce((sum, tris) => sum + tris, 0);
|
|
850
|
+
if (combined <= slotBudget.maxTriangles) {
|
|
851
|
+
log(`slot budget: ${combined} tris combined ≤ ${slotBudget.maxTriangles} (${slotBudget.slotType})`);
|
|
852
|
+
break;
|
|
821
853
|
}
|
|
854
|
+
const over = `${combined} tris combined across LODs is over ${slotBudget.slotType}'s ${slotBudget.maxTriangles} ceiling (the server refuses this at publish)`;
|
|
855
|
+
if (explicitLodTris)
|
|
856
|
+
throw new Error(`character import: ${over} — the explicit LOD targets ${lodTris.join('/')} are too high for this slot; lower them or omit them to use the slot-aware ladder`);
|
|
857
|
+
if (attempt >= MAX_BUDGET_ATTEMPTS)
|
|
858
|
+
throw new Error(`character import: ${over} after ${attempt} rescaled attempts — this mesh floors above its slot's budget (try bake: true or a higher simplify error)`);
|
|
859
|
+
const scale = (slotBudget.maxTriangles * slotBudgets_1.LOD_BUDGET_HEADROOM) / combined;
|
|
860
|
+
targets = targets.map((tris) => Math.max(1, Math.floor(tris * scale)));
|
|
861
|
+
log(`slot budget: ${over} — rescaling LOD targets ×${scale.toFixed(3)} to ${targets.join('/')} and re-packaging`);
|
|
862
|
+
}
|
|
863
|
+
const materialCount = out.getRoot().listMaterials().length;
|
|
864
|
+
if (slotBudget !== null && materialCount > slotBudget.maxMaterials) {
|
|
865
|
+
throw new Error(`character import: ${materialCount} materials is over ${slotBudget.slotType}'s ${slotBudget.maxMaterials}-material ceiling after unify-material`);
|
|
822
866
|
}
|
|
823
867
|
assertSkinnedLods(out); // every LOD must still be a valid, non-empty skinned mesh
|
|
824
868
|
(0, mergeLods_1.assertSelfContainedLodScenes)(out); // …and loadable: each scene's skins bind to bones in that scene (see mergeLods)
|