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