Unidad IV: Modelado de la terminación superficial

Slides:



Advertisements
Presentaciones similares
Insertar un cuadro de texto
Advertisements

Antes que todo infoeducativa.wordpress.com
ESTIMACIÓN DE DENSIDAD
JUAN JOSÉ VENEGAS MORENO
EL ROBOTICA DE Y ARTIFICIAL DEL INTELIGENCIA
Configuración de Control
SISTEMAS DE LENTES DELGADAS
IPEP de Cádiz - Dpto. de Física y Química
4. ANÁLISIS FACTORIAL Introducción Modelo factorial ortogonal
Sistemas de Graficación
BLOQUE 2 GEOMETRÍA DESCRIPTIVA
Resultado 1.3 con actividad 1.3.1
Resultado 2.1 con actividad 2.1.1
BLOQUE 3: Adaptación de multifocales
Planificador de Procesos
Ejemplo A continuación aparecen las tasas de retorno de dos fondos de inversión durante los últimos 10 años. 1. ¿Cuál es más riesgoso? 2. ¿En cuál invertiría.
Unidad de competencia II Estadística descriptiva:
Capítulo 3 Descripción de datos, medidas de tendencia central
TABLAS EN WORD.
Tema 3: Filtros SEGUNDA PARTE.
Estadística Administrativa I
BASE DE DATOS Primeros pasos
Distribuciones de probabilidad bidimensionales o conjuntas
UPC Tema: ESPACIO VECTORIAL Rn
DESCRIPCION DE SISTEMAS
PROGRAMACIÓN PARALELA Tema 5: Análisis de algoritmos paralelos
Descartes 2.0 Edición de de escenas Escena Acceso al editor Doble clic dentro de la escena.
Práctica 2. Introducción. MOSFET Conmutación del MOSFET
Centro de estudios Tecnológicos del Mar nO.20 ~Sistemas de Información Geográfica~ Betzaide Viridiana Luna Cruz 22s1.
Geodesia Física y Geofísica
Capítulo: 9 Inventarios.
Ecuaciones y Resolución de Ecuaciones Lineales
La minimización de los costes
V3D Facultad de Informática - UCM - 6 de Julio de 2009 C. Javier García – Patricia Hernández – Daniel Merchán Visión estereoscópica 1.
3. Métodos de resolución Ecuaciones algebraicas lineales
Determinación de la situación relativa de los haces
Proyección estereográfica
La ley de los grandes números
Expresiones Algebraicas
Esta es una ecuación fraccionaria
ILUMINACIÓN Un modelo de iluminación sirve para asignar un valor de iluminación a los puntos de la imagen. Se define una ecuación de iluminación. Lighting.
Departamento: INGENIERÍA MECÁNICA, ENERGÉTICA Y DE MATERIALES
ID-Spec Large 3.0 Software para el Diseño de Instalaciones Eléctricas en Edificios Industriales y Terciarios.
TEMA 9 PROPORCIÓN Y ESTRUCTURAS MODULARES
LA COMPOSICIÓN Las imágenes normalmente
1 Alumno: Javier Insa Cabrera Director: José Hernández Orallo 23 de septiembre de 2010.
Grupo Portapapeles. Pega algún elemento que está en el portapapeles. Corta algún elemento selecciona y la inserta en el portapapeles. Copia algún elemento.
Objetivo. Dado que ya tenemos la planificación temporal del proyecto, que responde a: ¿Qué se hará?, ¿Quién lo hará?, y ¿Cuándo lo hará? ¿Qué recursos.
Luz y volumen Tema 6.
Departamento: INGENIERÍA MECÁNICA, ENERGÉTICA Y DE MATERIALES
Momentos Daniel Bolaño Asenjo José Juan Corpas Martos
Sesión 14.3 Sistema Coordenado Tridimensional y Vectores en el espacio.
Introducción al lenguaje R Sesión 2: Objetos en R
Dr. Jorge Ernesto Rodríguez Universidad de Carabobo
Recursos humanos y responsabilidad social corporativa
ESTÁTICA II FUERZAS DISTRIBUIDAS: CENTROIDES Y CENTRO DE GRAVEDAD.
LA RECTA Y SUS ECUACIONES
Gráficos y Visualización 3D
Modelos de iluminación
Aplicación de textura (“Texture Mapping”) Rhadamés Carmona Ultima revisión: 29/01/2004.
Sesión 6: Campos de Markov
Vistas Semana 4.
Carlos Carrasco de Pedro Daniel Sanz Sanfructuoso
Mapeo de Texturas Capitulo 9 de Angel. Detalle de superficie Hasta ahora hemos visto como crear superficies uniformes planas o bicúbicas, y hemos animado.
Animación en Flash MX Conceptos Basicos.
Proyectos fin de carrera
Rep.TexturasA. García-Alonso1 >> Representación
Laboratorio de Computación Grafica Universidad Central de Venezuela
Graficación 2D Alumna: Yasmin Rosales Cruz
Rep.IluminaciónA. García-Alonso1 >> Representación
Transcripción de la presentación:

Unidad IV: Modelado de la terminación superficial 01 de abril de 2017 Unidad IV: Modelado de la terminación superficial Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

Introducción 01 de abril de 2017 Con los modelos de sombreado se obtienen superficies iluminadas pero carentes de realismo. Dibujar superficies sencillas como una pared requeriría gran cantidad de polígonos. Las texturas solucionan estos problemas permitiendo simular superficies complejas con baja cantidad de polígonos, suministrando realismo a la escena e incrementando drásticamente el nivel de detalle. Texturas

punto del modelo (píxel del framebuffer) Introducción 01 de abril de 2017 'Pegar' una textura sobre un objeto consiste en definir una función unívoca (función de mapeo o mapping) que a cada punto de una superficie le hace corresponder un punto de una imagen. A los píxeles de la textura se los denominan téxels. La palabra píxel se reserva para los fragmentos rasterizados. t f(s,t) punto del modelo (píxel del framebuffer) téxel s Texturas

Tipos de texturas Según la dimensión del espacio de textura, podemos 01 de abril de 2017 Según la dimensión del espacio de textura, podemos distinguir tres tipos de textura: Texturas en 1D: Tiene un único téxel de ancho o de alto. Rápida generación. t s Aplicada a sup. cuadrada Textura 1D Texturas

Tipos de texturas 01 de abril de 2017 Texturas en 2D: Es una imagen. Se podría pensar que se le está pegando una foto plana a una superficie en 3D. Es el tipo de textura más utilizado. Al igual que la textura en 1D, se compone de valores de color RGB y pueden incluir valores alfa (de transparencia). Texturas

Tipos de texturas 01 de abril de 2017 Texturas en 3D: No se pega una foto, sino que hay un volumen con información de color, el cual es asignado al objeto en 3D. El resultado visual es equivalente al que aparecería si 'esculpiéramos' el objeto. Se elimina la necesidad de definir nuevas texturas para el interior de la figura (al hacer clipping para ver el interior). Necesita mucha memoria. Se utiliza en juegos, visualización médica, etc. A partir de OpenGL 1.2 Texturas

Espacio de Parámetros e Interpolación de texturas 01 de abril de 2017 ¿Cómo se le asigna la textura plana al objeto? Las dimensiones del espacio de textura están normalizadas, de manera que todas sus coordenadas varían entre 0 y 1. s t Se realiza una asignación punto a punto. A cada vértice de cada primitiva se le asignan coordenadas {s,t} entre 0 y 1, definiendo un área de correspondencia entre el modelo y la textura que se mapea finalmente por interpolación. Texturas

Coordenadas {s,t} - Interpolación de textura 01 de abril de 2017 Estas áreas no son necesariamente iguales, sino que la textura se expande o contrae para cubrir la primitiva. En el interior de la primitiva se realiza una interpolación de las coordenadas de la textura. Texturas

Repetición de la textura 01 de abril de 2017 ¿Que ocurre cuando se referencia coordenadas de texturas con un valor mayor que 1 o menor que 0? Clamping: Permite repetir los téxels de los bordes de la textura cuando se referencia fuera de ella. Asigna las coordenadas de forma que: s = clamp(s,0,1); t = clamp(t,0,1) En Opengl: glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); Textura original Textura con Clamping Texturas

Repetición de la textura 01 de abril de 2017 Wrapping: Consiste en repetir la textura completa en la primitiva. La imagen de la textura está repetida varias veces. Permite trabajar con texturas mas chicas y ahorrar memoria. Asigna las coordenadas de forma que: s = s-int(s); t = t-int(t) En Opengl: glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); Textura original Textura con Wrapping Texturas

Modos de mezcla 01 de abril de 2017 Cuando aplicamos una textura debemos especificar como queremos que se mezcle con el color del objeto. glTexEnv() permite elegir entre 4 métodos (o environment parameters) que tienen como objetivo determinar el valor RGBA final de cada píxel a visualizar a partir del color de la superficie del objeto a texturizar (fragmento) y del color de la textura (téxel): - Replace (Sustitución) - Decal (Sustitución con transparencia) - Modulate (Modulación) - Blend (Mezcla) Texturas

Modos de mezcla 01 de abril de 2017 Replace (Sustitución): En este modo el color utilizado para el objeto es el de la textura. Decal: En este modo se diferencian dos casos. Si trabajamos con formato de textura RGB el color utilizado para el objeto es el de la textura. En cambio, con formato de textura RGBA, el color a utilizar es una mezcla del color de la superficie y el de la textura, predominando más uno y otro dependiendo del valor alpha de la textura. Texturas

Modos de mezcla 01 de abril de 2017 Modulate(Modulación): Permite ir escalando el color final entre el color original de la superficie y el negro, multiplica cada color de l objeto por el de la textura. También puede modular la transparencia (alpha) hasta hacer invisibles algunas partes del objeto. Multiplicar colores sirve para ciertos efectos especiales (matar o dejar vivo sólo un color) Texturas

Modos de mezcla 01 de abril de 2017 Blend (Mezcla): Se utiliza para mezclar los valores del color de la superficie con los de la textura, mediante un factor Cc que indica el peso relativo de la textura. Si la textura tiene alpha, los alpha se multiplican. Cc indica el peso de las componentes R, G, B y se define con GL_TEXTURE_ENV_COLOR. Texturas

Filtrado 01 de abril de 2017 Cuando la cantidad de píxeles no coincide con la cantidad de téxels aparecen efectos visuales que disminuyen la calidad del resultado, entonces se utilizan filtros. Magnificación: Cuando los téxels al ser proyectados sobre los objetos aparecen mayores que los píxeles de la imagen, y la textura se ve 'pixelada', como una 'cuadricula'. Minimización: Cuando los téxels proyectados son más pequeños que los píxeles y la textura parece cortada. Texturas

Filtrado 01 de abril de 2017 Para poder suavizar los defectos y adaptar las texturas, se aplica una serie de operaciones o filtros. Filtros de magnificación: indican cómo calcular el color de un píxel de la imagen cuando los téxels ocupan varios píxeles. Opengl define dos filtros: -GL_NEAREST (o puntual): se elige el punto de la textura más cercano a las coordenadas del píxel. Es el filtro por defecto y el menos costoso, pero produce el efecto de dentado. Texturas

Filtrado Filtros de magnificación: 01 de abril de 2017 Filtros de magnificación: -GL_LINEAR: se realiza una interpolación bilineal (promedio ponderado) entre los colores de una matriz de 2×2 téxels (los que están más cerca del centro del píxel evaluado) de forma que aparece la imagen suavizada, produciendo un resultado borroso, pero que elimina el dentado. 4 téxels ponderados píxel Utilización de filtro de magnificación: izq. puntual, der. lineal téxel Texturas

Filtrado 01 de abril de 2017 Filtros de Minimización: indican cómo calcular el color de un píxel de la imagen cuando los téxels son más pequeños que los píxeles. Opengl define dos filtros: -GL_NEAREST (o puntual): se elige el téxel situado en el centro del píxel. Problema: si la posición cambia ligeramente se producen los efectos de dentado y fluctuación de la textura. Texturas

Filtrado Filtros de Minimización: 01 de abril de 2017 Filtros de Minimización: -GL_LINEAR: Igual al filtro de magnificación lineal; se realiza una interpolación bilineal (ó promedio ponderado) entre los colores de una matriz de 2×2 texels cercanos al centro del píxel evaluado. Elimina el dentado. Texturas

Mipmapping 01 de abril de 2017 Problema: Cuando un objeto con textura se aleja de la posición del observador, la textura debe disminuir en tamaño en relación con la imagen proyectada. Mipmaps: Se guardan distintas versiones de la misma textura, con diferentes resoluciones. Mejora el rendimiento al utilizar versiones de menor resolución de la textura a medida que nos alejamos. Solucionan problemas de minimización. Tiene un consumo mayor de memoria. Texturas

Mipmapping con OpenGL 01 de abril de 2017 glTexImage2D(): Se deben proporcionar texturas de todos los tamaños en potencias de 2 tales que los tamaños estén comprendidos entre la máxima resolución y la resolución1x1. gluBuild2Dmipmaps(): Dada una única textura, genera automáticamente texturas para resoluciones menores. Durante la visualización se escoge dinámicamente cuál es el nivel del mipmap que hay que aplicar en cada caso (aquel en el que el tamaño del téxel proyectado sobre el objeto sea aproximadamente el de un píxel). MIPMAPS desactivados MIPMAPS activados Texturas

Mipmapping con OpenGL 01 de abril de 2017 Se usa la función glTexParameter() para establecer más opciones en los filtros de minimización. Los dos últimos son costosos en tiempo de ejecución. Texturas

Tipos de mapeo Mapeo Directo y Plano: 01 de abril de 2017 Mapeo Directo y Plano: Consiste en aplicar la textura como un plano, directamente sobre el objeto. Es el ideal para suelos, paredes y demás superficies lisas. No suelen obtener resultados apropiados para superficies que no sean planas. En OpenGL se define una normal al plano de aplicación que se mueve con la visual o con el objeto. Mapeo en dos partes: Se mapea la textura como si fuese una superficie 3D enrollada sobre el objeto, ya sea en forma cúbica, cilíndrica o esférica. Se define el método en cada dirección (S,T). Primero se mapea la textura sobre un objeto de referencia y luego se define como se mapea este sobre el objeto (O-Mapping). No está implementado en OpenGL en forma automática, hay que calcular y asignar coordenadas de textura a cada vértice. Texturas

Tipos de mapeo Mapeo cúbico: 01 de abril de 2017 Mapeo cúbico: Sobre el objeto de referencia, se proyecta la imagen de forma plana, pero aplicando la textura desde los tres ejes de coordenadas. Mapeo cúbico - Aplicación a superficie 3D Texturas

Tipos de mapeo Mapeo cilíndrico : 01 de abril de 2017 Mapeo cilíndrico : Es el más conveniente para objetos cilíndricos como tubos, troncos, etc. No se producen distorsiones porque simplemente envuelve al objeto de referencia siguiendo uno de sus ejes. Mapeo esférico: La textura se contrae en los polos de la imagen y se expande por el centro, por lo que las imágenes se distorsionan para adaptarse a la forma esférica. Es el ideal para objetos esféricos de superficie lisa, como balones, globos, etc. Mapeo cilíndrico Mapeo esférico Texturas

Tipos de mapeo: O-Mapping 01 de abril de 2017 Existen varias técnicas para mapear las superficies tridimensionales del objeto de referencia al objeto final: Reflected ray: Se traza un rayo desde el punto de vista del observador, el reflejo de éste sobre el objeto incidirá sobre la superficie intermedia, y así se decide qué puntos de la textura se corresponden con los del objeto. Texturas

Tipos de mapeo: O-Mapping 01 de abril de 2017 Object normal: Se calcula la normal de un punto del objeto, y el punto en el cual ésta corte a la superficie intermedia será el que le corresponde a la hora de aplicarle la textura. Object centroid: Se calcula una línea entre el centroide del objeto y un punto de este. El punto en el cual esta línea corte la superficie intermedia, será el que le corresponde al objeto. Object normal Object centroid Texturas

Environment Mapping 01 de abril de 2017 Añade realismo a una escena en la que un objeto recibe reflejos del entorno que tiene a su alrededor. Mapeo de entorno esférico: método más popular de environment mapping. Soportado por OpenGL. Las coordenadas de la textura se calculan por reflexión en las caras de la primitiva según un mapeo esférico. Texturas

Environment Mapping Mapeo de entorno esférico con OpenGL: 01 de abril de 2017 Mapeo de entorno esférico con OpenGL: Hay que crear un mapa de la textura apropiado (mapeo de textura esférico) y entonces hacer que OpenGL genere las coordenadas de la textura de forma automática. glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP) glEnable(GL_TEXTURE_GEN_S) Textura Mapeo de entorno esférico Texturas

Efectos especiales: Líneas de perfil 01 de abril de 2017 Se corta al objeto con un plano y se distribuye la textura en función de la distancia al plano. La normal al plano indica la orientación de la textura. OpenGL genera las coordenadas de textura automáticamente con glTexGen(). El plano queda definido por un punto P0(x0,y0,z0) y un vector n(a,b,c) ortogonal al plano (P - P0) . n = 0 ; d = ax0 + by0 + cz0 = n . P0 Textura 1D Mapeo con wrapping activado Texturas

Efectos especiales: Bump Mapping 01 de abril de 2017 La geometría del objeto no es afectada, solo se modifican sus normales para simular depresiones y picos en su superficie. Utiliza un espacio 2D de textura, que codifica vectores normales en lugar de color. Al mapear esta textura sobre una superficie, el vector normal de ésta se modifica según el valor encontrado en la textura. Texturas

Funciones de OpenGL glGenTextures() Aloca memoria. glBindTexture() 01 de abril de 2017 glGenTextures() Aloca memoria. glBindTexture() Selecciona una textura. glTexImage1D() y glTexImage2D() Define una textura unidimensional o bidimensional. glTexEnv() Selecciona parámetros de la textura (modos de mezcla). glTexParameter() Define parámetros de la textura (filtros, wrapping,etc). glTextCoord() Especifica la coordenada del punto en la textura. glTexGen() Generación automática de las coordenadas de textura. glTexSubImage2D() Sustituye una textura o parte de ella. Resulta menos costoso que crear una nueva. Texturas

Fin de la teoría ¿Preguntas? 01 de abril de 2017 ¿Preguntas? Utilizar OpenGL reference para comprender que hace cada comando. Bibliografía: OpenGL Programming Guide (Red Book) Rosalee Wolfe - DePaul Univ. - Teaching Texture Mapping Visually: http://www.siggraph.org/education/materials/HyperGraph/mapping/surface0.htm Carlos Carrasco y Daniel Sanz - Univ. Salamanca - Mapeado de texturas (tema 11): http://gsii.usal.es/~corchado/igrafica/ Mark Killgard (el autor de GLUT) – Nvidia: http://developer.nvidia.com/object/env_reflections.html David Green – Drexel Univ. (lecture 7): http://www.cs.drexel.edu/~david/Classes/ICG Texturas