Vai al contenuto

Performance

Come ho alleggerito un modello 3D del 28% senza toccare il rendering

1 min di lettura

L’asset più pesante di un sito recente era un modello 3D: 3,8 MB di GLB con avatar animato. Bello, ma quasi 4 MB sono tanti — soprattutto su mobile. Obiettivo: dimagrirlo senza che l’occhio se ne accorga.

Prima si misura, poi si taglia

Ispezionando il file, la sorpresa: due terzi del peso erano texture JPEG e PNG, non geometria. È lì che conviene lavorare.

Texture in WebP, con giudizio

La conversione delle texture in WebP (estensione EXT_texture_webp, decodificata nativamente dal browser) ha fatto quasi tutto il lavoro. Un’accortezza: le normal map le ho lasciate intatte — la compressione lossy sulle normali produce artefatti di shading visibili.

gltf-transform dedup avatar.glb tmp.glb
gltf-transform prune tmp.glb tmp2.glb
gltf-transform webp tmp2.glb out.glb --quality 90 
  --slots "(baseColor|metallicRoughness|occlusion)"

Risultato

Da 3,78 a 2,73 MB: −28%, animazioni verificate identiche al byte, zero decoder aggiuntivi lato client. La lezione è sempre la stessa: prima di ottimizzare, guardare di cosa è fatto il peso. Spesso il colpevole non è dove si pensa.