Guide d'optimisation des textures 3D par catégorie
18 min
ㅣ✔️ respect de la norme pot (power of two) obligation d'une résolution en puissance de 2 tous les actifs de texture sur la plateforme doivent respecter strictement les résolutions horizontales et verticales en puissance de 2 (256x256 ou 512x512) pour optimiser l'accélération matérielle interdiction d'utiliser le npot si vous utilisez une image dont la taille n'est pas une puissance de 2 (npot), le gpu convertira l'image à la taille en puissance de 2 la plus proche en interne et la copiera en mémoire, ce qui peut gaspiller le double de la capacité de mémoire ㅣ✔️ cohérence de la densité de texture et disposition uv distribution uniforme de la résolution vous devez éviter le phénomène où la qualité de l'image est altérée ou floue de manière flagrante dans des zones spécifiques lorsque l'avatar porte des vêtements pour ce faire, veuillez maintenir la 'densité de texel' (texel density) uniforme sur l'ensemble de l'actif le rapport de taille entre la surface réelle du modèle 3d et la carte uv doit être constant afin qu'aucune partie ne se déforme en jeu et qu'une qualité d'image nette et uniforme soit maintenue application de priorités visuelles allouez un grand espace uv aux zones détaillées nécessitant une haute résolution, et optimisez en réduisant l'espace uv pour les zones inférieures ou les doublures qui sont peu exposées ㅣ✔️ possibilité d'utiliser 1 image de texture par catégorie la taille maximale d'une texture est de 512x512 l'utilisation du 1024 est interdite la texture est calculée par la surface (nombre de pixels) horizontale et verticale 512 × 512 = 262,144 pixels 1024 × 1024 = 1,048,576 pixels (exactly 4 times 512) bien que le chiffre semble doublé, le trafic de données et la capacité que le moteur 3d et la mémoire graphique du smartphone (vram) doivent gérer explosent par 4 fois même en passant par un plugin de compression, la différence de consommation de mémoire de 4 fois est intégralement maintenue la résolution maximale de 512 maximise l'efficacité de la transmission des données, permettant même aux utilisateurs avec une mauvaise connexion de jouer en douceur l'écran d'un smartphone est très petit par rapport à un écran d'ordinateur ou de télévision dans ce petit écran, la surface réelle des pixels occupée par le haut ou le bas que porte votre avatar n'est pas très grande si vous craignez une perte de qualité d'image, au lieu d'augmenter la taille de la texture, vous devez utiliser la 'densité de texel (texel density)' si vous réduisez considérablement l'espace uv des zones invisibles comme les doublures ou le bas des vêtements, et que vous appliquez une bonne 'répartition de la priorité visuelle' en concentrant l'espace uv sur des zones détaillées comme les logos ou les boutons, vous pouvez créer des vêtements suffisamment nets et de haute qualité, même avec une résolution de 512 ㅣ✔️ exception pour la catégorie dr (vêtement complet) 2 textures autorisées vous pouvez utiliser jusqu'à 2 textures d'une résolution de 512×512 uniquement pour la catégorie des vêtements complets (dr) ㅣ✔️ optimisation des shaders et des matériaux (shader & material) limitation du nombre de matériaux chaque actif soumis par catégorie doit utiliser un maximum de 1 matériau la catégorie dr (vêtement complet), qui peut utiliser jusqu'à 2 textures, permet l'utilisation d'un maximum de 2 matériaux utilisez un matériau par défaut, et veuillez n'en ajouter que lorsque vous utilisez un shader avec des propriétés différentes telles que la transparence (transparent) ou la fourrure (fur) interdiction d'utiliser des matériaux distincts par matière l'utilisation de matériaux distincts par matière est interdite pour représenter différentes matières n'ayant pas de propriétés différentes (transparence, fourrure, etc ), veuillez utiliser une channel mask map pour indiquer la texture veuillez utiliser la channel map rgba des textures metallic, smoothness, et ambient occlusion pour représenter la texture de la surface channel packed data description red metallic plus la valeur est proche de 1 (blanc), plus elle représente du métal, plus elle est proche de 0 (noir), du non métal green ambient occlusion (ao) représentation des ombres structurelles et des ombres fixes dans les zones de coin blue x x alpha smoothness contrôle du degré de lisseur de la surface ㅣ ⚠️ la véritable raison pour laquelle vous devez absolument respecter les directives d'optimisation lorsque vous testez un seul actif dans un environnement local, l'impact sur les performances du système de données de blendshape mineures ou d'une résolution de texture dépassant les directives peut sembler négligeable cependant, il faut absolument prendre en compte que zepeto est un 'environnement multiplateforme en temps réel' où de très nombreux utilisateurs participent simultanément dans un espace virtuel augmentation cumulative de la charge de calcul des ressources 3d charge de duplication des données et de chargement multiple si l'on suppose que 30 joueurs entrent dans un seul monde et que chaque avatar équipe en moyenne 5 à 6 parties (vêtements, cheveux, accessoires, etc ), les données d'actifs indépendantes à traiter en temps réel sur un seul écran s'élèvent à plusieurs centaines accumulation de surcharge (overhead) un léger excédent de spécification compromis par un seul créateur, en passant par de nombreux joueurs , est amplifié des centaines de fois et surcharge le système pendant l'exécution de l'application dépassement du point critique du système et goulot d'étranglement matériel dégradation globale des performances une augmentation du draw call qui semblait mineure individuellement, un gaspillage de vram dû à un déséquilibre de la densité de texel, et les calculs complexes de pixels shaders, lorsqu'ils s'accumulent dans un seul espace, font instantanément dépasser le point critique du mobile un calcul excessif provoque une surchauffe extrême et une consommation de batterie de l'appareil mobile, et génère un lag mortel sur l'ensemble de zepeto fermeture forcée de l'application via oom (out of memory) crash critique du système parmi les ressources du système, un dépassement de capacité de la mémoire (ram/vram) ne se limite pas à une simple chute de framerate ralentissant l'écran dès que la mémoire disponible est dépassée, le système d'exploitation mobile (ios/android) force l'arrêt complet (crash) du processus de l'application zepeto pour protéger l'appareil c'est le motif de défaillance le plus fatal, détruisant la fiabilité du service et l'expérience utilisateur l'optimisation est une courtoisie technique pour la coexistence de l'écosystème virtuel les limites de données par catégorie proposées par zepeto studio ne sont pas des réglementations visant à restreindre l'expression artistique des créateurs il s'agit d'un dispositif de sécurité technique minimal destiné à mettre en place un environnement d'exécution fluide qui englobe tous les utilisateurs, même ceux équipés de mobiles bas de gamme, et à protéger les actifs de haute qualité des créateurs afin qu'ils fonctionnent de manière stable, avec leur qualité d'origine, sans distorsion ni bug en jeu remarque) données par catégorie pour l'optimisation des objets toutes les données sont basées sur la limite maximale (maximum limit) à l'exception de la catégorie dr (tenue complète), toutes les catégories sont basées sur 1 seule texture max triangle count (tris) recommandé / max max texture resolution (map size) recommandé / max max material (shaders supplémentaires autorisés par attribut) dr one piece outfit 10,000 512x512 (2 images) 4(recommandé) top top 6,000 512x512 3(recommandé) otr outerwear 6,000 512x512 3(recommandé) btm pants, skirts 5,000 512x512 3(recommandé) sox socks 3,500 / 4500 256x256 / 512x512 3(recommandé) sh shoes 4,000 256x256 / 512x512 3(recommandé) f hair women's hair 10,000 256x256 / 512x512 3(recommandé) m hair men's hair 10,000 256x256 / 512x512 3(recommandé) headwear headwear 4,000 256x256 / 512x512 3(recommandé) shoulder shoulder 5,000 512x512 3(recommandé) glasses glasses 2,000 256x256 / 512x512 3(recommandé) bracelet bracelet 2,000 256x256 / 512x512 3(recommandé) necklace necklace 2,000 256x256 / 512x512 3(recommandé) earring earrings 2,000 256x256 / 512x512 3(recommandé) bag bag 4,500 256x256 / 512x512 3(recommandé) glove glove 4,500 256x256 / 512x512 3(recommandé) ring ring 2,000 256x256 / 512x512 3(recommandé) nail nail art 1,500 / 2000 256x256 / 512x512 3(recommandé) eyemask mask 3,000 512x512 3(recommandé) wing wing 4,000 512x512 3(recommandé) mask special face shapes 5,000 512x512 3(recommandé) body special body types 10,000 512x512 3(recommandé) tail tail 2,000 / 3000 256x256 / 512x512 3(recommandé)
