Aplicación de textura (“ Texture Mapping ”)

33
Aplicación de textura (“Texture Mapping”) Rhadamés Carmona Ultima revisión: 29/01/2004

description

Aplicación de textura (“ Texture Mapping ”). Rhadamés Carmona Ultima revisión: 29/01/2004. Contenido. Introducción 1. Técnicas Básicas 2. Técnicas Generales 3. Dependientes del punto de visión 4. Bump Mapping. Aplicación de textura. - PowerPoint PPT Presentation

Transcript of Aplicación de textura (“ Texture Mapping ”)

Page 1: Aplicación de textura  (“ Texture Mapping ”)

Aplicación de textura (“Texture Mapping”)

Rhadamés Carmona

Ultima revisión: 29/01/2004

Page 2: Aplicación de textura  (“ Texture Mapping ”)

ContenidoIntroducción1. Técnicas Básicas2. Técnicas Generales3. Dependientes del punto de visión4. Bump Mapping

Page 3: Aplicación de textura  (“ Texture Mapping ”)

Aplicación de textura

Ayuda a dar apariencia más realística a las imágenes sintéticas(producto de un “rendering”) generadas por computadoras.

Espacio detextura (s,t)

Espacio objeto: Coordenadasde mundo (x,y,z)

Espacio imagen (u,v)

Mapeode textura Rendering

Asociar puntos de una superficie con una función de textura

Page 4: Aplicación de textura  (“ Texture Mapping ”)

Aplicación de textura

Espacio detextura (s,t)

Espacio objeto: Coordenadasde mundo (x,y,z)

Espacio imagen (u,v)

Mapeode textura Rendering

s

t

Por indepenencia de las dimensiones de las imágenes, el espacio de textura se encuentra normalizado en [0,1] para s y t. La textura puede ser unidimensional (s), bidimensional (s,t) o tridimensional (s,t,r).

Page 5: Aplicación de textura  (“ Texture Mapping ”)

Aplicación de textura

Se puede definir por ejemplo una aplicación de puntos (s,t) de una textura bidimensional a un objeto x,y,z. La aplicación puede definirse punto por punto. En la práctica, el objeto suele estar definido por un mallado de polígonos, en donde la correspondencia se define en los vértices de cada polígono, y se interpola en el resto del polígono.

Page 6: Aplicación de textura  (“ Texture Mapping ”)

Aplicación de textura

También puede definirse las coordenadas de textura en cualquier punto del objeto, si este es por ejemplo definido paramétricamente. Si el espacio de textura es s,t, y los parámetros de la función son s,t, la correspondencia puede hacerse fácilmente. Igualmente el objeto es discretizado en triángulos y caemos en el caso anterior.

Page 7: Aplicación de textura  (“ Texture Mapping ”)

Aplicación de textura

X(u,v)=COS(u)*u*(1.0+COS(v)/2.0)

Y(u,v)=u/2.0*SIN(v)

Z(u,v)=SIN(u)*u*(1.0+COS(v)/2.0)

Ejemplo de una ecuaciónParamétrica 3D

0<=u,v<=6.28319

Page 8: Aplicación de textura  (“ Texture Mapping ”)

Aplicación de textura 1D

Centro de pixel

0 1

Dominio de textura

Texelinterpolado

f(x) = ][*][*)1( rightAtleftAt

)1(* nxx

xleft

xright leftxt

Interpolación Lineal

Page 9: Aplicación de textura  (“ Texture Mapping ”)

Aplicación de textura 2D

Fragmento

textura 2D

s

t

texel

Interpolación bilinealPara muestrear el texel

Page 10: Aplicación de textura  (“ Texture Mapping ”)

Aplicación de textura 2D

(0,0)

(1,1)

(s,t)

Mapeo a un triángulo

n

ii

1

1

n

iii p.p

1

Coordenadas baricéntricasde p respecto a p1,...,pn

1, 2<0,3>0

1, 2, 30

1, 3<0,2>0

p1p3

p2

1=1, 2, 3=0

1, 3>0,2<0

1, 2>0,3<0

2, 3<0,1>0

2, 3>0,1<0

2=0

3=0

1=0

pp

),,(

),,(

321

211 ppparea

ppparea

),,(

),,(

321

312 ppparea

ppparea

),,(

),,(

321

213 ppparea

ppparea

111

),,( yyy

xxx

cba

cba

cbaarea

Page 11: Aplicación de textura  (“ Texture Mapping ”)

Aplicación de textura

GL_LINEAR versus GL_NEAREST

Textura 4x4

Polígono de 100x100pixels

Polígono de 100x100Pixels, con s,t en [0,1]

Page 12: Aplicación de textura  (“ Texture Mapping ”)

Aplicación de Textura

GL_CLAMP versus GL_REPEAT

Page 13: Aplicación de textura  (“ Texture Mapping ”)

Aplicación de textura

Textura 4x4

GL_CLAMP_TO_BORDER GL_CLAMP

Con coordenadasEn [0,1]

Con coordenadasEn [-1,2]

Page 14: Aplicación de textura  (“ Texture Mapping ”)

Aplicación de textura 3D

s

t

r

Textura 3D

Interpolación trilineal

NubesFuegoResonancia

Page 15: Aplicación de textura  (“ Texture Mapping ”)

Aplicación de texturas

Magnificación versus minificación Problemas con minificación… aliasing Solución: mipmapping Solución mejorada: mipmapping con

interpolación trilineal

Page 16: Aplicación de textura  (“ Texture Mapping ”)

Aplicación de Texturas:Multitexturas

+=

Utilizado en muchos casos para generar iluminación

Page 17: Aplicación de textura  (“ Texture Mapping ”)

1. Aplicación de textura básico:mapeo esférico

(r,,)

(0,0)

(1,1)

(s,t)

Mapeo a una esfera

)1,0[2

)2,0[ s

)1,0[5.0)2/,2/[ t

Esfera definida paramétricamente

),,(),( rCosSenrSenSenrCosP

r

Page 18: Aplicación de textura  (“ Texture Mapping ”)

1. Aplicación de textura básico: Mapeo cilíndrico

(0,0)

(1,1)

(s,t)

Mapeo a un cilindro

r

A

Cada punto de la supeficie del cilindro puede expresarse como (x,y,z)=(r.Cos, r.Sen, p), [0,2), p[0,A]

)1,0[2

)2,0[ s

)1,0[),0[ A

ptAp

Page 19: Aplicación de textura  (“ Texture Mapping ”)

1. Aplcación de textura básico:Textura a cuadrilátero

(0,0)

(1,1)

(s,t)

Mapeo a un plano: z=z0

(xMin,yMin,z0)

(xMax,yMax,z0)

)(

,)(

),(),(yMinyMax

y

xMinxMax

xtsPyx

Plano P, z=z0

Page 20: Aplicación de textura  (“ Texture Mapping ”)

1. Aplcación de textura básico:Mapeo planar

x,y,zs,t

De la forma más simple, se escala el objeto a [0,1] y se asigna como coordenadas de textura para cada (x,y,z) el valor (s,t)=(x,y). Se puede aplicar igualemnte con los planos x-z o y-z.

Page 21: Aplicación de textura  (“ Texture Mapping ”)

2. Técnicas GeneralesNo hay una transformación directa entre los puntos delobjeto y la función de textura (generalmente una imagen 2D).

2.2 Mapeo 2.2 Mapeo a dos etapasa dos etapas

2.1 Mapeo 2.1 Mapeo durante durante modeladomodelado

Page 22: Aplicación de textura  (“ Texture Mapping ”)

2.1 Mapeo durante modeladoEs usado si el objeto puede ser obtenido a partir de deformaciones sobre las primitivas básicas (polígono,esfera, cilindro), cuyo mapeo si está definido directamente.

T

T-1

Page 23: Aplicación de textura  (“ Texture Mapping ”)

2.2 Mapeo a dos etapasNo impone ninguna restricción sobre la topología del objeto.

1.- S-Mapping (Surface Mapping): Se realiza un mapeo sobre una superficie intermedia:

2.- O-Mapping (Object Mapping): Se mapea la textura de lasuperficie intermedia hacia el objeto final.

•Una sección rectangular de un plano•Una superficie curva de una cilindro

•Las caras de un cubo•La superficie de una esfera

Rayo de visiónreflejado

Normal del objeto

Centroide delobjeto

Normal de lasuperficie intermedia

4x4=16

Page 24: Aplicación de textura  (“ Texture Mapping ”)

2.2 Mapeo a dos etapas

(s,t) S(x’,y’,z’) O(x,y,z)

Normal delobjeto

N (x’,y’,z’)

(x,y,z)

v

Vector visiónreflejado

N(x’,y’,z’)

(x,y,z)

Centroide delobjeto

(x’,y’,z’)

(x,y,z)

Normal de la superficieintermedia

(x’,y’,z’)

(x,y,z)

Page 25: Aplicación de textura  (“ Texture Mapping ”)

2.2 Mapeo a dos etapas. Ejemplos.

S-Mapping cilíndrico+

O-Mapping “normal del objeto”

No tiene imagen en el cilindro

S-Mapping cilíndrico+

O-Mapping “normal de la superficie

intermedia”=

“Shrinkwrap”

S-Mapping cúbico+

O-Mapping “centroide del objeto”

Page 26: Aplicación de textura  (“ Texture Mapping ”)

3. Dependiente del punto de visión

Lanzar rayos desde el punto de visión.

Por reflexión Por refracción

v

Vector visiónreflejado

N(x’,y’,z’)

(x,y,z)

Patrón de Textura

visiónN

Page 27: Aplicación de textura  (“ Texture Mapping ”)

4. Bump MappingPropuesta por James Blinn, 1978. Consiste en perturbar las normales según una función “Bump”, tal que, luegodel “render”, el objeto parezca tener baches y chichones en la superficie, sin modificar la geometría.

Esta técnica, da el efecto real de textura en un objeto, yno de “papel tapiz” como las otras técnicas.

Page 28: Aplicación de textura  (“ Texture Mapping ”)

4. Bump MappingSupongamos que el objeto está definido paramétricamentecomo P(u,v)=(X(u,v), Y(u,v), Z(u,v)).

Llamemos F(u,v) la función de perturbación. Los nuevos puntos Q(u,v) son perturbados en dirección de la normal N (nota: M es el gradiente, mientras que N la normal).

),().,(),(),(

),().,(),(),( vuNvuFvuP

vuM

vuMvuFvuPvuQ

v

vuP

u

vuPvuM

),(),(

),(

Page 29: Aplicación de textura  (“ Texture Mapping ”)

4. Bump Mapping

),(),(),(),(

),(),(

),(

),(),(),(

),(),(),(),(

),(),(),(),(

),(.),(),(

),(.),(),(

),().,(),(.

),(),(),().,(),(.

),(),(

),().,(),(),().,(),(

),(),(),(

vuNu

vuP

v

vuF

v

vuPvuN

u

vuFvuM

vuNvuNu

vuFvuN

u

vuP

v

vuF

v

vuPvuN

u

vuF

v

vuP

u

vuP

vuNv

vuF

v

vuPvuN

u

vuF

u

vuP

v

vuNvuFvuN

v

vuF

v

vuP

u

vuMvuFvuN

u

vuF

u

vuP

vuNvuFvuPv

vuNvuFvuPu

v

vuQ

u

vuQvuM new

0

La nueva normal puede calcularse como

Page 30: Aplicación de textura  (“ Texture Mapping ”)

4. Bump MappingCaso de estudio: esferaLa expresión parámetrica de la esfera

),,(),( rCosSenrSenSenrCosP

La función de Bump será una imagen F(u,v), de dimensiones widthxheight. La derivada en un punto (u,v) lo podemos definir como diferencias finitas, con u=0..width-1 y v=0..height-1

Derivadas parciales:

)0,,(),(

SenrCosSenrSenP

),,(),(

rSenCosrSenCosrCosP

[0,2][-, ]

Page 31: Aplicación de textura  (“ Texture Mapping ”)

4. Bump Mapping. Caso de estudio: esfera

Mapeo entre puntos de F(u,v) y la esfera P(,):

2

*,

2

*),(

heightwidthvu

2

),1(),1(),( vuFvuF

u

vuF

2

)1,()1,(),(

vuFvuF

v

vuF

Page 32: Aplicación de textura  (“ Texture Mapping ”)

4. Bump Mapping. Caso de estudio: esfera4. Bump Mapping. Caso de estudio: esfera

Para cada (x,y,z) sobre la esfera hacerN=(x,y,z); Normalizar(N);=arco_tangente(y/x);=arco_coseno(z/r);u=width* /(2*pi);v=height* /(pi)+0.5;dFu=(F[u+1,v]-F[u-1,v])/2;dFv=(F[u,v +1]-F[u,v -1])/2;dPu=(-r*Sen()*Sen(), r*Cos()*Sen(),0);dPv=(r*Cos()*Cos(), r*Sen()*Cos(),-r*Sen());Nnew=N+dFu*Cross(N,dPv)+dFv*Cross(dPu,N);Normalizar(Nnew);Intensidad(x,y,z) = Mod_iluminación((x,y,z),Nnew);

FinPara

Page 33: Aplicación de textura  (“ Texture Mapping ”)

4. Bump Mapping. Caso de estudio: esfera4. Bump Mapping. Caso de estudio: esferaFunción “Bump” Imagen para el color

Se usóMapeo planar

Solo bump mapping Solo texture mapping ambas