You are on page 1of 47

MAPEADO DE TEXTURAS

Computacin Geomtrica Luis Alberto Vivas Tejuelo


1

CONTENIDO

Mapeado de texturas Tcnicas avanzadas:


Bump mapping Displacement mapping Normal mapping Parallax mapping Relief mapping
2

MAPEADO DE TEXTURAS

Denicin: adicin de un patrn denido por separado a una supercie lisa. Tras aadir el patrn, la supercie sigue siendo lisa Del latn textura: tejido, lienzo El mapeado de texturas es una tcnica ecaz y sencilla de aumentar el realismo de una imagen. Simplica la presentacin de supercies complejas Se puede emplear para denir diversos parmetros de la supercie adems del color: la rugosidad, transparencia, brillo... Todas las GPUs modernas desde las Voodoo de 3DFX soportan aceleracin hardware para el mapeado de texturas (va vertex/pixel shaders)

Ejemplo: una Una

naranja

esfera de color naranja es demasiado simple una malla de miles y miles de polgonos es demasiado costoso imagen que altere las propiedades de la esfera

Modelar

Solucin: pegar una

HISTORIA

1974: Edwin Catmull presenta el concepto original de mapeado de texturas para modular los valores de color de una supercie

Catmull fund posteriormente la empresa Pixar

1976: Mapas de reexin (Blinn y Newell) 1978: Bump mapping (Blinn)

Bump mapping (Blinn)


5

1983: Mapeado de textura sobre polgonos en perspectiva (Heckbert), mip mapping (Williams) 1984: Mapas de iluminacin (Miller y Hoffman) 1985: Texturas volumtricas (Perlin) 1986: Environmental mapping (Greene), Survey of texture mapping (Heckbert) 1991: Interpolacin para el mapeado de texturas en polgonos (Heckbert) 1992: Projective texture mapping (Segal), SGI RealityEngine (mapeado de texturas por hardware)

M. Segal (ingeniero jefe en SGI) fue uno de los autores de la especicacin original de OpenGL

CONCEPTOS BSICOS

Textura: puede ser una textura propiamente dicha (madera, roca, tela), es decir, un patrn detallado que se repite muchas veces para recubrir un plano, o en una denicin ms general, una imagen multidimensional que se mapea en un espacio multidimensional Se componen de primitivas denominadas texels que denen alguna propiedad tonal o regional que afecta a la apariencia. Un texel puede corresponder a varios pixeles Mapeo de texturas: aplicar una funcin en una supercie en 3D. La funcin puede tener 1, 2 o 3 dimensiones, y se puede representar mediante arrays o una funcin matemtica Las texturas en 2D se denominan habitualmente texturas de supercie y las que realizan un mapeo 3D, texturas volumtricas.

Aunque la idea de mapear una imagen a una supercie es sencilla, hay 3 o 4 sistemas de coordenadas involucrados:

Coordenadas paramtricas: se pueden usar para modelar supercies curvadas Coordenadas de la textura: para identicar los puntos de la imagen Coordenadas del entorno: conceptualmente, donde tiene lugar el mapeo Coordenadas de la pantalla: donde se produce la imagen nal

MAPEADO DE TEXTURAS 2D

Las texturas son patrones 2D obtenidos de dibujos, imgenes reales (texturas bitmap) o funciones matemticas (texturas procedurales) Se pueden aplicar sobre cualquier supercie; ms sencillo si sta se dene de forma paramtrica Mapeo de puntos de supercie en 3D a coordenadas de imagen en 2D
f : R [0, 1]
3 2

Correspondencia de texturas: 1.Espacio de textura 2.Espacio del objeto 3.Espacio de la pantalla

En la fase de renderizado: a qu texel corresponde este pixel? 1.Coordenada 2D (pantalla) 2.Coordenada 3D (objeto) 3.Coordenada 2D (textura)

10

Cmo mapear una imagen en 2D en una supercie en 3D?

El problema bsico es cmo encontrar los mapas

Partiendo de las coordenadas de la textura hacia un punto en la supercie, se necesitan tres funciones:

x=x(s,t) y=y(s,t) z=z(s,t)

Como se ha comentado, realmente se quiere ir al revs. Se necesita un mapa con la forma:

s = s(x, y, z) t = t(x, y, z)

En general, estas funciones son difciles de encontrar

11

MTODOS DE MAPEADO
Mapeado Mapeo

plano

en dos partes

Desplegado

12

MAPEADO PLANO

El mapeado plano proyecta las coordenadas paramtricas hacia la malla a travs de un plano Ideal para aplicar imgenes sobre supercies planas, ya que la distorsin es mnima mientras las supercies sean paralelas a los planos de proyeccin Proyeccin plana sobre un plano XY de tamao (w,h) (transformada afn para orientar el plano)

f (p) = (px /w, py /h)

13

MAPEO EN DOS PARTES

Una posible solucin al problema del mapeo es aplicar la textura a una supercie intermedia ms sencilla

Ej. mapeado a un cilindro

Se mapea la textura como si fuese una supercie 3D enrollada sobre el objeto (generalmente cilindros, cubos, esferas) Se dene el mtodo en cada direccin (s, t). Primero se aplica la textura sobre un objeto de referencia (S-Mapping) y luego se dene como se mapea este sobre el objeto (O-Mapping).
14

PROYECCIN CBICA

Este mtodo de proyeccin es una variacin del mtodo plano, que repite el mismo mapa u otro sobre cada una de las 6 caras de un cubo. Se usa con el environmental mapping (cube maps)

15

Textura de damero aplicada sobre varias guras usando mapeo cbico

16

PROYECCIN CILNDRICA
Este

mtodo aplica el mapa sobre la supercie juntando los lados del mapa de modo de envolver el objeto con un mapa cilndrico el ms conveniente para objetos cilndricos como tubos, troncos, etc aplicarse de forma que las "tapas" no se cubran

Es

Puede

17

Parametrizacin

del cilindro:
x = r cos(2 u) y = r sin(2 u) z = v/h

Mapea

un rectngulo en espacio u,v a un cilindro de radio r y altura h


s=u t=v

18

Textura de damero aplicada sobre varias guras usando mapeo cilndrico

19

PROYECCIN ESFRICA
Aplica La

un mapa esfrico que rodea al objeto

textura se contrae en los polos de la imagen y se expande por el centro, por lo que las imgenes se distorsionan para adaptarse a la forma esfrica tcnica es til para proyectar mapas sobre objetos redondos como un baln se usa en el environmental mapping
20

Esta

Tambin

Esfera

paramtrica:
x = r cos(2 u) y = r sin(2 u) cos(2 u) z = r sin(2 u) sin(2 u)

Similar

al cilindro pero se decide donde se distorsiona

21

Textura de damero aplicada sobre varias guras usando mapeo esfrico

22

DEL OBJETO INTERMEDIO AL OBJETO FINAL (O-MAPPING)

Mtodos de mapeo: 1.Normales del objeto intermedio hacia el nal 2.Normales del objeto nal hacia el intermedio 3.Vectores desde el centro del objeto intermedio

23

DESPLEGADO

Coordenadas

explcitas: se almacenan las coordenadas de la textura en puntos de control til en la animacin de personajes

Especialmente

24

Se genera una descomposicin del modelo mismo en el espacio 3D que se proyecta en un plano Se puede generar un atlas de textura que contenga las texturas de varias partes de un objeto 3D

La GPU lo trata como una unidad y es ms rpido

25

ARTEFACTOS

El mapeo de texturas introduce distorsiones (inevitables): p.ej seams


Elegir el mtodo ms apropiado Considerarlas en el diseo

Distorsionado

Sin distorsionar
26

(TEXTURIZACIN AVANZADA)

OTRAS TCNICAS

27

BUMP MAPPING
Aade

rugosidad a una supercie, simulando una geometra ms compleja bump mapping cambia la perpendicularidad por otras normales para lograr el efecto deseado, sin modicar la topologa ni la geometra del objeto funciona con la iluminacin

El

Slo

28

Esfera + bump map = naranja

29

IDEA ORIGINAL

Blinn, James F. "Simulation of Wrinkled Surfaces", Computer Graphics, Vol. 12 (3), p. 286-292 SIGGRAPH-ACM (Agosto 1978)

30

Mtodo

aproximado:
P (u, v ) = P (u, v ) + B (u, v )N N = N + Bu N Pv Bv N Pu

P(u,v) es un punto de la supercie original B(u,v) es la altura en ese punto (en funcin de una imagen en escala de grises) N es la normal en dicho punto

Mtodo

de interpolacin:
N =
(P1

P )

(P2

P )

Se evalan dos puntos cercanos al punto y se elevan de forma acorde al mapa. Con los tres puntos, se calcula la normal a partir del producto vectorial. Es ms intuitivo y ms exacto.

31

Ventajas:

Rpido, acelerado por hardware Resultado razonablemente rico y detallado, especialmente con luces en movimiento, siempre que la altura de los baches sea baja

Desventajas:

Slo se aprecian en la supercie, no en los contornos Poco realista con mapas de gran elevacin

32

NORMAL MAPPING

Es una variacin del algoritmo de bump mapping de Blinn En lugar de perturbar las normales las reemplaza con vectores normales precalculados

Estas normales sern usadas para calcular la luz que incide y es reejada en ese pixel

Se almacena la informacin de la elevacin en los ejes XYZ en imgenes RGB (rojo=X, verde=Y, azul=Z) de 8/16 bits por pixel donde los valores bajos representan las zonas bajas y los valores altos representan las zonas elevadas

Al contener informacin para los 3 ejes se puede renderizar de forma diferente segn la posicin del espectador, a diferencia del bump mapping, pero tampoco cambia la silueta

http://www.youtube.com/watch?v=AwZ8o5P31cM
33

Ejemplo de normal map:

34

Simulacin de iluminacin sobre mallas detalladas en objetos con poco detalle poligonal

Malla detallada

Versin con pocos polgonos

Aplicacin del mapa de normales

35

DISPLACEMENT MAPPING
Se

emplea una textura para modicar la propia supercie geomtrica sobre la que se aplica
La

textura representa un desplazamiento en la direccin normal

No

es tanto una tcnica para simular objetos complejos como una aproximacin para reducir la memoria necesaria para almacenar modelos complejos un alto realismo
36

Proporciona

La

textura (mapa de alturas) es una imagen 2D en escala de grises que dene la funcin de desplazamiento h
P (u, v ) = P (u, v ) + h(u, v )N (u, v )

37

Displacement mapping

Bump mapping

38

Bump mapping vs normal mapping vs displacement mapping

39

PARALLAX MAPPING

Son bsicamente texturas con auto-oclusin en funcin del punto de vista del espectador, lo que incrementa notablemente la sensacin de profundidad y realismo. Desplaza las coordenadas de textura en funcin del ngulo de visin en el espacio tangente y el mapa de alturas en cada punto. En ngulos de visin muy abruptos, las coordenadas de textura se desplazan ms dando la ilusin de profundidad por el efecto de paralaje por cambios del punto de vista. Suele acompaar a las tcnicas de bump mapping y normal mapping.
40

El

parallax mapping almacena los bultos en una textura (mapa de alturas) se observa la supercie en un pixel dado, se recupera el valor de la altura en ese punto y se utiliza para cambiar las coordenadas de la textura un offset a las coordenada de textura adecuadamente se produce el efecto deseado

Cuando

Aplicando

41

Correccin de coordenada de textura en A

42

Parallax mapping en el videojuego Crysis (2007)

43

RELIEF MAPPING

Es

una tcnica alternativa al parallax mapping, pero mucho ms precisa, ya que trabaja con auto-sombreado y mapas normales ser simplemente descrito como un raytracing de corta distancia

Puede

44

Procedimiento (trazado de rayos en el pixel shader):


Calcula el punto de entrada (s,t) y el punto de salida (u,v) Avanza hasta encontrar la interseccin con el mapa de alturas Bsqueda dicotmica (binaria) para renar el punto de interseccin

45

Ejemplo de relief mapping sobre un cubo

46

REFERENCIAS

Graphics & visualization: principles & algorithms (Theoharis Theoharis,Georgios Papaioannou,N. Platis,Nicholas M. Patrikalakis) http://www.siggraph.org/education/materials/HyperGraph/mapping/r_wolfe_mapping.pdf 3-D computer graphics: a mathematical introduction with OpenGL (Samuel R. Buss) Artculos de!Gamedev.net:!http://www.gamedev.net/reference/list.asp?categoryid=40#212 Modern Texture Mapping in Computer Graphics (Stephan Pajer) Survey of texture mapping (Paul S. Heckbert) Texture Mapping (Pavlo Golik)

47

You might also like