This commit is contained in:
Rodrigo Bertoldo de Sousa Martins committed 2026-09-08 13:14:44 -03:00
1 parent f6b132623c
commit 81342d834a
4 files changed
+34 -3

No files matched your search

+16 -2
View File
@@ -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);