Unreal Engine 5: des features époustouflantes

Je prof­ite d’une com­mu­ni­ca­tion d’Epic Games à pro­pos du futur d’Un­re­al Engine, pour vous présen­ter quelques élé­ments con­cer­nant Unre­al Engine 5.

Bri­an Karis (Tech­ni­cal Direc­tor of Graph­ics) et Jerome Plat­teaux (Spe­cial Projects Art Direc­tor, un frenchy venant de Lille) présen­tent en vidéo un aperçu des capac­ités nou­velles du pro­duit, avec une démo tour­nant sur PlaySta­tion 5 inti­t­ulée Lumen in the Land of Nanite.

La démo

Mieux que de longs dis­cours, regardez par vous-même cette courte vidéo util­isant Unre­al Engine 5 (qui n’est pas encore disponible, hein !) :

De nom­breuses équipes et tech­nolo­gies se sont réu­nies pour per­me­t­tre ce saut de qual­ité. Pour con­stru­ire de grandes scènes telles que celle de la vidéo avec la tech­nolo­gie de géométrie Nanite, l’équipe a fait un usage inten­sif de la bib­lio­thèque Quix­el Megas­cans, qui four­nit des objets de qual­ité ciné­matographique jusqu’à des cen­taines de mil­lions de polygones.

Pour pren­dre en charge des scènes beau­coup plus grandes et plus détail­lées que les généra­tions précé­dentes, la PlaySta­tion 5 offre une aug­men­ta­tion spec­tac­u­laire de la bande pas­sante de stock­age.  La démo présente égale­ment des sys­tèmes exis­tants tels que la physique et la destruc­tion du chaos, les effets visuels du Nia­gara, la réver­béra­tion à con­vo­lu­tion et le ren­du ambisonique.

Edit 20/05/20: On apprend que “La démo de l’Un­re­al Engine 5 peut égale­ment tourn­er sur un PC équipé d’un SSD NVMe 970 et d’une carte graphique NVIDIA GeForce RTX 2080 pour ordi­na­teurs mobiles, tou­jours en 1440p, et atteignant cette fois les 40 fps.” (source).

Les principales Features: Nanite

Unre­al Engine 5 con­tient “des évo­lu­tions sans précé­dent en matière d’in­fo­gra­phie en temps réel” si je reprends les mots d’Epic Games. Avec la nou­velle tech­nolo­gie de microp­oly­gones vir­tu­al­isés Nanite (ça me rap­pelle une série… c’est pas Star­gate ?), les artistes peu­vent créer des visuels sans se souci­er du nom­bre de polys. Et on ne par­le par de mil­lions de polys… mais de mil­liards !!! En même temps, faisons bien le dis­tin­go entre poly affichés et poly sources. Quand ici, je par­le de mil­liards, il s’ag­it de “sources”. Et les cartes actuelles savent sans trop de prob­lèmes affich­er des dizaines de mil­lions de tri­an­gles. Donc, ce n’est pas si excep­tion­nel — ce n’est pas une ques­tion d’af­fichage car c’est la CG qui s’oc­cupe de tout ça prin­ci­pale­ment, mais bien de “pré­pa­ra­tion” de la scène par le moteur.

Se peut-il d’ailleurs que Nanite soit une implé­men­ta­tion du Mesh Shaders déjà présent sous DX12 ? Vous con­nais­sez prob­a­ble­ment les pix­el et ver­tex shaders, et un peu plus récem­ment les geom­e­try shaders. Les mesh shaders sont un 4ième type de shaders, avec la notion de Mesh­lets qui sont des extraits d’un mesh per­me­t­tant d’u­tilis­er le par­al­lelisme de façon opti­male. En gros, grâce à la tech­nolo­gie du Mesh Shad­ing, le GPU peut désor­mais con­trôler intel­ligem­ment la sélec­tion du niveau de détails et la tes­sel­la­tion de chaque objet, ce qui per­met de met­tre en œuvre des mon­des ouverts d’un réal­isme sans précé­dent avec des cen­taines de mil­liers d’objets. La dif­fé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 égale­ment la tech­no Sam­pler feed­back qui per­met de réduire la charge GPU dans les envi­ron­nements peu changeants où le déplace­ment du joueur est la plus grosse con­trainte, une tech­no déjà util­isée dans le RTX.

Il y a prob­a­ble­ment d’autres tech­niques, car nous sommes à un niveau où le pix­el et le tri­an­gle sont de même taille qua­si­ment. De fait, je pense à la notion de vox­els qui sont des pix­els 3D. C’est d’ailleurs amu­sant, car avec la v4.25, on voit qu’Epic Games a investi dans le nuage de points… il n’y a peut-être aucun rap­port, ou alors… D’après Tim Sweeney: “autant de détails que l’oeil est capa­ble d’en voir”. De la sculp­ture ZBrush aux scans de pho­togram­métrie en pas­sant par les don­nées CAO — et cela fonc­tionne. La géométrie nanite est dif­fusée et mise à l’échelle en temps réel afin qu’il n’y ait plus de bud­gets “poly­gones”, de bud­gets “mémoire”, etc. C’est de l’op­ti­mi­sa­tion en temps-réel sans avoir à se cass­er la tête ! Il n’est plus néces­saire de copi­er les détails sur des cartes nor­males ou de créer manuelle­ment des niveaux de détail; et il n’y a aucune perte de qual­ité.  Fan­tas­tique hein ? Mais ce n’est pas tout.

Dans la démo, on nous par­le aus­si de l’u­til­i­sa­tion de tex­tures qual­ité “ciné­ma” 8K.  Il s’ag­it bien enten­du d’u­tilis­er le Vir­tu­al Tex­tur­ing, et plus pré­cisé­ment de Stream­ing Vir­tu­al Tex­tur­ing,  déjà présent dans les ver­sion 4.2x du moteur, et dont on a déjà par­lé sur ce blog, avec peut-être quelques opti­mi­sa­tions.  Rap­pelons que le VT est une évo­lu­tion du Mip Map­ping, qui est à la tex­ture ce que le LOD est au Mesh. Le vir­tu­al tex­tur­ing n’en­voie que la par­tie de la tex­ture réelle­ment 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 à rap­procher de ce que nous avons vu précédem­ment avec les Mesh­lets (par­tie de mesh) dans le cadre du Mesh Shading.

Les principales Features: Lumen

Avec Lumen, on peut attein­dre un réal­isme iné­galé avec un éclairage glob­al entière­ment dynamique.  Plus besoin de repos­er sur une illu­mi­na­tion glob­ale pré­cal­culée et ne sup­por­t­ant les mod­i­fi­ca­tions du niveau. Lumen réag­it immé­di­ate­ment aux change­ments de scène et de lumière. Le sys­tème rend l’in­ter-réflex­ion dif­fuse avec des rebonds infi­nis et des réflex­ions spécu­laires indi­rectes dans des envi­ron­nements énormes et détail­lés, à des échelles du millimètre.

Sans GI

Avec GI:

Évidem­ment, on arrive à fak­er quelques peu une illu­mi­na­tion générale dans la pièce avec la ver­sion actuelle du moteur (sans Ray­trac­ing), mais cela demande des efforts coté tra­vail de la scène, et ce n’est qu’une approx­i­ma­tion. Dès qu’on a une lumière indi­recte dynamique comme ici, on se rend vite compte de la supercherie. Mais avec Lumen, on sera vrai­ment dans du GI dynamique.  Actuelle­ment, on peut déjà avoir du GI dynamique en util­isant des tech­nos externes sous UE4: l’u­til­i­sa­tion de Nvidia VXGI ou Enlight­en. A moins que Lumen se rap­proche du Vox­el-Based Glob­al Illu­mi­na­tion (SVOGI) de CryEngine… pour Lumen et qu’une par­tie de Nanite, soit de con­ver­tir l’ensem­ble de mesh­es en “nano pix­el 3D” façon vox­eli­sa­tion… On sup­pute pour l’instant… 

Les artistes et les con­cep­teurs peu­vent créer des scènes plus dynamiques en util­isant Lumen. Par exem­ple, en changeant l’an­gle du soleil, en allumant une lampe de poche ou en trouant le pla­fond, et l’é­clairage indi­rect s’adaptera en conséquence.

Lumen sup­prime le besoin lightmaps (pas de bak­ing, pas d’UV). Un énorme gain de temps lorsqu’un artiste peut déplac­er une lumière à l’in­térieur de l’édi­teur Unre­al et que l’é­clairage ressem­ble à celui du jeu sur console.

Quand on pense que le mod­èle ci-dessous provient directe­ment d’un sculpt sous ZBrush, n’a aucune nor­mal map, pas de LOD, etc.  Il fait 33M de tri­an­gles à lui tout-seul ! Là, pas besoin de remesh­er, de faire de la retopo, de bak­er des détails dans les tex­tures, etc. C’est vrai­ment plus simple ! 

La ques­tion qui me vient c’est : et on fait quoi du Ray­trac­ing Temps-Réel ? Car si je com­prends bien, c’est une tech­no con­cur­rente. Sinon, c’est un peu trich­er de présen­ter du GI dynamique ain­si. C’ets peut-être aus­si une com­bi­nai­son des deux, mais je serais un peu déçu si c’é­tait le cas. Rap­pelons que sous Direct X, le ray­trac­ing peut être réal­isé de façon “logi­cielle”, c’est à dire sans avoir besoin de la tech­no RTX de Nvidia qui elle est “câblée”. Alors, il est pos­si­ble que Lumen exploite un peu cette tech­no DXR, mais d’une autre façon.

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

Il s’ag­it d’une scène de type “desert”, sans végé­ta­tion. Et l’une des choses que l’im­plé­men­ta­tion de rayu­trac­ing temps-réel fait actuelle­ment mal, c’est le ren­du du foliage. C’est peut-être un hasard… ou pas.

Autres features

Bon, il y a aus­si tout le sys­tème audio qui a été amélioré. La réver­béra­tion prend en compte toute la géométrie de l’e­space, créant véri­ta­ble­ment des réver­béra­tions d’on­des: ils appel­lent cela “con­vo­lu­tion reverb”. Il sem­blerait que ce sys­tème soit déjà présent sous 4.25, mais il a peut-être été amélioré.

On nous par­le d’évo­lu­tion de Nia­gara égale­ment, mais je n’ai pas vu beau­coup de choses nou­velles: peut-être le fait que les par­tic­ules peu­vent utilis­er la lumière dans le cal­cul (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 mon­tre une belle util­i­sa­tion du Chaos Engine qui n’est tou­jours pas présent dans la ver­sion ship­pée d’UE4 (mais on peut rebuilder pour l’utiliser).

QUAND ???

Unre­al Engine 4.25 prend déjà en charge les plates-formes de con­sole de nou­velle généra­tion de Sony et Microsoft.

Unre­al Engine 5 sera disponible en avant-pre­mière début 2021 et en ver­sion com­plète fin 2021. Il pren­dra en charge les con­soles de nou­velle généra­tion, les con­soles de généra­tion actuelle, PC, Mac, iOS et Android. C’est presque demain !!! Vous n’avez pas fini votre for­ma­tion pour opti­miser vos prochaines scènes — c’est dom­mage, on va tout changer !!! 😉

Il y aura une com­pat­i­bil­ité ascen­dante, afin que vous puissiez com­mencer le développe­ment de nou­velle généra­tion main­tenant dans UE4 et déplac­er vos pro­jets vers UE5 lorsque vous serez prêt.

Services Online

On annonce aus­si “Epic Online Ser­vices” per­me­t­tant d’héberg­er des par­ties mul­ti­joueurs, facil­i­tant les lob­bies, leader­boards, etc. sans pass­er par des plate­formes tierces comme Steam.

  1. Match­mak­ing : Faites cor­re­spon­dre les joueurs par paires ou en groupes pour jouer ensemble.
  2. Lob­bies (Aperçu) : Don­nez aux joueurs la pos­si­bil­ité de rejoin­dre une ses­sion via une invi­ta­tion ou une recherche, ou créez vos pro­pres ses­sions pour que les joueurs puis­sent y participer.
  3. Peer-to-peer : Étab­lis­sez une con­nec­tiv­ité réseau peer-to-peer entre plusieurs joueurs indépen­dam­ment des pare-feu ou des con­fig­u­ra­tions de routeur.
  4. Suc­cès : motivez vos joueurs avec des badges, des statuts et des suc­cès à mesure qu’ils pro­gressent dans votre partie.
  5. Sta­tis­tiques : inter­ro­gez les sta­tis­tiques des joueurs en temps réel et affichez les suc­cès dans les classe­ments ou dans votre pro­pre con­struc­tion de jeu.
  6. Classe­ments : mon­trez à vos joueurs com­ment ils se classent par rap­port à leurs amis et à tout le monde, en encour­ageant un game­play com­péti­tif et engageant.
  7. Stock­age des don­nées des joueurs : don­nez à vos joueurs la lib­erté de se déplac­er entre les plate­formes en stock­ant leurs don­nées de jeu dans le cloud.
  8. Analy­ses de jeu : suiv­ez le game­play, la fréquence, la base de joueurs, le temps et l’emplacement KPI pour iden­ti­fi­er les oppor­tu­nités d’amélio­ra­tion ou d’extension.
  9. Bil­let­terie des joueurs : con­nectez-vous directe­ment avec vos joueurs et per­son­nalisez le ser­vice grâce à des tick­ets liés aux pro­fils des joueurs.

Et a pri­ori, c’est déjà dispo !

Conclusion

Dans cette démo, on nous a donc présen­té de nou­velles choses (Lumen, Nanite) mélangées à des choses plus ou moins présentes dans les ver­sions 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éri­ta­ble­ment incon­tourn­able et de plus en plus sim­ple à utilis­er. On apprend égale­ment qu’en dessous d’1M$ de revenus, il n’y aura pas de roy­al­ties à verser.

Vous pou­vez créer un jeu de con­sole haut de gamme […] et vous pou­vez égale­ment le faire fonc­tion­ner sur les smart­phones, et vous pou­vez attir­er un pub­lic beau­coup plus grand que le pub­lic de jeux hard­core en l’ex­pé­di­ant sur plus de plate­formes”, a ajouté Sweeney. «La tech­nolo­gie peut per­me­t­tre cela et la ren­dre plus pro­duc­tive. » Avec son lance­ment com­plet fin 2021, Epic affirme que l’UE5 pren­dra en charge les con­soles de nou­velle généra­tion, les con­soles de généra­tion actuelle, PC, Mac, iOS et Android.

Si la démo précé­dente tourne sur une PS5, il est bien enten­du que cela tourn­era d’une façon équiv­a­lente sous XBox X et sur PC, selon Tim Sweeney. Mais, à la grande décep­tion d’une majorité de hard gamers,  il ajoute que le com­modore 64 ne sera pas sup­porté ! Il s’ag­it bien sûr d’une blague.  Sur les con­fig­u­ra­tion plus légères, cela con­tin­uera à fonc­tion­ner, mai on peut déjà se deman­der si le work­low artis­tique con­duisant à ne pas opti­miser ses mod­èles ne va pas con­duire à une économie des édi­teurs qui ne vont plus releas­er leurs jeux sur des materiels plus légers. Tout va dépen­dre de la façon dont Lumen et Nanite vont fonc­tion­ner à un bas niveau…

Je me demande quelle va être la réponse d’U­ni­ty — Déjà, on appre­nait il y a quelques temps qu’Eng­light­en, la tech­no qu’ils util­i­saient pour faire du GI dynamique, allait être rem­placé par le développe­ment en interne d’une nou­velle solu­tion (en espérant que cela ne soit pas DXR/RTX unique­ment). On peut donc imag­in­er qu’ils tra­vail­lent déjà sur une évo­lu­tion sim­i­laire de leur pro­pre moteur de ren­du. Je vois pas mal de gens se moquer actuelle­ment d’U­ni­ty, le trai­tant d’has been… Cela me rap­pelle qu’on me tirait un peu la langue en France en 2014 quand j’an­nonçais que j’a­ban­don­nais Uni­ty au prof­it d’UE4… Je n’ai jamais pen­sé qu’U­ni­ty était une grosse daube pour autant. Je pense qu’ils ont encore prob­a­ble­ment des argu­ments à présen­ter et j’at­tends leur réponse avec impatience.

Une réflexion sur « Unreal Engine 5: des features époustouflantes »

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.