Obtención de la imagen 1. Representación y manipulación de la escena. 2. Definir la cámara y...

Post on 23-Jan-2016

216 views 0 download

Transcript of Obtención de la imagen 1. Representación y manipulación de la escena. 2. Definir la cámara y...

Discretización

• CRT o pantalla: Formado por pixels. 1. on-off

2. Niveles de gris.

3. Coloreados.

Discretización

• Es una matriz, problemas: 1. Pérdida de información.

2. Pueden aparecer huecos o falta de continuidad.

3. Aliasing.Aliasing. Nuestro cerebro busca símiles (alias).

4. Gran cantidad de cálculo. Circuitos integrados.

Líneas y curvas. Algoritmos incrementales

• Para rectas con pendiente entre 0 y 1 (ecuación explícita).

• Basándose en el pixel anterior.

• Multiplicación, suma y redondeo.

• Uso muy frecuente y debe ser muy eficiente.

kmx)y(x xx iii-i 11

m)y(xmkmxk) m(xkmx)y(x iiiii 111

Líneas y curvas. Algoritmos incrementales

Asumimos que la pendiente está entre 0 y 1

Líneas y curvas. Algoritmos incrementales

• No vale para circunferencias, ni duplicando el número de pixels.

Líneas y curvas. Algoritmos incrementales

• Hay que completar los datos con los anteriores.

Algoritmos DDA

• Basándonos en la ecuación diferencial de 1er. orden.

• Solución mediante métodos numéricos.

• Forma:

• Como ejemplo Euler:

• Por tanto:

y ) y(xF(x,y) y conocido siendo 00

i

i

x

yy

x xx

x)y,F(xyy

ii

iiiii

1

1

Distancia entre la línea y el centro del pixel = Error asociado a ese pixel

Algoritmo de Brasenham

• Caso a:

• Como :

• Por tanto:

r.yr

r).(yintrr

iii

iiii

150

50

1

11

50

5050

150

150

.em

.em.

e.me

ey.myey

i

i

ii

iiiii

myyeyr iiiii 1y

m ermyrye iiiiii 111

Algoritmo de Brasenham

• Caso b:

• Como:

• Por tanto:

r.yr

r).(yintrr

iii

iiii

2501

1501

1

11

i

i

ii

iiiii

em.

.em.

e.me

ey.myey

50

5150

2501

2501

myyeyr iiiii 1y

11111 m ermyrye iiiiii

Relleno de polígonos

• Dibujar los lados es fácil.

• Rellenar el interior no tan fácil.

Relleno de polígonos

• ¿ Punto interno? Teorema de Jordan. – Si la recta que va del punto al infinito corta un número impar de

veces es interno.

Test interno-externo

Relleno de polígonos

• En la práctica hay problemas:

Relleno de polígonos

• La mayoría de los casos:

• Solución: En caso de vértice superior contarlo.

• Línea a línea

Relleno de polígonos: Casos especiales

Toca pixel Pixel fuera

Cambio de paridad

No cambio de paridad

No cambio de paridad

Algoritmo línea a línea

• Tratar las líneas entre Ymax e Ymin .

• Coherencia de la línea. Secuencias.

• Guardar los cortes y utilizarlos de dos en dos.

Algoritmo línea a línea

• Algoritmo: 1. Obtener los cortes de la línea con el polígono.

2. Ordenarlos por x.

3. Tratarlos de par en par.

• ¿ Reutilizar información al cambiar de línea?

Aliasing

• En base a la discretización de un objeto, ver otro distinto.

• Razón principal: representación mediante muestreo.

Aliasing

Dos tipos fundamentales:

•Patrones moire: surgen en el warping de la imagen y en el mapeado de texturas

•Jaggies: surgen en el renderizado

Nótese jaggies en el primer plano

Aliasing (punto)

La pantalla no posee suficiente resolución para marcar el punto

Antialiasing (punto)

Reemplazar el punto por un pixel activo

Aliasing

• Asignamos a todo el pixel el valor que le corresponde al centro.

• En las animaciones pueden aparecer pixels destelleantes.

• Se da mucho en los siguientes casos:

– Cambio de intensidad de luz y/o color

– Parpadeos que pueden ser producidos por objetos pequeños en

las animaciones.

Antiliasing

• Métodos principales de antialiasing: 1. Sobremuestreo o supersampling.

2. Realizar una aproximación de filtros antialiasing 2D y eliminar altas frecuencias.

3. Muestreo estocástico.

• Como el origen es el muestreo, conviene que sea lo más continuo posible. La tecnología es un límite.

Supersampling

• Se realiza en tres pasos: 1. Realizar un muestreo superior a la resolución del dispositivo.

Por cada pixel se calculan nn.

2. Aplicar un filtro al muestreo.

3. Obtenemos la imagen a la resolución del dispositivo.

• A más subpixels más cálculos.

• El incremento de cálculo es del orden de n2. • En la adecuación a pixels reales se puede utilizar un filtro

con pesos.

Supersampling

• Asignando pesos mayores a los subpixels centrales se obtienen mejores resultados.

• Para una imagen de 512512 y utilizando pixels de 55

subpixels habría que realizar 51251225 multiplicaciones y sumas.

• Puede requerir mucha memoria.

Image Filtering: Blurring

original, 64x64 pixels 3x3 blur 5x5 blur

Image Filtering: Edge Detection

horizontal derivative vertical derivative

Figura original

Siluetas dentadas (jagging): •El dibujo de la izquierda representa el muestreo realizado a la imagen original. •La parte de la derecha es la renderizada.•Son muy frecuentes donde existe un mayor contraste entre el interior y exterior de la silueta.

Pérdida del detalle: •A la izquierda se muestran un grupo pequeño de polígonos de la imagen original.•A la derecha se muestra la escena renderizada.

•Puede apreciarse la gran pérdida del detalle

Muestreo de superficies

• Se basa en la geometría interna del pixel.

• Tiene en cuenta las partes del pixel que ocupa cada objeto.

• Calculando lo que ocupa cada objeto asigna la intensidad del pixel.

• Cálculos:

1.Calcular lo que ocupa cada objeto en la superficie correspondiente al pixel.

2.Determinar la visibilidad de esas partes.

3.Calcular la intensidad en función de los que son visibles.

Más que muestrear, lo que hacemos es integrar.

Los números representan la fracción del área que cubre el objeto en dicho pixel.

Funciona bien cuando el objeto se encuentra lejos.

Muestreo estocástico

• Los fotoreceptores del ojo no estan uniformemente distribuidos.

• Cambiamos aleatoriamente los puntos de muestreo.

• Pasos: 1. Obtener muestreo de la imagen asignando a cada punto un

cambio aleatorio.

2. Aplicar un filtro a la muestra del paso anterior a fin de obtener la intensidad de los pixels.

• El cambio introduce ruido en la imagen, pero a su vez disminuye el efecto aliasing.

Muestreo estocástico

• Se adecua bien a los métodos de trazado de rayos o ray-tracing.

• Para Z-buffer y Scanline presenta mas dificultades pero han surgido algoritmos basados en microsuperficies que realizan muestreo estocástico.

Jittering: Elegir un punto aleatoriamente (uniforme) del dominio

Fácil de realizar.

Generalmente se emplea este muestreo estocástico junto a supersampling.

Muestreo más normal: 16 ejemplos/pixel

Muestreo estocástico 256 ej/pixel

Muestreo por línea

Muestreo regular 18 ej/pixel

Muestreo estocástico 16 ej/pixel

Muestreo estocástico 256 ej/pixel

Muestreo estocástico 16 ej/pixel

Muestreo regular 1 ej/pixel

Muestreo lineal