Raxvan está completamente certo de que as técnicas "tradicionais" de anti-aliasing funcionarão no raytracing, incluindo aquelas que usam informações como profundidade para executar o antialiasing. Você pode até fazer anti-aliasing temporal no traçado de raios, por exemplo.
Julien expandiu o segundo item de Raxvan, que era uma explicação da super amostragem, e mostrou como você realmente faria isso, mencionando também que você pode aleatoriamente a localização das amostras dentro do pixel, mas então você está inserindo o país de processamento de sinal, que é muito mais profundo, e definitivamente é!
NN
Se você fizer isso, ainda poderá obter o aliasing. É melhor do que NÃO fazê-lo, porque você está aumentando sua taxa de amostragem; portanto, será capaz de lidar com dados de frequência mais alta (também conhecidos como detalhes menores), mas ainda pode causar aliases.
N
Quando você usa apenas números aleatórios "regulares" como os obtidos com rand () ou std :: uniform_int_distribution, isso é chamado de "ruído branco" porque contém todas as frequências, como a luz branca é composta por todas as outras cores (frequências ) de luz.
O uso de ruído branco para aleatorizar as amostras em um pixel tem o problema de que algumas vezes suas amostras se agrupam. Por exemplo, se você calcula a média de 100 amostras em um pixel, mas TODAS elas acabam no canto superior esquerdo do pixel, você não obtém QUALQUER informação sobre as outras partes do pixel, portanto, a cor final do pixel resultante faltam informações sobre qual cor deve ser.
Uma abordagem melhor é usar algo chamado ruído azul, que contém apenas componentes de alta frequência (como a luz azul é a luz de alta frequência).
O benefício do ruído azul é que você obtém uma cobertura uniforme sobre o pixel, como em uma grade de amostragem uniforme, mas ainda obtém alguma aleatoriedade, que transforma o aliasing em ruído e oferece uma imagem com melhor aparência.
Infelizmente, o ruído azul pode ser muito caro para calcular, e os melhores métodos parecem todos patenteados (que diabos ?!), mas uma maneira de fazer isso, inventada pela pixar (e patenteada também, eu acho, mas não 100% certa) é criar uma grade uniforme de pontos de amostra e, em seguida, deslocar aleatoriamente cada ponto de amostra em uma pequena quantidade - como uma quantidade aleatória entre mais ou menos metade da largura e altura da grade de amostragem. Dessa forma, você obtém uma espécie de amostragem de ruído azul por muito barato.
Observe que esta é uma forma de amostragem estratificada e a amostragem de disco de poisson também é uma forma de gerar ruído azul:
https://www.jasondavies.com/poisson-disc/
Se você estiver interessado em ir mais fundo, provavelmente também desejará conferir esta pergunta e responder!
Qual é o raciocínio fundamental para o anti-aliasing usando várias amostras aleatórias em um pixel?
Por fim, esse material está começando a se desviar para o domínio do rastreamento de caminhos de monte carlo, que é o método comum para fazer o rastreamento de raios fotorrealista. se você estiver interessado em aprender mais sobre isso, leia isso!
http://blog.demofox.org/2016/09/21/path-tracing-getting-started-with-diffuse-and-emissive/