Utiliser les LODs pour l'optimisation des performances dans les jeux vidéo

Gérer le Level Of Detail : LOD
Vidéo non disponible ! Réessayez plus tard
Cette vidéo fait partie de la formation
Débutez avec Unity 3D
Revoir le teaser Je m'abonne
Transcription

59,90€ Je commande

À partir de
27€ /mois
Je m'abonne à Elephorm

Description Programme Avis

59,90€ Je commande

À partir de
27€ /mois
Je m'abonne à Elephorm

L'objectif de cette vidéo est d'enseigner aux développeurs et artistes 3D comment créer et utiliser les LODs pour améliorer les performances des jeux vidéo, tout en maintenant une qualité visuelle optimale.

Découvrez comment les LODs (Level of Detail) permettent d'optimiser les performances des jeux vidéo en ajustant le niveau de détail des objets 3D selon la distance de la caméra.

Dans cette leçon, nous explorons l'utilisation des LODs (Level of Detail), une technique essentielle pour optimiser les performances des jeux vidéo, notamment dans les environnements open world. En ajustant le niveau de détail des objets 3D en fonction de leur distance par rapport à la caméra, il est possible de réduire significativement le nombre de triangles affichés sans compromettre la qualité visuelle.

Nous débutons par la création de différents niveaux de LOD dans Maya, en utilisant des techniques telles que le Delete Edge Vertex. Ensuite, nous exportons ces assets vers Unity où nous configurons le Load Group pour gérer automatiquement les transitions entre les niveaux de LOD selon la distance de la caméra.

Nous abordons également l'utilisation de ZBrush pour générer des LODs via les subdivisions et le Decimation Master, particulièrement utile pour les objets aux formes organiques. Enfin, nous illustrons comment s'assurer que les coordonnées des LODs sont cohérentes lors de leur importation dans Unity, afin de garantir des transitions fluides entre les niveaux de détail.

Voir plus
Questions réponses
Qu'est-ce qu'un LOD (Level of Detail) ?
Un LOD (Level of Detail) est une technique utilisée pour réduire la complexité des modèles 3D en diminuant le nombre de triangles affichés en fonction de la distance de l'objet par rapport à la caméra.
Pourquoi est-il important d'utiliser les LODs dans les jeux open world ?
L'utilisation des LODs dans les jeux open world est essentielle pour optimiser les performances, car elle permet de réduire le nombre de triangles à afficher et ainsi d'améliorer le framerate sans compromettre la qualité visuelle.
Quels logiciels sont utilisés dans cette leçon pour gérer les LODs ?
Dans cette leçon, nous utilisons principalement Maya et ZBrush pour créer les LODs et Unity pour les intégrer et les gérer dans un environnement de jeu.
A présent nous allons parler des Loads, appelés aussi Level of Detail. Donc qu'est ce que c'est que les Loads ? Quand vous allez vous balader dans un jeu, notamment tout ce qui est open world, parfois vous allez voir les objets changent de forme un petit peu ou alors disparaissent à partir d'une certaine distance. En fait l'objet, selon sa distance par rapport à la caméra, a plus ou moins de détails et à partir d'une certaine distance, quand il est très éloigné et qu'il est affiché en petit, il disparaît. Donc cela permet en fait de faire une économie de triangles très importante et c'est vraiment essentiel pour des jeux comme Skyrim qui sont très vastes. Évidemment on peut pas afficher le même niveau de détail alors qu'on a des millions d'objets sur la map, c'est pas possible. Donc on aura recours à cette technique des Loads. Alors nous allons aller dans Maya. J'ai préparé un asset ici qui va nous servir d'exemple. Alors là il est en l'état, c'est le modèle avec le niveau de détail le plus élevé. On l'appellera alors Load 0. Il faut savoir que par convention on appelle Load 0 le Load le plus détaillé. Ensuite on va de Load 1, Load 2, Load 3 de moins en moins détaillé. Il affiche actuellement 1680 triangles et on a envie que cela diminue au fur et à mesure que la caméra s'éloigne. Dans un premier temps je vais ajouter cet asset là sur un nouveau layer que j'ai appelé Load 0 ici. Donc Add Selected Object. Je vais dupliquer cet objet là et je vais l'ajouter sur un nouveau layer que je vais appeler Load 1. Je cache le premier layer et voici mon futur Load 1. Alors comment vais-je faire pour diminuer son nombre de triangles ? Il y a une méthode simple, c'est le Delete Edge Vertex. Ici j'ai des petits sillons dont on n'a pas besoin si la caméra est éloignée car si je m'éloigne on voit que ces sillons sont superflus. Je vais donc les supprimer grâce au Delete Edge Vertex. Donc je passe en mode Edge, je double clique sur un Edge pour avoir tout le tour et je vais dans Edit Mesh, Delete Edge Vertex. Et on voit que ça m'a supprimé ma vertex. J'appuie sur G pour répéter la même opération. Alors il faut faire attention à une chose, c'est au bord des UV. Parce que si on supprime le bord d'un UV et bien l'UV va se fusionner avec l'autre UV correspondant à ce bord. Alors je vais donner un exemple. Donc ici j'ai des Edges qui correspondent au bord de l'UV, donc je sélectionne ici et on va voir ce que ça donne si je supprime. On voit qu'ici que la texture a totalement changé de forme. Si je retourne dans mon UV, on voit qu'en fait cette Edge là a fusionné avec un autre UV. Donc on a un résultat un petit peu bizarre. C'est pour ça qu'il faut éviter de supprimer les Edges de bord d'UV. Sinon cette technique marche très bien et je peux continuer sur tout le reste du modèle. Je peux aussi supprimer en mode face et en double cliquant ici, ces petits cylindres qui ne seront pas utiles à une distance éloignée. J'ai terminé mon load 1. Alors on peut voir qu'au niveau de la texture il n'y a pas de problème en conservant le bord des UV. J'ai de même créé un asset encore moins détaillé. J'ai exactement divisé le nombre de triangles avec le même principe, avec le Delete Edge Vertex. Donc celui-là n'a que 252 triangles au lieu de 1800. Donc voilà, ça va me permettre de générer des loads, des meshes plus ou moins détaillées selon la distance de la caméra. Ensuite je vais les exporter avec à la fin la petite mention Load 0, Load 1, Load 2 pour bien les repérer à l'intérieur de l'Unity. Alors il y a d'autres manières de créer des loads. On peut aussi utiliser les subdivisions de ZBrush. Si on a sculpté notre mèche dans ZBrush, on peut dire que la subdivision 1 c'est le Load 0, la subdivision 2 le Load 1, etc. Et on peut aussi utiliser le Decimate. Alors je vais supprimer les subdivisions supérieures en cliquant sur Delay Higher. Et là dans ZPlugin j'ai Décimation Master. Dans un premier temps, je vais faire un pré-process. Je vais faire soit un pré-process current, c'est à dire faire un pré-process sur l'objet que j'ai sélectionné, ou sur tout. Et ensuite je vais pouvoir décimer. Donc ici j'ai le pourcentage de décimation et le nombre de poly correspondant. On voit que plus mon pourcentage est élevé, plus je conserve le niveau de détail de mon mèche. Donc si je vais à 30% par exemple, je fais Décimate Current. Et là on voit que mon nombre de points est passé de 8000 à 2578. Donc ça marche assez bien pour tout ce qui est forme organique, comme un rocher, des trucs comme ça. Pour tout ce qui est bâtiment, tout ce qui est forme un peu plus géométrique, ça marche moins bien. Voilà en ce qui concerne la création de Load sur ZBrush. Alors l'avantage aussi c'est qu'on peut directement créer les normal maps, etc. là dedans. De retour sur Unity, je vais maintenant créer un système de Load, de niveau de détail. Donc ici je retrouve mes trois différents Load. Load 0, Load 1 et Load 2. Alors je vais les déplacer dans l'hierarchie. Et voilà. Alors j'ai bien fait attention à créer mes Load tous au même endroit, avec les mêmes coordonnées. Parce que s'il n'avait pas les mêmes coordonnées dans Maya, et bien tout simplement on les aurait à des coordonnées différentes. Donc du coup, quand je vais créer mes Load, et bien au moment où je vais passer du Load 0 au Load 1, Load 1 ne sera plus au même endroit. En fait ça va sauter. Donc il faut bien faire attention à ça. Dans Maya, je crée mes Load tous au même endroit, pour avoir les mêmes coordonnées. Après donc pour créer des Load, je vais dans Components, Rendering, Load Group. Et ici dans l'inspecteur, j'ai un Load Group. Donc Load 0, Load 1, Load 2 et Culled, qui veut dire n'apparaît pas, avec le pourcentage à laquelle ils apparaissent. Donc à 60% la distance, ça sera le Load 1, à 30% ça sera le Load 2, etc. Maintenant je vais faire des drag and drop dans chacune de ces Load. Load 0, Load 0, Load 1, Load 2. Donc le Load 0 c'est celui-là. Hop, je drag and drop. Le Load 1, ici. Yes, Reparent, parce que je veux que mon Load 1 soit un parent du Load 0, qui fasse partie du même groupe. Et je fais de même pour le Load 2. Et je reparente. Alors ici, on voit un petit cadre et en dessous l'indication du Load sur lequel je suis actuellement. Donc on voit si je recule, hop, je suis sur le Load 1. Et si je recule encore, je suis sur le Load 2. Et on voit, si on fait attention, on voit que le maillage change. Alors je vais rapprocher les différents Loads pour qu'on voie bien la différence. Donc vous voyez, hop, Load 0. Alors je vais reculer un peu le Load 2, voilà. Load 0, Load 1, le maillage change. Et Load 2, j'ai le maillage qui change, qui n'est plus du tout défini. Et si je recule encore, mon objet disparaît. Donc de cette manière là, je vais faire vraiment des économies de polygones très importantes.

Programme détaillé de la formation

Nos dernières formations Unity
  • Pack 2 formations
    Pack UNITY : Créer un jeu FPS
    Découvrir
    Vous souhaitez apprendre à programmer avec Unity pour créer votre premier jeu, mais vous ne savez pas par où commencer ? Ce pack est la solution qu’il vous faut ! Deux ateliers créatifs pour apprendre, étape par étape, à créer votre premier jeu FPS, puis de transformer en un jeu Multiplayer : Atlier créatif - Créer un jeu FPS : Apprendre à créer un jeu FPS de A à Z avec Unity. Atlier créatif - Créer un jeu FPS online : Développer un jeu FPS multijoueurs en ligne avec Unity. Toutes les ressources et les codes sources du projet sont disponibles en téléchargement.
    9h13
  • Atelier créatif Unity : Créer un jeu FPS online
    Découvrir
    Développer un jeu FPS multijoueurs en ligne avec Unity.
    3h30
  • Atelier créatif Unity : Créer un jeu FPS
    Découvrir
    Apprendre  à créer un jeu FPS de A à Z avec Unity.
    5h42
  • Atelier création d’un jeu vidéo 3D de labyrinthe avec Unity
    Découvrir
    Réaliser un projet complet de jeux vidéo avec Unity.
    2h20 3 / 5
  • Apprendre Unity 5
    Découvrir
    Apprendre les fondamentaux d'Unity 5 pour créer son premier jeu vidéo ou une application 3D interactive
    3h19 44 leçons 3,50 / 5