Unreal Engine est un moteur de jeux vidéo complet et facile d’utilisation. Il nous donne accès à plusieurs technologies. Ici, nous allons voir Nanites.
Table des matières
ToggleQu'est-ce que la technologie Nanite ?
Nanite est le système de géométrie virtuelle d’Unreal Engine 5 qui utilise une toute nouvelle méthode de maillage interne et une technologie de rendu innovante pour afficher des détails au niveau du pixel et un grand nombre d’objets. Il se concentre uniquement sur les détails visibles, sans en faire trop. De plus, le format de données de Nanite est hautement compressé et permet un streaming fluide avec un niveau de détail automatique.
Avantages de Nanite :
Augmentation de plusieurs ordres de grandeur 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 de trame ne sont plus limités par le nombre élevé de polygones, les appels à générer et l’utilisation de la mémoire du maillage
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 des détails en haute densité plutôt que de les intégrer dans les textures normales
Le niveau de détail (LOD) est géré automatiquement et ne nécessite plus de configuration manuelle pour les LOD des maillages individuels
La perte de qualité est rare ou inexistante, surtout avec les transitions LOD.
Différences entre un maillage Nanite et un maillage statique :
Un maillage Nanite est un maillage statique qui a Nanite activé. Il s’agit essentiellement d’un maillage triangulaire avec un haut niveau de détail et de compression. Nanite utilise un nouveau système pour rendre les données de manière très efficace.
Tout ce dont un maillage statique a besoin pour bénéficier de Nanite est un simple drapeau d’activation. La création de contenu pour Nanite est similaire à celle des maillages traditionnels, mais Nanite peut gérer beaucoup plus de triangles et d’instances. Approchez la caméra et Nanite dessinera les triangles sources originaux.
Les maillages Nanite prennent en charge plusieurs UV et couleurs de vertex. Les matériaux sont assignés à des parties du maillage pour permettre l’utilisation de différents modèles d’ombrage et d’effets dynamiques. Les matériaux peuvent être changés dynamiquement, sans nécessiter de pré-génération.
Les textures virtuelles ne sont pas obligatoires avec Nanite, mais fortement recommandées. Elles visent les mêmes objectifs pour les données de texture que Nanite pour les données de maillage.
Fonctionnement de Nanite :
Nanite se fond parfaitement dans les processus de travail des moteurs existants, tout en adoptant une approche novatrice pour stocker et rendre les données en maillage.
Pendant l’importation – Les maillages sont analysés et décomposés en clusters hiérarchiques de groupes de triangles.
Lors du rendu – Les clusters sont échangés dynamiquement à différents niveaux de détail en fonction de la vue de la caméra, et se connectent parfaitement sans fissures aux clusters voisins au sein du même objet. Les données sont transmises à la demande, ce qui signifie 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 appels de dessin traditionnels. Les modes de visualisation peuvent être utilisés pour inspecter le pipeline Nanite.
Pour quels types de maillage faut-il utiliser Nanite ?
Nanite devrait être activé autant que possible. En activant cette option, un maillage statique s’affiche généralement plus rapidement et occupe moins de mémoire et d’espace disque.
Plus précisément, un maillage est idéal pour Nanite s’il :
Contient de nombreux triangles, ou des triangles qui seront très petits à l’écran.
A de nombreuses instances dans la scène
Agit comme un occluseur majeur de l’autre géométrie Nanite.
Projette des ombres en utilisant les Cartes d’ombres virtuels
Il existe une exception à ces règles, comme une sphère céleste : ses triangles seront de grande taille à l’écran, elle ne cache rien et il n’y en a qu’une seule dans la scène. En général, ces exceptions sont rares et l’impact sur les performances lié à l’utilisation de Nanite est assez faible. Il est donc conseillé de ne pas trop se préoccuper des endroits où Nanite ne devrait pas être activé si Nanite prend en charge le cas d’utilisation.
Activation de la prise en charge de Nanite sur des maillages :
Nanite peut être activé sur les géométries prises en charge de la manière suivante :
Lors de l’importation
Utilisation d’éditeurs de maillage individuels
Sélection regroupée dans le Navigateur de contenu
Géométrie :
Nanite peut être utilisé sur les maillages statiques ainsi que sur les Collections de géométrie.
Un maillage activé par Nanite peut être utilisé avec les types de composants suivants :
Maillage statique
Maillage statique instancié
Maillage statique instancié hiérarchique
Collection de géométrie
Peinture de feuillage
Herbe du paysage
Nanite propose une assistance partielle pour la déformation des maillages rigides. Il permet la translation dynamique, la rotation et la mise à l’échelle non uniforme de ces maillages, qu’ils soient en mouvement ou immobiles. Cela implique qu’il est nécessaire de déplacer chaque position d’un maillage Nanite de manière plus complexe que ce qui peut être réalisé par une simple multiplication matricielle 4×3 appliquée uniformément à l’ensemble du maillage.
La déformation est limitée avec :
- (Beta) Changement de position mondiale dans les matériaux
- Les cages de délimitation utilisées pour les clusters d’escamotage d’occlusion ne sont pas mises à jour ou étendues en fonction de la déformation. Cela signifie que chaque fois qu’une surface est déplacée vers l’extérieur, de telle sorte qu’elle recouvre l’endroit où elle se trouvait auparavant, il y a de fortes chances qu’elle s’occlue et ait l’air cassée.
- Le feuillage utilisant le décalage de la position du monde (WPO) est moins problématique car le feuillage est rempli de trous et ne peut pas vraiment s’occlure.
La déformation n’est pas prise en charge :
- Animation squelettique
- Cibles de transformation
- Maillages Spline
Les maillages compatibles avec Nanite ne prennent pas en charge actuellement :
Profondeur personnalisée ou stencil
- Peinture de vertex sur des instances
- Il s’agit en particulier de couleurs peintes par instance à l’aide du mode Peinture de maillage de l’éditeur, mais Nanite prend en charge les couleurs de vertex sur le maillage d’origine.
Le nombre maximum d’instances autorisées dans la scène est limité à 16 millions, ce qui inclut toutes les instances diffusées en continu, et pas seulement celles activées pour être utilisées avec Nanite. Seules les instances diffusées en continu sont prises en compte dans le total.
Lorsque Nanite est activé, les tangentes par sommet ne sont pas stockées à partir du maillage statique. Au lieu de cela, l’espace tangent est dérivé implicitement dans le nuanceur de pixel. Les données tangentes ne sont pas stockées pour réduire la taille des données. Cette différence dans l’espace tangent en utilisant cette approche peut causer des discontinuités sur les bords. Cependant, ce problème spécifique n’a pas été jugé significatif et il est prévu de prendre en charge les tangentes par sommet dans une prochaine version.
Matériaux :
Nanite gère les matériaux configurés en mode Opaque et Masqué. Si un type de matériau non pris en charge est détecté, Nanite attribue un matériau par défaut au maillage et ajoute un avertissement dans le Journal de sortie avec des informations supplémentaires.
Notes sur les caractéristiques du matériel supplémentaire :
Les maillages activés par Nanite peuvent recevoir des décalcomanies projetées sur leurs surfaces, mais ils ne prennent pas en charge les Décalcomanies de maillage, qui nécessitent que les matériaux utilisent un mode de mélange Translucide.
La case à cocher Fils de fer n’est pas prise en charge.
Le nœud InterpolationVertex et UV personnalisés sont pris en charge mais seront évalués trois fois par pixel.
Rendu :
Les fonctions de rendu suivantes ne sont pas prises en charge actuellement :
Filtrage des objets en fonction de la vue en utilisant :
Rayon minimal de l’écran
Escamotage de la distance
Rendu vers l’avant
Rendu stéréo pour la réalité virtuelle
Ecran fractionné
Anticrénelage multiéchantillonnage (MSAA)
Canaux d’éclairage
Ray-tracing sur les maillages Nanite
Le maillage de secours est utilisé pour les maillages activés par Nanite par défaut. Diminuez le paramètre Erreur relative de secours dans l’Éditeur de maillage statique pour utiliser davantage de triangles du maillage source.
(Expérimental) Le support initial pour le ray-tracing natif des maillages Nanite est activé avec la variable de console
r.RayTracing.Nanite.Mode 1
. Cela permet de préserver tous les détails tout en utilisant beaucoup moins de mémoire GPU que les maillages de secours à erreur zéro.
Certains modes de visualisation ne prennent pas encore en charge l’affichage des maillages Nanite.