0% encontró este documento útil (0 votos)
267 vistas47 páginas

Mapeado Texturas

El documento describe diferentes técnicas de mapeado de texturas, incluyendo bump mapping, displacement mapping, normal mapping y parallax mapping. Explica que el mapeado de texturas permite agregar patrones de textura a superficies lisas para aumentar el realismo sin necesidad de modelar geometría compleja. Luego resume brevemente la historia del mapeado de texturas y conceptos clave como los diferentes sistemas de coordenadas involucrados en el proceso de mapeado.

Cargado por

Lucio Carruego
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
267 vistas47 páginas

Mapeado Texturas

El documento describe diferentes técnicas de mapeado de texturas, incluyendo bump mapping, displacement mapping, normal mapping y parallax mapping. Explica que el mapeado de texturas permite agregar patrones de textura a superficies lisas para aumentar el realismo sin necesidad de modelar geometría compleja. Luego resume brevemente la historia del mapeado de texturas y conceptos clave como los diferentes sistemas de coordenadas involucrados en el proceso de mapeado.

Cargado por

Lucio Carruego
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

MAPEADO DE TEXTURAS

Computación Geométrica
Luis Alberto Vivas Tejuelo

1
CONTENIDO
• Mapeado de texturas

• Técnicas avanzadas:

• Bump mapping

• Displacement mapping

• Normal mapping

• Parallax mapping

• Relief mapping

2
MAPEADO DE TEXTURAS

• Definición: adición de un patrón definido por separado a una superficie lisa. Tras
añadir el patrón, la superficie sigue siendo lisa

• Del latín “textura”: tejido, lienzo

• El mapeado de texturas es una técnica eficaz y sencilla de aumentar el realismo de


una imagen. Simplifica la presentación de superficies complejas

• Se puede emplear para definir diversos parámetros de la superficie además del


color: la rugosidad, transparencia, brillo...

• Todas las GPUs modernas desde las Voodoo de 3DFX soportan aceleración
hardware para el mapeado de texturas (vía vertex/pixel shaders)

3
• Ejemplo: una naranja

• Unaesfera de color naranja es


demasiado simple

• Modelar una malla de miles y


miles de polígonos es demasiado
costoso

• Solución: “pegar” una imagen que


altere las propiedades de la esfera

4
HISTORIA

• 1974: Edwin Catmull presenta el concepto original de mapeado de


texturas para modular los valores de color de una superficie

• Catmull fundó posteriormente la empresa Pixar

• 1976: Mapas de reflexión (Blinn y Newell)

• 1978: Bump mapping (Blinn)

Bump mapping (Blinn)

5
• 1983: Mapeado de textura sobre polígonos en perspectiva (Heckbert), mip
mapping (Williams)

• 1984: Mapas de iluminación (Miller y Hoffman)

• 1985: Texturas volumétricas (Perlin)

• 1986: Environmental mapping (Greene), Survey of texture mapping (Heckbert)

• 1991: Interpolación para el mapeado de texturas en polígonos (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 especificación


original de OpenGL

6
CONCEPTOS BÁSICOS
• Textura: puede ser una textura propiamente dicha (madera, roca, tela), es decir, un
patrón detallado que se repite muchas veces para recubrir un plano, o en una
definición más general, una imagen multidimensional que se mapea en un espacio
multidimensional
• Se componen de primitivas denominadas texels que definen alguna propiedad
tonal o regional que afecta a la apariencia. Un texel puede corresponder a varios
pixeles
• Mapeo de texturas: aplicar una función en una superficie en 3D. La función puede
tener 1, 2 o 3 dimensiones, y se puede representar mediante arrays o una función
matemática
• Las texturas en 2D se denominan habitualmente texturas de superficie y las que
realizan un mapeo 3D, texturas volumétricas.

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

• Coordenadas paramétricas: se pueden usar para modelar superficies


curvadas

• Coordenadas de la textura: para identificar los puntos de la imagen

• Coordenadas del entorno: conceptualmente, donde tiene lugar el


mapeo

• Coordenadas de la pantalla: donde se produce la imagen final

8
MAPEADO DE TEXTURAS 2D

• Las texturas son patrones 2D obtenidos de dibujos, imágenes


reales (texturas bitmap) o funciones matemáticas (texturas
procedurales)

• Se pueden aplicar sobre cualquier superficie; más sencillo si ésta


se define de forma paramétrica

• Mapeo de puntos de superficie en 3D a coordenadas de imagen


en 2D
f : R → [0, 1]
3 2

9
• Correspondencia de texturas:

[Link] de textura
[Link] del objeto
[Link] de la pantalla

• En la fase de renderizado:
“¿a qué texel corresponde este pixel?”

[Link] 2D (pantalla)
[Link] 3D (objeto)
[Link] 2D (textura)

10
• ¿Cómo mapear una imagen en 2D en una superficie en 3D?
• El problema básico es cómo encontrar los mapas
• Partiendo de las coordenadas de la textura hacia un punto en la superficie, 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 revés. Se necesita un mapa


con la forma:
s = s(x, y, z)
t = t(x, y, z)

• En general, estas funciones son difíciles de encontrar

11
MÉTODOS DE MAPEADO

• Mapeado plano

• Mapeo en dos partes

• Desplegado

12
MAPEADO PLANO

• El mapeado plano proyecta las coordenadas paramétricas hacia la malla a través de


un plano

• Ideal para aplicar imágenes sobre superficies planas, ya que la distorsión es mínima
mientras las superficies sean paralelas a los planos de proyección

• Proyección plana sobre un plano XY de tamaño (w,h)


(transformada afín para orientar el plano)

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

13
MAPEO EN DOS PARTES
• Una posible solución al problema del mapeo es aplicar la textura a una
superficie intermedia más sencilla
• Ej. mapeado a un cilindro

• Se mapea la textura como si fuese una superficie 3D enrollada sobre el objeto


(generalmente cilindros, cubos, esferas)

• Se define el método en cada dirección (s, t). Primero se aplica la textura sobre
un objeto de referencia (S-Mapping) y luego se define como se mapea este
sobre el objeto (O-Mapping).

14
PROYECCIÓN CÚBICA

• Este método de proyección es


una variación del método 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 figuras usando mapeo cúbico

16
PROYECCIÓN CILÍNDRICA

• Este método aplica el mapa sobre la superficie juntando los


lados del mapa de modo de envolver el objeto con un mapa
cilíndrico

• Esel más conveniente para objetos cilíndricos como tubos,


troncos, etc

• Puede aplicarse de forma que las "tapas" no se cubran

17
• Parametrización del cilindro:
x = r cos(2πu)
y = r sin(2πu)
z = v/h

• Mapea un rectángulo en espacio u,v a un cilindro de


radio r y altura h
s=u
t=v

18
Textura de damero aplicada sobre varias figuras usando mapeo cilíndrico

19
PROYECCIÓN ESFÉRICA

• Aplica un mapa esférico que rodea al objeto

• Latextura 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

• Esta
técnica es útil para proyectar mapas sobre objetos
redondos como un balón

• También se usa en el environmental mapping

20
• Esfera paramétrica:

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 figuras usando mapeo esférico

22
DEL OBJETO INTERMEDIO AL
OBJETO FINAL (O-MAPPING)
• Métodos de mapeo:
[Link] del objeto intermedio hacia el final
[Link] del objeto final hacia el intermedio
[Link] desde el centro del objeto intermedio

1 2 3

23
DESPLEGADO

• Coordenadas explícitas: se almacenan las coordenadas de la


textura en puntos de control

• Especialmente útil en la animación de personajes

24
• Se genera una descomposición 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 más rápido

25
ARTEFACTOS
• El mapeo de texturas introduce distorsiones (inevitables): [Link] seams
• Elegir el método más apropiado
• Considerarlas en el diseño

Distorsionado Sin distorsionar

26
OTRAS TÉCNICAS
(TEXTURIZACIÓN AVANZADA)

27
BUMP MAPPING

• Añaderugosidad a una superficie, simulando una geometría


más compleja

• El
bump mapping cambia la perpendicularidad por otras
normales para lograr el efecto deseado, sin modificar la
topología ni la geometría del objeto

• Sólo funciona con la iluminación

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
• Método 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 superficie original
B(u,v) es la altura en ese punto (en función de una imagen en escala de
grises)
N es la normal en dicho punto

• Método de interpolación:
N = �
(P1

−P )×�
(P2

−P ) �

Se evalúan 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 más intuitivo y más exacto.

31
• Ventajas:

• Rápido, acelerado por hardware

• Resultado razonablemente rico y detallado, especialmente con


luces en movimiento, siempre que la altura de los “baches” sea
baja

• Desventajas:

• Sólo se aprecian en la superficie, no en los contornos

• Poco realista con mapas de gran elevación

32
NORMAL MAPPING
• Es una variación del algoritmo de bump mapping de Blinn

• En lugar de “perturbar” las normales las reemplaza con vectores normales precalculados

• Estas normales serán usadas para calcular la luz que incide y es reflejada en ese pixel

• Se almacena la información de la elevación en los ejes XYZ en imágenes 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 información para los 3 ejes se puede renderizar de forma diferente


según la posición del espectador, a diferencia del bump mapping, pero tampoco
cambia la silueta

• [Link]

33
Ejemplo de normal map:

34
Simulación de iluminación sobre mallas detalladas en objetos
con poco detalle poligonal

Malla detallada Versión con pocos Aplicación del


polígonos mapa de normales

35
DISPLACEMENT MAPPING

• Seemplea una textura para modificar la propia superficie


geométrica sobre la que se aplica

• Latextura representa un desplazamiento en la dirección


normal

• No es tanto una técnica para simular objetos complejos como


una aproximación para reducir la memoria necesaria para
almacenar modelos complejos

• Proporciona un alto realismo

36
• La textura (mapa de alturas) es una imagen 2D en escala de
grises que define la función 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 básicamente texturas con auto-oclusión en función del punto de vista
del espectador, lo que incrementa notablemente la sensación de
profundidad y realismo.

• Desplaza las coordenadas de textura en función del ángulo de visión en el


espacio tangente y el mapa de alturas en cada punto.

• En ángulos de visión muy abruptos, las coordenadas de textura se


desplazan más dando la ilusión de profundidad por el efecto de paralaje
por cambios del punto de vista.

• Suele acompañar a las técnicas de bump mapping y normal mapping.

40
• El
parallax mapping almacena los bultos en una textura (mapa
de alturas)

• Cuando se observa la superficie en un pixel dado, se recupera


el valor de la altura en ese punto y se utiliza para cambiar las
coordenadas de la textura

• Aplicandoun offset a las coordenada de textura adecuadamente


se produce el efecto deseado

41
Corrección de coordenada de textura en A

42
Parallax mapping en el videojuego Crysis (2007)

43
RELIEF MAPPING

• Es
una técnica alternativa al parallax mapping, pero mucho
más precisa, ya que trabaja con auto-sombreado y mapas
normales

• Puede ser simplemente descrito como un raytracing de


corta distancia

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 intersección con el mapa de alturas
• Búsqueda dicotómica (binaria) para refinar el punto de
intersección

45
Ejemplo de relief mapping sobre un cubo

46
REFERENCIAS

• Graphics & visualization: principles & algorithms (Theoharis Theoharis,Georgios Papaioannou,N.


Platis,Nicholas M. Patrikalakis)

• [Link]

• 3-D computer graphics: a mathematical introduction with OpenGL (Samuel R. Buss)

• Artículos de [Link]: [Link]

• Modern Texture Mapping in Computer Graphics (Stephan Pajer)

• Survey of texture mapping (Paul S. Heckbert)

• Texture Mapping (Pavlo Golik)

47

También podría gustarte