Réduction de polygones GLB avec gltfpack

Le contrôle de rétention des triangles définit la quantité de triangles d'origine que vous souhaitez conserver. C'est un objectif, pas une promesse. Cette page couvre la simplification de la géométrie ; cela ne change pas la taille de la texture ni l'encodage.

Commencez avec un objectif modéré

Téléchargez le modèle d'origine, conservez les textures inchangées et définissez la rétention du triangle cible sur 50%. Laissez l'erreur de simplification à sa valeur par défaut 1%. Comparez les contours courbes, les pièces fines et les trous avant de descendre. Pour les modèles comportant plusieurs mailles, vérifiez chaque pièce plutôt que de juger uniquement le nombre total.

gltfpack -i input.glb -o output.glb -si 0.5 -kn -km -ke

Pourquoi l'objectif pourrait ne pas être atteint

La limite d’erreur limite les erreurs de simplification acceptables. Une limite plus stricte peut arrêter la réduction plus tôt. Les frontières ouvertes, les coutures d'attributs et la structure de petites parties de maillage peuvent également laisser moins de choix de simplification sûrs. Le site Web rapporte le résultat mesuré et les causes possibles ; le moteur n'identifie pas une raison exacte d'arrêt.

Verrouillez les sommets de bordure lorsque des pièces séparées doivent continuer à correspondre aux bords ouverts. Cela peut aider à éviter les espaces, mais peut laisser plus de triangles. Tester les pièces assemblées après exportation ; le verrouillage des bordures ne garantit pas que chaque couture visuelle reste inchangée.

Résultats mesurés sur l'échantillon d'ondulation

Paramètres de simplificationTriangles de sortie
Maille originale8,192
Cible 50%, limite d'erreur par défaut4,095
Cible 10%, zéro erreur, bordures verrouillées8,192
Cible 10%, simplification agressive812

Les exécutions utilisent le même échantillon CC0 original et le même gltfpack 1.3 natif. Les totaux triangulaires comptent chaque primitive de maillage une fois. Les résultats dépendent du modèle et un décompte proche de la cible ne dit rien sur la question de savoir si la forme restante est acceptable.

Comparez la silhouette sous le même angle

Ces images restituent les fichiers du tableau avec la même caméra, le même éclairage et les mêmes matériaux dans Three.js 0.180.0. Ouvrez une image pour l'inspecter en taille réelle. Commencez par les lobes extérieurs et l’ouverture intérieure ; ne jugez pas le résultat uniquement à partir du nombre de triangles.

Modèle d'ondulation original vu depuis la caméra de comparaison fixe
Original : 8 192 triangles
Modèle d'ondulation après rétention de triangle de 50 %
50% des triangles conservés : 4 095 triangles
Modèle d'ondulation après une rétention agressive de 10 %
Simplification agressive à 10% : 812 triangles

Dans le résultat agressif 10%, l'ouverture intérieure présente des segments visiblement plus droits et des coins plus pointus. Les lobes externes perdent également un peu de rondeur. Il est facile de manquer ces changements dans une petite vignette, même si l’objectif du triangle a été atteint.

Cet exemple ne comporte ni skin ni animation. Une seule vue ne peut pas révéler les problèmes de mouvement, les surfaces cachées ou chaque changement d'ombrage. Faites pivoter votre propre résultat et vérifiez-le à sa taille d'affichage prévue avant d'accepter un nombre de triangles inférieur.

Utiliser une simplification agressive uniquement après comparaison

Une simplification agressive donne la priorité au nombre demandé et ignore la limite d'erreur. L'interface désactive le champ d'erreur lorsque ce mode est actif. Utilisez-le sur une copie et inspectez la silhouette et l'ombrage de la surface. Il ne s’agit pas d’un raccourci permettant de préserver la qualité d’un modèle difficile.

gltfpack -i input.glb -o output.glb -si 0.1 -sa -kn -km -ke

Si moins de triangles réduisent à peine la taille du fichier →

Référence moteur : gltfpack

Ouvrez l'optimiseur ↗