Problemas de rastreamento de raio em jogos de última geração: análise de rastreamento de raio na remasterização do Homem-Aranha da Marvel





Conforme o lançamento da próxima geração de consoles se aproxima, a Insomniac Games começou a postar mais materiais revelando detalhes sobre o Homem-Aranha da Marvel e o Homem-Aranha da Marvel: Miles Morales. Ambos os projetos usam tecnologia de rastreamento de raio. Na opinião de Alex Battaglia da Digital Foundry, ela parece muito digna, senão excelente. Nada mal para um começo.



Porém, ao ler comentários na Internet, encontrou uma quantidade considerável de críticas em relação à implementação da tecnologia, bem como à taxa de quadros e resolução. Então, em um novo vídeo da Digital Foundry, ele decidiu apresentar algum tipo de tutorial sobre rastreamento de raios em consoles de próxima geração e explicar por que parece que no Homem-Aranha da Marvel.



Então, as primeiras coisas primeiro. Vamos discutir exatamente para que serve o ray tracing no Homem-Aranha da Marvel no PS5.



A 30FPS com resolução de 4K, o traçado de raio parece ótimo. Ao mesmo tempo, como é normal nos jogos da Insomniac, a resolução dinâmica pode ou não ser usada. É aqui que o traçado de raios é aplicado às reflexões do jogo, como as vistas nas portas dos carros.







Ou nesta imagem, onde o herói e a cidade à distância são refletidos na janela do edifício.







O rastreamento de raio também é usado para sombreamento de fundo (Ambient Occlusion, AO), de acordo com o comunicado à imprensa. É mais difícil de identificar em capturas de tela ou vídeos. Normalmente, AO simula sombras de iluminação indireta em áreas onde a luz refletida ao redor da cena é mais difícil de alcançar.







No que diz respeito aos comentários em mídias sociais e fóruns, há uma decepção na qualidade dos reflexos traçados por raio, que à primeira vista olham apenas para um quarto da resolução básica. Mas eles claramente têm filtros, então é difícil dizer com certeza.







Os reflexos são mostrados em 1080p, enquanto o resto da imagem é mostrado em 4K. Os comentaristas reclamam, por exemplo, que as folhas no reflexo são mais raras ou até ausentes do que as que podem ser vistas na árvore "real". Ou que alguns objetos do jogo, como carros ou pedestres, podem não aparecer nos reflexos. Ou a falta de sombras. Ou negligenciar pequenos detalhes como o traje do Homem-Aranha.







Na verdade, tudo isso não é surpreendente e se refere a medidas obrigatórias, ao que parece, dadas como certas. Isso se deve ao fato de que o traçado de raio é realizado em várias etapas, cada uma das quais afeta o desempenho geral, que tem um orçamento muito limitado.



Vamos fingir que somos os próprios desenvolvedores que precisam criar os reflexos mais realistas dentro de um determinado orçamento.







Vamos dividir o processo de rastreamento de raio em quatro etapas. Digamos que precisamos cumprir 8ms para criar reflexos para um jogo de 30 FPS com resolução de 4K.



Vamos passar para a primeira etapa. Para modelagem de raio, a GPU deve ter uma compreensão da cena e dos objetos geométricos dentro e fora da tela. Na primeira etapa, criamos uma versão fácil de ler da cena do jogo. Quanto mais objetos ele contém e mais dinâmicos eles são, mais tempo levará essa etapa.



Na segunda etapa, disparamos raios na estrutura criada na primeira.







Para ver se o feixe está atingindo qualquer lugar, cerque todos os objetos com hitboxes invisíveis. Assim, um raio que atinge a cena se move através dela até detectar um impacto na geometria. Quanto mais raios disparamos, mais longe eles vão, ou quanto mais hitboxes atingimos, mais tempo levará para esta etapa. Esta parte do pipeline de rastreamento de raio pode ser acelerada por hardware em consoles e PCs.



A próxima etapa é o sombreamento ou a seleção da cor do pixel.







Quanto mais acertos forem sombreados ou quanto mais difícil for o sombreamento, mais tempo levará para essa etapa.







A terceira etapa nos dá as cores e tons que desejamos, mas eles podem ter transições ruins ou ser barulhentos. Este problema é resolvido na quarta etapa. Como regra, quanto mais precisamente o resultado da terceira etapa for apagado na quarta, mais tempo demorará o processo.







Todo o pipeline precisa ser colocado em um total de oito milissegundos e, a princípio, estamos longe dessa meta. Precisamos ajustar as etapas para mantê-lo demorado e também para garantir que nossos reflexos ainda tenham uma boa aparência e correspondam ao design do jogo. Isso pode levar a uma diminuição na qualidade dos reflexos em algumas áreas e um aumento em outras.







Uma das primeiras otimizações que usaremos é reduzir a resolução do traçado de raio. Isso limitará o número de raios saindo e reduzirá o tempo necessário para a segunda e terceira etapas.







Como você pode ver na imagem abaixo, o reflexo parece quase um quarto da resolução original. Essa otimização é realizada não apenas para GPUs de console, mas para todas as GPUs em geral, uma vez que o ray tracing consome recursos incrivelmente intensos.







Vamos dar uma olhada em uma captura de tela da demo de The Ghost Runner com rastreamento de raios 4K habilitado em uma placa gráfica RTX2060 Super. Aqui vemos algumas diferenças em comparação com o Homem-Aranha. Unreal Engine 4, no qual o jogo é criado, usa um método de traçado de raio que é um pouco mais caro no tempo, mas fisicamente mais preciso do que no Homem-Aranha.







O RTX 2060 Super funciona de forma semelhante ao RTX 2070, possui a mesma largura de banda do barramento de memória do PS5 e o mesmo armazenamento de 8GB. É provável que o RTX 2060 Super seja um ótimo ponto de partida para comparação com a GPU do PlayStation 5.







Quando a cena é renderizada em 4K com reflexos e a quantidade de reflexos na tela é tão baixa quanto no caso da poça estática acima, a GPU mal se encaixa 30 FPS. Se houvesse mais dinâmica na cena, a taxa de quadros definitivamente seria menor. Reduzir a resolução axial de traçado de raio em 50% e, portanto, a resolução total para 1080p aumenta o desempenho em cerca de 27%, deixando recursos livres na GPU para aumentar a taxa de quadros em até 30 FPS.







Resultados mais impressionantes podem ser vistos em outras cenas. Como, por exemplo, aqui. A superfície de vidro reflexiva ocupa quase toda a tela. Neste caso, as reflexões com resolução nativa de 4K resultam em uma taxa de quadros de 21 FPS. Ao mesmo tempo, diminuir a resolução de reflexos para 1080p aumenta a taxa de quadros em 58% para 33 FPS com os 30 FPS necessários.



Então, em uma GPU com o mesmo desempenho do PS5, você precisa usar reflexos de traçado de raio de resolução inferior para ser capaz de manter uma taxa de quadros consistente de 30 FPS em uma resolução geral de 4K. Então fica claro por que o Homem-Aranha usará apenas reflexos a 1080p para reduzir o custo do rastreamento de raios.







Vamos voltar ao nosso exemplo de cálculo. Reduzimos a resolução dos reflexos para que o segundo e terceiro estágios consumam menos tempo. Mas ainda não cabemos no orçamento dado para a duração do quadro.



Vamos tentar encurtar o tempo da primeira etapa diminuindo o dinamismo ou o número de objetos contra os quais o traçado de raio será executado. Portanto, nas capturas de tela mostradas anteriormente, alguns objetos dinâmicos podem estar faltando nos reflexos. Ou aqui, no vídeo de gameplay de Miles Morales, em cenas de multidão às vezes você pode notar que alguns dos NPCs não são refletidos nas superfícies.







Sabemos por experiência de outros desenvolvedores que desenhar muitos personagens na tela pode consumir muitos recursos. Por exemplo, algumas cenas no Metro Exodus com muitos personagens no RTX 2080 Ti levam mais de 4ms para renderizar. No nosso caso, isso será metade do orçamento alocado.



Portanto, reduzir o número de objetos dinâmicos no primeiro estágio do traçado de raio acelera o processo e, em seguida, ajustamos os 8 ms alocados.







No entanto, o resultado pode não ser tão impressionante quanto gostaríamos.



Por exemplo, dê uma olhada nessas imagens do Battlefield V.











Como vimos acima, edifícios em reflexos aparecem e desaparecem. Este não é o efeito mais desejável, então vamos aumentar a distância que os raios podem percorrer na segunda etapa, bem como a distância na qual os objetos são incluídos na estrutura na primeira.







Voltando ao nosso quadro do Homem-Aranha, podemos ver que os reflexos mostram objetos que estão muito distantes. Provavelmente seria muito desagradável se os objetos no horizonte estivessem ausentes nos reflexos ou piscando constantemente, aparecendo e desaparecendo.







Portanto, levando em consideração os edifícios localizados longe da fonte de reflexão nos reflexos, e aumentando a distância que os raios percorrem, teremos que sacrificar algo mais para compensar.







Vamos voltar ao nosso cálculo. Decidindo levar em consideração objetos distantes nas reflexões, novamente nos encontramos fora dos limites de nosso orçamento. Portanto, iremos mais uma vez revisar o pipeline para possíveis simplificações. Talvez o segundo passo nos traga de volta aos 8ms desejados.



Vamos dar uma olhada em nossa captura de tela da cidade novamente. No reflexo da janela, você pode ver menos folhas ou até mesmo ausentes em comparação com como elas aparecem no modelo de árvore original. As folhas são classificadas como transparentes aqui e, para objetos transparentes, a segunda etapa do pipeline é mais demorada. Sabemos disso por experiência com Battlefield V, onde partículas e reflexos tornam certas cenas extremamente caras.



imagem



Para o Homem-Aranha, podemos reduzir o número de folhas nas árvores nos reflexos antes da segunda etapa. Também faremos com que os efeitos das partículas não sejam processados ​​por traçado de raios, como aqui, onde a névoa na reflexão não é exibida.







Estamos agora quase dentro do orçamento do quadro, mas ainda o excedemos ligeiramente.







A última otimização pode ser feita na terceira etapa, onde usamos o sombreamento.



Vamos voltar para nossa imagem. Você notou a falta de pequenos detalhes no reflexo do traje do Homem-Aranha? Quais são visíveis em seu terno real? Se simplificarmos o material na reflexão, levará menos tempo para desenhá-lo.







Não há nada de errado nisso, já que muitos jogos que usam traçado de raio, como Wolfenstein: Youngblood, usam a mesma técnica.







Como resultado, nos ajustamos aos 8 ms atribuídos. Assim, melhoramos a qualidade dos reflexos em alguns aspectos, por exemplo, adicionando reflexos de objetos distantes, mas ao mesmo tempo recorremos a certas simplificações, como diminuir a resolução dos reflexos.







Esperançosamente, com este exemplo, fomos capazes de transmitir uma ideia dos dilemas que os desenvolvedores de jogos enfrentam quando precisam lidar com um orçamento de desempenho limitado e tecnologias caras, como o rastreamento de raios.



All Articles