You are on page 1of 33

ANTIALIASI NG

COMPUTACIN GRFICA | ALIASING Y ANTIALIASING | ENERO-JUNIO 2014 | 06/05/2014


Al iasi ng
Si movieramos un tringulo negro en un fondo blanco los pixels donde va pasando el tringulo deberan variar de
manera continua de intensidad.
Al momento de hacer rendering, cuando el centro de un pixel tiene color cambia de forma binaria de blanco a
color.
Los polgonos, lneas, etc. se muestran como presentes o ausentes.
Las aristas que se ven en forma de sierra se dice que tiene the jaggies, al estar animadas se llama the
crawlies.
Formalmente este fenmeno se llama aliasing.
Necesario conocer un poco de procesamiento de seales.
COMPUTACIN GRFICA | ALIASING Y ANTIALIASING | ENERO-JUNIO 2014 | 06/05/2014
Antial iasi ng
Akenine-Moller, et. al. Real-Time Rendering, 3rd. edition.
COMPUTACIN GRFICA | ALIASING Y ANTIALIASING | ENERO-JUNIO 2014 | 06/05/2014
Teor a de muestreo y fi ltrado
Generar una imgen :
muestrear una escena 3D para obtener valores de color
para cada pixel en un arreglo de pixels.
Sampling, reconstruccin y filtrado.
1D pero se extiende fcilmente a 2D.
COMPUTACIN GRFICA | ALIASING Y ANTIALIASING | ENERO-JUNIO 2014 | 06/05/2014
Muestrear una seal continua en intervalos uniformes para poder representar
informacin de forma discreta: la cantidad de informacin es menor.
Reconstruir la seal para recobrar la seal original: filtrado.
Siempre que hay muestreo puede ocurrir aliasing.
Muestreo de una seal
Akenine-Moller, et. al. Real-Time Rendering, 3rd. edition.
COMPUTACIN GRFICA | ALIASING Y ANTIALIASING | ENERO-JUNIO 2014 | 06/05/2014
Temporal al iasi ng
Rueda dando vueltas y filmada por una cmara.
Too low sampling rate.
2 samples/revolution. Nyquist limit.
Sample rate > 2 samples/revolution.
Akenine-Moller, et. al. Real-Time Rendering, 3rd. edition.
COMPUTACIN GRFICA | ALIASING Y ANTIALIASING | ENERO-JUNIO 2014 | 06/05/2014
El aliasing ocurre cuando una seal se
muestrea a una frecuencia muy baja.
Al iasi ng
Teorema de muestreo (Nyquist) - Para
muestrear una seal apropiadamente
(que se pueda reconstruir) la frecuencia
de muestreo dbee ser mayor que dos
veces la frecuencia ms grande de la
seal. Lmite de Nyquist.
Akenine-Moller, et. al. Real-Time Rendering, 3rd. edition.
COMPUTACIN GRFICA | ALIASING Y ANTIALIASING | ENERO-JUNIO 2014 | 06/05/2014
Seal es l i mitadas en ancho
de banda
En la mayora de escenas 3D no se puede determinar una frecuencia mxima:
aristas de polgonos, fronteras de sombras, etc. producen cambios discontinuos
- frecuencias infinitas.
No importa que tan cerca estn las muestras, los objetos pueden ser an ms
pequeos y no se muestrean.
Esto implica que no se podr eliminar completamente el aliasing con muestras de
puntos en una escena 3D.
COMPUTACIN GRFICA | ALIASING Y ANTIALIASING | ENERO-JUNIO 2014 | 06/05/2014
Utilizar un filtro para reconstruir una
seal limitada en ancho de banda.
Reconstrucci n ( fi ltrado)
Filtros comunes: box, tent y sinc.
Su rea debe ser igual a 1 para que la
seal no escale.
Akenine-Moller, et. al. Real-Time Rendering, 3rd. edition.
COMPUTACIN GRFICA | ALIASING Y ANTIALIASING | ENERO-JUNIO 2014 | 06/05/2014
Filtro ms sencillo pero la seal reconstruida es
de escalera (no continua).
Fi ltro Caja
Se puede reemplazar con cualquier otro filtro.
Akenine-Moller, et. al. Real-Time Rendering, 3rd. edition.
COMPUTACIN GRFICA | ALIASING Y ANTIALIASING | ENERO-JUNIO 2014 | 06/05/2014
Fi ltro tri ngul o ( tent)
Seal reconstruida es continua.
Cambios bruscos en la seal en los
puntos muestra.
No es apropiado para funciones
reconstruccin perfecta.
Usar un filtro pasabajas.
Akenine-Moller, et. al. Real-Time Rendering, 3rd. edition.
COMPUTACIN GRFICA | ALIASING Y ANTIALIASING | ENERO-JUNIO 2014 | 06/05/2014
Un componente en frecuencia de una seal es
una onda sinosoidal sin(2!f), donde f es la
frecuencia de ese componente.

Un filtro pasabajas remueve todas las
frecuencias arriba de cierta frecuencia
especificada: hace blur en una seal.

Filtro pasabajas ideal:
Fi ltro pasabajas
sinc(x) =
sin(x)
x
Akenine-Moller, et. al. Real-Time Rendering, 3rd. edition.
COMPUTACIN GRFICA | ALIASING Y ANTIALIASING | ENERO-JUNIO 2014 | 06/05/2014
Fi ltrado
El proceso de muestreo introduce componentes con frecuencias altas (cambios abruptos) en la seal que se
pueden eliminar con un filtro pasabajas.
El filtro sinc elimina todas las ondas con frecuencias mayores a 1/2 la taza de muestreo.
La funcin sinc es el filtro de reconstruccin perfecta cuando la taza de muestreo es de 1 (la frecuencia
mayor de la seal muestreada debe ser menor a 1/2).
Ms generalmente, suponiendo que la frecuencia de muestreo es f
s
(el intervalo entre muestras vecinas es 1/
f
s
, el filtro perfecto para reconstruir la seal es sinc(f
s
x) que elimina todas las frecuencias mayores a f
s
/2.
Ancho infinito y toma valores negativos por lo que en prctica no es en muchos casos til.
COMPUTACIN GRFICA | ALIASING Y ANTIALIASING | ENERO-JUNIO 2014 | 06/05/2014
Fi ltrado
En general se usan filtros intermedios entre el filtro caja y sinc.
Todos estos filtros son aproximacin de la funcin sinc, pero con un lmite en cuntos pixels influencan.
Los filtros que se acercan ms a la funcin sinc pueden tomar valores negativos en parte de su dominio.
En aplicaciones donde los valores negativos son imprcticos o indeseables, se usan filtros Gaussianos
(porque derivan o se parecen a curvas Gaussianas).
Despus de usar un filtro obtenemos una funcin continua.
En CG no se puede desplegar seales continuas por lo que se utiliza un proceso de resampling o
remuestreo.
COMPUTACIN GRFICA | ALIASING Y ANTIALIASING | ENERO-JUNIO 2014 | 06/05/2014
Resampl i ng
Proceso para magnificar o minimizar una seal muestreada.
Supongamos que la seal original fue muestreada en los puntos con coordenadas
enteras (0,1,2,) (intervalos unitarios entre muestras).
Supongamos que despus de remuestrear queremos que los puntos muestra estn
distribuidos de manera uniforme con un intervalo a entre muestras.
Para a>1, ocurre minimizacin (downsampling) de la seal.
Para a<1, ocurre magnificacin (upsampling) de la seal.
COMPUTACIN GRFICA | ALIASING Y ANTIALIASING | ENERO-JUNIO 2014 | 06/05/2014
Upsampl i ng
COMPUTACIN GRFICA | ALIASING Y ANTIALIASING | ENERO-JUNIO 2014 | 06/05/2014
Downsampl i ng
La frecuencia de la seal original es demasiado alta para que la taza de muestreo evite tener
aliasing.
Se ha mostrado que se necesita un filtro que utilice sinc(x/a) para crear una seal continua a
partir de la muestreada.
Despus de esto, remuestrear a los intervalos deseados.
Usando sinc(x/a) como filtro, se aumenta la anchura del filtro pasabajas removiendo mejor las
frecuencias altas de la seal.
Primero hacer blur y luego remuestrear con menor resolucin.
COMPUTACIN GRFICA | ALIASING Y ANTIALIASING | ENERO-JUNIO 2014 | 06/05/2014
Downsampl i ng
COMPUTACIN GRFICA | ALIASING Y ANTIALIASING | ENERO-JUNIO 2014 | 06/05/2014
Screen-based antial iasi ng
Aristas de polgonos, lmites de sombras, reflejos especulares, etc. causan artefactos si no se muestrean y
filtran correctamente.
Algoritmos para mejorar la calidad de rendering.
Basados en pantalla : utilizan solo la salida del pipeline y no necesitan conocer los objetos de los que se
obtuvo la imagen.
En el ejemplo del tringulo negro un problema es la taza tan baja de muestreo: se toma una sola muestra en
el centro de cada pixel en la malla.
Usando ms muestras por celda de la la malla e interpolandoles podemos calcular un mejor color para ese
pixel.
COMPUTACIN GRFICA | ALIASING Y ANTIALIASING | ENERO-JUNIO 2014 | 06/05/2014
Screen-based antial iasi ng
n es el nmero total de muestras para un pixel.
La funcin c(i,x,y) es el color de la muestra y
w
i
es el peso en el rango [0,1] que la muestra
va a contribuir al color del pixel.
p(x, y) =
n
X
i=1

i
c(i, x, y)
Akenine-Moller, et. al. Real-Time Rendering, 3rd. edition.
COMPUTACIN GRFICA | ALIASING Y ANTIALIASING | ENERO-JUNIO 2014 | 06/05/2014
Screen-based antial iasi ng
La funcin c(i,x,y) se puede pensar como dos funciones:
f(i,n) recibe una localizacin (x
f,
y
f
) en la pantalla donde tomar la muestra.
muestrear el color en ese punto.
Los pesos w
i
, deben sumar 1.
La mayora de mtodos utilizados en rendering tiempo real utiliza los pesos como
constantes w=1/n.
Cuando hay una sola muestra, en el centro del pixel, es un caso particular de esta ecuacin.
COMPUTACIN GRFICA | ALIASING Y ANTIALIASING | ENERO-JUNIO 2014 | 06/05/2014
Supersampl i ng
Los algoritmos que calculan ms de una muestra por pixel, se llaman
mtodos de supersampling (oversampling).
FSAA (Full-scene antialiasing): el ms sencillo, hace rendering de la escena a
una mayor resolucin y luego promedia las muestras vecinas para tener una
imagen.
Fcil de implementar pero costoso ya que todas las muestras deben ser
iluminadas y se debe probar su profundidad (z-buffer).
COMPUTACIN GRFICA | ALIASING Y ANTIALIASING | ENERO-JUNIO 2014 | 06/05/2014
Supersampl i ng
Acumulation buffer: mtodo relacionado.
En lugar de tener un solo buffer fuera de la pantalla, este mtodo usa un buffer que tiene la misma resolucin de la
imagen pero ms bits para representar color, que en la imagen deseada.
Para obtener una muestra de 2x2 de una escena, se generan 4 imgenes, con la vista trasladada medio pixel en la
pantalla, en direccin x o y como necesario.
Cada imagen generada es para una posicin distinta de muestra en la malla.
Se suman las imgenes en el accumulation buffer.
La imagen resultante se promedia (en este caso, divide entre 4) y se enva a despliegue.
Accumulation buffers - parte del API de OpenGL.
COMPUTACIN GRFICA | ALIASING Y ANTIALIASING | ENERO-JUNIO 2014 | 06/05/2014
Supersampl i ng
Akenine-Moller, et. al. Real-Time Rendering, 3rd. edition.
COMPUTACIN GRFICA | ALIASING Y ANTIALIASING | ENERO-JUNIO 2014 | 06/05/2014
Supersampl i ng
Akenine-Moller, et. al. Real-Time Rendering, 3rd. edition.
COMPUTACIN GRFICA | ALIASING Y ANTIALIASING | ENERO-JUNIO 2014 | 06/05/2014
Supersampl i ng
Ventajas de acumulation buffer vs. FSAA es que el muestreo no tiene que ser un patrn
ortogonal en una celda de pixel.
Cada pasada es independiente de las dems por lo que se pueden usar otros patrones
distintos.
El mtodo de acumulation buffer implica redibujar la escena varias veces por cuadro y copiar
el resultado a la pantalla. Costoso para sistemas tiempo real.
Los GPUs modernos no tienen un buffer de acumulacin dedicado, pero se upede simular
interpolando (blending) imgenes separadas usando operaciones por pixel.
COMPUTACIN GRFICA | ALIASING Y ANTIALIASING | ENERO-JUNIO 2014 | 06/05/2014
Supersampl i ng adaptati vo
Mayor problema de aliasing en los bordes.
Enfocarse en los lugares problemticos (zonas de contraste fuerte) y en los dems no
hacer supersampling.
Se considera una imagen 3 veces ms grande que la imagen a desplegar.
Aqu llamamos pixel principal a un pixel (x,y) tal que x mod 3 = 1 y y mod 3 = 1.
Hay un pixel principal por cada 9 pixels de la imagen, repartidos de manera uniforme.
Los dems pixels se dicen secundarios.
COMPUTACIN GRFICA | ALIASING Y ANTIALIASING | ENERO-JUNIO 2014 | 06/05/2014
Supersampl i ng adaptati vo
Lanzamos un rayo primario a travs de cada pixel principal, para calcular su color.
Consideramos un umbral ">0.
Sea el pixel principal (x,y), consideramos sus 4 pixels principales vecinos (x-3, y), (x+3, y), (x, y-3) y (x, y+3).
Un pixel principal se dice crtico si su color difiere de uno de sus pixels principales y sus vecinos por una
cantidad mayor a ".
Para calcular la imagen final, si un pixel principal es crtico lanzamos rayos primarios a travs de los 8 pixels
secundarios que le rodean.
Si no es crtico, el color de los pixels secundarios es igual al del pixel primario (o se puede interpolar entre pixels
vecinos.
COMPUTACIN GRFICA | ALIASING Y ANTIALIASING | ENERO-JUNIO 2014 | 06/05/2014
Supersampl i ng adaptati vo
Rmy Malgouyres. Algorithmes pour la synthse dimages et lanimation 3D. 2nd edition.
COMPUTACIN GRFICA | ALIASING Y ANTIALIASING | ENERO-JUNIO 2014 | 06/05/2014
Transparencia, Al pha y
Compositi ng
Efectos basados en vista.
dibujar un objeto semitransparente.
Efectos basados en luz.
el objeto semitransparente causa que la luz sea atenuada o desviada,
provocando que otro objeto en la escena cambie sus propiedades de
iluminacin.
COMPUTACIN GRFICA | ALIASING Y ANTIALIASING | ENERO-JUNIO 2014 | 06/05/2014
Transparencia, Al pha y
Compositi ng
Screen-door transparency - un mtodo para dar la ilusin de transparencia a un objeto.
Dibujar un objeto con un patrn de relleno de tablero de ajedrez.
El objeto se dibujar parcialmente visible, mientras que el patrn no se apreciar.
Problemas:
Los objetos se vern mejor cuando son 50% transparentes. Se pueden usar otros patrones pero se aprecia la forma
del patrn por lo que causa efectos de color indeseados.
Slo se puede dibujar un objeto semitransparente en esa parte de la escena.
Ventaja:
Simplicidad.
COMPUTACIN GRFICA | ALIASING Y ANTIALIASING | ENERO-JUNIO 2014 | 06/05/2014
Transparencia, Al pha y
Compositi ng
Alpha blending: interpolar el color del objeto transparente con el objeto(s) de atrs.
El valor alpha describe el grado de opacidad de un fragmento para un pixel dado.
Para un objeto transparente, dibujar sobre el objeto opaco con un alpha menor a 1.
Cada pixel cubierto por el objeto recibir un color resultante en RGBA.
Esta operacin se realiza comnmente con el operador over:
Donde c
s
es el color del objeto transparente (fuente), #
s
es el valor alpha del objeto, c
d
es el
color del pixel antes de hacer blending (destino), c
0
, color resultante.
c
0
=
s
c
s
+ (1
s
)c
d
COMPUTACIN GRFICA | ALIASING Y ANTIALIASING | ENERO-JUNIO 2014 | 06/05/2014
Transparencia, Al pha y
Compositi ng
El blending de colores a travs del operador over, es til para interpolar
fotografas y rendering sinttico de objetos. Este proceso se llama compositing.
Chroma-keying: trmino de produccin de video.
Se graba una escena contra un fondo azul, amarillo o verde (green-screen o blue-
screen matting).
Se designa el color particular para al detectarlo, reemplazarlo con un background.

You might also like