En gráficos por computadora , el búfer A , también conocido como búfer anti-alias , promediado por área o búfer de acumulación , es un mecanismo de superficie oculta general adecuado para computadoras de memoria virtual de escala media. Resuelve la visibilidad entre una colección arbitraria de objetos opacos, transparentes y que se intersecan. Al utilizar una ventana de Fourier fácil de calcular (filtro de caja), aumenta la resolución de imagen efectiva muchas veces sobre el búfer Z, con un aumento moderado en el costo. [1]
El método del buffer A es un descendiente del conocido buffer Z, que proporciona resultados de buena calidad en un tiempo moderado.
En los sistemas de síntesis de imágenes en 3D, siempre ha sido necesario encontrar un equilibrio entre la calidad y el coste de cálculo. El uso de un algoritmo de superficie visible con precisión total del objeto en cada píxel es costoso. El método de búfer A proporciona resultados de calidad moderada con un coste de cálculo moderado.
A-buffer ayuda a utilizar técnicas de visibilidad y admite todas las primitivas de modelado geométrico imaginables: polígonos, parches, cuadráticos, fractales, etc. También ayuda a gestionar la transparencia y las superficies que se cruzan (y las superficies que se cruzan transparentes).
El algoritmo de búfer A de Carpenter [1] resuelve este problema aproximando el muestreo de área de precisión de objeto por píxel de Catmull [2] con una operación de precisión de imagen por píxel realizada en una cuadrícula de subpíxeles. Primero se procesan los polígonos en orden de línea de escaneo recortándolos con cada píxel cuadrado que cubren. Esto da como resultado una lista de fragmentos de polígonos recortados correspondientes a cada píxel cuadrado. Cada fragmento tiene una máscara de 4 por 8 bits de las partes del píxel que cubre. [3]
La máscara de bits de un fragmento se calcula mediante la combinación de máscaras que representan cada uno de los bordes del fragmento. Cuando se han procesado todos los polígonos que intersecan un píxel, se obtiene el promedio ponderado por área de los colores de las superficies visibles del píxel seleccionando fragmentos en orden de profundidad y utilizando sus máscaras de bits para recortar las de los fragmentos más alejados.
Las máscaras de bits se pueden manipular de manera eficiente con operaciones booleanas . Por ejemplo, se pueden sumar dos máscaras de bits de fragmentos para determinar la superposición entre ellas. El algoritmo de búfer A guarda solo una pequeña cantidad de información adicional con cada fragmento. Por ejemplo, incluye la extensión z del fragmento, pero no información sobre qué parte del fragmento está asociada con estos valores z. Por lo tanto, el algoritmo debe hacer suposiciones sobre la geometría de subpíxeles en los casos en que las máscaras de bits de fragmentos se superponen en z.