A maior parte da história dos videogames tem sido uma busca contínua por melhores gráficos e processamento mais rápido. Os primeiros videogames fizeram pouco esforço para buscar a verossimilhança realista porque o poder do hardware para renderizar imagens realistas não existia na escala do consumidor. À medida que o hardware avançava, também crescia a ambição dos desenvolvedores de jogos. O que antes era considerado impossível para jogos domésticos agora é um fato da vida.
Essa impossibilidade, há muito uma ferramenta inestimável entre os estúdios de cinema, é chamada de ray tracing. Você pode tê-lo em seu computador ou console. O que é essa tecnologia mágica que adiciona um realismo sem precedentes aos seus jogos e em quais telefones para jogos de última geração ela está disponível?
Rastreamento de raio em poucas palavras
O conceito por trás do traçado de raios é simples. Os fótons de luz se movem em linha reta, refletindo e refratando até atingirem seus olhos e você ver cor e brilho. O traçado de raio imita o comportamento da luz no mundo real em um ambiente virtual. Produz uma iluminação mais realista do que era possível anteriormente em tempo real num dispositivo de consumo.
Essa é a versão simples. Você tem que mergulhar mais fundo para entender o que está acontecendo.
Uma cartilha sobre computação gráfica
Os primeiros gráficos eram feitos de linhas chamadas vetores e foram usados em vários jogos de arcade populares do início dos anos 80, como Asteroids, Star Wars e Tempest. Esses jogos eram feitos de formas bidimensionais desenhadas na tela de um CRT especializado.
A próxima geração de jogos de computador usava o mesmo tipo de tela usada nas TVs, que não produzia gráficos vetoriais diretamente. As exibições vetoriais usam um feixe de elétrons para desenhar linhas entre duas coordenadas. Os monitores de televisão varrem o feixe de elétrons horizontalmente pela tela, de cima para baixo, em uma varredura raster.
“Raster” vem de rastroa palavra latina para “um ancinho”, devido à forma como o feixe de elétrons “arrasta” pela tela.
Embora seja possível exibir uma imagem vetorial em uma tela raster, é mais fácil usar uma matriz de quadrados (chamados pixels). Os primeiros jogos baseados em raster/pixel aconteciam em mundos bidimensionais simples compostos de objetos de pixel chamados sprites (pense em Shovel Knight e Vampire Survivors). À medida que os designers de jogos começaram a explorar a terceira dimensão, a renderização dos gráficos tornou-se mais cara em termos computacionais.
Os jogos baseados em Sprite armazenam suas informações gráficas em uma variedade de valores de cores. Os jogos 3D constroem objetos e ambientes virtuais feitos dos mesmos vetores usados no início dos anos 80 (só que agora em três dimensões em vez de duas) e usam algoritmos para determinar como eles são exibidos com base na posição da câmera. Como a maioria das telas de computador e televisão são baseadas em gráficos de pixel, os designers de jogos precisavam de uma maneira de pegar esses dados vetoriais tridimensionais e convertê-los em dados raster que nossas telas pudessem exibir. Esse processo é chamado de rasterização.
O método comum de rasterizar uma cena 3D é identificar quais triângulos são visíveis para a câmera. Além de sua posição, cada triângulo possui informações sobre sua cor e textura associadas, que determinam como ele é exibido na tela e como interage com a luz. Na prática, há mais coisas acontecendo, mas é assim que a maioria dos jogos renderiza seus resultados.
A rasterização triangular não pode renderizar sombras e reflexos sem usar hacks, como renderizar um objeto duas vezes ou fazer múltiplas renderizações da cena (o que consome um poder computacional valioso). Para modelar sombras e reflexos com precisão em um ambiente dinâmico, você precisa de uma técnica que imite o comportamento da luz e como ela interage com o mundo.
Rastreamento de raio, para que serve?
O traçado de raio modela o caminho que a luz percorre para produzir dados de iluminação e cores em cenas 3D. Apesar da simplicidade do conceito, a implementação é complexa e demorada (o primeiro artigo acadêmico sobre ray tracing foi publicado em 1968). O problema é que uma simples lâmpada não produz bilhões ou trilhões de fótons por segundo, mas mais de 200 quatrilhões. Embora a modelagem desses fótons produzisse a imagem mais precisa, é impossível processar esses números em tempo real.
Fonte: Nvidia
O traçado de raio segue os raios de luz para trás a partir da câmera, através de cada pixel a ser exibido e, finalmente, até a fonte de luz. Isto limita o número de cálculos ao ponto em que experiências interativas são possíveis. Ainda é tão exigente em termos computacionais que o ray tracing do consumidor em tempo real é limitado na forma como é usado.
O uso mais difundido do ray tracing não é renderizar cenas inteiras (nenhum videogame faz isso no momento). É usado para criar luz, sombras e reflexos realistas em conjunto com técnicas de renderização tradicionais. O traçado de raio básico segue um raio até um objeto e depois até as fontes de luz. O objeto estará na sombra se o caminho ou caminhos para a fonte de luz estiverem obstruídos. Caso contrário, a iluminação é determinada com base na distância e no ângulo. Se o raio atingir um objeto reflexivo ou refrativo, o raio será refletido ou curvado até encontrar outro objeto, que será renderizado na superfície reflexiva.
Uma versão aprimorada do traçado de raio, conhecida como traçado de caminho, é usada para criar iluminação natural nas cenas. Enquanto o traçado de raio tende a ser restrito a um ou dois saltos, o traçado de caminho segue um raio de luz através de muitos reflexos, coletando dados de iluminação ao longo do caminho. Isso permite iluminação indireta, difusa e global, que pode ser facilmente ignorada no jogo, mas adiciona um verniz de verossimilhança que aprimora a imersão do jogo.
Fonte: Nvidia
O que vem a seguir para o rastreamento de raios?
O Ray Tracing é uma tecnologia relativamente nova em videogames (é usada em filmes há mais de 20 anos), então há espaço para crescer. Agora que a mania da criptografia passou, é possível obter placas gráficas com capacidade de rastreamento de raios a partir de cerca de US$ 200. À medida que mais pessoas colocarem as mãos na tecnologia, mais jogos serão feitos para tirar proveito dela. Quanto mais tempo os desenvolvedores gastam com o ray tracing, mais encontrarão maneiras de otimizá-lo.
Uma otimização recente tem potencial para mais que dobrar as taxas de quadros para jogos rodando em hardware com tecnologia Nvidia. É chamado de superamostragem de aprendizado profundo. Ele aproveita a experiência em IA da Nvidia e a combina com sua experiência em rastreamento de raios. O DLSS faz algumas coisas:
- Ele usa IA para aprimorar renderizações de quadros de baixa resolução.
- Ele analisa duas renderizações de quadros e usa IA para criar um novo quadro entre eles.
- Ele aumenta os dados de rastreamento de raio usando IA para adicionar iluminação e reflexos mais detalhados.
Se você quiser experimentar o ray tracing em tempo real em seus jogos, você precisa de uma GPU de última geração, como a linha de placas gráficas GeForce RTX da Nvidia ou uma AMD Radeon RX 6000 ou melhor. Se você é aventureiro, experimente as placas Arc da Intel. A linha de placas RTX da Nvidia é a mais popular entre os jogadores de PC, mas a AMD potencializa o trabalho de ray tracing no PlayStation 5 e no Xbox Series X. Você também encontrará laptops para jogos com tecnologia Nvidia e AMD.
Se você joga em qualquer lugar e deseja um telefone que suporte ray tracing, suas opções são limitadas, mas estão disponíveis. Se você mora no ecossistema Android, encontrará ray tracing na série de telefones Galaxy S23 da Samsung. Se você preferir produtos Apple, a série iPhone 15 pode atender às suas necessidades de ray tracing.
Prepare-se para o traçado de raios!
O Ray Tracing é uma tecnologia de nicho, mas não durará muito. Se você não tiver acesso ao hardware de rastreamento de raios, experimente-o por meio dos serviços GeForce Now da Nvidia ou Xbox Cloud Gaming da Microsoft, ambos com prós e contras.