Les modèles 3D générés par l'IA peuvent vous faire passer d'une scène vierge à un prop, un bâtiment ou une créature reconnaissable rapidement. Ils peuvent également arriver avec une topologie dense, des matériaux fragmentés, des textures surdimensionnées, des nœuds non nommés ou une géométrie qui semble inoffensive dans une table tournante mais devient coûteux lorsqu'on les répète à travers un niveau de jeu.
L'optimisation n'est donc pas un bouton à la fin de la production. C'est une séquence: définir ce que l'actif doit faire, le mesurer dans une scène représentative, supprimer les déchets, simplifier ce que l'appareil ne peut récompenser, compresser les fichiers de livraison et tester à nouveau sur les appareils réels.
Le but n'est pas le plus petit fichier possible. Le but est un atout fiable qui charge assez rapidement, rend dans le budget de la scène, reste facile à déboguer, et communique toujours la silhouette prévue et le langage matériel.
Lecture rapide
Points clés
- Établir un budget d'actif dans le contexte de la scène complète, non d'un compte de polygones vu isolément.
- Fixer la géométrie dupliquée, les surfaces cachées, les matériaux excessifs, les transformations et les déchets de texture avant d'appliquer la compression.
- La compression par géométrie réduit la taille du transfert, mais elle n'enlève pas le coût d'exécution de l'étirage de mailles trop complexes.
- Conservez un modèle source modifiable et exportez un GLB de livraison distinct qui peut être validé, mesuré et remplacé en toute sécurité.
Définir le navigateur-Ready avant d'optimiser
Un personnage héros vu près de la caméra a besoin d'un traitement géométrique et de texture différent d'une roche de fond répétée cinquante fois. Un repère statique peut tolérer une silhouette plus complexe qu'un ennemi dépouillé dont les sommets doivent être transformés chaque cadre.
Écrire une petite feuille d'acceptation avant de toucher le maillage. Utiliser uniquement des plages comme des garde-corps spécifiques au projet, puis les affiner après le profilage. Cela empêche l'équipe de traiter un nombre de triangle arbitraire comme une définition universelle de la qualité.
| Domaine budgétaire | Question à répondre | Preuves à consigner |
|---|---|---|
| Rôle visuel | Quelle est la distance entre la caméra et ce qui doit rester lisible? | Captures d'écran de référence à proximité, typique et loin |
| Densité de la scène | Combien de copies ou d'actifs similaires apparaissent immédiatement? | Une scène représentative du pire cas |
| Rendu | Combien de mailles et de passes de matériaux une instance ajoute-t-elle? | Dessiner les appels et les statistiques de rendu avant et après |
| Mémoire | Quelle est la taille des textures et de la géométrie décodées sur le périphérique cible? | Dimensions de texture, formats et observations de mémoire de l'appareil |
| Livraison | Que doit télécharger avant que le joueur puisse interagir? | Taille GLB, charge utile de texture et trace de chargement |
Mesurer le modèle original dans une vraie scène
Importez l'actif intact dans le même rendeur, la même installation d'éclairage, la même gamme de caméras et la même densité d'objets que le jeu utilise. Un modèle qui fonctionne bien seul peut encore pousser une scène bondée sur le budget.
Enregistrez une base de référence: taille du fichier, nombre de mailles et de primitives, nombre de matériaux, nombre et dimensions de textures, clips d'animation et statistiques de rendu visibles. Trois.js expose les appels de tirage, triangles, points, lignes, géométries et textures à travers l'information du récepteur; ces valeurs sont utiles pour comparer les révisions même lorsqu'elles n'expliquent pas chaque coût au niveau de l'appareil.
Capturez deux ou trois captures d'écran à côté des chiffres. Les mesures de performance vous indiquent ce qui a changé, tandis que les images appariées révèlent si le changement a endommagé la silhouette, l'ombrage, les coutures UV ou les caractéristiques reconnaissables.
- Testez une copie et le nombre maximal d'exemplaires visibles prévu.
- Inclure l'animation, la transparence, les ombres et le post-traitement utilisés dans la production.
- Utilisez au moins un appareil cible de puissance inférieure au lieu de se fier uniquement à un ordinateur portable de développement.
- Conserver le GLB de base pour que les régressions ultérieures puissent être reproduites.
Géométrie propre et hiérarchie des scènes d'abord
Les modèles générés contiennent souvent le même genre de déchets structurels que les actifs manuels assemblés à la hâte: pièces lâches cachées à l'intérieur du modèle, surfaces dupliquées, petits composants déconnectés, nœuds vides, transformations non appliquées et topologies beaucoup plus denses que la forme ne le requiert.
Protégez les caractéristiques qui portent l'identité. Pour un bâtiment, il peut s'agir de la ligne de toit, de l'entrée de la porte et du rythme de la fenêtre. Pour une créature, il peut s'agir du profil de la tête, des mains ou des formes accessoires.
Si l'actif anime, validez la déformation après chaque réduction majeure. Un maillage peut sembler inchangé dans une pose de lie et s'effondrer encore aux épaules, genoux, doigts ou articulations faciales. Préservez un support supplémentaire autour des articulations et testez les clips d'animation réels, pas seulement un aperçu tournant.
Réduire les appels de tirage sans aplatir la direction de l'art
Les scènes du navigateur sont souvent limitées par le nombre de pièces séparées que le rendeur doit soumettre, et non par le nombre de triangles. Dix mailles minuscules avec dix matériaux peuvent être un atout de livraison pire qu'un maille soigneusement jointe avec la même forme visible.
Fusionner les pièces statiques quand elles se déplacent toujours ensemble, réutiliser la géométrie identique par l'instance, et consolider les matériaux qui partagent le même modèle d'ombrage. Supprimer les fentes de matériau qui n'affectent plus les visages visibles. Ces changements devraient suivre le comportement de la scène: ne fusionnez pas une porte dans un bâtiment si le gameplay doit l'ouvrir indépendamment.
La réduction des matériaux est aussi une décision artistique. Combiner chaque surface en un atlas peut enregistrer des soumissions mais rendre plus difficile l'écriture, le comportement mip ou les variantes futures. Garder des passes séparées lorsqu'ils communiquent un besoin réel de rendu, comme le verre transparent ou les signes émissifs, et supprimer les séparations qui existent seulement parce que le fichier généré a été fragmenté.
Traiter les textures comme un budget d'exécution, pas seulement des fichiers d'image
Une image compressée peut paraître petite sur le disque et occuper encore une mémoire GPU importante après le décodage. Audit dimensions des pixels, utilisation du canal, alpha, espace de couleur, et combien de surface d'écran la texture couvre réellement. Un accessoire de fond bénéficie rarement de la même résolution qu'un personnage rapproché.
Redimensionner les textures au niveau le plus élevé de détail utile pour la caméra cible. Packer des canaux compatibles à échelle grise, enlever les cartes inutilisées, éviter l'alpha lorsque le matériau est complètement opaque, et réutiliser des matériaux carrelés où la répétition est acceptable.
La livraison de textures KTX2/Basis peut réduire les coûts de réseau et GPU lorsque votre pipeline et votre navigateur cible le supportent. Traitez la conversion comme une étape visuelle de l'AQ: comparez les gradients, les détails normaux, les bords transparents et les changements de couleurs à distance de gameplay avant d'approuver le résultat.
Compresser la livraison GLB après QA visuel
Une fois la géométrie, la hiérarchie, les matériaux et les textures intentionnelles, appliquer la compression de livraison. Three.js GLTFLoader supporte les chemins communs glTF, y compris la géométrie compressée par Draco, les maillages compressés par Meshopt et les textures KTX2 lorsque les décodeurs correspondants sont configurés.
Choisissez la compression en fonction de l'expérience de chargement. Un téléchargement plus petit peut nécessiter un code de décodeur et du temps CPU, alors comparez le temps avec le premier cadre utile plutôt que de célébrer la taille du fichier seul. La simplification de mesh et la compression géométrique résolvent différents problèmes: la simplification réduit ce que le GPU traite, tandis que la compression réduit principalement la façon dont ces données voyagent et sont stockées.
glTF Transform fournit des commandes d'inspection, de validation, de duplication, de prune, de simplification, de redimensionnement, de conversion de texture et de compression. Sa documentation avertit également qu'un passe par défaut d'optimisation n'est pas idéal pour chaque scène, c'est pourquoi les préréglages de production devraient être mis en version et revus plutôt que appliqués aveuglément.
Valider sur les navigateurs et les appareils cibles
Exécutez un passe de validation glTF, puis chargez l'actif de livraison sur le même chemin de production utilisé par le jeu. Vérifiez les avertissements de console, les textures manquantes, les normales inversées, l'animation cassée, les différences d'espace de couleur, le tri transparent et l'élimination lorsque le joueur quitte la scène.
Profilez un niveau représentatif sur chaque niveau de performance supporté. Regardez une expérience de cadre stable, mais aussi inspectez les pauses de chargement, la croissance de la mémoire après des changements de scène répétés, et les pics lorsque plusieurs modèles apparaissent ensemble. Le résultat correct est la version qui répond à vos cibles de projet sans perte visuelle évidente.
Terminer avec un test de remplacement: échanger l'actif pour une nouvelle révision sans changer de code de gameplay. Noms de nœuds, pivots, échelle, conventions matérielles, et les proxies de collisions prévisibles rendent les futures variantes générées par l'IA beaucoup moins coûteuses à intégrer.
- Gardez la source de haute précision modifiable en dehors du paquet expédié.
- Version les paramètres d'exportation et d'optimisation avec l'actif.
- Comparer les images de base et optimisées aux distances de la caméra de gameplay.
- Rejeter un fichier plus petit s'il provoque des artefacts visibles ou ralentit l'interaction.
- Documenter le modèle de prestation approuvé comme modèle pour la prochaine famille d'actifs.
Questions fréquentes
Quel est le meilleur compte de polygone pour un modèle de jeu de navigateur?
Il n'y a pas de nombre universel car le coût dépend de la densité de la scène, des matériaux, de l'animation, des ombres et des appareils cibles.
La compression Draco améliore-t-elle le taux d'encadrement?
Draco réduit principalement la taille du transfert géométrique et peut améliorer le coût de téléchargement. Il ne remplace pas la simplification du maillage ou réduit le nombre d'appels de tirage après le décryptage du modèle.
Faut-il convertir chaque modèle généré par l'IA en GLB?
GLB est un conteneur de livraison pratique pour les runtimes de navigateur qui prennent en charge glTF, mais le choix dépend toujours de votre moteur et pipeline. Gardez le format source modifiable séparément pour que le fichier expédié ne devienne pas le maître de production.
Que dois-je d'abord optimiser: polygones ou textures?
Mesurez les deux avant de choisir. Dans certaines scènes, la mémoire de texture et le nombre de matériaux dominent, tandis que dans d'autres, la géométrie dépouillée, les ombres ou les mailles répétées créent le coût plus élevé.
Puis-je fusionner chaque maille en un seul objet?
Les portes, les armes, les pièces destructibles et les composants animés doivent souvent rester indépendants pour le gameplay.
Comment puis-je préserver le style d'un modèle 3D généré?
Identifier la silhouette, les proportions, les blocs de couleurs et les indices matériels qui rendent le modèle reconnaissable avant de le simplifier. Comparez les révisions à la caméra de gameplay réelle plutôt que de juger seulement un rendu gros plan.
Les textures compressées sont-elles toujours pires?
Non, mais chaque format et chaque paramètre de qualité créent différents compromis. Examiner les normales, les gradients, la transparence et les petits détails de contraste élevé sur les appareils cibles avant d'approuver la conversion.
Comment tester un modèle optimisé?
Chargez-le dans une scène représentative du pire des cas et comparez la taille de la livraison, les statistiques de rendu, le comportement de la mémoire et la sortie visuelle avec la ligne de base. Répétez le test sur au moins un appareil de puissance inférieure dans votre gamme prise en charge.
Sources et lectures complémentaires
- Trois.js GLTFLoader documentation
Extensions et intégrations de décodeurs glTF supportées, y compris les chemins Draco, Meshopt et KTX2.
- Trois.js WebGLRenderer documentation
Champs d'information pour les appels, triangles, points, lignes, géométries et textures.
- glTF Transformer la documentation CLI
Inspection, validation, taille, simplification, traitement de texture et commandes de compression pour les actifs glTF.
Étape suivante

