Unreal Engine 5 está resolvendo o maior problema em gráficos de PC

Respec dt imagem em destaque 2
Esta história faz parte da série ReSpec de Jacob Roach, cobrindo o mundo dos jogos e hardware para PC.

durante a sua Endereço do estado de irreal na GDC 2023, a Epic anunciou um amplo conjunto de recursos para o Unreal Engine 5.2. Mas talvez o mais recurso importante que vem no mecanismo atualizado não está relacionado à iluminação, detalhes de geometria ou raio rastreamento. É tudo uma questão de desempenho.

Conteúdo

  • Lembre-se da gagueira
  • Tudo pelo Fortnite
  • Ainda há muito o que se entusiasmar

Vídeos recomendados

motor irreal os jogos, com ou sem razão, têm sido associados à gagueira e aos engates nos últimos anos. Com o novo lançamento, a Epic está finalmente enfrentando o problema de frente, então achei que era hora de explicar por que os jogos Unreal são tão geralmente mostram gagueira, o que a Epic está fazendo para resolver o problema e quando podemos esperar que esses esforços apareçam em novos lançamentos.

Lembre-se da gagueira

Tempo de quadro em Gotham Knights no PC.
Esses picos de tempo de quadro se manifestam como gagueiras severas em Gotham Knights.

Nos últimos anos, o Unreal Engine se tornou sinônimo de gagueira. Nós vimos isso uma e outra vez, de Star Wars Jedi: Ordem Caída para Vira-latas para Cavaleiros de Gotham, e todos eles têm o mesmo problema em comum. É gagueira de compilação.

Normalmente, você ouvirá sobre a gagueira na compilação de sombreadores, mas as fontes recentes de problemas não se devem a sombreadores individuais. Em gráficos recentes APIs como Vulkan e DirectX 12, pacotes conhecidos como Pipeline State Objects (PSOs) são aproveitados para informar o jogo sobre o estado de sua GPU. Os PSOs destinam-se a tornar a renderização mais eficiente, permitindo que dezenas de parâmetros, incluindo shaders, sejam interligados entre a API e a GPU em um único pacote.

No entanto, eles apresentam um problema diferente. Como os PSOs contêm muitas informações, gerar um novo em tempo real leva muito tempo (de acordo com à documentação do Unreal, 100 ou mais milissegundos). Essa criação de PSO em tempo de execução é a fonte de uma gagueira, onde o mecanismo precisa gerar um novo PSO enquanto você está realmente jogando.

Para combater isso, o cache do PSO está disponível no Unreal Engine. Isso cria um cache de possíveis PSOs para que novos não precisem ser gerados enquanto você joga, mas eles não são perfeitos. Como explica a Epic, o pré-cache do PSO pode “ser oneroso para grandes projetos e ainda deixar lacunas no cache, levando a problemas”. É por isso que, mesmo em jogos que pré-compilam shaders na GPU, você ainda verá uma gagueira (mesmo que sejam poucos e distantes). entre).

A Epic está tentando automatizar esse processo reunindo PSOs, em vez de deixar para os desenvolvedores contabilizar todos os parâmetros possíveis da GPU. Está ligado Roteiro público da Epic, mas apenas uma versão experimental está disponível agora. No Unreal Engine 5.2, o objetivo é melhorar o cache do PSO para reduzir ainda mais os problemas.

Tudo pelo Fortnite

Uma cena do Fortnite rodando no Unreal Engine 5.

Há muito o que se animar no Unreal Engine 5 (falarei disso a seguir), mas ainda não temos uma visão clara de como o mecanismo funciona. Até agora, ele só foi usado em demonstrações de tecnologia e fortnite entre os principais lançamentos. Mesmo jogos como Redfall que prometiam alavancar o Unreal Engine 5 retrocederam para o Unreal Engine 4.

Para ser claro, as ferramentas disponíveis no Unreal Engine 4 permitem que os desenvolvedores otimizem seus jogos para evitar gagueira. coração atômicoé um dos muitos exemplos disso. Mas o estado complexo dos PSOs deixou a porta aberta para problemas durante o jogo, e a coleta automatizada de PSOs da Epic só foi introduzida no Unreal Engine 5.1.

Embora eu esteja feliz em ver a Epic abordando o problema diretamente, ainda não vimos o cache automático do PSO em andamento. À medida que versões mais complicadas e variadas saem de equipes menores, a demanda por geração de PSO aumenta e a possibilidade de travamentos e gagueiras se torna mais presente.

Isso é particularmente preocupante para jogos que incluem traçado de raio, já que o Unreal Engine 5 não oferece suporte ao cache PSO para traçado de raio OPS. Como Nvidia explica, é possível distribuir o trabalho de criação de um PSO de rastreamento de raio para vários encadeamentos, mas isso não significa necessariamente que os desenvolvedores usarão esse processo.

Ainda há muito o que se entusiasmar

Iluminação no Unreal Engine 5.

Ainda precisamos ver a coleta automatizada de PSO no Unreal Engine 5, mas na verdade há muito o que nos animar no mecanismo. Em primeiro lugar, Lumen. A iluminação é extremamente importante para a fidelidade gráfica, e técnicas caras, como iluminação por caminho traçado, exibidas em Portal RTXsão difíceis de hardware. Lumen divide a diferença.

O Lumen aproveita o traçado de raios, mas é uma forma altamente otimizada de traçado de raio. Em vez de calcular minuciosamente saltos infinitos em objetos detalhados, o Lumen usa abstrações para calcular a iluminação para a maior parte da cena, padronizando apenas a iluminação detalhada mais próxima do Câmera. Essa otimização permite que o Lumen seja executado com software traçado de raio, eliminando a necessidade de ter dedicado traçado de raio aceleradores em seu placa de vídeo.

Os resultados já são claros. fortnite está rodando em consoles com Lumen a 60 quadros por segundo (fps) e fica impressionante no PC, mesmo em fortnite's mundo dos desenhos animados.

Uma vitrine Nanite no Unreal Engine 5.

Nanite funciona em conjunto com Lumen. É um sistema de geometria virtualizado que contém malhas altamente detalhadas e comprimidas que podem ser ajustadas durante o jogo. É basicamente um nível de detalhe (LOD) complexo para malhas que alterna automaticamente entre malhas detalhadas e vagas, dependendo de onde a câmera está olhando.

Mais importante, o Nanite é executado em sua própria passagem de renderização, portanto, não fica preso no pipeline tradicional da GPU. Isso significa que sua jogabilidade permanece suave mesmo quando Nanite está trocando a complexidade da malha. Entre Nanite e Lumen, você tem dois recursos visualmente impressionantes e computacionalmente eficientes que elevam o nível de fidelidade gráfica.

A Epic compartilhou mais durante seu discurso no State of Unreal, no entanto. O substrato é um novo sistema de material no Unreal 5.2 que inclui um controle de shader mais detalhado. A Epic demonstrou isso com um material de superfície opala, apresentando várias camadas e refração de luz precisa em todas elas.

Um material opala no Unreal Engine 5.

A nova estrutura de geração de conteúdo processual (PCG) também é empolgante, mesmo que não esteja diretamente relacionada à fidelidade visual. Com entrada limitada, o PCG pode gerar novos objetos para permitir que os desenvolvedores construam rapidamente mundos com alto nível de detalhes. Isso é empolgante para mundos mais expansivos que não precisam do toque de um artista em cada esquina.

Há muito mais, desde avanços no MetaHuman até rastreamento de caminho completo no Unreal Engine. É empolgante, mas os problemas de gagueira comumente associados aos lançamentos do Unreal Engine permanecem. Esperançosamente, os avanços da Epic no cache do PSO podem contornar esse problema, mas ainda não temos muitos jogos do Unreal Engine 5 para ver como esse sistema funciona.

Este artigo faz parte ReSpec – uma coluna quinzenal contínua que inclui discussões, conselhos e relatórios detalhados sobre a tecnologia por trás dos jogos para PC.

Recomendações dos editores

  • Tentei reviver o legado esquecido de Halo como uma franquia do Mac - e foi um desastre
  • Com parcerias exclusivas de PC, todos perdem
  • As piores portas de PC de todos os tempos - e por que elas eram tão ruins
  • Como a IA generativa criará jogos com 'mundos mais amplos, maiores e mais profundos'
  • Star Wars Jedi: Survivor está sendo criticado no Steam como uma porta de PC 'totalmente lixo'