• Jeux
  • Industrie
  • Ressources
  • Communauté
  • Apprentissage
  • Assistance
Développement
Moteur Unity
Créez des jeux 2D et 3D pour n'importe quelle plateforme
TéléchargerOffres et tarifs
Monétisation
Achat intégré (IAP)
Découvrez et gérez les IAP à travers les magasins
Mediation
Maximisez les revenus et optimisez la monétisation
Qualité des annonces
Protégez l'expérience utilisateur de votre application
Tapjoy
Construisez une fidélité utilisateur à long terme
Tous les produits de monétisation
Acquisition de nouveaux joueurs
Acquisition de nouveaux joueurs
Faites-vous découvrir et acquérez des utilisateurs mobiles
Unity Vector AI
Connectez les joueurs avec les bons jeux
Aura publicité sur appareil
Atteignez les utilisateurs sur l'appareil au moment de l'engagement maximal
Tous les produits de croissance
Cas d’utilisation
Collaboration 3D
Construisez et révisez des projets 3D en temps réel
Formation immersive
Entraînez-vous dans des environnements immersifs
Expériences client
Créez des expériences interactives 3D
Toutes les solutions sectorielles
Secteurs
Fabrication
Atteindre l'excellence opérationnelle
Distribution
Transformer les expériences en magasin en expériences en ligne
Automobile
Élever l'innovation et les expériences en voiture
Tous les secteurs
Bibliothèque technique
Documentation
Manuels d'utilisation officiels et références API
Outils de développement
Versions de publication et suivi des problèmes
Feuille de route
Examiner les fonctionnalités à venir
Glossaire
Bibliothèque de termes techniques
Informations
Études de cas
Histoires de succès dans le monde réel
Guides des meilleures pratiques
Conseils et astuces d'experts
Toutes les ressources
Nouveautés
Blog
Mises à jour, informations et conseils techniques
Actualités
Actualités, histoires et centre de presse
Centre communautaire
Discussions
Discuter, résoudre des problèmes et se connecter
Événements
Événements mondiaux et locaux
Histoires de la communauté
Made with Unity
Mise en avant des créateurs Unity
Diffusions en direct
Rejoignez les développeurs, créateurs et initiés
Unity Awards
Célébration des créateurs Unity dans le monde entier
Pour tous les niveaux
Unity Learn
Maîtrisez les compétences Unity gratuitement
Formation professionnelle
Améliorez votre équipe avec des formateurs Unity
Vous découvrez Unity ?
Démarrer
Démarrez votre apprentissage
Parcours essentiels Unity
Vous découvrez Unity ? Commencez votre parcours
Guides pratiques
Conseils pratiques et meilleures pratiques
Formation
Pour les étudiants
Démarrez votre carrière
Pour les enseignants
Boostez votre enseignement
Licence d'enseignement subventionnée
Apportez la puissance de Unity à votre institution
Certifications
Prouvez votre maîtrise de Unity
Options d'assistance
Obtenir de l'aide
Vous aider à réussir avec Unity
Plans de succès
Atteignez vos objectifs plus rapidement avec un support expert
FAQ
Réponses aux questions courantes
Contactez-nous.
Connectez-vous avec notre équipe
Offres et tarifs
Langue
  • English
  • Deutsch
  • 日本語
  • Français
  • Português
  • 中文
  • Español
  • Русский
  • 한국어
Réseaux sociaux
Devise
Acheter
  • Produits
  • Unity Ads
  • Abonnement
  • Asset Store Unity
  • Revendeurs
Formation
  • Participants
  • Formateurs
  • Établissements
  • Certification
  • Formation
  • Programme de développement des compétences
Télécharger
  • Hub Unity
  • Télécharger des archives
  • Programme version Bêta
Unity Labs
  • Laboratoires
  • Publications
Ressources
  • Plateforme d'apprentissage
  • Communauté
  • Documentation
  • Unity QA
  • FAQ
  • État des services
  • Études de cas
  • Made with Unity
Unity
  • Notre entreprise
  • Newsletter
  • Blog
  • Événements
  • Carrières
  • Aide
  • Presse
  • Partenaires
  • Investisseurs
  • Affiliés
  • Sécurité
  • Impact sociétal
  • Inclusion et diversité
  • Contactez-nous.
Copyright © 2025 Unity Technologies
  • Mentions légales
  • Politique de confidentialité
  • Cookies
  • Ne vendez ou ne partagez pas mes informations personnelles

« Unity », ses logos et autres marques sont des marques commerciales ou des marques commerciales déposées de Unity Technologies ou de ses filiales aux États-Unis et dans d'autres pays (pour en savoir plus, cliquez ici). Les autres noms ou marques cités sont des marques commerciales de leurs propriétaires respectifs.

Hero background image

Conseils d'optimisation mobile pour artistes techniques Partie II

Cette page a été traduite automatiquement pour faciliter votre expérience. Nous ne pouvons pas garantir l'exactitude ou la fiabilité du contenu traduit. Si vous avez des doutes quant à la qualité de cette traduction, reportez-vous à la version anglaise de la page web.
Cliquez ici.

Ce que vous obtiendrez de cette page : Partie II de notre collection de conseils utiles pour optimiser vos ressources artistiques pour votre jeu mobile. La Partie I est ici.

Vous pouvez trouver de nombreux autres conseils d'optimisation mobile dans ce livre électronique complet et ce cours Unity Learn sur l'optimisation des arts 3D pour les applications mobiles.

  • Éclairage
  • Évitez trop de lumières dynamiques
  • Désactivez les ombres
  • Faites cuire votre éclairage dans des lightmaps
  • Utilisez des couches de lumière
  • Utilisez des probes de lumière pour les objets en mouvement
  • Minimisez les probes de réflexion
  • Soyez attentif aux matériaux transparents
  • Gardez les shaders simples
  • Éclairé vs. Shaders non éclairés
  • Opérations mathématiques dans le shader de vertex
  • Batcher SRP
  • Animation de personnage
  • Plus d'astuces
Paramètres d'éclairage dans l'éditeur Unity
ORGANISEZ VOS GAMEOBJECTS POUR PROFITER DE CES TECHNIQUES DE BATCHING.

Éclairage

Le même éclairage et les mêmes matériaux basés sur la physique des consoles et des PC peuvent également être adaptés à votre téléphone ou tablette avec le Pipeline de rendu universel (URP).

Regroupez vos appels de dessin

À chaque image, Unity détermine les objets qui doivent être rendus, puis crée des appels de dessin. Un appel de dessin est un appel à l'API graphique pour dessiner des objets (par exemple, un triangle), tandis qu'un lot est un groupe d'appels de dessin à exécuter ensemble. Regrouper les objets à dessiner ensemble minimise les changements d'état nécessaires pour dessiner chaque objet dans un lot. Cela conduit à une amélioration des performances en réduisant le coût CPU du rendu des objets.

  • Regroupement dynamique : Pour les petits maillages, Unity peut regrouper et transformer les sommets sur le CPU, puis les dessiner tous en une seule fois. Remarque : N'utilisez cela que si vous avez suffisamment de maillages à faible polygone (moins de 900 attributs de sommet et pas plus de 300 sommets). Le regroupeur dynamique ne regroupera pas les maillages plus grands que cela, donc l'activer gaspillerait du temps CPU à chercher de petits maillages à regrouper à chaque image.
  • Regroupement statique : Pour la géométrie non mobile, Unity peut réduire les appels de dessin pour les maillages qui partagent le même matériau. Bien qu'il soit plus efficace que le regroupement dynamique, il utilise plus de mémoire.
  • Instanciation GPU : Si vous avez un grand nombre d'objets identiques, cette technique les regroupe plus efficacement grâce à l'utilisation du matériel graphique.

Regroupement SRP : Activez le regroupeur SRP dans votre actif URP sous Avancé. Cela peut accélérer considérablement vos temps de rendu CPU, selon la scène.

Évitez trop de lumières dynamiques

Il est crucial d'éviter d'ajouter trop de lumières dynamiques à votre application mobile. Envisagez des alternatives comme des effets de shader personnalisés et des sondes de lumière pour les maillages dynamiques, ainsi que l'éclairage pré-calculé pour les maillages statiques.

Consultez ce tableau de comparaison des fonctionnalités pour les limites spécifiques des lumières en temps réel de l'URP et du pipeline de rendu intégré.

Désactivez les ombres

La diffusion d'ombres peut être désactivée par MeshRenderer et lumière. Désactivez les ombres chaque fois que possible pour réduire les requêtes.

Vous pouvez également créer de fausses ombres en utilisant une texture floue appliquée à un maillage simple ou un quad sous vos personnages. Sinon, vous pouvez créer des ombres de blob avec des shaders personnalisés.

Diagramme de Lightmap Unity
DÉSACTIVEZ LA DIFFUSION D'OMBRES POUR RÉDUIRE LES REQUÊTES.

Faites cuire votre éclairage dans des lightmaps

Ajoutez un éclairage dramatique à votre géométrie statique en utilisant l'illumination globale (GI). Marquez les objets avec Contribuer à la GI afin de pouvoir stocker un éclairage de haute qualité sous forme de lightmaps.

Les ombres et l'éclairage cuits peuvent alors être rendus sans impact sur les performances à l'exécution. Le Lightmapper CPU et GPU Progressif peut accélérer la cuisson de l'illumination globale.

Suivez le manual et cet article sur l'optimisation de l'éclairage pour commencer avec le lightmapping dans Unity.

Plusieurs couches de lumière dans l'éditeur Unity
LES COUCHES PEUVENT LIMITER L'INFLUENCE DE VOTRE LUMIÈRE À UN MASQUE DE GOMMAGE SPÉCIFIQUE.

Utilisez des couches de lumière

Pour des scènes complexes avec plusieurs lumières, séparez vos objets en utilisant des couches, puis confinez l'influence de chaque lumière à un masque de gommage spécifique.

Sondes de lumière dans l'éditeur Unity

Utilisez des probes de lumière pour les objets en mouvement

Les sondes de lumière stockent des informations d'éclairage cuites sur l'espace vide de votre scène, tout en fournissant un éclairage de haute qualité (direct et indirect). Elles utilisent des harmoniques sphériques, qui se calculent rapidement par rapport aux lumières dynamiques.

Sphère réfléchissante intersectant un cube

Minimisez les probes de réflexion

Une sonde de réflexion peut créer des réflexions réalistes, mais peut être très coûteuse en termes de lots. Utilisez des cubemaps basse résolution, des masques de culling et une compression de texture pour améliorer les performances à l'exécution.

Matériaux transparents dans l'éditeur Unity
MODE DE VISUALISATION D'OVERDRAW DANS LA VUE SCÈNE

Soyez attentif aux matériaux transparents

Rendre un objet avec transparence utilise toujours plus de ressources GPU que de rendre un objet opaque, surtout lorsque des objets transparents sont rendus les uns sur les autres plusieurs fois, un processus connu sous le nom d'overdraw. C'est une bonne pratique d'utiliser un matériau opaque chaque fois que possible, surtout pour les plateformes mobiles. Vous pouvez vérifier l'overdraw en utilisant le débogueur graphique RenderDoc.

Gardez les shaders simples

Utilisez le shader le plus simple possible (comme un shader non éclairé) et évitez d'utiliser des fonctionnalités inutiles. Utilisez les shaders préconçus de Unity conçus spécifiquement pour des systèmes tels que les particules. URP comprend plusieurs shaders légers Lit et Unlit qui sont déjà optimisés pour les plateformes mobiles. Pour minimiser l'overdraw, réduisez le nombre et/ou la taille des particules dans votre jeu.

Pour atteindre des objectifs de performance, envisagez d'utiliser des matériaux Unlit Opaque avec une précision demi, lorsque cela est possible, et soyez attentif aux opérations complexes dans les nœuds. Trouvez plus de conseils dans cette session sur Shader Graph.

Éclairé vs. Shaders non éclairés

Lors de la création d'un shader, vous pouvez décider comment le matériau réagira à la lumière. La plupart des shaders sont classés comme éclairés ou non éclairés. Un shader non éclairé est le modèle d'ombrage le plus rapide et le moins coûteux en calcul. Utilisez-le si vous ciblez un appareil d'entrée de gamme.

Les points clés à considérer incluent :

  • L'éclairage n'affecte pas un modèle d'ombrage non éclairé. Cela signifie que de nombreux calculs, tels que les calculs de spécularité, ne sont pas nécessaires. Le résultat est un rendu soit moins coûteux, soit plus rapide.
  • Utiliser une direction artistique stylisée qui ressemble à un dessin animé fonctionne bien avec un ombrage non éclairé. Ce style vaut la peine d'être considéré lorsque vous développez des jeux pour des plateformes mobiles.
Shader Graph dans l'éditeur Unity
DÉPLACEMENT DE VERTEX DANS LE SHADER GRAPH

Opérations mathématiques dans le shader de vertex

Les shaders de vertex fonctionnent sur chaque vertex tandis que les shaders de pixel (ou fragment) s'exécutent sur chaque pixel. En général, il y a plus de pixels qui sont rendus que de vertices à l'écran. Cela signifie que le shader de pixel s'exécute plus souvent que le shader de vertex. Pour cette raison, nous recommandons de déplacer les calculs du shader de pixel vers le shader de vertex chaque fois que cela est possible. Comme d'habitude, après avoir travaillé sur les optimisations, vous devez effectuer un profilage supplémentaire pour déterminer la meilleure solution pour votre situation particulière.

Les opérations de base, telles que l'addition et la multiplication, sont plus rapides à traiter. Il est préférable de garder le nombre d'opérations mathématiques plus lentes aussi petit que possible. La quantité de mathématiques compliquées utilisées doit être maintenue plus basse sur les anciens appareils, tels que ceux utilisant GLES 2.0.

Batcher SRP

En activant le SRP Batcher, regardez la fenêtre des statistiques et le graphique des vertices de la section de rendu dans la vue Profiler. En plus d'une augmentation des FPS, le nombre de triangles et de vertices traités diminue de manière spectaculaire. Parce que nos objets utilisent un shader compatible avec URP, le pipeline de rendu regroupe automatiquement toutes les données géométriques pertinentes pour réduire la quantité de données traitées.

Animation de personnage

Par défaut, Unity importe des modèles animés avec le Generic Rig, bien que les développeurs passent souvent au Humanoid Rig lors de l'animation d'un personnage. Un Humanoid Rig consomme 30 à 50 % de temps CPU en plus que l'équivalent generic rig car il calcule la cinématique inverse et le réajustement d'animation à chaque image.

Le rendu des meshes skinnés est coûteux. Assurez-vous que chaque objet utilisant un SkinnedMeshRenderer en a besoin. Si un GameObject n'a besoin d'animation qu'une partie du temps, utilisez la fonction BakeMesh pour figer le mesh skinné dans une pose statique, puis passez à un MeshRenderer plus simple à l'exécution.

Principalement destiné aux personnages humanoïdes, le système Mecanim d'Unity est assez sophistiqué mais est souvent utilisé pour animer des valeurs uniques (par exemple, le canal alpha d'un élément UI). Évitez de surutiliser les animateurs. Particulièrement en conjonction avec les éléments UI, envisagez de créer des fonctions de tweening ou d'utiliser une bibliothèque tierce pour des animations simples (par exemple, DOTween ou LeanTween).

Scène d'éclairage intérieur dans l'éditeur Unity
VÉRIFIEZ LES APPELS DE RENDU, LE BATCHING ET CHAQUE ÉTAPE DU CYCLE DE RENDU AVEC L'OUTIL DE DÉBOGAGE DE FRAME

Plus d'astuces

Travaillez sur un budget de temps spécifique par image

Chaque image aura un budget de temps basé sur vos images cibles par seconde (fps). Idéalement, une application fonctionnant à 30 fps permettra environ 33,33 ms par image (1000 ms / 30 fps). De même, un objectif de 60 fps laisse 16,66 ms par image.

Les appareils peuvent dépasser ce budget pendant de courtes périodes (par exemple, pour des cinématiques ou des séquences de chargement), mais pas pendant une durée prolongée.

Préréglages

Ne comptez pas sur les paramètres par défaut. Utilisez l'onglet de remplacement spécifique à la plateforme pour optimiser les ressources telles que les textures et la géométrie des maillages. Des paramètres incorrects peuvent entraîner des tailles de build plus grandes, des temps de build plus longs et une mauvaise utilisation de la mémoire. Envisagez d'utiliser la fonctionnalité Préréglages pour aider à personnaliser les paramètres de base qui amélioreront un projet spécifique.

Limitez l'utilisation des caméras

Chaque caméra entraîne un certain coût, qu'elle effectue un travail significatif ou non. N'utilisez que les composants de caméra nécessaires au rendu. Sur les plateformes mobiles de bas de gamme, chaque caméra peut utiliser jusqu'à 1 ms de temps CPU.

Évitez les effets plein écran

Les effets de post-traitement en plein écran, comme les lueurs, peuvent ralentir considérablement les performances. Utilisez-les avec prudence dans la direction artistique de votre titre.

Faites attention à Renderer.material

Accéder à Renderer.material dans les scripts duplique le matériau et renvoie une référence à la nouvelle copie. Cela casse tout lot existant qui inclut déjà le matériau. Si vous souhaitez accéder au matériau de l'objet groupé, utilisez Renderer.sharedMaterial à la place.