Recentemente, vi alguns jogos em 3D (por exemplo GTA IV
:) para usar algum tipo de pontilhamento ordenado para simular transparência / alfa.
Os polígonos não são transparentes como de costume, mas renderizam uma textura pontilhada que muda gradualmente da esquerda para a direita para simular a transparência:
O efeito não é desagradável, mas surpreendente de ver de início (vs mistura alfa tradicional)
Exceto pelo efeito estético visual que produz, há alguma razão para alguns jogos fazerem isso (melhor desempenho, economia de largura de banda ou qualquer outra coisa em que eu não pense)?
Pesquisei na web, mas não encontrei nada sobre essa técnica.
textures
rendering
transparency
alpha
tigrou
fonte
fonte
Respostas:
Essa é uma abordagem bastante comum à transparência em jogos que usam sombreamento adiado. A transparência adequada não funciona bem com sombreamento diferido, uma vez que apenas os dados de uma superfície (profundidade, vetor normal, cor etc.) podem ser armazenados em cada pixel, e a transparência adequada envolve várias superfícies sobrepostas em um pixel, cada uma exigindo independência iluminação.
Existem algumas maneiras pelas quais os mecanismos de jogo podem lidar com isso:
Pode-se também usar uma combinação dessas abordagens, por exemplo, sombreamento para janelas de vidro e pontilhado para transições de LOD.
Também vale a pena notar que alguns jogos usam pontilhado para sombras suaves. Esta é uma troca de desempenho; sombras mais agradáveis exigem mais amostras de textura no sombreador de pixels, o que leva mais tempo, mas você pode obter resultados com boa aparência usando menos amostras e deslocando suas posições aleatoriamente. O deslocamento aleatório produz o efeito pontilhado.
fonte
É uma simples troca de desempenho. A mistura alfa requer leitura do buffer de cores atual, enquanto esse tipo de pontilhamento é somente para gravação (ou somente para descarte, é claro).
É possível misturar essa técnica com a multisampling, que é chamada de alpha para cobertura .
fonte