Pela leitura on-line, entendi a ideia básica de como funciona o Supersampling Anti-Aliasing, ele renderiza a cena em uma resolução mais alta que a tela do usuário, usa os pixels extras para calcular uma média e depois reduzi-la.
Não entendo muito bem como isso funciona na prática. Por exemplo, se houver um pixel vermelho de uma parede próximo a um pixel azul de um céu, quando a cena for renderizada x2 SSAA, o pixel vermelho não será agora apenas quatro pixels vermelhos e o mesmo com o pixel do céu azul, como isso ajuda no cálculo de uma média.
Os quatro novos pixels vermelhos estão sobrepostos à imagem original, dessa forma você obteria uma mistura de pixels vermelhos e azuis e seria capaz de calcular uma média para ajudar a suavizar a transição entre a parede e o céu?
Qualquer ajuda seria apreciada.
Responder1
Isso ajuda muito. No seu exemplo original:
... Vermelho Vermelho Vermelho Azul Azul Azul ...
A fronteira entre vermelho e azul parece uma escada
Na imagem sobreamostrada
... Vermelho Vermelho Vermelho Vermelho Azul Azul Azul ...
À medida que reduzimos a resolução
... Vermelho] [Vermelho Vermelho] [Vermelho Azul] [Azul Azul] [Azul ...
Agora temos um pixel que é a média do vermelho e do azul, desfocando a fronteira entre as regiões vermelha e azul.
Se você imaginar um limite diagonal entre duas regiões, vermelha e azul, a sobreamostragem inserirá pixels intermediários nas bordas dos degraus da escada, já que muitas das caixas 2x2 necessariamente incluem pixels vermelhos e azuis nelas.
Responder2
Ok, bem, vou tentar explicar, porque já apliquei métodos como este antes ao trabalhar com fotos, para aplicar alguns dos algoritmos de "suavização" a fotos ou fotos de baixa resolução, sem obter uma suavização profunda muito ampla.
é algo assim.
Aqui estão seus pixels na resolução normal que você visualizaria. Precisa urgentemente de anti-aliasing ou suavização de irregularidades.
Por um lado, aqui aumentamos a imagem para 4X e depois aplicamos o mesmo algoritmo de anti-aliasing
É importante notar que, como um computador estúpido, não posso simplesmente dobrar o preto para o branco (alterando a quantidade de brancura), mas também tenho que dobrar o branco para o preto (equilibrando a equação :-). Estou aplicando cegamente uma matriz matemática onde me disseram para aplicá-la. Embora os algoritmos da placa de vídeo sejam muito sofisticados e na verdade não sejam tão cegos assim.
Exemplo observável de equilíbrio em jogos: você não gostaria que sua cerca desaparecesse no céu e não quer que seu céu se tornasse uma cerca, portanto, quaisquer ajustes devem ser aplicados tanto aos pixels do céu quanto aos pixels da cerca de maneira mais igual. Também é um exemplo de como as placas de vídeo e os motores de jogo perturbam esse equilíbrio para obter a melhor imagem com esse tipo de detalhes difíceis.
Em algum momento, tudo isso terá que voltar para a resolução da tela, onde será a resolução mais baixa, e depois de ter uma grande variedade de itens para ajustar, esse monte extra de pixels agora será perfeitamente mesclado em menos pixels.
(bem, não era a cor perfeita para aquela mistura, mas não fiz as contas)
E como você pode ver, parece horrível novamente na resolução da tela.
No lado de baixa resolução, temos essa vasta área afetada/alterada à medida que dobramos todos esses pixels um em direção ao outro (tanto o preto quanto o branco) e temos uma enorme faixa de suavização porque estávamos trabalhando apenas em uma resolução baixa.
No lado de alta resolução, obtivemos um conjunto de pixels de equilíbrio perfeito misturando 4X pixels, o que cria uma área de suavização menor. então o lado de alta resolução encontra os pixels que suavizariam tudo muito bem, mas não deixam uma grande bagunça desfocada.
Porque (novamente) temos que dobrar muito mais pixels, para manter o equilíbrio da mistura de um com o outro. Se aumentarmos a escala primeiro, podemos criar essa mistura de flexão em uma escala menor, ainda assim manter o equilíbrio de dobrar um para o outro , e o resultado final são pixels menos afetados, a mesma ocultação irregular.
Quando você compara os 2 métodos lado a lado usando jogos, a diferença que é alcançada com o que parece ser muito trabalho extra não é tão grande. A mesma coisa quando estou processando fotos que serão usadas em resolução mais baixa, é um esforço extra para mim e para a máquina, e os resultados são um pouco melhores.