Au cours de sa État de l'adresse irréelle à la GDC 2023, Epic a annoncé une large gamme de fonctionnalités pour Unreal Engine 5.2. Mais peut-être le plus une fonctionnalité importante du moteur mis à jour n'est pas liée à l'éclairage, aux détails de la géométrie ou aux rayons tracé. Tout est question de performances.
Contenu
- Rappelez-vous le bégaiement
- Tout pour Fortnite
- Encore beaucoup de raisons d'être excité
Vidéos recommandées
Moteur irréel les jeux, à tort ou à raison, ont été associés au bégaiement et aux accrocs au cours des dernières années. Avec la nouvelle version, Epic s'attaque enfin au problème de front, alors j'ai pensé qu'il était grand temps d'expliquer pourquoi les jeux Unreal sont si montrent généralement le bégaiement, ce que fait Epic pour résoudre le problème et quand nous pouvons nous attendre à voir ces efforts apparaître dans les nouvelles versions.
Rappelez-vous le bégaiement
Au cours des dernières années, Unreal Engine est devenu synonyme de bégaiement. Nous l'avons vu maintes et maintes fois, depuis Star Wars Jedi: Ordre déchu pour Errer pour Chevaliers de Gotham, et ils ont tous le même problème en commun. C'est du bégaiement de compilation.
Vous entendrez généralement parler de bégaiement de compilation de shaders, mais les sources récentes d'accrocs ne sont pas dues à des shaders individuels. Dans les graphiques récents API comme Vulkan et DirectX 12, des packages connus sous le nom d'objets d'état de pipeline (PSO) sont utilisés pour informer le jeu de l'état de votre GPU. Les PSO sont destinés à rendre le rendu plus efficace, permettant à des dizaines de paramètres, y compris les shaders, d'être interfacés entre l'API et le GPU dans un seul package.
Cependant, ils introduisent un problème différent. Parce que les PSO contiennent tellement d'informations, en générer un nouveau à la volée prend beaucoup de temps (selon à la documentation d'Unreal, 100 millisecondes ou plus). Cette création de PSO d'exécution est la source d'un bégaiement, où le moteur doit générer un nouveau PSO pendant que vous jouez réellement.
Pour lutter contre cela, la mise en cache PSO est disponible dans Unreal Engine. Cela crée un cache de PSO possibles, de sorte qu'il n'est pas nécessaire d'en générer de nouveaux pendant que vous jouez au jeu, mais ils ne sont pas parfaits. Comme l'explique Epic, la mise en cache préalable des PSO peut "être fastidieuse pour les grands projets et laisser encore des lacunes dans le cache, ce qui entraîne des problèmes". C'est pourquoi, même dans les jeux qui précompilent les shaders sur le GPU, vous verrez encore occasionnellement un bégaiement (même s'ils sont peu nombreux et éloignés). entre).
Epic tente d'automatiser ce processus en rassemblant les PSO plutôt que de laisser aux développeurs le soin de prendre en compte tous les paramètres GPU possibles. C'est en marche Feuille de route publique d'Epic, mais seule une version expérimentale est actuellement disponible. Dans Unreal Engine 5.2, l'objectif est d'améliorer la mise en cache des PSO afin de réduire davantage les problèmes.
Tout pour Fortnite
Il y a beaucoup de raisons d'être enthousiasmé par Unreal Engine 5 (j'y reviendrai plus tard), mais nous n'avons pas encore une vision claire du fonctionnement du moteur. Jusqu'à présent, il n'a été utilisé que dans des démos technologiques et Fortnite parmi les versions majeures. Même des jeux comme Chute rouge qui promettaient de tirer parti d'Unreal Engine 5 ont rétropédalé vers Unreal Engine 4.
Pour être clair, les outils disponibles dans Unreal Engine 4 permettent aux développeurs d'optimiser leurs jeux pour éviter le bégaiement. Coeur atomiqueen est un exemple parmi tant d'autres. Mais l'état complexe des PSO a laissé la porte ouverte aux problèmes pendant le jeu, et la collecte automatisée des PSO d'Epic n'a été introduite que dans Unreal Engine 5.1.
Bien que je sois heureux de voir Epic résoudre le problème directement, nous n'avons pas encore vu le cache PSO automatique en cours. Au fur et à mesure que des versions plus complexes et variées sortent d'équipes plus petites, la demande de génération de PSO augmente et la possibilité d'accrocs et de bégaiements devient plus présente.
Ceci est particulièrement préoccupant pour les jeux qui incluent tracé laser, car Unreal Engine 5 ne prend pas en charge la mise en cache PSO pour tracé laser OSP. Comme Nvidia explique, il est possible de répartir le travail de création d'un PSO de lancer de rayons sur plusieurs threads, mais cela ne signifie pas nécessairement que les développeurs utiliseront ce processus.
Encore beaucoup de raisons d'être excité
Nous avons encore besoin de voir la collecte automatisée de PSO dans Unreal Engine 5, mais il y a en fait une tonne de raisons d'être excité dans le moteur. Lumen avant tout. L'éclairage est extrêmement important pour la fidélité graphique, et des techniques coûteuses telles que l'éclairage par tracé présenté dans Portail RTXsont durs sur le matériel. Lumen divise la différence.
Lumen exploite le lancer de rayons, mais c'est une forme hautement optimisée de
Les résultats sont déjà clairs. Fortnite fonctionne sur des consoles avec Lumen à 60 images par seconde (fps), et il est magnifique sur PC, même dans Fortnite'le monde du dessin animé.
Nanite travaille en tandem avec Lumen. Il s'agit d'un système de géométrie virtualisé qui contient des maillages très détaillés et hautement compressés qui peuvent s'ajuster pendant le jeu. Il s'agit essentiellement d'un niveau de détail (LOD) complexe pour les maillages qui permute automatiquement entre les maillages détaillés et vagues en fonction de l'endroit où la caméra regarde.
Plus important encore, Nanite s'exécute sur sa propre passe de rendu, de sorte qu'il n'est pas pris dans le pipeline GPU traditionnel. Cela signifie que votre jeu reste fluide même lorsque Nanite remplace la complexité du maillage. Entre Nanite et Lumen, vous disposez de deux fonctionnalités visuellement impressionnantes et efficaces en termes de calcul qui élèvent la barre de la fidélité graphique.
Cependant, Epic en a partagé plus lors de son discours sur l'état de l'irréel. Le substrat est un nouveau système de matériaux dans Unreal 5.2 qui inclut un contrôle plus détaillé des shaders. Epic en a fait la démonstration avec un matériau de surface opale, présentant plusieurs couches et une réfraction précise de la lumière à travers elles.
Le nouveau cadre de génération de contenu procédural (PCG) est également passionnant, même s'il n'est pas directement lié à la fidélité visuelle. Avec une entrée limitée, le PCG peut générer de nouveaux objets pour permettre aux développeurs de créer rapidement des mondes avec un niveau de détail élevé. C'est excitant pour des mondes plus vastes qui n'ont pas besoin de la touche d'un artiste à chaque coin de rue.
Il y en a une tonne de plus, des avancées de MetaHuman au traçage de chemin complet dans Unreal Engine. C'est excitant, mais les problèmes de bégaiement généralement associés aux versions d'Unreal Engine demeurent. Espérons que les progrès d'Epic dans la mise en cache PSO peuvent contourner ce problème, mais nous n'avons pas encore beaucoup de jeux Unreal Engine 5 pour voir comment ce système fonctionne.
Cet article fait partie de ReSpec – une colonne bihebdomadaire continue qui comprend des discussions, des conseils et des rapports approfondis sur la technologie derrière les jeux sur PC.
Recommandations des éditeurs
- J'ai essayé de revivre l'héritage oublié de Halo en tant que franchise Mac - et ce fut un désastre
- Avec des partenariats PC exclusifs, tout le monde perd
- Les pires ports PC de tous les temps - et pourquoi ils étaient si mauvais
- Comment l'IA générative créera des jeux avec des "mondes plus larges, plus grands et plus profonds"
- Star Wars Jedi: Survivor est en train d'être bombardé sur Steam en tant que port PC "totalement merdique"