Articulo de referencia

Amortiguador A

En gráficos por computadora , el búfer A , también conocido como búfer antialiasing , búfer de área promedio o búfer de acumulación , es un mecanismo general de superficie ocult...

En gráficos por computadora , el búfer A , también conocido como búfer antialiasing , búfer de área promedio o búfer de acumulación , es un mecanismo general de superficie oculta adecuado para computadoras con memoria virtual de escala media. Resuelve la visibilidad entre una colección arbitraria de objetos opacos, transparentes y que se intersecan. Mediante una ventana de Fourier (filtro de caja) de fácil cálculo, aumenta la resolución efectiva de la imagen muchas veces en comparación con el búfer Z, con un aumento moderado en el costo. [ 1 ]

El método del búfer A es descendiente del conocido búfer Z, que proporciona resultados de buena calidad en un tiempo moderado.

Usos

En los sistemas de síntesis de imágenes 3D, siempre ha sido necesario encontrar un equilibrio entre la calidad y el coste computacional. Utilizar un algoritmo de superficie visible con precisión de objeto completa en cada píxel resulta costoso. El método A-buffer proporciona resultados de calidad moderada con un coste computacional moderado.

A-buffer facilita el uso de técnicas de visibilidad y admite todas las primitivas geométricas imaginables: polígonos, parches, cuádricas, fractales, etc. También ayuda a gestionar la transparencia y las superficies que se intersecan (y las superficies que se intersecan de forma transparente). Los métodos de estilo A-buffer también se han utilizado para lograr una transparencia exacta e independiente del orden en las GPU, donde los fragmentos de un píxel se capturan en estructuras por píxel de longitud variable, comúnmente listas enlazadas, y luego se ordenan por profundidad y se componen en un paso posterior. [ 2 ] [ 3 ]

Estrategia

El algoritmo A-buffer de Carpenter [ 1 ] aborda este problema aproximando el muestreo de área de precisión de objeto por píxel de Catmull [ 4 ] con una operación de precisión de imagen por píxel realizada en una cuadrícula de subpíxeles. En la implementación REYES de Carpenter, los polígonos se generaron en un orden aproximado de línea de exploración, pero el orden de línea de exploración no era requerido por el propio A-buffer. [ 1 ] Los polígonos se procesan primero en orden de línea de exploración recortándolos a cada píxel cuadrado que cubren. Esto da como resultado una lista de fragmentos de polígonos recortados que corresponden a cada píxel cuadrado. En los métodos A-buffer, estos fragmentos se almacenan en listas por píxel de longitud variable en lugar de solo el fragmento visible más cercano, aunque la implementación original de Carpenter almacenaba un color resuelto directamente para un píxel simple completamente cubierto y usaba un puntero a una lista de fragmentos de adelante hacia atrás para un píxel complejo. [ 5 ] [ 1 ] Cada fragmento tiene una máscara de 4 por 8 bits de partes del píxel que cubre. [ 6 ]

La máscara de bits de un fragmento se calcula mediante la operación XOR de las máscaras que representan cada uno de los bordes del fragmento. Una vez procesados ​​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 los fragmentos ordenados por 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 eficientemente con operaciones booleanas . Por ejemplo, se pueden sumar dos máscaras de bits de fragmentos para determinar su superposición. El algoritmo A-buffer 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 los fragmentos se superponen en z.

Referencias

  1. 1 2 3 4 Carpenter, Loren (julio de 1984). "El búfer A, un método de superficie oculta con suavizado". Computer Graphics . 18 (3): 103– 108. CiteSeerX 10.1.1.210.5497 . doi : 10.1145/964965.808585 . 
  2. Vasilakis, Andreas A.; Papaioannou, Georgios; Fudos, Ioannis. "k+-buffer: Un marco de trabajo de búfer k eficiente, amigable con la memoria y dinámico" (PDF) . IEEE Transactions on Visualization and Computer Graphics .
  3. "Transparencia independiente del orden optimizada para la memoria con Dynamic Fragment Buffer" . ScienceDirect . Elsevier.
  4. Catmull, Edwin (agosto de 1978). "Un algoritmo de superficie oculta con suavizado de bordes" (PDF) . Computer Graphics . 12 (3): 6–11 . doi : 10.1145/965139.807360 . Archivado del original (PDF) el 4 de marzo de 2016. Consultado el 19 de junio de 2015 .
  5. Vasilakis, Andreas Alexandros; Vardis, Konstantinos; Papaioannou, Georgios (2020). "Un estudio sobre renderizado de múltiples fragmentos" . Foro de gráficos por computadora .
  6. Foley, James D .; Feiner, Steven K.; van Dam, Andries ; Hughes, John F. (1995). Computer Graphics: Principles and Practice in C (2.ª ed.). Addison-Wesley. ISBN  978-0-201-84840-3.