Com taxas de preenchimento modernas e renderização diferida, o abate por oclusão ainda é relevante?

10

Por exemplo, embora seja a GPU top de linha atual, a GTX 980 tem uma taxa de preenchimento impressionante de 72,1 gigapixels / segundo, que com renderização de frente para frente e / ou verificações de buffer Z, parece quase ridiculamente grande, possivelmente até em resoluções de 4k. No que diz respeito à contagem de polígonos, as GPUs modernas podem executar dezenas a centenas de milhões de triângulos texturizados sem problemas, se você os agrupar e / ou instanciar adequadamente.

Com a renderização direta, a quantidade de fragmentos que os shaders executam pode se tornar rapidamente esmagadora, mas, com a renderização adiada, o custo geralmente é mais ou menos constante, dependendo da resolução, e há muito tempo passamos por um ponto em que a maioria das sombras ou efeitos de pós-processamento podem ser feitos em tempo real em 1080p.

De qualquer maneira, hoje em dia os fatores limitantes são as contagens de chamadas mais comuns e os custos de sombreamento, os quais são mantidos relativamente baixos pela renderização adiada adequada e por lotes de geometria, portanto, com isso em mente, está selecionando mais do que apenas backfaces e out-of- polígonos frustrum de algum benefício substancial? Os custos (tempo de CPU / GPU, tempo de programador) não superam os benefícios, na maioria das vezes?

Llamageddon
fonte
1080p é o novo pixel art.
21715 Jessy

Respostas:

9

Sim, o abate de oclusão ainda vale a pena.

No mínimo, uma chamada de desenho que você pulou devido à seleção é uma chamada de desenho que não precisa executar o sombreador de vértice. A contagem de triângulos aumenta tão rapidamente quanto as GPUs começam a suportar mais triângulos, por que não? Com arquiteturas unificadas, os sombreadores de vértices usam exatamente o mesmo hardware que os sombreadores de pixel, portanto, todos os vértices que você pula por causa do abate são mais tempo de computação para as coisas que você pode ver. Sem mencionar todas as outras coisas que você está pulando (processamento de chamada de empate da CPU e jogando o tris longe o suficiente pelo pipeline para que o rasterizador perceba que não precisa sombrear).

Houve uma ótima apresentação de dois estúdios da Ubisoft no SIGGRAPH 2015 sobre os pipelines de renderização acionados por GPU. Na superfície, trata-se de algumas das coisas que você mencionou: agrupar e instalar, reduzindo as contagens de chamadas em sorteio. Mas uma das principais vantagens que eles obtêm de um pipeline acionado por GPU é o descarte de oclusão incrivelmente refinado: descarte melhor do que você normalmente veria no nível de draw-call. Está tudo a serviço de se aproximar assintoticamente do objetivo: processar apenas o que você pode ver, o que significa que o que você pode ver parece melhor.

(Além disso: considere console, celular, VR e área de trabalho sem a maior e mais recente GPU que o dinheiro pode comprar. Mesmo que todos os seus tris desapareçam na brecha escancarada do seu topo de linha) GPU de linha, talvez você não seja o alvo principal.)

John Calsbeek
fonte
E quando os shaders de vértice são usados ​​para deformar malhas? (que eu suponho que é possível ... Eu sou um novato a gráficos de programação)
Llamageddon
Além disso, você tem algum artigo sobre o abate de oclusão apoiado por GPU? É um recurso interno das GPUs modernas ou ..?
Llamageddon #
@Llamageddon Nas arquiteturas modernas de GPU, o sombreador de vértice é sempre executado e é perfeitamente capaz de deformar malhas - isso apenas transforma vértices de maneira não rígida. Um sombreador de vértice mais caro que faz mais trabalho é, obviamente, mais trabalho que será ignorado pelo descarte. Eu não tenho nenhum trabalho sobre seleção de oclusão de GPU, a academia parece não estar muito encantada com isso. Não é um recurso interno das GPUs, apenas um uso criativo da computação.
John Calsbeek
Ah, eu quis dizer que tal selecionar malhas que serão deformadas? Você os seleciona depois de executar os shaders de vértice? Isso parece complicado.
Llamageddon #
@Llamageddon Geralmente, você apenas os escolhe contra um volume conservador. Ou vários volumes menores que você deforma com a malha (por exemplo, ao usar a capa, você pode anexar volumes de seleção às juntas).
John Calsbeek
2

Depende do estilo do jogo, quanto é necessário selecionar. Por exemplo, atiradores em primeira pessoa se beneficiam muito com isso, tendo muitas coisas frustradas a qualquer momento, enquanto uma visão aérea do RTS não acontece, já que você está efetivamente vendo um avião com coisas nesse avião. Mesmo em um RTS, ainda é útil fazer uma "renderização somente em profundidade" para eliminar o excesso.

Alan Wolfe
fonte