O que é mosaico em computação gráfica


16

Nos jogos recentes, notei algo chamado Tessellation, Ativar a coisa destrói minha taxa de quadros.

Percebi que, quando ativado, parece com Anti-Aliasing.

Alguém pode me dar mais informações sobre o que exatamente a GPU faz.


2
Oh, querida, 2 respostas e nenhuma imagem gráfica de computador no seu melhor.
Joojaa

Respostas:


25

O mosaico é uma técnica que permite gerar primitivas (triângulos, linhas, pontos e outros) na placa gráfica. Especificamente, ele permite subdividir repetidamente a geometria atual em uma malha mais fina.

Isso permite que você carregue uma malha relativamente grossa na sua placa de vídeo, gere mais vértices e triângulos dinamicamente e depois tenha uma malha na tela que parecerá muito mais suave.

Exemplo de mosaico

Na maioria das vezes, esse mosaico é feito novamente em cada quadro único, e esse pode ser o motivo pelo qual a taxa de quadros cai quando você o ativa.

A pavimentação é feita em vários estágios, e APÓS o shader de vértice.

Estágios

Os termos para cada estágio variam com base na API. No DirectX, são o Hull Shader, o Hardware Tessellation e o Domain Shader. No OpenGL, eles são chamados de Tessellation Control Shader, Tesselation Primitive Generation e Tessellation Evaluation Shader.

O primeiro e o último estágio são programáveis, o mosaico real é feito pelo hardware em um estágio de função fixa.

No sombreador Controle de mosaico, você define o tipo e o número de subdivisões.

Em seguida, o mosaico de hardware divide a geometria de acordo com o Control Shader.

Por fim, o sombreador de avaliação de mosaico é chamado para cada vértice recém-gerado. Nesse sombreador, você define o tipo de primitivo que deseja gerar e como os vértices são espaçados e muitas outras coisas. Esse sombreador também pode ser usado para fazer todos os tipos de cálculos por vértice, assim como um sombreador de vértice. É garantido que será chamado pelo menos uma vez para cada vértice gerado.

Se você quiser fazer algum trabalho adicional nas primitivas, poderá adicionar um sombreador Geometry.


1
@ Nicol Obrigado. Eu editei a resposta em conformidade.
Dragonseel

7

Ativa 3 estágios no pipeline.

O primeiro é o sombreador de controle de mosaico (sombreador do casco no D3D), que analisa um conjunto de vértices e depois mostra como ele deve ser dividido em triângulos separados.

O segundo é um estágio de função fixa que irá gerar os triângulos solicitados.

O terceiro estágio, o sombreador de avaliação de mosaico (sombreador de domínio em D3D), que é executado por vértice gerado e o colocará no local correto com base nas coordenadas baricêntricas do vértice gerado.

Isso é usado para o nível de detalhe para gerar mais triângulos quando a malha está mais próxima da câmera.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.