Unreal Engine 5: como a Epic entrega um salto entre gerações

Um olhar aprofundado às tecnologias Nanite e Lumen.

A revelação do Unreal Engine 5 a correr em tempo real na PlayStation 5 representa uma das maiores notícias do ano e a primeira verdadeira amostra do futuro dos videojogos. Um verdadeiro salto entre gerações em termos da densidade do detalhe, juntamente com a remoção completa de pop-in, o UE5 adopta uma abordagem radical ao processamento de geometria combinado com uma avançada tecnologia de iluminação global. O resultado final é algo como nunca antes visto. Mas qual é a verdadeira natureza do novo renderizador? Como consegue este salto entre gerações e será que existem contra-partidas?

Assistir às reacções online ao trailer suscitou algumas questões interessantes, mas também algumas respostas confusas. A fixação na protagonista que passa por um espaço apertado foi especialmente estranha, mas para esclarecer isto, foi uma decisão criativa, não uma forma de abrandar a personagem para carregar dados, é assim tão simples. Além disso, a resolução dinâmica com uma contagem de 1440p também suscitou reacções negativas. Temos 20 imagens sem compressão do trailer que desafiam as técnicas de contagem de pixeis. Quando a apresentação geral tem tão bom aspecto, tanto detalhe, com sólida estabilidade temporal (sem trepidação entre fotogramas, por exemplo), a resolução torna-se menos importante, continuação de uma tendência que vimos com a chegada da PlayStation 4 Pro e Xbox One X. Como dissemos em 2018, a próxima geração não se deve focar na resolução 4K, as coisas seguiram em frente e, francamente, os recursos GPU são melhor investidos noutras coisas.

No entanto, surgiram algumas conversas interessantes. A abordagem 'um triângulo por pixel' do UE5 foi demonstrada com conteúdo 30fps, por isso existem questões do quão bom ficará a 60fps. Também foram levantadas questões sobre como funciona o sistema com geometria dinâmica e com transparências como cabelo ou vegetação. A gestão da memória também é um dos temas mais populares: uma grande parte da história do UE5 está em assets originais, com plena fidelidade, e podem ser usados in-game sem alterações ou optimizações, mas como é que isto é processado? Isto gera mais questões sobre a largura de banda necessária para o streaming do armazenamento, uma área na qual a PS5 brilha. Por isso, até que ponto a demo Lumen in the Land of Nanite puxa por aquela imensa largura de banda de 5.5GB/s de memória sem compressão? Esperamos descobrir mais em breve.

A principal inovação do UE5 é o sistema Nanite, renderizador micro poligonal que consegue detalhe sem precedentes. Os conceitos destes motores não são novos, são usados extensivamente em filmes CGI. O princípio é o mesmo, mas a execução é diferente. Os modelos são gerados com a mesma elevada qualidade com milhões de polígonos por modelo, mas não são criados modelos de menor qualidade com mapas normais personalizados para uso in-game. Na Nanite, o detalhe geométrico desse modelo de maior qualidade é aumentado ou reduzido em tempo real. O detalhe superior não tem de ser preenchido com um mapa normal pré-inserido, da forma anterior de criar modelos para jogos. Os funcionários da Epic ajudaram a compreender melhor a tecnologia ao responder a algumas questões.

O Digital Foundry fala do renderizador micro poligonal do UE5.

"Com a Nanite, não temos de pré-fabricar mapas normais a partir de um modelo de maior resolução para um asset de baixa resolução, podemos importar o modelo de alta resolução directamente para o motor. O UE suporta Virtual Texturing, significando que podemos criar texturas para os modelos com muitas texturas 8K sem sobrecarregar a GPU," disse Jerome Platteaux, director de arte e projectos especiais na Epic. Ele diz que cada asset tem uma textura 8K para a cor base, outra textura 8K para a solidez ou metalurgia, e uma última textura 8K para o mapa normal. Mas isto não é um mapa normal tradicional usado para alcançar o maior detalhe, é uma textura para os detalhes à superfície.

"Por exemplo, a estátua do guerreiro que vês no templo é composta por 8 peças. Cada peça tem um conjunto de 3 texturas (cor base, solidez/metalurgia, e mapas normais para pequenos defeitos). Assim sendo, temos 8 conjuntos de texturas 8K, para um total de 24 texturas 8K numa só estátua," acrescenta.

Como o detalhe está associado à quantidade de pixeis no tamanho do ecrã, deixa de existir corte ou pop-in de detalhe, como vês nos renderizadores actuais. De igual forma, não deverá ter aquele deslocamento padrão visto no chão em jogos como Star Wars Battlefront de 2015 (que ainda tem muito bom aspecto). Além disso, pode representar expansões horizontais e dissoluções de detalhe, podes ter rochas individuais no terreno que ganham e perdem qualidade de forma mais natural. Este modelo micro poligonal gera uma grande diferença na criação de assets pois as versões do nível de detalhe para modelos e mapas normais não precisam de ser avaliados, o que poupa tempo, memória e até tempo de acesso a cada versão. Mas não sabemos ainda o custo que terão estes modelos muito grandes na memória.

Outra coisa importante é como é aplicada a sombra no micro-detalhe, essencial para solidificar tudo no mundo de jogo, e importante para alcançar uma apresentação realista. É a razão pela qual muitos detalhes resultam tão bem em jogos como o mais recente Modern Warfare, no qual os mapas normais de sombra têm uma resolução muito baixa para inserir de forma realista o micro detalhe e onde o ray tracing faz um bom trabalho. Em conjunto com ray tracing por triângulo acelerada por hardware, a demo PS5 do UE5 usa screen-space como acontece nos jogos da actual geração para cobrir os pequenos detalhes, que depois são combinados com um mapa virtualizado de sombras.

DF Direct sobre a amostra da Epic Games.

"Existe um traço screen-space muito pequeno para obter o ponto de amostra da superfície, para evitar vestígios," explica Brian Karis. "São os chamados 'Peter Panning', nos quais a sombra não parece conectada à fonte pois foi derivada e o ruído da sombra na direcção oposta onde um mapa de sombras não foi preenchido o suficiente e uma superfície cria uma sombra parcial sobre si mesma, frequentemente com um padrão de pontos ou tiras. Evitamos ambos com um método de filtragem, que usa um traço screen space mais curto combinado com outros truques".

"O método principal aqui, e a razão para um salto tão grande na fidelidade da sombra, são os mapas virtuais de sombras. Basicamente, são texturas virtuais, mas para mapas de sombras. A Nanite permite coisas que não eram possíveis antes, como renderizar nos mapas de sombras virtualizados com uma grande eficácia. Escolhemos a resolução do mapa virtual de sombras para cada luz na demo, enquanto anteriormente usaríamos no máximo 2K. A elevada resolução é fantástica, mas queremos sombras fisicamente plausíveis, por isso alargamos o nosso anterior trabalho na remoção do ruído de sombras com ray-tracing para filtrar sombras de mapas de sombras e criar boas penumbras.

Também ficamos curiosos com a forma como a geometria é processada, se a Nanite usa uma abordagem computacional puramente por software (o que funcionaria bem em todos os sistemas, incluindo GPUs PC não certificadas para DirectX 12 Ultimate) ou se a Epic usa o poder dos mesh shaders, ou shaders primitivos como a Sony os descreve para a PS5. A resposta é intrigante.

"A grande maioria dos triângulos são rasterizados por software através do uso de shaders computacionais altamente optimizados, desenhados especificamente para as vantagens que podemos explorar," explica Brian Karis. "Assim sendo, somos capazes de deixar os rasterizadores hardware de lado nesta tarefa específica. A rasterização por software é um componente fulcral da Nanite que lhe permite fazer o que consegue. Não bate os rasterizadores por hardware em todos os casos, por isso usaremos o hardware quando determinamos que é esse o caminho. Na PS5, usamos os shaders primitivos para isso, o que é muito mais rápido do que usar a anterior cadência existente antes dos shaders por vértice."

Eis o trailer da tech demo do Unreal Engine 5 a correr na PlayStation 5.

Outra tecnologia importante que estreia nesta demo é a Lumen, a resposta da Epic para um dos elementos sagrados da renderização: a iluminação global dinâmica em tempo real. A Lumen é basicamente uma versão não triangular baseada em ray tracing de iluminação por reflexo, que basicamente distribui a luz pela cena após o primeiro contacto de iluminação. Na demo, o sol atinge uma superfície como uma rocha, informando de como deve ser a sua sombra, com a luz a ressaltar dessa rocha, afectada pela sua cor. A demo consegue transformações radicais na iluminação em tempo real e até existe uma secção onde é demonstrado o efeito ligado e desligado.

A maioria dos jogos aproxima-se da iluminação global ao pré-calcular através de um sistema chamado mapas de luz, gerados offline e basicamente pré-introduzidos na cena através de texturas. Com isto, a cena ganha iluminação global, mas as luzes não se movem e a iluminação e objectos afectados por ela permanecem estáticos. A iluminação está fixa na superfície dos objectos nessa cena. Além disso, este mapa de luz afecta apenas iluminação difusa, a iluminação especular, reflexos como os que tens dos metais, água ou superfícies brilhantes, têm de ser feitos de outra forma, através de mapas cúbicos ou reflexos screen-space.

Metro Exodus oferece uma possível solução para isto com ray tracing acelerado por hardware para gerar iluminação global dinâmica, mas o custo é enorme, como acontece com muitas soluções RT. Lumen é uma alternativa em tempo real de menor custo para a iluminação global via mapa de luz offline, pois combina técnicas de rastro para a imagem final. A Lumen fornece vários ressaltos de luz indirecta para a luz solar na demo, o mesmo efeito é visto na lanterna da protagonista.

"A Lumen usa ray tracing para tratar da luz indirecta, mas não é ray tracing triangular," explica Daniel Wright, director técnico de gráficos na Epic. "A Lumen faz o rastro do raio perante uma representação da cena que consistem em campos de distância associados, voxel e campo de altura. Como resultado, não exige hardware ray tracing especial."

Para alcançar IG totalmente dinâmica em tempo real, a Lumen tem uma hierarquia específica. "A Lumen usa uma combinação de diferentes técnicas para rastrear de forma eficiente os raios," continua Wright. "Os rastros screen-space gerem os pequenos detalhes, rastos associados ao campo de distância lidam com transferência de luz a média escala e os rastos voxel lidam com grandes transferências de volume."

A Lumen usa diversas técnicas: para cobrir o ressalto da iluminação a partir de grandes objectos e superfícies, não faz o rasto de triângulos, mas usa voxels, representações quadradas da geometria da cena. Para objectos de tamanho médio, a Lumen faz um rastro contra campos de distância associados que são melhor descritos como outra versão simplificada da geometria da cena. Finalmente, os mais pequenos detalhes são rastreados em screen-space, tal como a iluminação global screen-space na demo de Gears 5 na Xbox Series X. Ao usar vários níveis de detalhe de acordo com o tamanho do objecto e ao usar informação screen-space para os detalhes mais pequenos e complexos, a Lumen poupa tempo GPU quando comparada com a ray tracing triangular por hardware.

Outra técnica importante para manter a performance é o uso de acumulação temporal, na qual o mapeamento do movimento do ressalto da luz ocorre ao longo do tempo, de fotograma para fotograma. Por exemplo, como a luz se move no início da demo, se assistires com atenção, podes ver que a própria iluminação move-se de uma forma mais pausada quando comparado com a iluminação directa. Os programadores falam em 'ressaltos infinitos', o que lembra o caching nas superfícies, uma forma de armazenar luz na geometria ao longo do tempo, com um loop de feedback curto. Isto permite muitos ressaltos de luz difusa, mas pode criar alguma latência quando a luz se move rapidamente.

A Lumen é fascinante e a qualidade dos resultados falam por si. Tal como na Nanite, o que gostamos na apresentação destas tecnologias na demo é a sua autenticidade. O impacto é impressionante, mas ao tirar as camadas, começa a tornar-se mais nítido a forma como a Epic alcançou isto. A companhia tem sido transparente na forma como alcançou os seus resultados, foi directamente para a renderização em tempo real na revelação do motor (sem artimanhas como 'in-engine') e tem sido franca sobre a performance e limitações. Basicamente, é a melhor abordagem para uma companhia que quer fornecer ferramentas essenciais para a indústria dos jogos e outras.

Devido à natureza do motor em si, não há nada a esconder, o motor e a sua fonte ficarão disponíveis. Será que a nova tecnologia tem algum tipo de limitação inerente? Se tiver, descobriremos quando chegar, talvez mais cedo através de feedback na fase preview, mas ficaríamos surpreendidos se a Epic não conseguir cumprir. Vamos relembrar a natureza principal do Unreal Engine: um conjunto de ferramentas versátil desenhado para programadores que querem entregar qualquer tipo de jogo. Produzir um renderizador de próxima geração sem um nível similar de flexibilidade seria uma derrota auto-imposta pela Epic. Dito isto, a noção de transitar das actuais técnicas de modelagem para Megascans soa como uma mudança sísmica na forma como os jogos sem feitos com algumas profundas implicações, como já foi referido.

Claro que ainda faltam seis meses para o lançamento das consolas consolas e o Unreal Engine 5 ainda não está pronto para a sua estreia pública até ao início de 2021. Esta segunda parte sugere que ainda falta muito trabalho de engenharia, mas a curto prazo, Brian Karis diz que em breve teremos mais detalhes sobre a Lumen, Nanite e a criação da tech demo.

Conteúdos relacionados

Também no site...

Comentários (10)

Ignora piores comentários
Ordenar
Comentários