GeForce

DirectX 11 Tessellation

 
 

Tesselação no DirectX 11 —o que é e qual sua importância

Com a recente agitação causada com o lançamento do DirectX 11, você provavelmente já deve ter ouvido bastante sobre um dos seus maiores novos recursos: a tesselação. O conceito da tesselação é o seguinte: você pega um polígono e o divide em partes menores. Mas o que há de tão especial nisso? E qual o benefício disso nos jogos? Neste artigo, explicaremos por que a tesselação está gerando mudanças profundas nos gráficos 3D do computador, e como as GPUs NVIDIA® GeForce® GTX Série 400 oferecem performance de tesselação nunca vista.

Em sua forma mais básica, a tesselação é um método que quebra polígonos em peças mais finas. Por exemplo, se você cortar um quadrado através de sua diagonal, você acaba de "tesselar" esse quadrado em dois triângulos. Sozinha, a tesselação não melhora tanto o realismo. Por exemplo, em um jogo, não importa se um quadrado é renderizado como dois triângulos ou dois mil triângulos—a tesselação só melhora o realismo se os novos triângulos forem usados para apresentar novas informações.

Triangle Mapping Displacement Mapping
Quando um mapa de deslocamento (à esquerda) é aplicado a uma superfície lisa, temos como resultado uma superfície (à direita) que expressa as informações de altura codificadas no mapa de deslocamento.

A forma mais simples e popular de colocar os novos triângulos em uso é através de uma técnica chamada 'mapeamento de deslocamento'. Um mapa de deslocamento é uma textura que armazena informações de altura. Quando aplicado a uma superfície, ele permite que os vértices na superfície sejam deslocados para cima ou para baixo com base nas informações de altura. Por exemplo, um artista gráfico pode pegar uma placa de mármore e deslocar os vértices para formar um entalhe. Outra técnica popular é aplicar mapas de descolamento em terrenos para esculpir crateras, canhões e picos.

Como a tesselação, o mapeamento de descolamento já existe há bastante tempo, no entanto até recentemente, ele nunca foi muito difundido. O motivo é que para que o mapeamento de descolamento seja eficaz, a superfície deve ser constituída de um grande número de vértices. Tome como exemplo o entalhe em mármore: se o bloco de mármore fosse constituído de oito vértices, nenhuma quantidade de descolamento relativo entre eles poderia produzir o relevo de um dragão. Um relevo detalhado só pode ser formado se existirem vértices suficientes na malha base (base mesh) para esculpir a nova forma. Em essência—o mapeamento de deslocamento precisa da tesselação e vice-versa.

Com o DirectX 11, a tesselação e o mapeamento de descolamento finalmente se unirão de forma satisfatória, e os desenvolvedores já estão aproveitando essa união. Jogos populares, como Alien vs. Predator e Metro 2033 usam a tesselação para criar modelos com uma aparência mais suave, e desenvolvedores da Valve e da id Software têm feito trabalhos promissores com a utilização dessas técnicas em seus personagens de jogos existentes.

Coarse Model
Após um modelo grosseiro (à esquerda) passar pela tesselação, um modelo suave é produzido. Quando o mapeamento de deslocamento é aplicado (à direita), os personagens adquirem um realismo semelhante ao de filmes. © Kenneth Scott, id Software 2008

Levando em conta que o pipeline de tesselação é programável, ele pode ser usado para solucionar um grande número de problemas gráficos. Vejamos quatro exemplos.

Mapeamento perfeito de saliências

Model Comparision

Em seu uso mais básico, o mapeamento de deslocamento pode ser usado como uma substituição direta para técnicas existentes de mapeamento de saliências. Técnicas atuais, como o mapeamento normal, criam a ilusão de superfícies salientes através de melhor sombreamento de pixels. Todas essas técnicas funcionam apenas em casos específicos, e são apenas parcialmente convincentes. Tome como exemplo o mapeamento de oclusão de paralaxe, um forma muito avançada de mapeamento de saliências. Embora produza a ilusão de sobreposição da geometria, ele funciona apenas em superfícies lisas e somente no interior do objeto (veja imagem acima). O mapeamento de deslocamento verdadeiro não enfrenta esses problemas e produz resultados precisos a partir de todos os ângulos de visualização.

Personagens mais suaves

Smoothing Character
Os Triângulos PN permitem a suavização automática de personagens sem a manipulação do artista. Tanto o realismo geométrico quanto aquele relacionado à iluminação são aperfeiçoados.

Os algoritmos de refinamento são outra parceira natural da tesselação. O algoritmo de refinamento utiliza um modelo grosseiro e, com o auxílio da tesselação, cria um modelo com aparência mais suave. Um exemplo popular são os Triângulos de Ponto Normal (PN-Triangles) (também conhecidos como N-patches). O algoritmo de Triângulos PN converte modelos de baixa resolução em superfícies curvadas que são, em seguida, redesenhadas como uma malha de triângulos precisamente tesselada. Muitas das imperfeições visuais que vemos nos jogos atuais, como articulações de personagens em formato cúbico, rodas de carros com aparência poligonal e recursos faciais grosseiros, podem ser eliminadas com a ajuda de tais algoritmos. Os Triângulos PN, por exemplo, são usados em Stalker: Call of Pripyat para produzir personagens com aparência mais suave e real.

Nível perfeito de detalhe

Em jogos com ambientes abertos e amplos, você já deve ter notado que objetos distantes normalmente aparecem e desaparecem ao mesmo tempo. Isso se deve ao mecanismo do jogo que se altera entre diferentes níveis de detalhe, ou LOD, para manter a carga de trabalho geométrica sob controle. Até este ponto, não existia uma maneira fácil de variar continuamente o nível de detalhe, visto que isso exigiria a permanência de várias versões do mesmo modelo ou ambiente. A tesselação dinâmica soluciona esse problema ao variar o nível de detalhe dinamicamente. Por exemplo, quando uma construção distante é avistada, ela pode ser renderizada com apenas três triângulos. À medida que você se aproxima, suas características notáveis surgem e triângulos adicionais são usados para destacar os detalhes, como janelas e telhado. Quando você finalmente alcança a porta, milhares de triângulos são utilizados para renderizar somente a maçaneta antiga, onde cada marca é esculpida meticulosamente com o mapeamento de deslocamento. Com a tesselação dinâmica, o aparecimento e consequente desaparecimento de objetos não ocorrem mais, e os ambientes de jogos podem dimensionar os detalhes geométricos de modo quase ilimitado.

Trabalho artístico escalável

Para os desenvolvedores, a tesselação aumenta tremendamente a eficiência de seu pipeline de criação de conteúdos. Ao descrever sua motivação para usar a tesselação, Jason Mitchell da Valve diz: “Estamos interessados na capacidade de gerar ativos, que nos permitem tanto aumentar como reduzir a escala. Isto é, queremos criar um modelo uma vez só e conseguir aumentar a sua escala a uma qualidade semelhante àquela de filmes… De modo oposto, também queremos conseguir diminuir naturalmente a escala da qualidade de um ativo para atender às necessidades da renderização em tempo real em um determinado sistema”. A capacidade de criar um modelo uma só vez e usá-lo em várias plataformas significa menos tempo gasto com desenvolvimento, e no caso de jogadores de PC, é o mesmo que obter a melhor qualidade de imagem possível de sua GPU.

Como as GPUs GeForce GTX 400 lidam com a tesselação

Os designs tradicionais de GPU utilizam um único mecanismo de geometria para executar a tesselação. Essa abordagem é parecida com os designs de GPU anteriores que usavam um único pipeline de pixels para executar o sombreamento de pixels. Com base no modo como os pipelines de pixels se desenvolveram de uma unidade única para várias unidades paralelas e como isso dominou o realismo 3D, nós projetamos nossa arquitetura de tesselação de forma a corresponder com aquela do início.

As GPUs GeForce GTX 400 são criadas com até quinze unidades de tesselação, cada qual com hardware dedicado para vertex fetch, tesselação e transformações coordenadas. Elas operam com quatro mecanismos de rastreio paralelo que transformam triângulos recentemente tesselados em um fluxo fino de pixels para sombreamento. O resultado é uma performance de tesselação nunca vista—mais de 1,6 bilhões de triângulos por segundo em uma performance constante. Em comparação ao mais rápido produto da concorrência, a GeForce GTX 480 é até 7,8 vezes mais rápida, conforme medição feita pelo site independente Bjorn3D.

Conclusão

Após muitos anos de tentativas e erros, a tesselação finalmente se tornou realidade no ambiente de PC. Jogos impressionantes, como o Metro 2033, já demonstram o potencial da tesselação. Com o tempo, a tesselação se tornará tão importante e indispensável quanto o sombreamento de pixels. Consciente de sua importância, a NVIDIA deu partida no processo ao criar antecipadamente uma arquitetura de tesselação paralela. O resultado é a família de GPUs GeForce GTX 400—um verdadeiro avanço no realismo geométrico e na performance de tesselação.



 
 
TwitterFacebookLinkedInGoogle+Reddit