Unreal Engine 5 a atteint une nouvelle version marquante, la version 5.4. Parallèlement à la technologie qui jette les bases des futures itérations du moteur, le développeur Epic Games promet des améliorations substantielles des performances avec une meilleure utilisation du processeur, résolvant potentiellement un bug commun que nous avons vu sur PC et consoles de cette génération. Bien entendu, la nouvelle version inclut également des améliorations visuelles, notamment le système de géométrie Nanite et la mise à l’échelle de la super résolution temporelle (TSR). Nous avons testé cette dernière révision du moteur pour voir comment tout fonctionne et pour avoir une idée du type d’améliorations de performances qui pourraient être possibles dans la nouvelle version.
Aussi étonnant soit-il, la première démo de Matrix Awakens Unreal Engine 5.0 en 2021 présentait déjà les principaux problèmes de performances qu’Epic cherche à résoudre avec la version 5.4. Se déplacer rapidement dans la ville de démonstration Matrix sur PlayStation 5 était suffisant pour provoquer des baisses précipitées des performances, alors que le moteur est aux prises avec le chargement dans de nouvelles zones. Il ne s’agit bien sûr que d’une démo, pas d’un jeu d’expédition, mais les lectures inférieures à 30 ips et les bégaiements de frame-time associés à la mise à l’échelle dynamique de la résolution suggèrent une limitation sévère du processeur sur le matériel de la console. Cela a été confirmé avec la démo City Sample sur PC en 2022, où de simples mesures d’utilisation du processeur et du GPU montrent de graves goulots d’étranglement du processeur, même sur des processeurs modernes et puissants comme le Ryzen 7 7800X3D.
Logiquement, cela a du sens. Un grand nombre des fonctionnalités les plus importantes de l’UE5 comportent des composants de processeur importants, tels que MetaHuman, le streaming en monde ouvert, le traçage de rayons matériel et Nanite, et imposent donc une forte demande en performances du processeur. Plus important encore, vous avez tendance à être limité par les performances d’un seul thread, de sorte que les processeurs à nombre de cœurs plus élevé ne sont pas en mesure d’évoluer de manière significative en répartissant la charge sur plusieurs cœurs et threads. Étant donné que les PC et les consoles économiques ont tendance à avoir un nombre de cœurs compris entre six et huit et qu’un nombre croissant de jeux Unreal Engine 5 arrivent sur le marché, cela représente un potentiel de performances inexploité.
Entrez dans Unreal Engine 5.4. Il y a quelques changements ici, mais le changement le plus important et le plus important est la parallélisation du moteur de rendu – essentiellement en divisant le thread de rendu pour mieux utiliser les processeurs multicœurs. Ce changement a un impact profond sur les performances lorsque l’on compare le benchmark urbain d’Unreal Engine entre les versions 5.0 et 5.4. Dans un scénario de processeur limité sur un Ryzen 7 7800X3D, la fréquence d’images est 42 % plus élevée en 5.4.
En d’autres termes, vous n’aurez pratiquement aucune chance de voir 60 ips sur l’un des meilleurs processeurs de jeu – un qui n’était même pas disponible lors du lancement de la première démo UE5 ! – pour pousser facilement les fréquences d’images dans les années 80. Cela représente une énorme amélioration des performances globales, même si le contenu et les paramètres restent les mêmes, et cela est principalement dû à une meilleure utilisation du processeur.
C’est une excellente nouvelle pour PC, mais c’est aussi une aubaine pour les consoles. Bien que nous ne puissions pas exécuter la démo UE 5.4 directement sur les consoles comme nous le pouvons sur PC, nous pouvons utiliser notre PC Frankenstein pour avoir une idée du prix du matériel équivalent aux consoles de la génération actuelle. Ce PC est équipé d’un AMD RX 6700, d’une carte graphique proche de celle de la PS5, et d’un kit de bureau 4800S, qui est le véritable APU de la Xbox Series X. Ce méli-mélo devrait théoriquement offrir des performances dans le même ordre d’idées. en tant que console de la génération actuelle, mais en réalité, les fréquences d’images sont bien inférieures à ce que nous imaginions avec des paramètres « épiques ».
Gérer les paramètres des cookies
Quoi qu’il en soit, nous obtenons une augmentation moyenne de la fréquence d’images de 60 % lorsque nous parcourons les rues entre les versions 5.0 et 5.4, avec des durées d’images beaucoup moins pointues à mesure que nous commençons à être limités par le GPU. Lorsque vous survolez la ville, en sollicitant davantage le processeur, ce différentiel passe à 80 %. Bien que ce test ne soit pas indicatif des performances réelles de la console, il montre que les améliorations de la version UE aident davantage les configurations bas de gamme que celles haut de gamme, relativement parlant.
Bien qu’Unreal Engine 5.4 affiche des gains de performances moyens convaincants, le moteur a encore du chemin à parcourir en termes d’autres scénarios de performances. Comme je l’ai souligné à plusieurs reprises dans les articles de Digital Foundry, l’UE a un gros problème de bégaiement dans la compilation des shaders. Il y a de nombreuses raisons à cela, mais vous pouvez constater le problème en grand lorsque vous exécutez pour la première fois l’exemple Matrix City dans la version 5.0 : des pics massifs de temps d’image pouvant atteindre des centaines de millisecondes. Pour résoudre ce problème, les développeurs ont tendance à utiliser une étape de précompilation manuelle des shaders, mais cette préparation demande beaucoup de travail au développeur et nécessite une approche approfondie pour récupérer tous les shaders.
Pour cette raison, Epic est passé à la pré-cache automatisée des shaders à partir d’Unreal Engine version 5.1 qui compile les shaders à la demande sur les threads du processeur en arrière-plan. Ce système automatique élimine les bégaiements les plus discordants avec un cache de shader « froid », mais vous avez toujours besoin d’une précompilation appropriée des shaders pour maximiser les performances et minimiser les bégaiements.
Malgré ces progrès, même des jeux comme Fortnite d’Epic qui fonctionnent sur UE 5.4 et utilisent la combinaison du système de mise en cache asynchrone automatique et d’une étape de compilation de shaders peuvent présenter des problèmes. En jouant au jeu pour la première fois sur un PC costaud avec un RTX 4090 et un Ryzen 7 7800X3D à 1080p pour décharger délibérément le GPU, le jeu ne se verrouille pas à 60 images par seconde parfaites – et en effet les bégaiements sont évidents ici dans notre premier match Fortnite avant même de descendre du bus. En fait, il m’a fallu attendre environ mon 8ème match ou environ une heure de jeu pour cesser de voir des pics de temps d’image importants lorsque je me rendais dans de nouvelles zones du monde du jeu. Étant donné qu’un jeu développé avec le soutien des ingénieurs d’Epic UE5 et avec un budget énorme présente toujours ces problèmes sur un PC phare, il est clair que certains défis inhérents subsistent.
La santé du cadre pourrait également être améliorée. Si nous revenons à la démo de Matrix City dans la version 5.4, il est clair qu’il y a encore des pics dans la région de 33,3 ms toutes les quelques secondes – qui sont visibles même sur les meilleurs moniteurs VRR du marché. En fait, les durées de trame maximales sont sans doute subjectivement pires que celles de la même ville en 5.0, en raison de la plus grande disparité des durées de trame. Ce problème de déplacement dans le monde du jeu et d’obtention de gros pics de temps d’image est ce que j’appelle le bégaiement de traversée et c’est quelque chose d’endémique à de nombreux jeux Unreal Engine. Unreal Engine 5.4, bien qu’il contribue à augmenter les moyennes de fréquence d’images, ne semble pas grandement aider au bégaiement de traversée, d’après mon expérience.
Au-delà des performances, les mises à jour d’Unreal Engine depuis la version 5.0 ont inclus des améliorations visuelles intéressantes. Un bon exemple est le rendu du verre, qui n’inclut pas les réflexions par lancer de rayons dans la version 5.0, mais le fait lors de l’utilisation de paramètres plus élevés sur PC dans la version 5.4 pour un résultat visuellement plus cohérent.
Une autre fonctionnalité destinée aux PC qu’Epic a continuellement mise à jour depuis la version 5.0 est l’éclairage par frappe, qui rend l’éclairage dans les reflets beaucoup plus réaliste. Sans éclairage, les objets dynamiques tels que les modèles de personnages n’ont pas de couleur dans les reflets, ce qui peut donc constituer une amélioration significative. Les réflexions de la version 5.4 présentent également des textures et des matériaux plus détaillés et plus réalistes dans les réflexions, ainsi que des ombres par lancer de rayons. Cette fonctionnalité fonctionne désormais bien et n’a qu’un coût de performance de 13 % sur un RTX 4090 en 4K natif – attendez-vous donc à un impact moindre lors de l’utilisation d’upscalers comme DLSS ou de résolutions inférieures.
Une autre mise à niveau intéressante de l’UE5 concerne son éclairage émissif, qui gère les lumières artificielles nocturnes du paysage urbain dans la démo Matrix avec le traçage de rayons Lumen. Cela a été considérablement amélioré entre les versions 5.0 et 5.4, avec une plus grande couverture évidente sur la version la plus récente – bien qu’au prix d’un scintillement plus important provenant de très petites lumières émissives à distance (et même des sources lumineuses plus généralement, qui semblent un peu moins stables dans cette version).
En regardant vers l’avenir au-delà de la version 5.4, il y a quelques choses intéressantes à surveiller, mais pour mon argent, je dirais que le plus intéressant est que Nanite soit étendu pour fonctionner avec des modèles de personnages. Cette fonctionnalité est actuellement expérimentale, mais les images fournies par le spécialiste UE Dylan Browne de Model Farm sont impressionnantes. Cela permet des détails géométriques presque infinis, quelle que soit la distance entre une caméra et le personnage, et dans ce cas, Dylan utilise un bruit 3D lié à l’UV qui défile. Cela donne l’apparence d’une surface en mouvement bouillante et inégale sur tout le modèle – très cool.
Ce n’est bien sûr qu’une démo, mais c’est impressionnant de voir tous ces détails livrés par une géométrie incroyablement dense. Il est facile d’imaginer le type de détails que cela pourrait débloquer pour les jeux du futur, comme les systèmes de dégâts sur les personnages des jeux d’horreur ou les personnages qui se transforment et changent en temps réel.
Il est évident qu’Unreal Engine 5.4 est une version importante, en particulier si les performances du processeur d’environ 40 % que nous avons vues dans la démo de Matrix sont en quelque sorte révélatrices du type d’amélioration que nous pourrions constater dans la livraison de jeux. Et, comme nous l’avons vu ailleurs, l’UE 5.4 est plus beau que le 5.0 dans de nombreux domaines, notamment en utilisant les préréglages de qualité supérieure conçus pour les cartes graphiques PC.
Il est également clair que l’UE bénéficierait également de nouvelles améliorations de performances, notamment en ce qui concerne la stabilité du temps d’image. La mise en cache des shaders a également besoin de travail, si le jeu Fortnite d’Epic est un outil de mesure précis – un jeu comme celui-ci ne devrait pas si mal bégayer sur un processeur haut de gamme. J’aimerais également voir une approche plus systémique pour atténuer les bégaiements de traversée, car ceux-ci se retrouvent partout dans la démo de Matrix et dans presque tous les jeux UE5.