¿Qué causa el aliasing?

47

Siempre escucho sobre alias y anti-aliasing y sé cómo se ve, pero lo que no entiendo es qué lo causa. ¿Es un fenómeno físico? O uno numérico?

Si ayuda a explicar, tengo algunos conocimientos de programación, pero no en videojuegos o gráficos.

Kruncho
fuente

Respuestas:

60

¿Es un fenómeno físico? o numérico?

Esta pregunta me implica que en realidad no sabes lo que significa aliasing / anti-aliasing. Quiero decir, dices que "sabes cómo se ve", pero si realmente supieras lo que significan los términos, probablemente te darás cuenta de que tu pregunta no tiene sentido. El alias es un efecto secundario de cómo se representan los gráficos de computadora, y los gráficos de computadora son, por definición, más que fenómenos físicos.

"Aliasing" solo se refiere al aspecto de la escalera en las líneas anguladas porque los gráficos de computadora en realidad están compuestos de muchos cuadrados pequeños en una cuadrícula. Aquí hay una imagen para ilustrar de lo que estoy hablando: ingrese la descripción de la imagen aquí

Este es un problema cada vez que renderiza los píxeles de una imagen, ya sea que esté dibujando a mano alzada o escribiendo un algoritmo para calcular los píxeles de un polígono 3D. Es solo un efecto secundario del hecho de que la imagen es una cuadrícula cuadrada de píxeles. "Anti-aliasing" es cuando ocultas el aspecto de la escalera mezclando los colores a lo largo de los píxeles del borde.

jhocking
fuente
18
@ Kruncho ¡Nunca te arrepientas de estar equivocado, a menos que estés enseñando a otros tus errores! Solo discúlpese cuando no intente comprender o no esté dispuesto a ser corregido. Su error realmente ayudó a aclarar qué es exactamente lo que estaba pidiendo saber: ('¿cómo' ocurre el alias en los gráficos de computadora?). Por cierto, si bien esta respuesta es mejor para ilustrar qué, cómo y por qué, es una cuestión numérica. Se podría considerar como una limitación de tratar de representar números fraccionarios usando solo enteros enteros. No hay medios píxeles, etc. Así que terminas con imágenes de aspecto bloqueado.
Fuzzy Logic
55
@jhocking Una corrección pedante: la cuadratura de los píxeles no es realmente relevante. El alias ocurriría de la misma manera si cada píxel fuera puntos redondos del mismo tamaño.
Fuzzy Logic
10
@jhocking "Cuadrícula cuadrada" tampoco lo cortará. Aún obtendría alias (se ve un poco diferente) si sus píxeles se organizaran en una cuadrícula hexagonal. Lo único que importa es que los píxeles están dispuestos en un patrón regular y son de tamaño distinto de cero, y ambas condiciones son ciertas para cualquier tecnología de visualización concebible.
Mike Scott
3
Te estás quedando atrapado en la palabra "cuadrado" cuando eso es solo un descriptor para "cuadrícula".
jhocking
11
@MikeScott: incluso con píxeles dispuestos de forma irregular, se mostrará el alias. :))) La condición importante para que aparezca el alias es que la frecuencia máxima de la señal original (la imagen original) es superior a 2 * (1 / T) (donde T es el intervalo entre las muestras = la distancia entre los píxeles ) --- Cuando la imagen original tiene bordes afilados (como la línea negra sobre un fondo blanco), su frecuencia máxima es infinita.
pabouk
121

La respuesta aceptada no es estrictamente correcta, aunque aborda el uso más común en gráficos de computadora. El alias es un concepto fundamental en el procesamiento de señales y su teoría matemática es anterior a las pantallas de computadora. Tampoco es realmente cierto que "es un efecto secundario del hecho de que los píxeles son cuadrados". El alias existe cada vez que muestrea discretamente una señal a una velocidad inferior a la velocidad de Nyquist para esa señal y afecta el audio digital, así como las imágenes y muchos otros tipos de señales muestreadas discretamente. El alias en los gráficos de computadora es un efecto secundario del muestreo discreto, no de la forma de los píxeles.

El suavizado en los gráficos de computadora es un tema profundo y complejo y tiene mucho más que solo suavizar los bordes. Una vez más, existe una gran cantidad de teoría subyacente del procesamiento de señales y es un área activa de investigación en gráficos de computadora sobre cómo suavizar eficazmente, no solo para bordes sino también para alias temporal, para alias cuando se reconstruye un BRDF en sombreadores de píxeles, para sombra bordes y en muchas otras áreas. El mapeo MIP de texturas en gráficos 3D es una técnica anti-aliasing bien establecida que está abordando un problema importante además del anti-aliasing de bordes, por ejemplo.

Es realmente un fenómeno matemático más que físico, pero aparece en la ingeniería en muchas áreas además de los gráficos por computadora. Realmente tampoco lo describiría como un fenómeno numérico: es el resultado de un muestreo discreto, no de la representación discreta de valores numéricos en una computadora, aunque eso también puede causar efectos de alias. Comprender los fundamentos del procesamiento de señales es una buena base para comprender cómo se manifiesta el alias en los gráficos de computadora y para comprender cómo reducirlo.

Mattnewport
fuente
66
Por un lado, hey, aprendí algo nuevo hoy, nunca escuché sobre alias en ningún contexto que no sea bordes gráficos. Dicho esto, este detalle técnico adicional no parece contradecir la explicación "es un efecto secundario del hecho de que los píxeles son cuadrados". El "muestreo discreto" es solo una forma elegante de decir "el borde es en realidad un montón de píxeles discretos, no una línea continua".
jhocking
15
+1 por corrección técnica. Aunque es un poco demasiado técnico dado el nivel de la pregunta formulada y en realidad no aborda la pregunta implícita. La respuesta aceptada es más adecuada para la intención de la pregunta. Sin embargo, aprendí algo nuevo, así que gracias por la elaboración :)
Fuzzy Logic
66
@jhocking lo siento, nosotros los programadores de gráficos tendemos a preocuparnos un poco por el alias :) Creo que su respuesta responde a la pregunta, pero si alguien quiere profundizar en los gráficos por computadora, creo que es útil entender que el alias es un fenómeno matemático con un Un montón de teoría detrás de esto. Todos esos detalles técnicos son útiles para el objetivo final de hacer fotos bonitas en nuestros juegos :)
mattnewport
44
@jhocking El punto es que no importa qué forma tengan los píxeles, por lo que no es un efecto secundario del hecho de que los píxeles son cuadrados , es un efecto secundario del hecho de que los píxeles no cambian de color sobre sus grado. Y de todos modos, un píxel no es un pequeño cuadrado .
Daniel Wagner
1
Su respuesta es que faltan imágenes, de lo contrario definitivamente sería la aceptada. Además del ejemplo de suavizado de bordes, necesita: 1) gif animado de ruedas de automóviles que giran en el sentido de las agujas del reloj y se detienen repentinamente y cambian de dirección. 2) un tablero de ajedrez en 3D (ya sabes el que va al infinito) ... También estudié el procesamiento de señales.
MartinTeeVarga
68

Agregando a las otras dos respuestas, aquí hay una explicación más intuitiva de lo que sucede.

Alias ​​en un polígono 2D

Los cuadrados de la cuadrícula representan píxeles. El polígono rojo de la izquierda es la forma que se dibuja, representada internamente como una secuencia de puntos. Cuando se procesa, se convierte de una lista de puntos a un búfer de colores de píxeles. El muestreo discreto determina qué píxeles son oscuros y cuáles son claros, en función de la cantidad del polígono que cubre cada píxel.

Para responder a su pregunta, este es un fenómeno numérico / matemático porque la información sobre la forma original se pierde debido a la aproximación.

Antialiasing

El suavizado es cuando el renderizado intenta corregir el alias haciendo que los píxeles parcialmente cubiertos sean menos intensos.

aebabis
fuente
55
Aquí está la primera respuesta que realmente explica lo que está sucediendo. Bien hecho.
Beska
1
"hacer que los píxeles parcialmente cubiertos sean menos intensos" no es exactamente como lo entiendo. Creo que la mayoría de los algoritmos Anti Aliasing aplican un filtro de paso bajo (igual que un filtro de desenfoque), a veces en todo el marco renderizado (como con FXAA) o algoritmos más inteligentes lo realizan solo a través de los límites de los bordes. MSAA lo hace de una manera diferente, pero el efecto general sigue siendo el de un LPF sobre límites de borde duro.
Lucas
1
@Luke No tenía la intención de que el último párrafo fuera una explicación de cómo funcionan las cosas; solo describe el resultado del anti-aliasing. "Intenso" no es el término correcto para usar, pero se aplica cuando el suavizado se realiza en una forma cuyo color es más intenso que el fondo. Eso es todo lo que estaba diciendo.
aebabis
3

En el campo de procesamiento de señal, el alias se refiere a la identificación errónea de la frecuencia de la señal. Por ejemplo, debido a la falta de la consideración adecuada en el paso de submuestreo, puede generar errores y distorsiones. Se puede generalizar a la señal discreta 2D, como una imagen.

usuario70164
fuente