Unreal Engine 5: des features époustouflantes

par | 13 Mai 2020

Je profite d’une communication d’Epic Games à propos du futur d’Unreal Engine, pour vous présenter quelques éléments concernant Unreal Engine 5.

Brian Karis (Technical Director of Graphics) et Jerome Platteaux (Special Projects Art Director, un frenchy venant de Lille) présentent en vidéo un aperçu des capacités nouvelles du produit, avec une démo tournant sur PlayStation 5 intitulée Lumen in the Land of Nanite.

La démo

Mieux que de longs discours, regardez par vous-même cette courte vidéo utilisant Unreal Engine 5 (qui n’est pas encore disponible, hein !) :

De nombreuses équipes et technologies se sont réunies pour permettre ce saut de qualité. Pour construire de grandes scènes telles que celle de la vidéo avec la technologie de géométrie Nanite, l’équipe a fait un usage intensif de la bibliothèque Quixel Megascans, qui fournit des objets de qualité cinématographique jusqu’à des centaines de millions de polygones.

Pour prendre en charge des scènes beaucoup plus grandes et plus détaillées que les générations précédentes, la PlayStation 5 offre une augmentation spectaculaire de la bande passante de stockage.  La démo présente également des systèmes existants tels que la physique et la destruction du chaos, les effets visuels du Niagara, la réverbération à convolution et le rendu ambisonique.

Edit 20/05/20: On apprend que « La démo de l’Unreal Engine 5 peut également tourner sur un PC équipé d’un SSD NVMe 970 et d’une carte graphique NVIDIA GeForce RTX 2080 pour ordinateurs mobiles, toujours en 1440p, et atteignant cette fois les 40 fps. » (source).

Les principales Features: Nanite

Unreal Engine 5 contient « des évolutions sans précédent en matière d’infographie en temps réel » si je reprends les mots d’Epic Games. Avec la nouvelle technologie de micropolygones virtualisés Nanite (ça me rappelle une série… c’est pas Stargate ?), les artistes peuvent créer des visuels sans se soucier du nombre de polys. Et on ne parle par de millions de polys… mais de milliards !!! En même temps, faisons bien le distingo entre poly affichés et poly sources. Quand ici, je parle de milliards, il s’agit de « sources ». Et les cartes actuelles savent sans trop de problèmes afficher des dizaines de millions de triangles. Donc, ce n’est pas si exceptionnel – ce n’est pas une question d’affichage car c’est la CG qui s’occupe de tout ça principalement, mais bien de « préparation » de la scène par le moteur.

Se peut-il d’ailleurs que Nanite soit une implémentation du Mesh Shaders déjà présent sous DX12 ? Vous connaissez probablement les pixel et vertex shaders, et un peu plus récemment les geometry shaders. Les mesh shaders sont un 4ième type de shaders, avec la notion de Meshlets qui sont des extraits d’un mesh permettant d’utiliser le parallelisme de façon optimale. En gros, grâce à la technologie du Mesh Shading, le GPU peut désormais contrôler intelligemment la sélection du niveau de détails et la tessellation de chaque objet, ce qui permet de mettre en œuvre des mondes ouverts d’un réalisme sans précédent avec des centaines de milliers d’objets. La différence est là, ce n’est plus le CPU qui gère le LOD, mais le GPU et de façon autonome. À cela, on peut ajouter également la techno Sampler feedback qui permet de réduire la charge GPU dans les environnements peu changeants où le déplacement du joueur est la plus grosse contrainte, une techno déjà utilisée dans le RTX.

Il y a probablement d’autres techniques, car nous sommes à un niveau où le pixel et le triangle sont de même taille quasiment. De fait, je pense à la notion de voxels qui sont des pixels 3D. C’est d’ailleurs amusant, car avec la v4.25, on voit qu’Epic Games a investi dans le nuage de points… il n’y a peut-être aucun rapport, ou alors… D’après Tim Sweeney: “autant de détails que l’oeil est capable d’en voir”. De la sculpture ZBrush aux scans de photogrammétrie en passant par les données CAO – et cela fonctionne. La géométrie nanite est diffusée et mise à l’échelle en temps réel afin qu’il n’y ait plus de budgets « polygones », de budgets « mémoire », etc. C’est de l’optimisation en temps-réel sans avoir à se casser la tête ! Il n’est plus nécessaire de copier les détails sur des cartes normales ou de créer manuellement des niveaux de détail; et il n’y a aucune perte de qualité.  Fantastique hein ? Mais ce n’est pas tout.


Dans la démo, on nous parle aussi de l’utilisation de textures qualité « cinéma » 8K.  Il s’agit bien entendu d’utiliser le Virtual Texturing, et plus précisément de Streaming Virtual Texturing,  déjà présent dans les version 4.2x du moteur, et dont on a déjà parlé sur ce blog, avec peut-être quelques optimisations.  Rappelons que le VT est une évolution du Mip Mapping, qui est à la texture ce que le LOD est au Mesh. Le virtual texturing n’envoie que la partie de la texture réellement affichée à l’écran, et ne charge dont pas tout le reste pour économiser de la mémoire GPU. D’ailleurs, l’idées est à rapprocher de ce que nous avons vu précédemment avec les Meshlets (partie de mesh) dans le cadre du Mesh Shading.

Les principales Features: Lumen

Avec Lumen, on peut atteindre un réalisme inégalé avec un éclairage global entièrement dynamique.  Plus besoin de reposer sur une illumination globale précalculée et ne supportant les modifications du niveau. Lumen réagit immédiatement aux changements de scène et de lumière. Le système rend l’inter-réflexion diffuse avec des rebonds infinis et des réflexions spéculaires indirectes dans des environnements énormes et détaillés, à des échelles du millimètre.

Sans GI: 
Avec GI:

Évidemment, on arrive à faker quelques peu une illumination générale dans la pièce avec la version actuelle du moteur (sans Raytracing), mais cela demande des efforts coté travail de la scène, et ce n’est qu’une approximation. Dès qu’on a une lumière indirecte dynamique comme ici, on se rend vite compte de la supercherie. Mais avec Lumen, on sera vraiment dans du GI dynamique.  Actuellement, on peut déjà avoir du GI dynamique en utilisant des technos externes sous UE4: l’utilisation de Nvidia VXGI ou Enlighten. A moins que Lumen se rapproche du Voxel-Based Global Illumination (SVOGI) de CryEngine… pour Lumen et qu’une partie de Nanite, soit de convertir l’ensemble de meshes en « nano pixel 3D » façon voxelisation… On suppute pour l’instant…

Les artistes et les concepteurs peuvent créer des scènes plus dynamiques en utilisant Lumen. Par exemple, en changeant l’angle du soleil, en allumant une lampe de poche ou en trouant le plafond, et l’éclairage indirect s’adaptera en conséquence.

Lumen supprime le besoin lightmaps (pas de baking, pas d’UV). Un énorme gain de temps lorsqu’un artiste peut déplacer une lumière à l’intérieur de l’éditeur Unreal et que l’éclairage ressemble à celui du jeu sur console.

Quand on pense que le modèle ci-dessous provient directement d’un sculpt sous ZBrush, n’a aucune normal map, pas de LOD, etc.  Il fait 33M de triangles à lui tout-seul ! Là, pas besoin de remesher, de faire de la retopo, de baker des détails dans les textures, etc. C’est vraiment plus simple ! 

La question qui me vient c’est : et on fait quoi du Raytracing Temps-Réel ? Car si je comprends bien, c’est une techno concurrente. Sinon, c’est un peu tricher de présenter du GI dynamique ainsi. C’ets peut-être aussi une combinaison des deux, mais je serais un peu déçu si c’était le cas. Rappelons que sous Direct X, le raytracing peut être réalisé de façon « logicielle », c’est à dire sans avoir besoin de la techno RTX de Nvidia qui elle est « câblée ». Alors, il est possible que Lumen exploite un peu cette techno DXR, mais d’une autre façon.

D’ailleurs, un indice pourrait aller dans ce sens. Regardez la scène finale de la démo:

Il s’agit d’une scène de type « desert », sans végétation. Et l’une des choses que l’implémentation de rayutracing temps-réel fait actuellement mal, c’est le rendu du foliage. C’est peut-être un hasard… ou pas.

Autres features

Bon, il y a aussi tout le système audio qui a été amélioré. La réverbération prend en compte toute la géométrie de l’espace, créant véritablement des réverbérations d’ondes: ils appellent cela « convolution reverb« . Il semblerait que ce système soit déjà présent sous 4.25, mais il a peut-être été amélioré.

On nous parle d’évolution de Niagara également, mais je n’ai pas vu beaucoup de choses nouvelles: peut-être le fait que les particules peuvent utiliser la lumière dans le calcul (le coup des cafards et de la torche). Et encore, c’est quelque chose qu’on peut déjà faire, mais là, c’est peut-être 100% GPU…

Après, la démo nous montre une belle utilisation du Chaos Engine qui n’est toujours pas présent dans la version shippée d’UE4 (mais on peut rebuilder pour l’utiliser).

QUAND ???

Unreal Engine 4.25 prend déjà en charge les plates-formes de console de nouvelle génération de Sony et Microsoft.

Unreal Engine 5 sera disponible en avant-première début 2021 et en version complète fin 2021. Il prendra en charge les consoles de nouvelle génération, les consoles de génération actuelle, PC, Mac, iOS et Android. C’est presque demain !!! Vous n’avez pas fini votre formation pour optimiser vos prochaines scènes – c’est dommage, on va tout changer !!! 😉

Il y aura une compatibilité ascendante, afin que vous puissiez commencer le développement de nouvelle génération maintenant dans UE4 et déplacer vos projets vers UE5 lorsque vous serez prêt.

Services Online

On annonce aussi « Epic Online Services » permettant d’héberger des parties multijoueurs, facilitant les lobbies, leaderboards, etc. sans passer par des plateformes tierces comme Steam.

  1. Matchmaking : Faites correspondre les joueurs par paires ou en groupes pour jouer ensemble.
  2. Lobbies (Aperçu) : Donnez aux joueurs la possibilité de rejoindre une session via une invitation ou une recherche, ou créez vos propres sessions pour que les joueurs puissent y participer.
  3. Peer-to-peer : Établissez une connectivité réseau peer-to-peer entre plusieurs joueurs indépendamment des pare-feu ou des configurations de routeur.
  4. Succès : motivez vos joueurs avec des badges, des statuts et des succès à mesure qu’ils progressent dans votre partie.
  5. Statistiques : interrogez les statistiques des joueurs en temps réel et affichez les succès dans les classements ou dans votre propre construction de jeu.
  6. Classements : montrez à vos joueurs comment ils se classent par rapport à leurs amis et à tout le monde, en encourageant un gameplay compétitif et engageant.
  7. Stockage des données des joueurs : donnez à vos joueurs la liberté de se déplacer entre les plateformes en stockant leurs données de jeu dans le cloud.
  8. Analyses de jeu : suivez le gameplay, la fréquence, la base de joueurs, le temps et l’emplacement KPI pour identifier les opportunités d’amélioration ou d’extension.
  9. Billetterie des joueurs : connectez-vous directement avec vos joueurs et personnalisez le service grâce à des tickets liés aux profils des joueurs.

Et a priori, c’est déjà dispo !

Conclusion

Dans cette démo, on nous a donc présenté de nouvelles choses (Lumen, Nanite) mélangées à des choses plus ou moins présentes dans les versions actuelles d’UE4. Mais ça reste cool !

Pour sûr, ce moteur est déjà le leader du temps réel pour les jeux triple-A et le cinéma. Mais il va devenir véritablement incontournable et de plus en plus simple à utiliser. On apprend également qu’en dessous d’1M$ de revenus, il n’y aura pas de royalties à verser.

« Vous pouvez créer un jeu de console haut de gamme […] et vous pouvez également le faire fonctionner sur les smartphones, et vous pouvez attirer un public beaucoup plus grand que le public de jeux hardcore en l’expédiant sur plus de plateformes« , a ajouté Sweeney. «La technologie peut permettre cela et la rendre plus productive. » Avec son lancement complet fin 2021, Epic affirme que l’UE5 prendra en charge les consoles de nouvelle génération, les consoles de génération actuelle, PC, Mac, iOS et Android.

Si la démo précédente tourne sur une PS5, il est bien entendu que cela tournera d’une façon équivalente sous XBox X et sur PC, selon Tim Sweeney. Mais, à la grande déception d’une majorité de hard gamers,  il ajoute que le commodore 64 ne sera pas supporté ! Il s’agit bien sûr d’une blague.  Sur les configuration plus légères, cela continuera à fonctionner, mai on peut déjà se demander si le worklow artistique conduisant à ne pas optimiser ses modèles ne va pas conduire à une économie des éditeurs qui ne vont plus releaser leurs jeux sur des materiels plus légers. Tout va dépendre de la façon dont Lumen et Nanite vont fonctionner à un bas niveau…

Je me demande quelle va être la réponse d’Unity – Déjà, on apprenait il y a quelques temps qu’Englighten, la techno qu’ils utilisaient pour faire du GI dynamique, allait être remplacé par le développement en interne d’une nouvelle solution (en espérant que cela ne soit pas DXR/RTX uniquement). On peut donc imaginer qu’ils travaillent déjà sur une évolution similaire de leur propre moteur de rendu. Je vois pas mal de gens se moquer actuellement d’Unity, le traitant d’has been… Cela me rappelle qu’on me tirait un peu la langue en France en 2014 quand j’annonçais que j’abandonnais Unity au profit d’UE4… Je n’ai jamais pensé qu’Unity était une grosse daube pour autant. Je pense qu’ils ont encore probablement des arguments à présenter et j’attends leur réponse avec impatience.

Découvrez nos derniers numéros !

1 Commentaire

  1. Jean

    Bravo Greg tu as vite réagit et fait un sujet intéressant en français Merci

    Réponse

Laisser un commentaire

Ces articles pourraient aussi vous intéresser …