Nanite est le système géométrique virtualisé d'Unreal Engine 5 qui utilise un nouveau format de maillage interne et une nouvelle technologie de rendu pour rendre les détails à l'échelle du pixel et un nombre élevé d'objets. Il ne travaille intelligemment que sur les détails qui peuvent être perçus et pas plus. Le format de données de Nanite est également hautement compressé et prend en charge le streaming à grain fin avec un niveau de détail automatique.

Les avantages de Nanite
• Augmentation de plusieurs niveaux de la complexité géométrique, nombre de triangles et d'objets plus élevé que ce qui était possible auparavant en temps réel.
• Les budgets d'images ne sont plus limités par le nombre de polygones, les chargements et l'utilisation de la mémoire des meshs.
• Il est désormais possible d'importer directement des images sources de qualité cinématographique, telles que des sculptures ZBrush et des scans de photogrammétrie.
• Utilisez les détails des polygones plutôt que de les intégrer aux textures normales.
• Le niveau de détail (LOD) est géré automatiquement et ne nécessite plus de configuration manuelle pour les LODs des mailles individuelles.
• La perte de qualité est rare, voire inexistante, surtout avec les transitions de LOD.
Bien que ces avantages puissent changer la donne, des limites en pratique subsistent. Par exemple, le nombre d'instances, les triangles par maille, la complexité des matériaux, la résolution de sortie et les performances doivent être soigneusement mesurés pour toute combinaison de contenu et de matériel. Nanite continuera à étendre ses capacités et à améliorer ses performances dans les prochaines versions d'Unreal Engine.
Différences entre un Nanite Mesh et un Static Mesh
Un Nanite Mesh est un Static Mesh sur lequel Nanite est activé. Un maillage Nanite est toujours essentiellement un maillage triangulaire à la base, avec un niveau de détail et de compression élevé appliqué à ses données. En plus de cela, Nanite utilise un système entièrement nouveau pour rendre ce format de données de manière extrêmement efficace.
Tout ce qui est nécessaire pour qu'un Static Mesh tire parti de Nanite est une activation. La création de contenu pour Nanite n'est pas différente de celle des maillages traditionnels, sauf que Nanite peut gérer des ordres de grandeur plus importants de triangles et d'instances que ce qui est possible pour la géométrie rendue de manière traditionnelle. Si vous approchez suffisamment la caméra, Nanite dessinera les triangles sources originaux qui ont été importés.
Les maillages de Nanite prennent en charge plusieurs UV et couleurs de vertex. Les matériaux sont assignés à des sections du maillage de sorte que ces matériaux peuvent utiliser différents modèles d'ombrage et des effets dynamiques qui peuvent être réalisés dans les shaders. L'affectation des matériaux peut être changée dynamiquement, tout comme n'importe quel autre maillage statique, et Nanite ne nécessite aucun processus pour calculer les matériaux.
L'utilisation de Virtual Textures n'est pas obligatoire avec Nanite, mais elle est fortement recommandée. Les textures virtuelles sont une fonction orthogonale d'Unreal Engine qui a les mêmes objectifs pour les données de texture que Nanite pour les données de maillage.
Comment fonctionne Nanite ?
Nanite s'intègre de la manière la plus transparente possible dans les flux de travail existants du moteur, tout en utilisant une nouvelle approche pour le stockage et le rendu des données de maillage.
• Pendant l'importation, les mailles sont analysées et décomposées en clusters hiérarchiques de groupes de triangles.
• Pendant le rendu, les clusters sont échangés à la volée à différents niveaux de détail en fonction de la vue de la caméra, et se connectent parfaitement sans problèmes aux clusters voisins au sein du même objet. Les données sont transmises à la demande, de sorte que seuls les détails visibles doivent être conservés en mémoire. Nanite fonctionne dans sa propre passe de rendu qui contourne complètement les chargements traditionnels. Les modes de visualisation peuvent être utilisés pour inspecter le pipeline de Nanite.
(Étant donné que Nanite repose sur la capacité de transmettre rapidement et à la demande des données de maillage à partir du disque. Les disques durs solides (ou SSD) sont recommandés pour le stockage d'exécution.)
Pour quels types de Meshes faut-il utiliser Nanite ?
En règle générale, Nanite devrait être activée dans la mesure du possible. Tout maillage statique qui l'a activé aura un rendu plus rapide et occupera moins de mémoire et d'espace disque.
Plus précisément, un maillage est un bon candidat pour Nanite si :
• Il contient de nombreux triangles, ou des triangles qui seront très petits à l'écran
• Il possède de nombreuses instances dans la scène
• Il agit comme un occluseur majeur d'autres géométries Nanite
• Il crée des ombres à l'aide de Virtual Shadow Maps
• Un exemple d'exception à ces règles est une sphère de ciel : ses triangles seront grands à l'écran, elle n'occulte rien et il n'y en a qu'une seule dans la scène. En général, ces exceptions sont rares et la perte de performance liée à l'utilisation de Nanite avec elles est assez minime. Il est donc recommandé de ne pas trop s'inquiéter des endroits où Nanite ne devrait pas être activé.
Activation du support Nanite sur les Meshes
Nanite peut être activé sur les géométries prises en charge de la manière suivante :
• À l'importation
• En utilisant les éditeurs de meshes individuels
• Sélection par lots dans le content browser
La conversion de la géométrie en Nanite nécessite un certain temps de traitement pour chaque maillage. Sur les grands projets, l'utilisation d'un cache de données dérivées (DDC) partagé est particulièrement utile s'il y a beaucoup d'actifs Nanite.
Importation d'un Static Mesh
Lorsque vous importez un mesh destiné à être utilisé avec Nanite, cochez la case "Build Nanite".

(Il est recommandé de désactiver la propriété Generate Lightmap UVs lorsque vous n'utilisez pas d'éclairage précalculé avec Lightmass.)
Activer Nanite sur des assets
Si votre projet est déjà rempli de contenu sur lequel vous souhaitez activer Nanite, vous avez deux options : activer les assets par lots à l'aide du content browser ou activer les assets individuels via leurs propres éditeurs.
Activer Nanite sur des lots de Meshes
Pour les lots d'assets de static mesh pour lesquels vous souhaitez activer Nanite, utilisez le content browser pour les sélectionner tous. Faites un clic droit et choisissez Nanite > Activer

Activer Nanite sur des Meshes individuels
Ouvrez l'éditeur de tout mesh prenant en charge Nanite, comme les static meshes et les meshes pour Chaos, et activez Nanite via le panneau Détails.
Dans l'éditeur de static mesh, localisez les paramètres Nanite et cochez la case Enable Nanite Support.

Dans l'éditeur de collections de géométrie, localisez la section Nanite et cochez la case Enable Nanite.
