fix renderizacao
This commit is contained in:
1 parent
08cb8c426f
commit
bfa4552f24
1 file changed
+11
-15
@@ -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, meshopt } from "@gltf-transform/functions";
|
||||
import { MeshoptSimplifier, MeshoptEncoder } from "meshoptimizer";
|
||||
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";
|
||||
@@ -21,7 +21,6 @@ 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");
|
||||
@@ -184,12 +183,7 @@ function classifySystem(key, rawName) {
|
||||
return RESPIRATORY_KEYWORDS.some((kw) => lower.includes(kw)) ? "respiratorio" : "visceral";
|
||||
}
|
||||
|
||||
// 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 io = new NodeIO().registerExtensions(ALL_EXTENSIONS);
|
||||
const manifest = [];
|
||||
let totalStructures = 0;
|
||||
|
||||
@@ -355,12 +349,14 @@ 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" }),
|
||||
// Chegamos a testar compressão Meshopt aqui (EXT_meshopt_compression)
|
||||
// pra reduzir o tamanho final do .glb — mas ela quantiza posição/normal
|
||||
// pra poucos bits, e em superfícies grandes e lisas (a pele do sistema
|
||||
// "regioes", por exemplo) isso ficou visível como um efeito de
|
||||
// manchas/facetas na iluminação. Não vale a troca: o ganho de banda
|
||||
// não compensa a qualidade visual pior justamente no sistema mais
|
||||
// visível do app. Removido — ver histórico do git se quiser retomar
|
||||
// com bits de quantização mais altos.
|
||||
);
|
||||
|
||||
const outPath = path.join(MODELS_OUT_DIR, target.modelFile);
|
||||
|
||||
Reference in new issue
Block a user