fix 3
This commit is contained in:
1 parent
f6b132623c
commit
81342d834a
4 files changed
+34
-3
No files matched your search
@@ -6,7 +6,8 @@
|
||||
// - data-pipeline/seed/manifest-real.json (entradas para o seed do banco)
|
||||
import { NodeIO } from "@gltf-transform/core";
|
||||
import { ALL_EXTENSIONS } from "@gltf-transform/extensions";
|
||||
import { prune, dedup } from "@gltf-transform/functions";
|
||||
import { prune, dedup, weld, simplify } from "@gltf-transform/functions";
|
||||
import { MeshoptSimplifier } from "meshoptimizer";
|
||||
import { writeFileSync, mkdirSync } from "node:fs";
|
||||
import path from "node:path";
|
||||
import { fileURLToPath } from "node:url";
|
||||
@@ -14,6 +15,8 @@ import { SOURCES, SOURCE_TARGETS, RESPIRATORY_KEYWORDS } from "./sources.mjs";
|
||||
import { translateToPt } from "./translate-pt.mjs";
|
||||
import { SYSTEMS } from "../seed/systems.mjs";
|
||||
|
||||
await MeshoptSimplifier.ready;
|
||||
|
||||
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
||||
const CONVERTED_DIR = path.resolve(__dirname, "../converted");
|
||||
const MODELS_OUT_DIR = path.resolve(__dirname, "../seed/models");
|
||||
@@ -121,7 +124,18 @@ for (const { fbx, key } of SOURCES) {
|
||||
console.warn(` ⚠ nenhuma malha nomeada encontrada em ${fbx} — confira o log do assimp/conversão.`);
|
||||
}
|
||||
|
||||
await doc.transform(prune(), dedup());
|
||||
// Malhas do Z-Anatomy vêm pensadas para um app desktop (Unity), com
|
||||
// densidade de polígonos bem maior do que um visualizador web aguenta
|
||||
// com dezenas de estruturas na tela ao mesmo tempo — sem isso os .glb
|
||||
// ficam grandes demais para transferir e derrubam o contexto WebGL
|
||||
// (GPU sobrecarregada). Reduzimos para ~15% dos triângulos originais,
|
||||
// que mantém a forma reconhecível para fins de estudo.
|
||||
await doc.transform(
|
||||
weld(),
|
||||
simplify({ simplifier: MeshoptSimplifier, ratio: 0.15, error: 0.01 }),
|
||||
prune(),
|
||||
dedup(),
|
||||
);
|
||||
|
||||
const outPath = path.join(MODELS_OUT_DIR, target.modelFile);
|
||||
await io.write(outPath, doc);
|
||||
|
||||
Reference in new issue
Block a user