Вы находитесь на странице: 1из 27

7

Texturas
1. Introducción
2. Función de mapeado
3. Tipos de Texturas
4. Filtros de magnificación y contracción
5. Otras aplicaciones
6. Texturas con OpenGL
Introducción
• Objetos coloreados o sombreados

Inf
uniformemente carecen de realismo
– Los objetos reales tienen caracterís-

or
ticas en su superficie, o texturas
• Soluciones:
– Usar un enorme número de polígonos
de color y propiedades adecuadas má
– O utilizar una imagen como textura
para hacer que los objetos se parezcan tic
a
más a la realidad
• Escanea texturas del mundo (nubes,

Gr
arena, etc.) o píntala tu mismo
• Almacena la textura como una imagen
2D
• Mapea la textura en la superficie
• Pinta cada punto de la superficie
áfi
buscando el color en la textura
ca
2
Introducción

Inf
Modelo

or
Modelo sombreado


tic
Modelo + sombreado
+ texturas
¿Cuándo comienza
a
a parecer real? Gr
áfi
ca
3
Función de mapeado
• ¿Cómo se pega una textura sobre un objeto?
Definir una función unívoca (función de mapeado o mapping) que a cada
punto del espacio ocupado por la superficie o sólido le hace corresponder un
Inf
punto en el espacio de la textura.
or
TEXTURA 1D - COLOR má
• Espacio de textura con 1 dimensión.
• Contiene información sobre el color. tic
• Ejemplo: coloración del terreno según la altura.
a
Gr
áfi
ca
4
Función de mapeado
TEXTURAS 2D
• Las dimensiones del espacio de textura suelen estar normalizadas Æ Inf
sus coordenadas s y t varían entre 0 y 1.
• Para aplicar una textura que aparezca repetida en el espacio del
or
objeto, se asignan coordenadas fuera de rango Æ recortadas tomando
modulo 1.

tic
a
Gr
áfi
ca
5
Definiendo la función de mapeado

Parametrización Proyección Inf


Espacio del
or
objeto (x,y,z)

Espacio de la
textura (s,t)
Espacio de la
imagen (x’,y’)
tic
• Superficies paramétricas
• Forma natural (Texture Mapping) x(u,v)=rx*cos(vπ-π/2)*sen(2πu)
a
Gr
y(u,v)=ry*sen(vπ-π/2)
u y z(u,v)=rz*cos(vπ-π/2)*cos(2πu) 0≤u,v≤1
1 ry
áfi
rz rx
x ca
z
0,0 1 v
6
Y en modelos poligonales...

Para cada triángulo del modelo


establecer una relación con la textura Inf
asignando los vértices al espacio de la textura
or

tic
a
Gr
áfi
ca
7
Tipos de texturas: textura de normales



La textura contiene normales en lugar de color.
El vector normal de la superficie se modifica según el valor de la textura. Inf
• Efecto de relieve debido a los efectos de iluminación.
or

tic
a
Bump
Gr
Mapping áfi
ca
8
Tipos de texturas: textura de normales

Inf
+ = or
Esfera con un mapa Bump Map Esfera con mapa de

de textura textura + Bump Map
tic
• La superficie no cambia, pero el sombreado hace que parezca que sí lo a
hace
Gr
• El ‘bump map’ se utiliza para falsear pequeños desplazamientos arriba o
debajo de la verdadera superficie
áfi
ca
9
Ejemplo de variación de la normal

Inf
or

tic
a
Gr
Bump Map áfi
Cilindro con un mapa de textura Cilindro con un mapa de textura
ca
+ bump map
10
Tipos de texturas: textura de desplazamientos



La textura contiene longitud de desplazamiento.
Se aplica sobre la superficie del objeto en la dirección de la normal.
Inf
• Se crean detalles con volumen real en la superficie de los objetos.
or

tic
a
Displacement Gr
Mapping
áfi
ca
11
Tipos de texturas: textura de desplazamientos

Inf
or

tic
a
Gr
áfi
ca
12
Tipos de texturas: texturas Sólidas, o 3D
• El espacio de la textura tiene 3 dimensiones:

F(x,y,z) = [RGB] que mapee los colores en 3d Inf


– Función más utilizada: función lineal en la que las coordenadas de textura de cada or

punto se obtienen multiplicando por una cierta matriz las coordenadas espaciales del
punto

– Resultado visual -> equivalente a


esculpir el objeto sobre el tic
a
espacio de textura.

Gr
– Texturas de piedra (marmol,
granito, etc.) o madera se suelen
generar de esta forma
áfi
ca
13
Tipos de texturas: textura animada
• Ser le añade la dimensión tiempo.

• Puede interpretarse como una serie


Inf
de imágenes (o incluso volumenes)
cada uno de los cuales se emplea
or
como espacio de textura según el
instante de tiempo en el que nos

encontramos. tic
a
Gr
áfi
ca
14
Tipos de texturas: textura con transparencia
• Cada texel contiene información de transparencia además de color.

• Se almacena en el canal alfa A. Inf


• Se habla entonces de representación RGBA. or
• Valor de componente alfa en cada texel indicará su porcentaje
de transparencia respecto a los objetos que hay detrás.

tic
a
Gr
áfi
ca
15
Tipos de texturas: textura con transparencia

Inf
or

tic
a
Gr
áfi
ca
16
Filtros de magnificación y contracción
• No relación de semejanza entre el tamaño de los pixels y el tamaño

Inf
aparente de los texels proyectados Æ Calidad del resultado baja.

PROBLEMA SOLUCIÓN or
–Texels mucho mayores que los Filtros de magnificación

pixeles de la imagen ÆLa textura se
ve como una cuadrícula.
tic
a
Gr
áfi
–Texels mucho más pequeños Æ un
pixel de la imagen representa a Filtros de contracción

ca
muchos del espacio de texturas.

17
Filtros de magnificación
• Cómo calcular el color de un pixel de la imagen cuando
los texels ocupan varios pixels . Inf
PUNTUAL: LINEAL:
or

tic
a
Gr
áfi
ca
18
Filtros de magnificación
• Ejemplos
Inf
PUNTUAL: LINEAL:
or

tic
a
Gr
áfi
ca
19
Filtros de contracción
• Cómo calcular el color de un pixel de la imagen cuando
los texels son más pequeños que los pixels. Inf
or
PUNTUAL: LINEAL: má
tic
a
Gr
áfi
ca
20
Filtros de contracción
• MIP-MAPPING
– Estructura piramidal (u,v,d)
– Filtro áreas cuadradas d=(UVarea)1/2
Inf


Textura 512x512
Mip-Map 1024x1024 or

• 10 niveles v v
• Filtro caja 2k pixels 0£ k£ 9
d

u u tic
a
u
1 v

d=0.25
Gr
2 9-k d>1
u
áfi
ca
0,0 1 v
K=7
Textura

21
Filtros de contracción

Inf
or

tic
a
Gr
áfi
ca
PUNTUAL LINEAL MIP-MAPPING
22
Otras aplicaciones: Environment Mapping
• Inserta la escena en un cubo

• Pinta imágenes en las caras del cubo para tener un fondo que rodea tu escena.
Podrían ser nubes, montañas, una habitación etc.
Inf
• Usa el cubo para iluminar la escena interior. or

• Durante la etapa de sombreado:

tic
a
Gr
áfi
ca
23
Otras aplicaciones: Light Mapping
• Quake usa mapas de iluminación además de mapas de texturas.
• Los mapas de texturas se usan para añadir detalle a las superficies, y los mapas
de iluminación son utilizados para almacenar la iluminación previamente Inf
calculada.
• Ambos mapas son aplicados en tiempo de ejecución.
or

tic
a
Gr
Imagen con mapa de texturas Mapas de texturas + Light Map áfi
ca
Light Map
24
Texturas en OpenGL
1. Leer el fichero de la textura y cargarlo en una matriz de
[altotextura][anchotextura].
leeTextura(fichero, num);
Inf
or
2. Generar un vector de texturas.
void glGenTextures(GLsizei n, GLuint *nombreTexturas);

3. Inicializar las texturas:


a) Establecer el modo de almacenamiento en memoria.

glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
tic
a
b) Asignar valores a cada una de las texturas almacenadas en el
vector.
glBindTexture(GL_TEXTURE_2D, nombreTexturas[i]);

glTexImage2D(GL_TEXTURE_2D, 0, 3, anchoTextura, Gr
áfi
altoTextura,0, GL_RGB, GL_UNSIGNED_BYTE, texturas[num]);
Asignar parámetros de aplicación a la textura;

4. Habilitar las texturas:


glEnable(GL_TEXTURE_2D);
ca
25
Texturas en OpenGL

Ya en el proceso de dibujado:
Inf
1. Cuando queramos activar una textura para que se pegue en un objeto:
glBindTexture(GL_TEXTURE_2D, nombreTexturas[i]);
or
2. Ya en el dibujado del objeto, las coordenadas de textura se asignan a los vértices: má
void glTexCoord{1234}{sifd}(TIPO coordenadas); tic
a
void glTexCoord{1234}{sifd}v(TIPO *coordenadas);

Gr
Ejemplo:
glTexCoord2f ( 0.0, 0.0);

áfi
glVertex3f (1.0, 1.0, 1.0);

3. Si queremos dibujar objetos sin texturas, acordarse de deshabilitarlas antes!!

glDisable(GL_TEXTURE_2D);
ca
26
SUMARIO
• Las texturas permiten aumentar de forma notable la calidad de las


imágenes de síntesis
Las texturas permiten modificar distintos atributos de las superficies de los
Inf

objetos
La aplicación de texturas está sujeta al problema del aliasing
or
• Estas técnicas se han extendido a otros campos relacionados con la má
Informática Gráfica
tic
a
Gr
áfi
ca
27

Вам также может понравиться