Ray Tracing vs. Renderização Rasterizada - Explicado

Após o lançamento da família Turing de GPUs da Nvidia em 2018, o mundo dos jogos viu um aumento exponencial na discussão sobre um recurso conhecido como “Ray Tracing”. A então nova série de placas gráficas “RTX” da Nvidia trouxe suporte para algo chamado “Real-Time Ray Tracing” em jogos. A maioria das pessoas não tinha certeza sobre o que era esse novo recurso e por que estava sendo promovido tanto pela Nvidia, mas ao mesmo tempo estavam empolgadas e interessadas na tecnologia. Ray Tracing foi um ponto tão importante de acordo com a Nvidia que eles consideraram necessário colocá-lo bem no nome dos produtos que estavam lançando. A nova série de placas GeForce “RTX” substituiu a variedade “GTX” mais antiga no que diz respeito aos SKUs de topo, como os SKUs 60,70,80 e -80Ti que a Nvidia normalmente lança.



A Nvidia GeForce RTX 3080 é uma das placas gráficas mais rápidas com suporte para Ray Tracing - Imagem: Nvidia

A série de placas gráficas RTX 2000 da Nvidia trouxe várias mudanças de hardware que permitiram suporte a Ray Tracing em jogos. As novas placas gráficas baseadas em Turing continham núcleos especiais que eram dedicados a este processo e eram conhecidos como RT Cores. O objetivo dos núcleos RT era lidar especificamente com toda a computação gráfica necessária para tornar possível o Ray Tracing em tempo real nos jogos. A Nvidia também complementou os cartões com núcleos CUDA extras para aumentar o poder bruto dos cartões, ao mesmo tempo em que adicionou um novo conjunto de núcleos conhecido como Tensor Cores. Esses núcleos foram concebidos para auxiliar no aprendizado profundo e aplicações de IA, como uma nova forma de técnica de upscaling conhecida como Deep Learning Super Sampling. Já discutimos o Deep Learning Super Sampling ou DLSS em detalhes em Este artigo , onde você pode aprender mais sobre a técnica de upscaling alimentada por IA.



Ray Tracing não é novo

Embora à primeira vista possa parecer que o Ray Tracing é uma nova tecnologia iniciada pela Nvidia, a verdade está longe disso. Sim, a Nvidia foi a primeira empresa a implementar suporte para Ray Tracing em tempo real em jogos, mas isso não significa que Ray Tracing não existia antes da série RTX. Você provavelmente já está gostando sem saber há anos se assistiu a algum filme recente que apresenta efeitos CGI.



Ray Tracing já está sendo usado em outras áreas como filmes - Imagem: Nvidia



A implementação em filmes é reconhecidamente um pouco diferente e muito mais intensiva do que a versão para jogos. As produções de grande orçamento têm o luxo de gastar uma grande quantidade de dinheiro e tempo na renderização dessas cenas. Foi relatado que filmes de animação populares usaram cerca de 1000 supercomputadores para renderizar o filme inteiro com efeitos Ray Tracing durante um período de um mês. Obviamente, esses processos de renderização em grande escala não são viáveis ​​ou possíveis para o jogador médio que procura jogar alguns jogos com alguns visuais atualizados, portanto, a versão Ray Tracing que está presente em jogos modernos é um pouco diferente na aplicação. Ainda assim, Ray Tracing é um recurso que está presente em muitas áreas de produção fora dos games, sendo o cinema uma das mais proeminentes.

Softwares de produtividade usados ​​por profissionais para trabalhar em cenas graficamente intensas, como o Blender, também suportam recursos de Ray Tracing. Esses gráficos de computador e software de renderização usam diferentes níveis de aplicativo de traçado de raio para produzir visuais fotorrealistas em renderizações estáticas e animações 3D.

O que é rasterização?

Então, por que a Nvidia considerou necessário implementar um processo tão complexo em jogos tradicionais? Existe alguma diferença no processo de Ray Tracing em jogos para torná-lo mais otimizado para a carga de trabalho? Para entender o mecanismo por trás do Ray Tracing, primeiro, precisamos entender o mecanismo pelo qual os jogos são tradicionalmente renderizados. Isso nos ajudará a entender por que o Ray Tracing é considerado uma melhoria e um grande salto em fidelidade gráfica.



A técnica que é usada atualmente para renderização é conhecida como “Rasterização”. Nesta técnica, o código do jogo direciona a GPU para desenhar uma cena 3D usando polígonos. Essas formas 2D (principalmente triângulos) constituem a maioria dos elementos visuais que são exibidos na tela. Depois que uma cena é desenhada, ela é traduzida ou “rasterizada” em pixels individuais que são processados ​​por um shader dedicado. O sombreador adiciona cores, texturas e efeitos de iluminação por pixel para produzir um quadro totalmente renderizado. Esta técnica precisa ser repetida cerca de 30-60 vezes por segundo para produzir visuais de 30FPS ou 60FPS nos jogos.

Detalhes do mecanismo de Rasterização - Imagem: Medium.com

Limitações da rasterização

Embora a rasterização tenha sido o modo padrão de renderização em jogos por algum tempo, o processo inerente por trás da rasterização tem algumas limitações. O principal problema com a rasterização é que essa técnica tem dificuldade em rastrear exatamente como a luz em uma cena deve viajar e interagir com outros elementos da cena. A renderização rasterizada não produz os mesmos resultados que a renderização Ray Traced no que diz respeito aos efeitos de iluminação e iluminação geral de uma cena específica. A renderização rasterizada também pode às vezes produzir visuais um tanto imprecisos em relação à iluminação, o que pode realmente prejudicar a imersão em um jogo em particular. É por isso que o Ray Tracing é considerado uma forma superior de renderização quando se trata de fidelidade gráfica, especialmente em relação à iluminação.

O que exatamente é Ray Tracing?

Agora que discutimos a forma tradicional de renderização rasterizada, vamos discutir a nova aplicação de Ray Tracing em tempo real em jogos modernos. Ray Tracing é uma técnica de renderização que cria uma imagem baseada na luz virtual e como essa fonte de luz interage com todos os objetos dentro da cena virtual. O Ray Tracing pode criar uma representação muito mais realista de cenas que aproveitam a interação da luz com os objetos dentro da cena para dar uma sensação de realismo. Em palavras simples, Ray Tracing é uma técnica que faz com que a luz se comporte nos videogames como na vida real.

Ray Tracing promete reformular completamente o visual dos jogos - Imagem: Nvidia

O mecanismo por trás do Ray Tracing

O mecanismo por trás do Ray Tracing em jogos é inerentemente diferente de outras formas de Ray Tracing já encontradas em outros setores, como o cinema. Em vez de rastrear todos os milhões de raios que vêm de cada fonte de luz, o rastreamento de raio de nível de consumidor diminui a carga computacional ao traçar um caminho da câmera que representa a perspectiva do usuário, através de um único pixel, para qualquer objeto que esteja por trás disso pixel e, finalmente, de volta à fonte de luz da cena em questão. Essa técnica de Ray Tracing também pode produzir vários efeitos, como absorção, reflexão, refração e difusão de luz, conforme determinado pelo objeto que estava interagindo com a luz na cena. O algoritmo Ray Tracing também pode levar em consideração os raios resultantes para que quaisquer efeitos de reflexão ou sombras sejam exibidos com precisão.

Em Ray Tracing, a luz se comporta no jogo como se fosse na vida real - Imagem: Nvidia

Diferentes formas de Ray Tracing

Nem todas as implementações de Ray Tracing são iguais. A variedade de jogos que suportam Ray Tracing cada um implementa o recurso de uma maneira um pouco diferente. Cabe ao desenvolvedor do jogo aumentar ou diminuir a complexidade do Ray Tracing no jogo para que o jogo ofereça o equilíbrio perfeito entre desempenho e qualidade visual. Em 2020, a maioria dos jogos que suportam Ray Tracing normalmente usam Ray Tracing para um aspecto de uma cena, ao invés de renderizar toda a cena usando o próprio Ray Tracing. É possível, mas os custos computacionais do Ray Tracing de cena completa são astronômicos em comparação com as outras abordagens e, portanto, não vale o esforço pelo menos agora. No momento em que este artigo foi escrito, as diferentes implementações de Ray Tracing usadas atualmente em jogos são:

  • Sombras: A implementação de Ray Tracing mais simples e menos intensiva está possivelmente relacionada às sombras. Aqui, o Ray Tracing é usado para renderizar perfeitamente as sombras em uma cena com base na origem da luz da fonte de luz e na posição do próprio objeto. Esta técnica é mais notavelmente usada em “Shadow of the Tomb Raider” para produzir um mapa de sombras mais detalhado que responde às mudanças no ambiente ao redor dos objetos que estão produzindo as sombras. Mais notavelmente, o movimento e o ângulo da fonte de luz agora podem incorrer nas mesmas mudanças nas sombras resultantes que observamos na vida real.
  • Reflexões: Os reflexos são um pouco mais computacionalmente intensivos para renderizar usando Ray Tracing, no entanto, os reflexos Ray Tracing parecem fenomenais em jogos modernos e são provavelmente a melhoria gráfica mais notável que pode ser obtida usando Ray Tracing. Os reflexos usam a fonte de luz em uma cena para renderizar com precisão os reflexos de objetos reflexivos, como vidro e água. Um dos jogos mais populares que usam reflexos Ray Traced é “Control”.
  • Oclusão de ambiente: Isso também está relacionado às sombras e está mais ou menos vinculado ao mesmo processo básico. O Ambient Occlusion usa Ray Tracing para prever o ângulo e a intensidade das sombras com base na posição e no posicionamento dos objetos em uma cena. Quando bem feito, o Ambient Occlusion pode adicionar alguns detalhes e realismo incríveis a um jogo.
  • Iluminação global: Provavelmente a forma mais computacionalmente intensiva de implementação de Ray Tracing em jogos modernos, a Global Illumination usa Ray Tracing para representar com precisão a iluminação mundial. Isso fornece uma sensação muito mais realista de iluminação quando é ligado, mas também tem um impacto enorme no desempenho devido à grande quantidade de dados sendo processados. “Metro Exodus” usa Ray Tracing para fornecer uma forma muito mais realista de Iluminação Global.
  • Rastreamento de caminho completo: Finalmente, também estamos vendo alguns jogos emergirem com caminho totalmente rastreado, o que essencialmente significa que tudo é Ray rastreado. Certamente, esses jogos são um pouco mais simples e menores do que os outros jogos que eram mais ou menos títulos AAA de grandes empresas, mas isso não significa que eles não pareçam impressionantes. Na verdade, alguns podem argumentar que esses jogos com rastreamento de caminho completo parecem melhores do que todas as outras implementações de Ray Tracing. “Minecraft RTX” e “Quake RTX” são dois dos títulos com trajetória completa disponível no momento da escrita.

O Ray Tracing Reflections pode ser a aplicação mais atraente do Ray Tracing em jogos - Imagem: Nvidia

O que eu preciso para o Ray Tracing?

Como mencionado antes, o Ray Tracing é uma tarefa muito intensiva em termos de computação, portanto, requer um hardware de última geração para ter um bom desempenho. No momento em que este artigo foi escrito, havia várias placas de vídeo da AMD e da Nvidia que suportam Ray Tracing acelerado por hardware. Até mesmo os consoles da Sony e da Microsoft oferecem suporte a esse recurso. Isso expande um pouco a lista de hardware compatível:

  • Nvidia GeForce RTX série 2000
  • Nvidia GeForce RTX 3000 series
  • AMD Radeon RX 6000 series
  • Microsoft Xbox Series X
  • Sony PlayStation 5

Tenha em mente que se a AMD lida com Ray Tracing de maneira um pouco diferente da Nvidia, então há uma penalidade de desempenho um pouco maior que é observada quando você usa placas AMD para Ray Tracing. Além disso, se você quiser experimentar o desempenho aprimorado usando Deep Learning Super Sampling, esse recurso também está disponível apenas nas placas RTX da Nvidia. A AMD supostamente está trabalhando em um recurso semelhante ao DLSS para suas placas da série RX 6000, mas atualmente ainda está em desenvolvimento no momento em que este artigo foi escrito.

A Nvidia também cunhou o termo “Giga Rays” para dar aos usuários uma ideia sobre as capacidades relativas de Ray Tracing de suas placas gráficas RTX. A Nvidia diz que 5 Giga Rays por segundo é a quantidade mínima de luz virtual idealmente necessária para iluminar totalmente uma sala típica em um ambiente de videogame. A GeForce RTX 2070 oferece 5 Giga Rays / seg, enquanto a RTX 2080 oferece 8 Giga Rays por segundo. O RTX 2080Ti oferece incríveis 10 Giga Rays / s. É uma unidade um tanto arbitrária, portanto, só deve ser usada geralmente para mostrar as expectativas de desempenho relativo.

Perda de desempenho e DLSS

Como fica evidente agora, a maior desvantagem do Ray Tracing é o impacto no desempenho devido à grande quantidade de computação dedicada que precisa ser feita no processo. Em alguns jogos, o impacto no desempenho é tão grande que pode levar o jogo a uma taxa de quadros que não é mais considerada jogável. O impacto no desempenho é ainda maior em jogos que usam implementações mais complexas de Ray Tracing, como Reflections, Global Illumination ou Full Path Tracing.

Claro, a Nvidia pensou nessa situação de penalidade de desempenho e também desenvolveu uma nova técnica de compensação conhecida como Deep Learning Super Sampling. Essa técnica chamada DLSS foi lançada junto com a série RTX 2000 da Nvidia em 2018. Já exploramos o DLSS em detalhes em Este artigo , mas a essência dessa tecnologia é que ela renderiza a imagem em uma resolução mais baixa e, em seguida, atualiza a imagem de forma inteligente e metódica para corresponder à resolução de saída para fornecer um desempenho muito superior à renderização nativa. O DLSS é um excelente mecanismo de compensação para a perda de desempenho do Ray Tracing, mas também pode ser usado sem o Ray Tracing para fornecer taxas de quadros ainda maiores e uma experiência muito melhor.

Aumento significativo de desempenho no controle quando o DLSS é ativado - Imagem: Nvidia

A maior vantagem do DLSS é que ele usa Deep Learning e IA para aprimorar a imagem de forma que haja pouca ou nenhuma diferença de clareza visual entre a imagem nativa e a imagem aprimorada. A Nvidia usa os núcleos Tensor em sua série de placas RTX para acelerar o processo DLSS, de modo que esse cálculo de aumento de escala possa ser feito no ritmo do jogo que está sendo renderizado. Esta é uma tecnologia realmente empolgante que gostaríamos de ver se desenvolver ainda mais e ficar melhor do que é agora.

Futuro do Ray Tracing

O Ray Tracing nos jogos está apenas começando e podemos dizer com certeza que veio para ficar. AMD acaba de lançar seu primeira linha de placas que suportam Ray Tracing em tempo real completo com a série RX 6000 , e o PlayStation 5 e Xbox Series X também têm suporte para Ray Tracing. Os obstáculos atuais que precisam ser superados incluem a perda de desempenho e o baixo número de jogos que a suportam. Os jogos atuais que suportam Ray Tracing no momento da escrita incluem:

  • Em meio ao mal
  • Battlefield V
  • Bright Memory
  • Call of Duty: Modern Warfare (2019)
  • Call Of Duty: Black Ops Cold War
  • Ao controle
  • Crysis Remasterizado
  • Entregue-nos a Lua
  • Quinze dias
  • Ghostrunner
  • Justiça
  • Mechwarrior V: Mercenários
  • Metro Exodus
  • Minecraft
  • Moonlight Blade
  • Jack abóbora
  • Quake II RTX
  • Shadow of the Tomb Raider
  • Fique na luz
  • Assistir a Legião de Cães
  • Wolfenstein: Youngblood

Enquanto isso, a Nvidia confirmou que os seguintes títulos também suportarão Ray Tracing assim que forem lançados:

  • Coração Atômico
  • Cyberpunk 2077 (lançamento)
  • Dying Light 2
  • Doom Eternal
  • Alistado (beta fechado em novembro)
  • JX3
  • Mortal Shell (novembro)
  • Observador: Sistema Redux
  • Pronto ou não (lançamento com acesso antecipado)
  • Ring Of Elysium (lançamento)
  • Sincronizado: fora do planeta
  • The Witcher III
  • Vampire: The Masquerade - Bloodlines 2
  • World Of Warcraft: Shadowlands (novembro)
  • Espada Xuan-Yuan VII (lançamento)

Próximos jogos que suportam RTX e DLSS - Imagem: Nvidia

Embora possam não parecer muitos jogos, eles representam um início em uma direção em que a forma predominante de renderização poderia muito bem ser o Ray Tracing. Agora, no que diz respeito ao desempenho, é realmente difícil prever se o impacto no desempenho do Ray Tracing será reduzido um pouco. O que é razoável esperar, entretanto, é que o DLSS melhore e ofereça compensação suficiente para a perda de desempenho que ocorre ao ativar o Ray Tracing. No momento em que este livro foi escrito, a lista de jogos que suportam DLSS não é extensa de forma alguma, mas é um bom começo tendo em mente que a Nvidia anunciou suporte DLSS para vários jogos futuros também. Aqui estão todos os jogos que atualmente oferecem suporte ao Deep Learning Super Sampling:

  • Hino
  • Battlefield V
  • Bright Memory
  • Call Of Duty: Black Ops Cold War
  • Ao controle
  • Death Stranding
  • Entregue-nos a Lua
  • F1 2020
  • Final Fantasy XV
  • Quinze dias
  • Ghostrunner
  • Justiça
  • Vingadores da Marvel
  • Mechwarrior V: Mercenários
  • Metro Exodus
  • Minecraft
  • Monster Hunter: World
  • Shadow of the Tomb Raider
  • Assistir a Legião de Cães
  • Wolfenstein Youngblood

Como você deve ter notado, a maioria dos jogos que suportam DLSS são títulos que também possuem alguma forma de suporte a Ray Tracing. Isso oferece mais uma confirmação para a teoria de que o DLSS foi desenvolvido e lançado principalmente como uma tecnologia de compensação para aliviar a imensa perda de desempenho no Ray Tracing. DLSS é uma tecnologia seriamente impressionante, já que a Nvidia explicou que usa um supercomputador para realizar cálculos complexos que treinam o algoritmo que os núcleos do Tensor dentro das GPUs da Nvidia seguem. Assim como Ray Tracing, o DLSS deve chegar a mais jogos também:

  • Em meio ao mal
  • Coração Atômico
  • fronteira
  • Cyberpunk 2077 (lançamento)
  • Edge Of Eternity (novembro)
  • JX3
  • Mortal Shell (novembro)
  • Montagem e Lâmina II Bannerlord (novembro)
  • Pronto ou não (lançamento com acesso antecipado)
  • Necrófagos
  • Vampire: The Masquerade - Bloodlines 2
  • Espada Xuan-Yuan VII (lançamento)

DLSS, combinado com Ray Tracing, parece ser o futuro da indústria de jogos em 2020.

A lista de jogos compatíveis com DLSS 2.0 continua crescendo - Imagem: Nvidia

Conclusão

Rasterização é a técnica usada para converter um plano 2D de polígonos em uma imagem 3D na tela em jogos há muito tempo. Em 2018, a Nvidia apresentou a série RTX 2000 de placas gráficas com suporte total para Ray Tracing em tempo real em jogos, uma técnica que usa cálculos complexos para rastrear os raios de luz em uma cena para criar representações precisas de como a luz interagiria com os objetos em uma cena. Isso levou o mundo dos jogos a uma tempestade inesperada e toda a indústria colocou o Ray Tracing como seu foco principal no futuro.

No momento em que este artigo foi escrito, a Nvidia lançou outra geração de placas de vídeo que melhoram ainda mais o desempenho do Ray Tracing, enquanto a AMD e os consoles também anunciaram suporte total para o recurso. A Nvidia também melhorou sua técnica de Super Amostragem de Aprendizado Profundo que usa IA e Aprendizado Profundo para aprimorar de forma inteligente a imagem que foi renderizada em uma resolução mais baixa para compensar a perda de desempenho devido ao Ray Tracing.

Parece que o Ray Tracing veio para ficar e, embora o número inicial de títulos que suportam o recurso não seja extenso, mais e mais títulos estão sendo anunciados com suporte completo para Ray Tracing em tempo real daqui para frente. Agora cabe aos desenvolvedores ajustar os recursos do Ray Tracing em seus próximos jogos e também aumentar o número de títulos que suportam esse recurso. A Nvidia e a AMD também têm a responsabilidade de otimizar seu hardware para esse recurso, para que os jogadores não tenham que experimentar uma perda de desempenho devastadora sempre que quiserem ativar o Ray Tracing.