A downsampling múltipla tem um benefício?

14

Então eu me deparei com este site e você pode ver estas linhas no primeiro e no segundo parágrafo:

Para um efeito simples, porém fácil, desenhe as partes brilhantes da cena (por exemplo, fontes de luz) em um FBO e reduza a amostragem usando a minificação GL_LINEAR várias vezes . Para a renderização final, basta combinar a cena original com os FBOs com amostra reduzida.

No exemplo a seguir, a cena original é 128 x 128 e é reduzida a amostra três vezes . Isso requer 4 objetos buffer de estrutura . A cena original é mostrada no canto superior esquerdo e a renderização final no canto superior direito.

Existe alguma razão para eu reduzir a amostra várias vezes (128 -> 64 -> 32 -> 16) em vez de reduzi-la uma vez (128 -> 16)?

Se você rolar mais para baixo, eles até a reduzirão como 9 vezes. (128 -> ... -> 16 -> 128 -> ... -> 16 -> e assim por diante). Por que não gosta (128 -> 16 -> 128 -> 16 -> e assim por diante)?

Greffin28
fonte
Abordagem verdadeiramente absurda. Basta desfocar o buffer e reduzir a amostra com GL_NEAREST.
Transistor09

Respostas:

23

Existem dois benefícios principais:

Primeiro, se você reduzir a amostra em mais de um fator de dois, alguns pixels na imagem original não terão impacto na imagem resultante. Usando GL_LINEAR, cada pixel de destino apenas amostrará no máximo 4 pixels da imagem de origem; os outros pixels simplesmente são descartados. Ao reduzir a amostragem por um fator de dois, você garante que cada pixel da imagem de origem tenha um efeito igual na próxima camada inativa.

Segundo, os algoritmos discutidos nesse site exigem todos os objetos buffer de estrutura; eles são todos necessários, mesmo que não haja uma boa razão para reduzir a amostragem dessa maneira. Você não pode pular as imagens de 64 x 64 ou 32 x 32, porque essas imagens são usadas como parte da construção da imagem de resultado desfocada gaussiana.

Por fim, se você ler o artigo, verá que ele não está defendendo a redução de amostragem de imagens 9 vezes; reduz a amostragem apenas três vezes e, em seguida, executa várias operações nessas imagens reduzidas a amostragem. As imagens que você está vendo estão apenas mostrando o estado dessas mesmas três imagens com redução de amostra após cada etapa do processo, não mostrando eventos separados de redução de amostra.

Trevor Powell
fonte
Ah, isso faz muito sentido para mim agora. Obrigado.
precisa saber é o seguinte
1
(Aliás, o efeito de bloom que eu uso em meus próprios jogos é baseado no método descrito na página vinculada. Pessoalmente, reduzo a amostra 5 vezes em vez de 3, pois começo de uma imagem inicial muito maior, mas ainda assim desejo um borrão amplo e agradável .)
Trevor Powell