Title: Grficas Interactivas
1Gráficas Interactivas
- Isaac RudomÃn (Instructor)
- rudomin_at_itesm.mx
- Erik Millán (asistente)
- emillan_at_itesm.mx
2Texturas
3Agregar detalle visual
- Idea usar imagenes y no mas polÃgonos para
representar variaciones de pequeña escala del
color
4Parameterización
geometrÃa
imagen
imagen con textura
- Como decidir donde en la geometrÃa va cada color
de la imagen?
5Opción Variedades de proyecciones
6Opción desdobla la superficie
Piponi2000
7Opción hacer un atlas
charts
atlas
surface
Sander2001
8Opción es el problema del artista
9Como mapear objetos a textura?
- A cada vértice (x,y,z en coordenadas de objeto),
debo asociar coordenadas de textura 2D (s,t) - Para que la textura quede bien colocada sobre el
objeto
10Sistema coordenado de texturas
t
s,t
1.0
s
0,0
1.0
11Coordenadas de textura
c
d
glBegin(GL_POLYGON) glTexCoord2d(0, 0) //
s,t glVertex3dv(a) glTexCoord2d(1, 0)
// s,t glVertex3dv(b) glTexCoord2d(1,
1) glVertex3dv(c) glTexCoord2d(0, 1)
glVertex3dv(d) glEnd()
b
t
a
1.0
s
0,0
1.0
12Mapeos plano,cilÃndrico esférico
13Mapeo cúbico
141a idea Interp de Gouraud de texcoords
Scan line
15Interpolar Parámetros
- Problemas debido a tratar de interpolar de
parámetros en espacio de pantallain screen space
? uniform steps in world space
16Mapeo de texturas
Interpolación lineal de Coordenadas de textura
Interpolación correcta con división de
perspectiva
17Filtrado de Mapas de Textura
- Aliasing Horrible en mapeo ingenuo
- uval (int) (u denom 0.5f)
- int vval (int) (v denom 0.5f)
- int pix texture.getPixel(uval, vval)
- Realmente cada pixelmapea a una región de textura
- PIX lt TEX
- Fácil interpola (bilinear) entre valores de
texels - PIX gt TEX
- DifÃcil promedia contribuciones de múltiples
texels - PIX TEX
- También requiere interpolar!
Magnificaciónun texel a muchos pixels
Minificaciónmuchos texels a un pixel
18Patrones de Moiré
- Si la frecuencia de la textura se acerca a la de
los pixeles
19Mip Maps
- Guarda las texturas prefiltradas a múltiples
resoluciones - Para cada pixel interpola linealmente entre los
dos niveles mas cercanos (e.g., filtrado
trilinear) - Rápido, fácil por hardware
- Por que se llaman Mip maps?
- MIP Multum In Parvo
20Mip Maps
Crea varias copiasFiltra bajando
tamañoPre-filtra texturas mipmaps
Selecciona textura apropiada según número de
pixeles ocupados por geometrÃa
21Mip Maps
Optimize storage(Schematic of method)
22Ejemplo MIP-map
AAAAAAAGH MY EYES ARE BURNING
Where are my glasses?
23Variaciones a Mapeo de textura
- Una textura puede modular cualquier parámetro del
proceso de render
24Texturas modulantes
- Mapea valores de textura a factor de escala
Textura Madera
Valor de textura
25Bump Mapping
- Textura cambiar normal a la superficie!
Esfera con textura difusa y swirly bump map
Esfera con textura difusa
Swirly bump map
26Bump Mapping
Bump Map
Superficie
Iluminación como si la superficie
existiera Problema las orillas
27Displacement Mapping
- Textura representa un offset en la dirección
normal - Dificil de implementar
- Se aplica a orilla
- Alto realismo
28Displacement Mapping
29Illumination Maps
- Quake introdujo illumination maps o light maps
para capturar efectos de iluminación
Textura
Light map
Textura light map
30Environment Mapping
- Renderea un objeto como si fuera perfectamente
reflejante - Lo que vemos depende de posición dl ojo y
normales a la superficie - Ray tracing para pobres
- Jim Blinn 76
OpenGL Redbook color plates
Terminator II 1991
31Environment Maps
32Height Maps
- Para terrenos
- Colores representan alturas
- Soportan multiresolución
- Pueden combinarse con texturas procedurales
33Normal Maps
- Normal maps
- Desarrolla modelo con muchos polÃgonos
- Decima para obtener modelo con pocos polÃgonos
34Normal Maps
Step 3 Desarrolla mapa de normales, colores,
especular
35Texturas sólidas
- Valores de Textura indexados por localización en
3D (x,y,z) - Caro guardar
- O calcular al momento, texturas proceduralese.g.
Perlin noise ?
36Otras texturas Procedurales
37Textura proceduralen RSL
- Surface dent(float Ks.4, Kd.5, Ka.1,
roughness.25, dent.4) - float turbulence
- point Nf, V
- float I, freq
- / Transform to solid texture coordinate system
/ - V transform(shader,P)
- / Sum 6 octaves of noise to form turbulence /
- turbulence 0 freq 1.0
- for (i 0 i lt 6 i 1)
- turbulence 1/freq abs(0.5noise(4freqV))
- freq 2
-
- / sharpen turbulence /
- turbulence turbulence turbulence
- turbulence dent
- / Displace surface and compute normal /
- P - turbulence normalize(N)
- Nf faceforward(normalize(calculatenormal(P)),I)
- V normalize(-I)