supermuestreo


Supersampling o supersampling anti-aliasing ( SSAA ) es un método de anti-aliasing espacial , es decir, un método utilizado para eliminar el aliasing (bordes irregulares y pixelados, coloquialmente conocidos como " jaggies ") de imágenes renderizadas en juegos de computadora u otros programas de computadora que generan imágenes. . El alias se produce porque, a diferencia de los objetos del mundo real, que tienen curvas y líneas continuas y suaves, la pantalla de una computadora muestra al espectador una gran cantidad de cuadrados pequeños. estos píxelestodos tienen el mismo tamaño, y cada uno tiene un solo color. Una línea solo se puede mostrar como una colección de píxeles y, por lo tanto, aparece dentada a menos que sea perfectamente horizontal o vertical. El objetivo del supermuestreo es reducir este efecto. Las muestras de color se toman en varias instancias dentro del píxel (no solo en el centro como es normal) y se calcula un valor de color promedio. Esto se logra renderizando la imagen a una resolución mucho más alta que la que se muestra, luego reduciéndola al tamaño deseado, usando los píxeles adicionales para el cálculo. El resultado es una imagen reducida con transiciones más suaves de una línea de píxeles a otra a lo largo de los bordes de los objetos.

El aliasing se manifiesta en el caso de imágenes 2D como un patrón muaré y bordes pixelados, coloquialmente conocidos como " jaggies ". El conocimiento común del procesamiento de señales y el procesamiento de imágenes sugiere que para lograr la eliminación perfecta del aliasing , se requiere un muestreo espacial adecuado a la tasa de Nyquist (o superior) después de aplicar un filtro Anti-aliasing 2D . Como este enfoque requeriría una transformación de Fourier directa e inversa , se desarrollaron aproximaciones computacionalmente menos exigentes como el supermuestreo para evitar cambios de dominio al permanecer en el dominio espacial ("dominio de imagen").

El supermuestreo es computacionalmente costoso porque requiere mucho más memoria de tarjeta de video y ancho de banda de memoria , ya que la cantidad de búfer utilizada es varias veces mayor. [1] Una forma de evitar este problema es usar una técnica conocida como supermuestreo adaptativo , en la que solo se supermuestrean los píxeles en los bordes de los objetos.

Inicialmente, solo se toman unas pocas muestras dentro de cada píxel. Si estos valores son muy similares, solo estas muestras se utilizan para determinar el color. Si no, se utilizan más. El resultado de este método es que se calcula un mayor número de muestras solo cuando es necesario, mejorando así el rendimiento.

Al tomar muestras dentro de un píxel, las posiciones de las muestras deben determinarse de alguna manera. Aunque la cantidad de formas en que se puede hacer esto es infinita, hay algunas que se usan comúnmente. [1] [2]

El algoritmo más simple . El píxel se divide en varios subpíxeles y se toma una muestra del centro de cada uno. Es rápido y fácil de implementar. Aunque, debido a la naturaleza regular del muestreo, el alias aún puede ocurrir si se usa una cantidad baja de subpíxeles.


Cálculo del valor del color final
Comparación de una escena renderizada sin (lado izquierdo) y con anti-aliasing de supermuestreo aplicado (derecha). (No aplicar AA es análogo a una interpolación del vecino más cercano ).
Muestras de puntos generadas mediante muestreo de disco de Poisson y representación gráfica de la distancia mínima entre puntos