Tema 4 Texturas - Escuela Superior de Informática

Anuncio
Tema 4
Texturas
David Vallejo Fernández
Curso 2007/2008
Escuela Superior de Informática
Índice de contenidos
1.Introducción
2.Texturizado.
3.Métodos de texturizado.
4.Otras técnicas.
5.Resumen.
2
1
Introducción
3
Introducción
●
Texturizado.
–
Proceso que modifica la apariencia de cada
localización de una superficie utilizando
alguna imagen, función o fuente de datos.
–
Ejemplo: imagen de un ladrillo.
●
–
Sin pérdida de calidad perceptible.
Combinación de superficies e imágenes...
●
Modelado complejo y velocidad.
4
Introducción
●
Texturizado.
–
Problemas (ajenos a la geometría).
●
Brillo.
–
–
●
Problema: el ladrillo y el cemento tendrían el
mismo brillo.
Solución: uso de una textura con brillo especular.
Cambio del brillo del muro en función de la
localización.
Uniformidad.
–
–
Problema: todos los ladrillos parecen planos.
Solución: alterar la dirección de la normal de la
superficie del polígono en el cálculo de la
iluminación.
5
2
Texturizado
6
Texturizado
●
Técnica para modelar de manera eficiente
las propiedades de las superficies.
–
Sin texturas...
●
–
fcolor(iluminación, material, punto de vista)
Con texturas...
●
Cambio directo de los valores en la ecuación de
iluminación.
–
–
En función de la posición de la superficie.
Ejemplo del ladrillo: reemplazar el color de la
superficie por el correspondiente en la imagen.
7
Texturizado
●
Pipeline de texturas generalizado.
–
Punto de partida.
●
–
Normalmente una localización en el espacio del
modelo (la textura se mueve con el modelo).
Función de proyección.
●
Obtención de u,v (parámetros de acceso).
●
Proceso de mapping o texture mapping.
–
Función de correspondencia.
–
Función de transformación.
8
Texturizado
●
Pipeline de texturas generalizado.
–
Textura de 256 x 256.
–
Cfinal = Color * 1.1 (correción).
9
Texturizado
●
Pipeline de texturas generalizado.
1)Obtener la localización (x, y, z).
2)Proyección (generar coordenadas de textura).
1)Esférica, cilíndrica, plana... (u, v).
3)Correspondencia (localización en el espacio
textura). Ej.: (0.32, 0.29) x (256, 256).
4)Obtención del color de la textura.
Ej.: c[81][74].
5)Transformación. Ej.: ajuste del color.
10
Texturizado
●
Texturizado de imágenes.
–
Imagen 2D pegada sobre la superficie de un
polígono y renderizada.
–
En HW 2m x 2n o 2m x 2m.
●
–
Distintos tamaños máximos de textura.
Tamaño ideal de textura ~ tamaño polígono.
●
Tamaño textura << Tamaño polígono.
–
●
Magnification.
Tamaño textura >> Tamaño polígono.
–
Minification.
11
Texturizado
●
Texturizado de imágenes.
–
Magnification.
●
Técnica del vecino más cercano.
–
–
●
Efecto pixelado.
Pobre pero sólo un texel por píxel.
Técnica de interpolación bilineal.
–
–
Uso de 4 texels vecinos.
Interpolación lineal para rellenar el píxel.
12
Texturizado
●
Texturizado de imágenes.
–
Minification.
●
●
Cuando se minimiza una textura, varios texels
pueden cubrir un píxel.
¿Qué efecto ejercen los texels sobre el píxel?
–
–
Vecino más cercano (problemas de aliasing).
Interpolación bilineal (problemas de aliasing).
13
Texturizado
●
Texturizado de imágenes.
–
–
Necesidad de soluciones mejores.
●
Aliasing... muestreo y filtrado. Nyquist.
●
En general, 1 texel x 1 píxel para evitar aliasing.
Idea básica de algoritmos de antialiasing en
texturas...
●
●
●
Preprocesar la textura.
Uso de ED para aproximar el efecto de un
conjunto de texels en un píxel.
En tiempo real, cantidades fijas de tiempo y
recursos. Para cada textura, un número fijo de
muestras por píxel.
14
Texturizado
●
Texturizado de imágenes.
–
Mipmapping.
●
●
“Muchas cosas en un lugar pequeño”.
Filtrado de la textura original en imágenes más
pequeñas.
●
Media de 4 texels.
●
Subtexturas.
●
d: nivel de detalle.
15
Texturizado
●
Texturizado de imágenes.
–
Mipmapping.
texel
Texel
Píxel proyectado
en la textura
–
Determinar cuánto de la textura influencia.
–
¿Cómo obtener d? Objetivo 1:1.
●
●
Usar el eje más largo del cuadrilátero.
Diferenciales (du/dx) para medir el cambio en la
coordenada de la textura respecto a un eje.
16
3
Métodos de texturizado
17
Métodos de texturizado
●
Environment mapping.
–
Método potente y simple para generar
aproximaciones de reflexiones en superficies
curvadas.
–
También conocido como reflection mapping.
18
Métodos de texturizado
●
Environment mapping.
–
Se asume que...
●
●
–
Los objetos y las luces a reflejar están lo
suficientemente lejos.
El reflector no se refleja a sí mismo.
Pasos de un algoritmo de EM:
●
●
Generar o cargar la imagen 2D (entorno).
Para cada píxel, calcular la normal en la
localización de la superficie del objeto.
●
Calcular el vector de reflexión r (e y n).
●
Calcular un índice en el mapa del entorno.
●
Utilizar el texel para dar color al píxel.
19
Métodos de texturizado
●
Environment mapping.
–
Distintas funciones de proyección.
●
Técnicas clásicas.
–
–
Algoritmo de Blinn y Newell [1976].
Cubic EM de Greene [1986].
–
Sphere EM.
–
Paraboloid EM.
20
Métodos de texturizado
●
Cubic EM.
–
Rápido y flexible
pero lejano a los
métodos implementados
actualmente.
–
Se obtiene colocando la cámara en el centro
del entorno, proyectándolo en los lados de un
cubo con centro en la posición de la cámara.
–
Las imágenes del cubo se usan como el mapa
del entorno.
–
6 renders (uno por cara).
21
Métodos de texturizado
eye
●
Cubic EM.
y
zz
–
xx
La dirección de r determina la cara del cubo.
●
●
–
nn
En concreto, la coordenada de mayor longitud.
Las otras dos coordenadas se obtienen
dividiendo por el valor absoluto de dicha coord.
Ejercicio práctico.
●
r = <-2, 4, -8>.
22
Métodos de texturizado
●
Bump mapping.
–
Técnica para
conseguir que
una superficie
parezca imperfecta (rugosa, con ruido...).
–
Simula características muy costosas a nivel de
modelado.
–
Idea: modificar la normal utilizada en la
ecuación de iluminación sin alterar la normal
de la superficie.
++
geometry
Geometría
=
=
Bump mapped geometry
Bump map
Bump map
Resultado
Stores heights: can derive normals
23
Métodos de texturizado
●
Bump mapping.
–
Distintos métodos.
●
Nivel HW.
24
4
Otras técnicas
25
Otras técnicas
●
Caché de texturas y compresión.
–
Problema: gran número de texturas.
–
Distinta capacidad en función del sistema.
–
Parámetros relevantes.
–
●
Velocidad.
●
Memoria.
Cada sistema tiene sus propias herramientas
de gestión de texturas.
●
Ej. optimización de texturas 256x256 en
algunos aceleradores.
26
Otras técnicas
●
Caché de texturas y compresión.
–
–
Regla general: mantener texturas pequeñas.
●
Evitar problemas de magnification.
●
Agrupar polígonos según la textura a usar.
Mecanismos de caché.
●
Menos recientemente usado (LFU).
–
●
Más recientemente usado. (MRU).
–
–
Posibilidad de priorizar.
Frame actual.
Problemas en sistemas de alta demanda...
●
Prefetching.
27
Otras técnicas
●
Caché de texturas y compresión.
–
Problemas de memoria y ancho de banda
cuando tratamos con texturas.
●
Descompresión de texturas al vuelo.
●
A nivel HW.
●
Más eficiencia al reducir el ancho de banda.
●
Formatos de compresión: JPEG, PNG...
●
Información útil: tipo y resolución de la imagen
original, tamaño una vez comprimida...
28
Otras técnicas
●
Multipass Texture Rendering.
●
Multitexturing.
●
Animación de texturas.
–
Cascada de agua.
–
Zoom, rotaciones, deformaciones...
29
5
Resumen
30
Resumen
●
●
●
●
Conocer el funcionamiento general del
proceso de texturizado.
Texturizado de imágenes.
Técnica y algoritmo de Environment
Mapping.
Mecanismos de caché de texturas.
31
Resumen
●
Referencias.
–
Real-Time Rendering (2nd Ed).
●
–
Fundamentals of Computer Graphics (2nd Ed).
●
–
Capítulo 11. Texture mapping.
Transparencias Tomas Akenine-Moller.
●
–
Capítulo 5. Texturing.
http://www.realtimerendering.com.
Transparencias de Animación para la
Comunicación. Tema 3. Materiales y texturas.
●
http://inf-cr.uclm.es/www/cglez
32
Descargar