melhorias de performance
This commit is contained in:
1 parent
ce851b9cf9
commit
63d5cbebe7
4 files changed
+59
-19
No files matched your search
@@ -6,8 +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, weld, simplify } from "@gltf-transform/functions";
|
||||
import { MeshoptSimplifier } from "meshoptimizer";
|
||||
import { prune, dedup, weld, simplify, meshopt } from "@gltf-transform/functions";
|
||||
import { MeshoptSimplifier, MeshoptEncoder } from "meshoptimizer";
|
||||
import { writeFileSync, mkdirSync } from "node:fs";
|
||||
import path from "node:path";
|
||||
import { fileURLToPath } from "node:url";
|
||||
@@ -21,6 +21,7 @@ import { MUSCLE_DESCRIPTIONS } from "./muscle-descriptions.mjs";
|
||||
import { NERVE_DESCRIPTIONS } from "./nerve-descriptions.mjs";
|
||||
|
||||
await MeshoptSimplifier.ready;
|
||||
await MeshoptEncoder.ready;
|
||||
|
||||
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
||||
const CONVERTED_DIR = path.resolve(__dirname, "../converted");
|
||||
@@ -183,7 +184,12 @@ function classifySystem(key, rawName) {
|
||||
return RESPIRATORY_KEYWORDS.some((kw) => lower.includes(kw)) ? "respiratorio" : "visceral";
|
||||
}
|
||||
|
||||
const io = new NodeIO().registerExtensions(ALL_EXTENSIONS);
|
||||
// registerDependencies com a chave "meshopt.encoder" é o que permite ao
|
||||
// io.write() de fato aplicar a compressão EXT_meshopt_compression pedida
|
||||
// no transform() abaixo — sem isso, ela seria ignorada silenciosamente.
|
||||
const io = new NodeIO()
|
||||
.registerExtensions(ALL_EXTENSIONS)
|
||||
.registerDependencies({ "meshopt.encoder": MeshoptEncoder });
|
||||
const manifest = [];
|
||||
let totalStructures = 0;
|
||||
|
||||
@@ -349,6 +355,12 @@ for (const { fbx, key } of SOURCES) {
|
||||
simplify({ simplifier: MeshoptSimplifier, ratio: 0.5, error: 0.01 }),
|
||||
prune(),
|
||||
dedup(),
|
||||
// Comprime os atributos de vértice (posição/normal/UV) com o mesmo
|
||||
// codec Meshopt já usado pra simplificação — reduz bastante o tamanho
|
||||
// do .glb final (os floats crus de posição/normal dominam o arquivo),
|
||||
// e o carregamento no navegador não precisa de nada extra: o useGLTF
|
||||
// do drei já vem com o decoder Meshopt ligado por padrão.
|
||||
meshopt({ encoder: MeshoptEncoder, level: "medium" }),
|
||||
);
|
||||
|
||||
const outPath = path.join(MODELS_OUT_DIR, target.modelFile);
|
||||
|
||||
Reference in new issue
Block a user