Nos gráficos, é comum coletar várias amostras dentro dos limites de um pixel e combiná-las (geralmente apenas uma média) para obter uma cor final de pixel de amostra. Isso tem o efeito de neutralizar uma imagem.
Por um lado, isso faz sentido para mim, porque o que você está efetivamente fazendo é integrar a cor do pixel na área que o pixel representa. Nessa linha de raciocínio, a média de amostras "aleatórias" parece ser a configuração ideal para a integração monte carlo. ("aleatório" pode ser estratificado, baseado em ruído azul, sequências de baixa discrepância etc.)
Por outro lado, isso parece errado (ou pelo menos não tão correto quanto poderia ser) do ponto de vista do processamento de sinal digital. Desse ponto de vista, parece que estamos coletando muitas amostras e diminuindo a amostragem usando um filtro de caixa (box blur) para obter o valor final do pixel. Sob essa luz, parece que o ideal é usar filtragem sinc em vez de calcular a média das amostras. Pude ver que o filtro de caixa é uma aproximação mais barata ao pensamento sincero nesse sentido.
Isso me deixa um pouco confuso. A ideia principal de integrar a área de pixels e a média está correta? Ou é que estamos diminuindo a amostragem e devemos usar sinc, mas estamos usando um filtro de caixa porque é rápido?
Ou é algo totalmente diferente?
Um pouco relacionado: Anti-aliasing / Filtering em Ray Tracing
fonte
Respostas:
Do ponto de vista do processamento de sinal, você está amostrando um sinal de domínio contínuo e precisa filtrá-lo para se livrar de frequências além do limite de Nyquist. É essa filtragem que leva à integração sobre a área de pixels - ou, mais geralmente, à integração com o suporte do seu kernel antialiasing (que não precisa ser uma caixa).
Considere a sua função de renderização que utiliza um ponto de amostra no espaço da tela e retorna a cor encontrada nesse ponto. (Vamos ignorar qualquer problema de amostragem aleatória no momento e supor que ela retorne uma cor renderizada "perfeita" para esse ponto específico.) Essa função define efetivamente um sinal de domínio contínuo 2D. Ou, em outras palavras, define uma imagem de resolução infinita , pois nada impede que essa função tenha recursos em escalas arbitrariamente pequenas. Em termos de domínio da frequência: a função não é limitada por banda; pode incluir componentes de frequências espaciais arbitrariamente altas.x , y
Agora você deseja convertê-lo em um número finito de pixels. Assim como a digitalização de um sinal de áudio, quando você o amostrar, você obterá o alias, a menos que elimine primeiro as frequências além do limite de Nyquist imposto pela taxa de amostragem. Em outras palavras, você precisa se livrar de recursos menores que a grade de pixels. Para fazer isso, você aplica um filtro passa-baixo. O filtro passa-baixas ideal é a função sinc, mas, por várias razões de praticidade, usamos outros filtros (que não eliminam perfeitamente as frequências além do limite de Nyquist, mas pelo menos as atenuam).
fonte
Você está de fato fazendo as duas coisas. Você está integrando a área e, como o resultado ainda é de amostras discretas, você está reconstruindo o sinal para que ele funcione continuamente. Portanto, a filtragem de ordem superior. (O olho humano também é um amostrador discreto, por isso também reconstrói o sinal)
Levei um tempo considerável para aceitar essa explicação. O que me ajudou foi um artigo de Tony Apodaca intitulado The Lore of TDs .
fonte