O que é a tecnologia de mesh shaders?
Por Felipe Vidal • Editado por Jones Oliveira |
Os mesh shaders (sombreadores em malha, em tradução literal) são um conjunto de instruções para o processamento de geometria em modelos e aplicações 3D. Esse tipo de tecnologia foi introduzida em 2018 para substituir os tradicionais vertex shaders e outros tipos de sombreadores, mas só agora ganhou mais destaque devido a suas capacidades de flexibilidade.
Esse recurso nunca teve tanto em evidência, mas o lançamento de Alan Wake 2 trouxe a tecnologia à tona. Um dos principais motivos foi o requisito de placas de vídeos recentes para rodar o game. Embora modelos mais antigos, como as GTX 1000 e Radeon RX 5000 ainda consigam rodar a aplicação, o desempenho é extremamente limitado.
O que são shaders?
Antes de entrar na discussão sobre os mesh shaders, é muito importante entender o conceito inicial de shaders. O mundo dos videogames como vemos, cheios de efeitos, texturas e cores exuberantes, é apenas uma parte no desenvolvimento do projeto. Na verdade, o esqueleto de tudo é feito a partir de milhares e milhares de polígonos, principalmente triângulos.
No passado, devido à limitação tecnológica, os games possuíam uma forma bem quadrada e menos convidativa. Hoje, por conta do avanço na computação, é possível criar modelos 3D muito parecidos com a vida real. Para isso, os desenvolvedores usam milhões de polígonos para criar os objetos e as cenas. A quantidade dessas estruturas é tão grande e seu tamanho é tão pequeno que a forma final é suave e não bruta, como no passado.
Os shaders são um conjunto de instruções enviadas para a placa de vídeo durante o processo de renderização antes que a imagem final apareça na tela. Em outras palavras, os shaders são responsáveis por grande parte dos efeitos vistos em um game, como a movimentação e o reflexo solar na água, a grama que se mexe com o vento ou a iluminação de uma lâmpada sob o chão.
Vertex shaders
O formato de shader mais utilizado pela indústria é o vertex shader. Como grande parte dos polígonos são triângulos, os vertex shaders trabalham nos vértices desses polígonos. Ao atuarem nos vértices, esses sombreadores permitem mudar a posição dessas estruturas, a textura e até mesmo a cor.
No entanto, os vertex shaders são limitados. Eles podem apenas gerenciar vértices existentes, mas não podem criar novos. Logo, tudo precisa ser feito na pipeline (a linha de instruções, como uma "fila" até que todos os dados cheguem à GPU) antes de ser propriamente renderizado e mostrado no monitor. Isso cria empecilhos técnicos aos desenvolvedores e torna a produção mais complexa.
Para contornar isso, a indústria criou outros tipos de sombreadores, como os geometry/domain/hull e tesselations shaders. Porém, esses recursos não conquistaram o melhor resultado, sendo complicados de trabalhar e oferecendo uma performance duvidosa.
Os mesh shaders
Foi somente em 2018 que a NVIDIA introduziu os mesh shaders nas placas de vídeo com arquitetura Turing - as GeForce RTX. Ainda assim, essa tecnologia era embrionária demais naquela época. Somente em 2020 os sombreadores de malha ganharam suporte ao DirectX 12 Ultimate. Logo, essa é uma daquelas tecnologias ascendentes que a indústria ainda está entendendo como funciona em aplicações práticas.
O grande destaque dos mesh shaders é a flexibilidade que ele pode dar no processo de desenvolvimento. Esse recurso incorpora conceitos dos vertex e geometry shaders em um único sombreador, simplificando a pipeline de renderização antes de formar a imagem final.
Diferente do vertex, os mesh shaders são capazes de criar novos vértices e utilizam um sistema de instruções cooperativa, tornando toda a cadeia da pipeline menos rígida. Esse recurso atua com o task shader (sombreador de tarefas), responsável por criar grupos de trabalho para emitir subgrupos de mesh shaders.
Como funcionam os mesh shaders na prática?
Mesh shaders e shaders não são o assunto mais fácil para explicar. Aliás, o desenvolvimento de games fica cada vez mais complexo ano após ano. Em resumo, os sombreadores em malha são bons para aplicações 3D complexas, como jogos, pois "facilitam" o trabalho dos desenvolvedores e trazem mais performance ao jogador, além de proporcionar uma qualidade gráfica superior.
Por que os mesh shaders são pouco usados?
Se os mesh shaders são tão melhores que outros tipos de shaders, por quais motivos essa tecnologia não vem sendo usada desde antes ou em mais jogos? A resposta é relativamente simples: hardware e consoles.
Só foi a partir de 2018, do lado da NVIDIA, que os mesh shaders foram introduzidos em placas de vídeo para usuários domésticos. Do lado da AMD, isso só aconteceu mesmo em 2020 com as Radeon RX 6000. Nos consoles, somente o PS5 e os Xbox Series X e Series S têm suporte aos sombreadores em malha.
Se considerarmos que a introdução dos mesh shaders só começou em meados 2018 (e grande parte do mercado não comprou essas placas no mesmo ano) e o tempo de desenvolvimento de um game AAA dura, em média, cinco ou seis anos, a pergunta desse tópico já está respondida. Não faria sentido para a indústria de games investir em uma tecnologia tão nova se não haveria hardware suficiente para poder usufruí-la.
O futuro dos shaders
É por isso que Alan Wake 2 dá um passo distante ao futuro. Embora o game limite uma base gigantesca de jogadores com GPUs antigas, a Remedy Enterteinment também pode desempenhar um papel importante na consolidação dos mesh shaders em cada vez mais títulos nos próximos anos.
Nesse sentido, Alan Wake 2 também usa técnicas de Ray Tracing e Path Tracing para iluminar as cenas. Esse conjunto de tecnologias torna o game um verdadeiro desafio para grande parte dos PCs, logo os mesh shaders não são exatamente um vilão para os computadores.
Por fim, os sombreadores em malha desempenham a importante função de entregar mais qualidade visual para os games, além de gerar performance adicional que um sombreador em vértice, por exemplo, não entregaria. Isso, é claro, chegou a um preço alto para jogadores com GPUs antigas.
Se esse caminho vai ser bom ou ruim para a indústria e os jogadores, só o futuro irá dizer. Todavia, a qualidade gráfica demonstrada em Alan Wake 2 pavimenta um percurso empolgante com os mesh shaders.
Com informações de: NVIDIA, PC Gamer, Khronos Org e SIGGRAPH