O que é multiamostragem?
A multiamostragem é uma técnica de antisserrilhamento que avalia a cobertura geométrica em várias posições dentro de cada pixel. Ela compartilha determinados cálculos de sombreamento entre amostras para reduzir o custo em relação à superamostragem completa.
Como funciona a multiamostragem
O antisserrilhamento por multiamostragem armazena várias amostras de cobertura para cada pixel rasterizado, geralmente executando o shader de fragmentos menos vezes do que a superamostragem completa. Nos limites dos polígonos, essas amostras registram quais partes do pixel estão cobertas, e uma operação de resolução as combina em um único valor de exibição. Pixels internos costumam se beneficiar pouco porque todas as amostras correspondem à mesma primitiva. Essa técnica faz parte da etapa de renderização e melhora principalmente as bordas geométricas, sem tratar todas as fontes de cintilação ou aliasing de texturas.
Informações essenciais
- Um buffer de quadros MSAA precisa de dados de cor com múltiplas amostras e, geralmente, de dados de profundidade e stencil também com múltiplas amostras, aumentando o tráfego de memória antes da resolução final.
- Folhagens com teste alfa e bordas geradas por shaders podem se beneficiar pouco, pois o MSAA comum acompanha a cobertura dos polígonos em vez de mudanças arbitrárias de transparência.
- A quantidade de amostras é limitada pela API gráfica, pelos formatos dos buffers anexados e pelo hardware; solicitar uma quantidade não compatível pode fazer a criação do buffer de quadros falhar.
Quando a multiamostragem é importante
Ative a multiamostragem quando as bordas dos polígonos precisarem de suavização sem calcular o sombreamento de cada amostra de forma independente. Uma quantidade maior de amostras reduz o serrilhado, mas consome mais memória, largura de banda e tempo de renderização.