Aplicación de textura (“ Texture Mapping ”)

Post on 23-Jan-2016

57 views 0 download

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 ”)

Aplicación de textura (“Texture Mapping”)

Rhadamés Carmona

Ultima revisión: 29/01/2004

ContenidoIntroducción1. Técnicas Básicas2. Técnicas Generales3. Dependientes del punto de visión4. Bump 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

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).

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.

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.

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

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

Aplicación de textura 2D

Fragmento

textura 2D

s

t

texel

Interpolación bilinealPara muestrear el texel

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

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]

Aplicación de Textura

GL_CLAMP versus GL_REPEAT

Aplicación de textura

Textura 4x4

GL_CLAMP_TO_BORDER GL_CLAMP

Con coordenadasEn [0,1]

Con coordenadasEn [-1,2]

Aplicación de textura 3D

s

t

r

Textura 3D

Interpolación trilineal

NubesFuegoResonancia

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

Aplicación de Texturas:Multitexturas

+=

Utilizado en muchos casos para generar iluminación

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

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

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

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.

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

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

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

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)

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”

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

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.

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

),(),(

),(

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

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][-, ]

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

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

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