Gráficos Reinventados: Ray Tracing, AI e Sombreamento Avançado Oferecem uma Maneira Completamente Nova de Curtir os Games | NVIDIA

As placas de vídeo GeForce RTX são as mais rápidas de todos os tempos, oferecendo experiências de 4K a 60 FPS nos games atuais. Além disso, elas incluem novas tecnologias inovadoras que possibilitam técnicas revolucionárias que aumentam a fidelidade visual, apresentam gráficos realistas, permitem novas experiências e aumentam ainda mais o desempenho.

De um modo geral, essas técnicas se enquadram em três pilares: Ray Tracing NVIDIA RTX, Inteligência Artificial e Sombreadores Avançados. A seguir, mostraremos tudo o que está relacionado a games e que foi possibilitado pela nova arquitetura Turing e, quando aplicável, explicaremos como tudo isso melhora as técnicas atuais do setor.

Ray Tracing em Tempo Real para Games

O Ray Tracing tem sido o santo graal dos gráficos há décadas porque é singular em sua capacidade de fornecer fidelidade realista a tudo o que acontece na tela. O único problema é o desempenho: são necessários milhões de operações de Ray Tracing por frame para obter resultados de alta qualidade, e cada operação de Ray Tracing precisa calcular o que foi atingido e como isso afeta a aparência da cena.

Esses cálculos sobrecarregam as CPUs ao ponto que farms inteiras de servidores de processamento sejam necessárias para a criação de efeitos complexos e mundos virtuais, do mesmo tipo que você vê todos os dias em programas de TV e filmes (em produções de alta qualidade, pequenos trechos e cenas podem levar dias para renderizar).

Agora, criamos a plataforma NVIDIA RTX acelerada por placa de vídeo e lançamos nossas placas de vídeo GeForce RTX e Quadro RTX com Núcleos RT dedicados, acelerando rapidamente a criação de cenas e mundos de efeitos visuais com Ray Tracing por Hollywood. Mas, no campo dos games, as coisas funcionam de maneira muito diferente: os games são jogados em tempo real, com um mínimo de 30 frames por segundo, e o gamer pode mudar a câmera ou o que está na tela a qualquer momento.

Portanto, é necessária uma abordagem diferente na qual o Ray Tracing pode ter um impacto significativo na fidelidade, sem tornar o game extremamente lento. Nossa solução: renderização híbrida, onde os efeitos selecionados funcionam com Ray Tracing para adicionar iluminação realista, sombras e reflexos aos mundos rasterizados de alta fidelidade que os desenvolvedores passaram anos criando com muita dedicação.

O resultado é uma atualização enorme na qualidade da imagem, oferecendo gameplay mais envolvente e realista que ainda pode ser apreciado em taxas de frame fluidas e jogáveis, mesmo em partidas multiplayer caóticas de Battlefield V com 64 jogadores.

 

Reflexos com Ray Tracing

Reflexos com Ray Tracing são o efeito de destaque da NVIDIA RTX; é o tipo de coisa que você vai mostrar orgulhosamente aos seus amigos para demonstrar o que sua nova placa de vídeo GeForce RTX consegue fazer. Atualmente, eles estarão presentes em Assetto Corsa CompetizioneAtomic HeartBattlefield VControl e MechWarrior 5: Mercenaries, além de vários outros games a serem anunciados. Em cada um deles, os reflexos com Ray Tracing aumentarão drasticamente a qualidade da imagem e a imersão em todo o game.

Antes, a melhor tecnologia de reflexos disponível era a de Reflexos no Espaço de Tela (SSR) combinada com mapas de ambiente estáticos, e é virtualmente impossível para qualquer desenvolvedor, por melhor que seja, superar suas limitações.

Por exemplo, os Reflexos no Espaço de Tela só podem mostrar reflexos de objetos na tela (aqueles que já são visíveis em outras partes do frame). Qualquer coisa fora da tela (incluindo atrás da câmera) que deveria ser refletida é, na verdade, falsificada com um mapa de cubo de baixa resolução, que é uma imagem refletora pré-gerada aplicada a superfícies (como as janelas de arranha-céu em games de ação de mundo aberto).

A limitação com mapas de cubo é que eles representam apenas o ambiente refletido como visto de um ponto único na cena e, portanto, podem gerar resultados fisicamente implausíveis em objetos refletores grandes (além disso, você normalmente vê o mesmo reflexo colocado com baking em várias janelas em locais diferentes, e quando você se vira, a cena real é completamente diferente). E embora existam algumas técnicas para atualizar os mapas de cubo em intervalos regulares com base na aparência do mundo nas proximidades, elas não superarão os problemas inerentes à técnica e, portanto, ainda não terão a capacidade de mostrar pessoas, veículos ou efeitos que se movam em tempo real atrás da câmera ou do jogador.

Outro grande problema com o SSR é que os reflexos renderizados não podem exibir detalhes oclusos, como um item grande logo atrás do outro, o que na realidade seria visível no reflexo. Além disso, há problemas com reflexos que desaparecem quando o jogador se move ou a câmera é girada, ou quando o jogador está muito próximo da superfície ou do objeto que está sendo refletido; tudo porque o detalhe a ser refletido está fora da tela.

Aqui entra o Ray Tracing NVIDIA RTX, que corrige todos esses problemas e muito mais para gerar reflexos de alta resolução em tempo real e na cena inteira, que refletem os detalhes na frente, atrás, acima e abaixo do jogador ou da câmera.

Para gerar esses novos reflexos de alta qualidade, os “raios” são “lançados” a partir de superfícies visíveis da câmera do jogador. Quando eles cruzam objetos e superfícies, o detalhe nesse ponto de interseção é usado junto com muitas outras informações, de muitos outros raios e pontos de interseção, para criar reflexos.

Para criar resultados fotorrealistas, no entanto, as propriedades de cada objeto e superfície devem ser consideradas para determinar se são refletoras, se absorvem luz, se são ásperas ou lisas, se são transparentes e assim por diante.

Então, se um desenvolvedor deseja mostrar reflexos dentro de reflexos, uma “reflexão” adicional é usada, enviando os raios em novas direções com base nas propriedades do que eles inicialmente atingiram. À medida que atingem novos elementos do game, as informações nesse ponto de interseção são subsequentemente aplicadas aos reflexos, e a aparência da cena é atualizada de acordo com isso.

E, finalmente, o Efeito Fresnel é aplicado para dar a objetos e superfícies reflexos de aparência natural (na realidade, as bordas de uma bola de vidro são 100% refletoras, mas o centro da esfera reflete apenas um pequeno grau de luz). Sem isso, todo reflexo seria brilhante em todos os pontos de uma forma não natural.

Dois exemplos dos incríveis reflexos visíveis em Battlefield V em placas de vídeo GeForce RTX

Todo esse processo acontece milhões de vezes a cada milissegundo para criar reflexos realistas em tempo real em toda a cena, e só é possível em taxas de frames fluidas e reproduzíveis por causa das unidades de Ray Tracing em tempo real da GeForce RTX, chamadas Núcleos RT, que foram especificamente criadas para essa tarefa (para saber mais, consulte a página 30 do Whitepaper da Turing). A melhora é de tirar o fôlego, elevando o nível de fidelidade para todos os outros games.

Para ver mais surpreendentes capturas de tela, vídeos e trailers dos reflexos com Ray Tracing da NVIDIA RTX, confira nossos artigos sobre Assetto Corsa CompetizioneAtomic HeartBattlefield VControl e MechWarrior 5: Mercenaries.

Iluminação Global Difusa com Ray Tracing

As capacidades de Ray Tracing em tempo real das placas de vídeo GeForce RTX também nos permitem modelar com mais precisão o efeito de reflexos de luz em superfícies em uma cena, dando aos desenvolvedores o poder de adicionar iluminação global difusa aos seus games.

Se você não estiver familiarizado com o termo “Iluminação Global”, ele descreve o processo de computação de todas as interações de luz em uma cena, incluindo as contribuições indiretas resultantes da luz direta que é refletida de uma superfície para outra. Antes, isso era comumente realizado com mapas de luz pré-computados, Sondas de Luz Baseadas em Imagem, Harmônicos Esféricos e Mapas de Sombras Refletoras, além de luzes colocadas por artistas para ajudar a forçar a iluminação quando as técnicas mencionadas anteriormente falhavam.

Essas técnicas tinham várias deficiências, sendo a maior delas a de que a iluminação dinâmica não refletia nem iluminava além da área atingida pela luz.

Por exemplo, imagine um quarto escuro com uma luz brilhante propagando-se através de uma janela. Com as técnicas tradicionais, tudo o que é atingido diretamente pela luz é iluminado, mas as áreas iluminadas em si não refletem a luz e não iluminam os elementos do game ao seu redor, quando na realidade o fazem.

Com Ray Tracing, temos agora a capacidade de modelar com mais precisão a iluminação difusa indireta e dinâmica refletida por um ou mais reflexos indiretos das superfícies na cena, permitindo que os desenvolvedores criem cenas dinâmicas com iluminação indireta mais realista que é atualizada em tempo real quando a iluminação é alterada ou ocorrem eventos no mundo do game. Em outras palavras, a luz é refletida naturalmente, iluminando e clareando os detalhes ao redor. E se o sol se move ou a janela se abre, a iluminação da sala muda realisticamente, permitindo que você veja a sala sob uma luz totalmente nova.

Veja um exemplo de Metro Exodus, que será lançado em 2019:

Para aproximar a iluminação global com Ray Tracing de alta qualidade, alguns desenvolvedores utilizam um processo chamado “baking”, em que os efeitos da luz em objetos estáticos em uma cena são calculados e gravados em texturas, que são sobrepostas na geometria de um game. Os resultados podem ser excelentes em games com iluminação fixa e geometria estática, ou horários fixos do dia, e ele melhora o desempenho do gameplay por não ter que renderizar efeitos de iluminação global. Mas a iluminação com baking não é capaz de lidar com mudanças dinâmicas no mundo que afetam drasticamente a iluminação, como a abertura de uma sombra no vídeo de Metro Exodus acima.

Além disso, o processo de baking é demorado, exigindo uma nova execução cada vez que uma versão do game é compilada, e a iteração de iluminação com baking pode ser um empecilho real no processo de criação de conteúdo.

Agora, os desenvolvedores podem usar a NVIDIA RTX e o Ray Tracing para visualizar instantaneamente sua iluminação com baking e todas as atualizações, acelerando bastante o tempo de desenvolvimento e dando aos desenvolvedores mais oportunidades de iterar e ajustar a fidelidade máxima. E quando eles estiverem felizes com os resultados, podem desativar o Ray Tracing e fazer o baking da iluminação para placas de vídeo e outras plataformas mais antigas.

Uma análise em primeira mão de Control, da Remedy Entertainment, que apresenta Iluminação Global com Ray Tracing melhorada.

With real-time Ray-Traced Diffuse Global Illumination, developers can now, for the first time, craft realistic, properly-lit worlds that react dynamically to lighting changes, and changes to geometry. This is particularly noticeable in Control, where the shape-shifting levels radically affect the lighting of a scene, completely changing its look. And as in the case of Ray-Traced Reflections, the impact to the look and feel of a game is immense, making you wish every game featured NVIDIA RTX effects.

For more screenshots and videos of Ray-Traced Diffuse Global Illumination in action, check out our Control and Metro Exodus articles.

Ray-Traced Ambient Occlusion

A Oclusão Ambiente (AO) é uma técnica usada para adicionar sombras de contato onde objetos ou superfícies obstruem a luz ambiente, ao redor da base de uma rocha, por exemplo. Isso impede que os objetos apareçam como se estivessem flutuando nas superfícies e faz uma cena parecer mais fundamentada e realista.

Antes, a melhor solução para a melhor AO da classe era a nossa própria HBAO+, que foi uma melhora considerável em relação à SSAO em termos de desempenho e fidelidadeEm última análise, ainda é uma técnica de espaço de tela e, como tal, não poderia abranger detalhes fora da tela e detalhes ocultos.

Com a Oclusão Ambiente com Ray Tracing (RTAO), a qualidade e a precisão são amplamente aprimoradas, os detalhes fora da tela podem ser abrangidos, assim como detalhes ocultos, como a parte inferior de uma mesa, resultando em uma cena mais realista.

O vídeo de Metro Exodus também inclui exemplos de Oclusão Ambiente com Ray Tracing em tempo real

A importância da Oclusão Ambiente para a imersão e o realismo de uma cena é muitas vezes negligenciada – não é grande e chamativa como um reflexo ou uma explosão, nem é imediatamente perceptível como a sombra de um jogador. Mas, sem ela, tudo parece “apagado”. Correntes em armaduras não teriam sombra, não haveria cantos escuros em que duas paredes se encontrassem, e absolutamente tudo pareceria flutuar acima de outras superfícies.

Com o Ray Tracing, podemos melhorar ainda mais esse efeito crucial, aprimorando os detalhes em todas as partes de todos os games que o utilizam. Para ver mais exemplos em ação, confira nossos artigos sobre Assetto Corsa CompetizioneAtomic HeartMechWarrior 5: Mercenaries e Metro Exodus.

Sombras com Ray Tracing

As sombras dos games percorreram um longo caminho nos últimos anos, adicionando muitos recursos que as aproximaram da replicação do visual das sombras do mundo real. Até o advento do Ray Tracing em tempo real, a nossa própria técnica Sombras Híbridas com Frustum Tracing (HFTS) era a que havia chegado mais perto, mas no final ela e todas as outras técnicas rasterizadas foram uma coleção de truques programados de forma inteligente para tentar emular o aspecto de uma sombra.

Sem o HFTS, os desenvolvedores precisam equilibrar cuidadosamente as propriedades de seus mapas de sombra tradicionais para maximizar a precisão e detalhar e visualizar distâncias, ao mesmo tempo que evitam o serrilhamento de sombras, “shadow acne” (autossombreamento errôneo) e descolamento de sombras (incapacidade de se conectar completamente com a base do objeto que produz a sombra para fixá-lo em uma superfície).

Com o Ray Tracing, essas questões não são mais uma preocupação. Em vez disso, lançamos milhões de raios em uma cena para representar de forma realista personagens, objetos e folhagens que bloqueiam a luz, resultando em sombras genuinamente realistas pela primeira vez. E, além da adição de sombras precisas, podemos pela primeira vez suportar grandes interações complexas, sombreamento translúcido em tempo real e uma infinidade de outras técnicas, em um nível de detalhe muito além do que era possível ou visto anteriormente.

Em particular, o Ray Tracing permite que os desenvolvedores usem fontes de luz de área, resultando em maiores penumbras e no enrijecimento de contato fisicamente correto, de modo que as sombras se tornem mais nítidas à medida que se aproximam do objeto que as produz. Os benefícios disso podem ser vistos claramente em Shadow of the Tomb Raider, um dos primeiros games a adicionar sombras com Ray Tracing:

Se você quiser ver mais exemplos de sombras com Ray Tracing, leia nossos artigos sobre Assetto Corsa CompetizioneAtomic Heart e MechWarrior 5: Mercenaries.

Ray Tracing em Tempo Real, em Breve nos Games

Reflexos, sombras, oclusão ambiente e iluminação global são melhor executados com Ray Tracing. Agora, finalmente, podemos trazê-los para os games e gamers, proporcionando fidelidade, realismo e imersão sem precedentes. Assim, o Ray Tracing em tempo real nas placas de vídeo GeForce RTX realmente reinventam os gráficos, substituindo os truques e as aproximações das técnicas atuais com cálculos realistas baseados no comportamento real da luz.

Veja o Ray Tracing em ação em nossos artigos de games e experimente-o no final deste ano ao jogar games com NVIDIA RTX em uma placa de vídeo GeForce RTX.

Recursos Acelerados por AI em Games

Além dos “Núcleos RT” que potencializam o Ray Tracing NVIDIA RTX, nossas novas placas de vídeo GeForce RTX também apresentam “Núcleos Tensor” para tarefas de Inteligência Artificial (para detalhes técnicos, veja a página 21 no Whitepaper da Turing).

Deep Learning Super Sampling (DLSS)

Nos anos anteriores, o fundador e CEO da NVIDIA, Jensen Huang, apresentou uma demonstração de rede neural de Deep Learning em que a inteligência artificial decidia se uma foto de um animal de estimação mostrava um gato ou um cachorro. À medida que a máquina obtinha mais imagens e fazia escolhas mais corretas, ficava cada vez melhor, e acabava escolhendo a resposta correta todas as vezes.

Usando essa base para aprendizado de máquina, criamos uma técnica de renderização chamada Deep Learning Super Sampling (DLSS). Ela aumenta o desempenho em um grau significativo, pode melhorar a qualidade da imagem, e sua suavização tem melhor estabilidade temporal e clareza de imagem em comparação com as técnicas de Suavização Temporal (TAA) comumente usadas.

Para que isso funcione, existem alguns passos, cada um aproveitando nossa tecnologia de ponta e nossa experiência com Deep Learning e AI.

Primeiro, mostramos a uma rede neural milhares de capturas de tela de cada game com DLSS com Superamostragem de até 64x (64xSS) e, em seguida, outro conjunto de imagens capturadas sem suavização. Depois, damos à rede a tarefa de analisar e comparar as imagens para aprender a aproximar a qualidade de 64xSS sem seu imenso custo de desempenho.

À medida que a rede repete o processo, seus algoritmos são ajustados e, por fim, ela aprende a automatizar o processo, fornecendo suavização que se aproxima da qualidade de 64xSS, evitando os problemas associados ao TAA, como desfoque na tela, desfoque de movimento, fantasmas e artefatos em transparências.

Naturalmente, nem todos têm um supercomputador, então colocamos os dados treinados de nossa rede neural em um pequeno arquivo incluído com um driver Game Ready, ou transmitido para o seu sistema pelo GeForce Experience. Com isso, sua placa de vídeo GeForce RTX saberá automaticamente como melhor renderizar cada game com DLSS, garantindo ótimos resultados a cada vez.

Finalmente, aproveitamos a qualidade semelhante ao 64xSS imensamente superior do Deep Learning Super Sampling e nossos filtros de alta qualidade para reduzir a resolução de renderização interna do game. Isso acelera enormemente o desempenho sem causar um impacto negativo na qualidade da imagem, como você pode ver na análise de desempenho de Final Fantasy XV: Windows Edition com DLSS.

Esse aumento de desempenho, combinado com o melhor desempenho de rasterização das placas de vídeo GeForce RTX, faz com que as taxas de frames aumentem em até 2 vezes em 4K, em comparação com as placas de vídeo da arquitetura Pascal Série 10. Com este desempenho extra, você aumenta as configurações e continua curtindo uma experiência superfluida a 60 FPS ou mais, proporcionando a você a experiência definitiva nos games.

Atualmente, 25 games estão adicionando DLSS, incluindo títulos populares como Final Fantasy XV: Windows Edition e PUBG:

  • Ark: Survival Evolved from Studio Wildcard
  • Atomic Heart from Mundfish
  • Darksiders III from Gunfire Games / THQ Nordic
  • Dauntless from Phoenix Labs
  • Deliver Us The Moon: Fortuna from KeokeN Interactive
  • Fear The Wolves from Vostok Games / Focus Home Interactive
  • Final Fantasy XV: Windows Edition from Square Enix
  • Fractured Lands from Unbroken Studios
  • Hellblade: Senua's Sacrifice from Ninja Theory
  • Hitman 2 from IO Interactive / Warner Bros.
  • Islands of Nyne from Define Human Studios
  • Justice from NetEase
  • JX3 from Kingsoft
  • KINETIK from Hero Machine Studios
  • Mechwarrior 5: Mercenaries from Piranha Games
  • Outpost Zero from Symmetric Games / tinyBuild Games
  • Overkill's The Walking Dead from Overkill Software / Starbreeze Studios
  • PlayerUnknown’s Battlegrounds from PUBG Corp.
  • Remnant: From The Ashes from Arc Games
  • SCUM from Gamepires / Devolver Digital
  • Serious Sam 4: Planet Badass from Croteam / Devolver Digital
  • Shadow of the Tomb Raider from Square Enix / Eidos-Montréal / Crystal Dynamics / Nixxes
  • Stormdivers from Housemarque
  • The Forge Arena from Freezing Raccoon Studios
  • We Happy Few from Compulsion Games / Gearbox

Fique ligado em GeForce.com para ver anúncios sobre outros games que estão adicionando DLSS e notícias do lançamento do DLSS nesses games.

Aumento de Resolução com AI

A ampliação de uma imagem aumenta os pixels existentes, perdendo detalhes e clareza no processo. Usando AI e um novo processo chamado “Aumento de Resolução com AI”, podemos criar pixels interpretando o conteúdo da imagem, antes de colocar novos dados de forma inteligente. Isso resulta em um aumento mais nítido que preserva corretamente a profundidade dos efeitos de campo e outros tratamentos artísticos.

No NVIDIA Ansel, estamos aproveitando essa tecnologia para permitir a captura de fotos de games de resolução mais alta em 200 games

Para saber mais, acesse nosso artigo dedicado ao GeForce Experience.

Sombreamento Avançado

Um sombreador é um programa executado na placa de vídeo que controla vários aspectos do processo de renderização: como os vértices são posicionados em relação à visão atual da câmera, como objetos maiores são divididos em triângulos menores à medida que se aproximam do visualizador ou como a luz é refletida em um determinado ponto na superfície do objeto, dando aos desenvolvedores o controle necessário para produzir os visuais incríveis que vemos nos games de hoje.

A NVIDIA foi pioneira no sombreamento programável com a introdução da primeira placa de vídeo programável do mundo, a GeForce 3, em 2001. E, ao longo dos últimos 17 anos, assistimos a um avanço impressionante na tecnologia de sombreamento, resultando em games cada vez mais ricos, mais detalhados e mais realistas.

A arquitetura Turing representa o ápice desses avanços, introduzindo quatro novas tecnologias de sombreamento que possibilitarão abordagens de renderização inovadoras, levando os gráficos em tempo real em games a novos níveis de fidelidade visual e desempenho.

Sombreamento de Taxa Variável

Com o uso mais amplo de monitores 4K e monitores de VR, os desenvolvedores exigem mais controle sobre como eles utilizam os ciclos da placa de vídeo sombreando os pixels na tela. Por exemplo, em um headset de VR, os pixels do campo de visão periférico não exigem tanto sombreamento quanto os pixels no centro da imagem. De maneira semelhante, superfícies com texturas que mudam suavemente ou iluminação difusa suave podem reutilizar informações de sombreamento em pixels vizinhos, em vez de sombrear cada pixel a partir do zero.

Outro exemplo é o movimento rápido de objetos na cena: um carro com desfoque de movimento em sua tela não precisa ser sombreado a cada pixel, já que ele está se movendo tão rapidamente que você não consegue perceber claramente todos os detalhes e efeitos de qualquer maneira.

Para abordar esses cenários, a Turing implementa a tecnologia avançada de agendamento de sombreamento de pixel chamada de Sombreamento de Taxa Variável, ou VRS. Com o VRS, os desenvolvedores têm controle total sobre quanto trabalho de sombreamento é executado em diferentes regiões na tela.

Objetos no centro de um monitor de realidade virtual ou superfícies altamente detalhadas em um monitor podem ser sombreados na taxa máxima, ou até várias vezes por pixel, enquanto que, ao mesmo tempo, pixels distorcidos pela lente do headset de VR ou pixels correspondentes a objetos que se movem rapidamente na tela podem ser sombreados em uma taxa mais baixa, com vários pixels compartilhando resultados de um único cálculo de sombreamento.

Como resultado, os games podem alocar de forma mais inteligente o trabalho de sombreamento e passar mais tempo sombreando objetos importantes na cena, efetivamente “pegando emprestado” recursos de sombreamento de outros objetos que não precisam de muito sombreamento.

Usando o VRS, também criamos o Sombreamento Adaptável ao Movimento (MAS), o Sombreamento Adaptável ao Conteúdo (CAS) e a Renderização Fóvea, três outras técnicas que ajudam a acelerar o desempenho de maneiras específicas.

Sombreamento Adaptável ao Movimento (MAS)

Alterar a taxa de sombreamento com base no grau de movimento presente em uma determinada região na tela é uma das aplicações mais eficazes do Sombreamento de Taxa Variável. Essa técnica é chamada de Sombreamento Adaptável ao Movimento (MAS).

O Sombreamento Adaptável ao Movimento trabalha primeiro calculando como os objetos estão se movendo pela tela. Por exemplo, em um game de corrida em terceira pessoa, o carro parecerá mais estático e, como tal, terá que ser sombreado na taxa máxima para preservar detalhes importantes. Por outro lado, objetos na periferia da tela, como sinais de trânsito ou marcações de pista, estarão se movendo muito rapidamente à medida que se aproximam da câmera e, portanto, podem ser sombreados com menos frequência.

Sem VRS, cada pixel seria sombreado individualmente (1 x 1). Com VRS, um desenvolvedor tem até sete opções para escolher para cada região de 16 x 16 pixels, incluindo um resultado de sombreamento usado para colorir quatro pixels (2 x 2) ou 16 pixels (4 x 4) ou impressões não quadradas como 1 x 2 ou 2 x 4. O overlay colorido na captura de tela mostra uma possível aplicação do VRS – talvez o carro pudesse ser sombreado na taxa máxima (região azul), enquanto a área próxima ao carro poderia ser sombreada uma vez por quatro pixels (verde) e a estrada com desfoque de movimento à esquerda e à direita pode ser sombreada uma vez por oito pixels (amarelo).

Com base nessas informações de movimento, o game calcula as taxas de sombreamento adequadas para cada região de espaço de tela e as alimenta ao hardware de Sombreamento de Taxa Variável da Turing, que controla o agendamento de sombreamento de pixel. Deste ponto em diante, o resto do engine do game pode permanecer em grande parte sem saber o que está acontecendo nos bastidores, tornando a técnica relativamente fácil de integrar em games existentes. E, claro, dar ao gamer melhor desempenho com um impacto pouco perceptível na qualidade da imagem.

Sombreamento Adaptável ao Conteúdo (CAS)

Com o Sombreamento Adaptável ao Conteúdo, a taxa de sombreamento é reduzida considerando fatores como coerência de cores espacial e temporal. Em outras palavras, em áreas de detalhes comparativamente baixas que permanecem inalteradas de frame a frame, como skyboxes e paredes, a taxa de sombreamento pode ser reduzida em frames sucessivos.

No exemplo abaixo, o detalhe estático em torno dos painéis de controle animados tem sua taxa de sombreamento reduzida, melhorando o desempenho:

Para ganhos de desempenho ainda maiores, os desenvolvedores podem utilizar CAS e MAS simultaneamente.

Renderização Fóvea

A terceira aplicação do VRS é a Renderização Fóvea, que ajusta as taxas de sombreamento com base no que um gamer está olhando quando a tecnologia de rastreamento ocular é utilizada em realidade virtual ou com um rastreador de monitor de computador, como um Tobii 4C.

A Renderização Fóvea é baseada na observação de que a resolução que o nosso olho pode perceber depende do ângulo de visão. Temos resolução visual máxima para objetos no centro do nosso campo de visão, mas resolução visual muito menor para objetos na periferia. Portanto, se a posição do olho do observador é conhecida, podemos sombrear a taxas mais baixas na visão periférica, e a taxas mais altas no centro do campo de visão, maximizando a qualidade da imagem em todos os momentos.

Renderização de Várias Visualizações

A arquitetura Pascal introduziu o Single Pass Stereo, uma técnica que acelerou o desempenho da VR enviando geometria apenas uma vez para ambos os visores do headset antes de simplesmente deslocar a posição da geometria para a esquerda ou para a direita, em vez de renderizar cada olho independentemente.

Com a Renderização de Várias Visualizações (MVR) da arquitetura Turing, podemos renderizar até quatro visualizações, que podem ser posicionadas arbitrariamente na cena. Para os gamers, isso abre a porta para headsets ultralargos (não coplanares) inclinados, com campos de visão extremos, e configurações de alta resolução que usam telas empilhadas no olho esquerdo e no direito. Isso também pode acelerar a renderização para exibições holográficas, onde vários pontos de vista precisam ser levados em conta.

Em cenários que não são de VR, a renderização de várias visualizações pode ser usada para acelerar a renderização de vários mapas de sombras, permitindo que os desenvolvedores gerem sombras mais nítidas e de maior resolução (se não estiverem usando Ray Tracing).

Sombreamento de Malha

O mundo real é um lugar geometricamente rico e visualmente complexo, com cenas externas em particular sendo compostas por centenas de milhares de elementos (rochas, árvores, folhas etc.).

Os pipelines gráficos de hoje, com sombreadores de vértice, tesselação e geometria, são muito eficientes em renderizar os detalhes de um único objeto, mas ainda têm limitações ao tentar replicar os detalhes do mundo real. Em especial, cada objeto requer sua própria chamada de desenho exclusiva da CPU, e o modelo de sombreador é um modelo por encadeamento de execução, o que limita os tipos de algoritmos que podem ser usados.

Cenas do mundo real como essas têm muitos objetos complexos exclusivos para renderizar em tempo real com os pipelines gráficos atuais.

O processamento eficiente da geometria é um dos pilares da computação gráfica em tempo real, e a NVIDIA tem uma longa história de inovação nessa frente: nossa primeira placa de vídeo, a GeForce 256, dispensou a CPU de ter que executar essa tarefa computacionalmente cara; a GeForce 3 foi a primeira placa de vídeo programável do mundo, dando ao desenvolvedor um controle sem precedentes sobre o processamento de geometria; e a arquitetura Fermi introduziu a tesselação – uma técnica comumente usada em filmes para representar detalhes de geometria em sua melhor escala.

Agora, com VR, Ray Tracing e games complexos que buscam o fotorrealismo, a demanda por uma fidelidade geométrica mais precisa é maior do que nunca. Para atender a esses requisitos cada vez maiores de manipulação de geometria mais eficiente, a arquitetura Turing apresenta o Sombreamento de Malha, um modelo de programação totalmente novo para geometria, mesclando a flexibilidade dos sombreadores de computação com a eficiência do pipeline gráfico agendado por hardware. E o melhor de tudo é que o novo modelo mais flexível do Sombreamento de Malha permite que os desenvolvedores eliminem os gargalos na chamada de desenho da CPU, através do uso de algoritmos mais eficientes para produzir triângulos.

Mesh Shading Pipeline vs. Traditional Pipelines

Com o Sombreamento de Malha, os desenvolvedores não pensam mais em processar vértices individuais ou primitivos individuais. Em vez disso, eles podem aproveitar o poder de um novo modelo de programação, em que um conjunto de encadeamentos de execução agendados por hardware pode cooperar para computar um resultado de maneira muito mais eficiente do que se eles fizessem a computação independentemente, por conta própria.

Por exemplo, um único vértice normalmente é compartilhado por vários triângulos. Para definir se um determinado triângulo é visível ou não, um engine de game terá que realizar alguma computação em cada um dos vértices do triângulo e combinar os resultados. No pipeline tradicional, cada triângulo é tratado de forma independente e, portanto, os vértices compartilhados serão processados ​​redundantemente várias vezes.

Com o Sombreamento de Malha, o desenvolvedor pode estruturar a computação para que a parte por vértice dele possa ser executada exatamente uma vez e, em seguida, compartilhada com todos os triângulos que fazem referência a esse vértice.

Outro aspecto do Sombreamento de Malha é que ele permite um refinamento de geometria muito mais rico. Com a tesselação, um determinado trecho ou triângulo pode ser dividido em um padrão fixo de triângulos menores. Com o Sombreamento de Malha, os desenvolvedores têm controle total sobre como esse refinamento é feito: por exemplo, eles podem programar o hardware para gerar uma árvore inteira, com casca e folhas totalmente detalhadas, a partir de uma descrição muito simples da localização de seu tronco e seus galhos.

Resumindo, o Sombreamento de Malha permitirá mundos extremamente detalhados, nunca vistos antes. Pense em vegetação detalhada e vegetação rasteira, poeira, sujeira e outros detalhes de pequena escala, importantes para tornar as cenas de games menos “sintéticas” e, portanto, mais próximas do que vemos no mundo real.

Para demonstrar, criamos a demo de Nível de Detalhe (LoD) Asteroids, que apresenta como o Sombreamento de Malha pode melhorar drasticamente o desempenho e a qualidade da imagem ao renderizar de 200.000 a 350.000 asteroides simultaneamente

Se você não estiver familiarizado com o LoD, é uma técnica usada por praticamente todos os games para dimensionar a qualidade de um objeto com base na distância da câmera do jogador. Tomemos o exemplo de uma árvore: não faz sentido renderizar cada folha e galho a uma distância em que você não pode vê-los, então, o detalhe da árvore é reduzido para mostrar seu tamanho e forma gerais, mantendo o desempenho e dando ao game os recursos para renderizar árvores próximas com fidelidade máxima. Esse processo é aplicado a todos os modelos e objetos na tela, em todo o game, e por isso é fácil imaginar como o Sombreamento de Malha ajudará na qualidade e no desempenho da imagem.

Na demonstração Asteroids, o Nível de Detalhe de até 350.000 asteroides é ajustado dinamicamente usando o Sombreamento de Malha, mantendo um nível de desempenho e detalhes que seria impossível de alcançar.

Com a renderização tradicional, a CPU está fortemente envolvida com o gerenciamento de LoD, criando um grande gargalo no pipeline de renderização. Com o Sombreamento de Malha, o gerenciamento do LoD Dinâmico é executado de forma autônoma na placa de vídeo. Assim, na demonstração, permitimos que os usuários alternem entre o LoD Dinâmico do Sombreamento de Malha e o LoD tradicional dependente de CPU. O resultado: qualidade de imagem e desempenho imensamente superiores.

Abaixo, uma comparação interativa mostra o modo de renderização de wireframe da demonstração Asteroids, na qual você pode ver claramente mais detalhes geométricos nos asteroides titulares quando o Sombreamento de Malha é utilizado (note que não é utilizada tesselação).

Asteroids NVIDIA Mesh Shading Demo Interactive Comparisons

Em nossa comparação, havia 310.902 asteroides. Usando o Sombreamento de Malha, apenas 52.076.180 triângulos foram desenhados, em comparação com o LoD tradicional, que desenhou 374.885.024 triângulos! São 86% menos triângulos, o que aumentou significativamente o desempenho. Também fomos capazes de melhorar a qualidade da imagem.

Com esses benefícios, o Sombreamento de Malha pode permitir a criação de mundos gigantescos e detalhados, diferente de qualquer coisa experimentada anteriormente.

Sombreamento de Espaço de Textura

Quase todos os games hoje em dia geram novos frames “do zero”, o que significa que não usam cálculos feitos antes desse frame (a menos que usem suavização temporal). Mas, na maioria dos games, assim como no mundo real, relativamente pouca coisa muda de frame para frame. Se você olhar para fora da janela, poderá ver árvores balançando ao vento, pedestres passando ou pássaros voando à distância. Mas a maior parte da cena é “estática” ou inalterada. A principal coisa que muda é o seu ponto de vista.

Agora, alguns objetos vão mudar a aparência à medida que você muda seu ponto de vista, especialmente aqueles que são lustrosos ou brilhantes. Mas a maioria dos objetos mudará muito pouco a aparência à medida que você move sua cabeça e, assim, é um desperdício de preciosos ciclos de placa de vídeo recalcular as mesmas cores exatas que compõem esses objetos em cada frame. Seria muito mais eficiente sombrear esses objetos a uma taxa mais baixa (digamos, a cada três frames, ou talvez até menos do que isso) e reutilizar as cores do objeto (ou “texels”, como elas são referidas) calculadas no passado. Essa noção de reutilização de trabalho se torna particularmente importante no Ray Tracing, e ainda mais no caso da iluminação global, que é um exemplo muito comum de computação de sombreamento lenta e muito cara.

Essa técnica é o que chamamos Sombreamento de Espaço de Textura, em que os cálculos não são executados frame a frame no espaço da tela (ou seja, do ponto de vista do gamer), mas sim calculados com uma taxa de sombreamento diferente no espaço de textura (essencialmente do ponto de vista do próprio objeto). Por que espaço de textura?  Porque todos os objetos em games hoje em dia têm texturas e são independentes do ponto de vista do gamer, tornando-os uma escolha perfeita para armazenar cores de objetos sombreados e “transportá-las” de frame a frame.

Essa mesma técnica também pode ser efetivamente aplicada à VR: como nossos olhos estão bem próximos, a grande maioria dos objetos que você vê com um olho também é vista pelo outro olho. A principal diferença não é o sombreamento desses objetos (por exemplo, seu olho esquerdo vê o lápis em sua mesa como sendo o mesmo amarelo que o olho direito), mas sim a orientação deles. Dessa forma, com o Sombreamento de Espaço de Textura, você pode “pegar emprestado” os cálculos de sombreamento de um olho e usá-los com o outro olho, reduzindo a metade da sua carga de trabalho de sombreamento. E, se seu desempenho for limitado pelo sombreamento de pixels em seu game, o Sombreamento de Espaço de Textura teoricamente poderia dobrar suas taxas de frames.

Com sombreamento de espaço de textura, um engine de game não sombreará todos os pixels rasterizados imediatamente. Em vez disso, ele primeiro identificará quais texels são referenciados pelos pixels que ele rasterizou. Esta operação é muito semelhante ao que a unidade de textura faz quando encontra texels necessários para uma dada operação de texturização. Esse conjunto de texels é enfileirado para sombreamento, o que acontecerá mais tarde. Observe que, durante esse processo, o mesmo texel pode ser referenciado por vários pixels, mas para questões de eficiência, obviamente não queremos sombrear os texels de forma redundante. Assim, o engine do game terá que executar o que é referido como desduplicação de solicitações de sombra, isolando referências únicas de texel e garantindo que cada texel só seja sombreado uma vez.

Uma vez que o conjunto de referências únicas de texel é identificado, o game sombreia os texels, armazenando os resultados em texturas correspondentes para reutilização posterior. Isso é análogo ao sombreamento de pixels, exceto que o que está sendo sombreado não são pixels na tela, mas sim texels dentro de uma textura.

Por fim, os texels computados podem ser usados ​​para calcular as cores dos pixels correspondentes – exatamente da mesma forma que as texturas estáticas são usadas hoje em dia. Essa etapa é extremamente barata, já que ela meramente executa uma única operação de texturização.

O processo de encontrar o conjunto de texels visíveis e isolar aqueles que são únicos é um processo computacionalmente caro e, por essa razão, os aplicativos não podiam arcar com o sombreamento de espaço de textura no passado. A arquitetura Turing resolve esse problema introduzindo aceleração de hardware para esta etapa fundamental: a unidade de textura de Turing agora é capaz de fornecer informações de endereço do texel diretamente ao sombreador, e novos intrínsecos paralelos de dados tornam a etapa de desduplicação do processo muito eficiente.

Embora o sombreamento de espaço de textura possa parecer algo muito direto e lógico a ser feito, existem algumas “armadilhas” que impediram que a técnica se tornasse dominante.

Em primeiro lugar, os games modernos reutilizam muitos objetos, inclusive suas texturas. Se você vir uma floresta dentro de um game, é altamente improvável que cada folha tenha sua própria textura. Muito provavelmente, as folhas são todas tiradas de um pequeno conjunto de modelos de folhas e texturas. Esses objetos não funcionarão com Sombreamento de Espaço de Textura, já que todos os objetos visíveis devem ter suas próprias texturas – nenhum compartilhamento permitido! Imagine se você não reforçasse isso – que todas as folhas de uma árvore continuassem a compartilhar a mesma textura de folha – e então você usasse sua mão para colocar uma delas na sombra. Assim, todas as folhas da árvore também iriam para a sombra simultaneamente! Portanto, esta é a primeira coisa com a qual os desenvolvedores têm que lidar: garantir que cada objeto tenha sua própria textura, que pode ser sombreada independentemente de todos os outros objetos.

O sombreamento do espaço de textura exigirá, portanto, que repensemos bastante a forma como os engines de game são construídos, mas uma vez que isso é feito, as possibilidades são infinitas – uma porta é aberta para maneiras totalmente novas de renderização, aproveitando os benefícios do Ray Tracing e da rasterização para gerar imagens fotorrealistas em altas taxas de frames e sem comprometer nada. O suporte de hardware da arquitetura Turing para sombreamento de espaço de textura torna essas abordagens híbridas finalmente práticas.

Reinventando os Gráficos para a Próxima Geração dos Games

As placas de vídeo NVIDIA GeForce RTX proporcionam a melhor experiência de games no PC. Com a nova arquitetura de placas de vídeo NVIDIA Turing e a revolucionária plataforma RTX, as placas de vídeo RTX reúnem Ray Tracing em tempo real, inteligência artificial e sombreamento programável. Essa é uma maneira totalmente nova de curtir os games.

Para conferir notícias sobre games que integram essas revolucionárias tecnologias GeForce RTX, fique ligado em GeForce.com.

Comentários