IA725 – Computação Gráfica I · Mapeamento de textura 1D ... cd af bf ce bg ah ai cg ch bi dh...

32
5/5/2009 1 IA725 – Computação Gráfica I Técnicas de Mapeamento Watt, capítulo 8 Red Book, capítulo 9 Prover uma forma eficiente de lidar com as diferenças de reflectância difusa ponto-a-ponto em uma superfície (Catmull, 1975). Mais eficiente do que usar apenas geometria. IA725 – 1s2009 - Ting Texturização

Transcript of IA725 – Computação Gráfica I · Mapeamento de textura 1D ... cd af bf ce bg ah ai cg ch bi dh...

5/5/2009

1

IA725 – Computação Gráfica I

Técnicas de Mapeamento

Watt, capítulo 8Red Book, capítulo 9

– Prover uma forma eficiente de lidar com as diferenças de reflectância difusa ponto-a-ponto em uma superfície (Catmull, 1975).

– Mais eficiente do que usar apenas geometria.

IA725 – 1s2009 - Ting

Texturização

5/5/2009

2

– Funções ou imagens que alteram os atributos de uma figura geométrica. Tal função ou imagem é chamada de mapa de textura.

Mapa de textura Espaço do Objeto Espaço da imagem

F(s,t) Projeção

pixel

texel

Pré-imagem de pixel

IA725 – 1s2009 - Ting

Mapas de Textura

IA725 – 1s2009 - Ting

Espaço de Mapas de Textura

Representação no domínio espacial

Texel = texture element

5/5/2009

3

Atributos “Moduláveis”

• Componente Difusa da Cor: (Rd,Gd,Bd)• Componente Especular da Cor: (Rs,Gs,Bs)• Vetores normais: (nx, ny, nz)• Posições: (x,y,z)• Transparência: opacidade α

IA725 – 1s2009 - Ting

Mapeamento de textura 1D

• Textura com dois intervalos de cores c0 e c1:

RGB stripe( point p )If (sin(px) > 0) then

return c0

elsereturn c1

IA725 – 1s2009 - Ting

5/5/2009

4

Mapeamento de textura 1D

• Textura com dois intervalos de cores c0 e c1:

RGB stripe( point p, real w )If (sin(πpx/w) > 0) then

return c0

elsereturn c1

– w controla a largura das faixas.

IA725 – 1s2009 - Ting

Mapeamento de textura 1D

• Textura com dois intervalos de cores c0 e c1:

RGB stripe( point p, real w )t = (1+sin(πpx/w)/2return (1-t)c0+tc1

– w controla a largura das faixas.– Transição suave entre as faixas.

IA725 – 1s2009 - Ting

5/5/2009

5

Mapeamento de textura 2D

• Textura é um arranjo 2D de tamanho nx, ny. Cada elemento deste arranjo é chamado de texel (texture element).

nx

ny

IA725 – 1s2009 - Ting

Mapeamento de textura 3D

Seção cruzadada textura 3D

Objeto com textura 3D mapeada

IA725 – 1s2009 - Ting

Um volume de textura (u,v,w,q) é utilizado para modular os atributos.

5/5/2009

6

Problemas• O modelo é usualmente uma malha triangular definida por

um conjunto de vértices.• Os mapas de textura são predominantemente planos (2D)

e as figuras geométricas podem apresentar formas arbitrárias.

• Os mapas de textura são, usualmente, imagens digitais (número finito de amostras que, eventualmente, precisam ser reamostradas)

Texturização de Malhas PoligonaisMapeamento direto

(u,v)

(x,y)

5/5/2009

7

Texturização de Malhas PoligonaisMapeamento direto

1

)/',/'(),(

)/',/'(),(

'

'

'

'

===

=

i

qvquvu

wywxyx

q

v

u

i

f

c

h

e

b

g

d

a

w

y

x(u,v)

(x,y)

IA725 – 1s2009 - Ting

(u,v,1) =(u’/q, v’/q,1)

(x’,y’,w)

Faceta

Textura

Texturização de Malhas PoligonaisMapeamento Inverso

1

)/',/'(),(

)/',/'(),(

'

'

'

'

===

−−−

−−−

−−

−=

i

qvquvu

wywxyx

w

y

x

bdae

afcd

cebf

ahbg

cgai

bich

egdh

difg

fhei

q

v

u

IA725 – 1s2009 - Ting

5/5/2009

8

Texturização de Malhas PoligonaisTransformação Linear

4 pares de correspondências � matriz de transformação

Texturização de Malhas PoligonaisMapeamento direto: outra alternativa

IA725 – 1s2009 - Ting

(u’1, v’1, q1)(x’1, y’ 1, w1)

(x’2, y’ 2, w2)

(x’3, y’ 3, w3)

(u’3, v’3, q3) (u’2, v’2, q2)

Interpolação entre as amostras

5/5/2009

9

Texturização de Malhas PoligonaisMapeamento direto: outra alternativa

]1,0[

)1( 10

∈+−=

λλλλ ttt

]1,0[

)1( 10

∈+−=

λλλλ ttt

∆t(u,v)= ∆p(x,y) ∆t(u,v)≠∆p(x,y)

]1,0[

)1(

)1(

1

1

0

0

1

1

0

0

+−

+−=

λ

λλ

λλλ

z

q

z

qz

t

z

t

t

Texturização de Malhas PoligoniasInterpolação em perspectiva

• Passos uniformes no plano da imagem não correspondem a passos uniformes ao longo da aresta.

IA725 – 1s2009 - Ting

5/5/2009

10

Texturização de Malhas PoligoniasInterpolação de z em perspectiva

-d

(x1,y1,z1)

(x2,y2,z2)

(xp,1,yp,1,-d) (xp,2,yp,2,-d)

d

zxx

z

d

x

x pp −=∴−=

Como ax+bz=c (variação linear):

)(1

)(c

b

cd

ax

zczb

d

ax pp +−=∴=+−

(x3,y3,z3)

Interpolação linear do recíproco de z:

λλ213

1)1(

11

zzz+−=

IA725 – 1s2009 - Ting

Texturização de Malhas PoligoniasInterpolação de atributos em perspectiva

-d

(x1,y1,z1):a1

(x2,y2,z2) :a2

(xp,1,yp,1,-d) (xp,2,yp,2,-d)

λλ

λλλλ

2

2

1

1

3

3

12

12213

)1(

)1(

)1(

z

a

z

a

z

a

zz

zazaa

+−=∴

+−+−=

12

13

12

13

zz

zz

aa

aa

−−=

−−

(x3,y3,z3) :a3

Como

λλ21

3 1)1(

11

zz

z+−

=

IA725 – 1s2009 - Ting

5/5/2009

11

Texturização de Malhas PoligonaisSuperfícies Intermediárias

Na direção da normal da superfície intermediária

Na direção da normal da superfície de interesse

A partir do centro do objeto de

interesse

Superfície intermediária

Superfície de interesse

Texturização de Malhas PoligonaisSuperfície Intermediária Plana

• A textura 2D é projetada ortogonalmente em uma dada direção de tal modo que coincida com o produto vetorial entre u e v.

IA725 – 1s2009 - Ting

5/5/2009

12

IA725 – 1s2009 - Ting

Texturização de Malhas PoligonaisSuperfície Intermediária Esférica

s

t

(xp,yp,zp)

Mapa de Textura

Superfície

3D (x(u,v),y(u,v),z(u,v))

(sT,tT)

u = u(s,t)v = v(s,t)

x = x(u,v)y = y(u,v)z = z(u,v)

xs = xs(x,y,z)ys = ys(x,y,z)

Mapeamento esférico

• Mapeamento de (u,v)∈[0,1]2 sobre a longitude e latitude de uma esfera.

• Para uma esfera de raio R com centro em (cx, cy, cz), a equação paramétrica dessa esfera é:

θ

φ

x = xc+Rcosφsinθ,y = yc+Rsinφsinθ,z = zc+Rcosθ.

5/5/2009

13

Uma vez que (θ, φ) ∈ [0, π] ×[π, π], convertemos (u, v) da seguinte forma:

θ = acos((z-zc)/R),

φ = atan((y-yc)/(x-xc)).

Texturização de Malhas PoligonaisMapeamento esférico (inverso)

u = (φ+π)/2π,

v = (π-θ)/π.φ=-πu=0

φ=πu=1

θ=πv=0

θ=0v=1

IA725 – 1s2009 - Ting

IA725 – 1s2009 - Ting

Texturização de Malhas PoligonaisSuperfície Intermediária Esférica

5/5/2009

14

Texturização de Malhas PoligonaisSuperfície Intermediária Cilíndrica

IA725 – 1s2009 - Ting

x = xc+Rcosθy = hv

z = zc+Rsinθ

θ = arctg((z-zc)/(x-xc))

v = y

s = vt = θ/π

v = [0,1]θ = [-π,π]

Texturização de Malhas PoligonaisSuperfície Intermediária Cilíndrica

IA725 – 1s2009 - Ting

5/5/2009

15

Texturização de Superfícies Paramétricas

IA725 – 1s2009 - Ting

nx

ny

u

v

Texturização de Superfícies Paramétricas

IA725 – 1s2009 - Ting

5/5/2009

16

Texturização de Superfícies Paramétricas

– Chaleira modelada com 32 superfícies de Bézier, cada uma texturizada utilizando a parametrização normalizada da superfície.

IA725 – 1s2009 - Ting

Billboards

IA725 – 1s2009 - Ting

)0,1,0,0( −=obsVr Espaço da câmera

Espaço da Câmera

Espaço de Universo

)'(cos

'1 NV

VMV obsrr

rr

⋅−=

=−πθ

Nr

5/5/2009

17

Bump mapping

• Utiliza texturas para perturbar a direção do vetor normal de cada ponto da superfície (Blinn, 1978).

–Não modifica a forma da superfície.

–Modelo de iluminação usa o vetor normal modificado.

IA725 – 1s2009 - Ting

Normais originais

Normais deslocados pelo mapa de textura

N = Pu x Pv

P’= P + B(s,t)N|N|

N’= N + B s(NxPu) – B t(NxPv)|N|

Bump mappingBlinn

IA725 – 1s2009 - Ting

5/5/2009

18

Bump mappingExemplo

Esfera com textura difusa Bump map Esfera com textura difusa

e bump mapping

IA725 – 1s2009 - Ting

Bump mappingExemplo

Cilindro com textura difusa

Bump map

Cilindro com textura difusae bump mapping

IA725 – 1s2009 - Ting

5/5/2009

19

Mapa de Luz

IA725 – 1s2009 - Ting

Environment mapping

• Técnica simples e eficaz de simular reflexos produzidos por superfícies espelhadas. Requer o mapa de reflexão.

IA725 – 1s2009 - Ting

VNVNRv −⋅= )(2

5/5/2009

20

Environment mappingLatitude e Longitude (1976)

e

observador

e

Ambiente

latit

ude

longitude

IA725 – 1s2009 - Ting

Mapa de Reflexão Latitude-LongitudeExemplo

http://www.reindelsoftware.com/Documents/Mapping/Mapping.htmlIA725 – 1s2009 - Ting

5/5/2009

21

Mapeamento Cúbico

IA725 – 1s2009 - Ting

Mapeamento cúbico

• Mapeamento de (u,v)∈[0,1]2 sobre cada lado de um cubóide. Em vez de usar um mapa de textura, utilizam-se seis mapas – um para cada lado do cubo.

• Ex.: Para mapear os lados da frente e de trás, elimina-se a coordenada z do ponto do objeto. As coordenadas xyrestantes são utilizadas como no mapeamento planar.

5/5/2009

22

Mapeamento cúbico

IA725 – 1s2009 - Ting

Mapeamento Cúbico

IA725 – 1s2009 - Ting

5/5/2009

23

Mapeamento cúbico

IA725 – 1s2009 - Ting

IA725 – 1s2009 - Ting

Mapa Esférico

5/5/2009

24

Mapeamento Esférico

e

rn

)1,,( 22 yxyx −−

)1(4)1( 22222 yxrrr zyx −−=+++1)1(2

12

12

)1,,(

)1,0,0(

).(2

1

2

1

2

2

1

2

22

22

22

22

22

−−−=

−−=

−−=

−−=

−=−=

−−=

−=

−=

yxr

yyxr

xyxr

yxyxn

e

nneer

yxz

ty

sx

z

y

x

v

v

vvvv

Mapeamento Esférico

e

rn

)1,,( 22 yxyx −−

2

1

)1(2 222+

+++=

zyx

x

rrr

rs

2

1

)1(2 222+

+++=

zyx

y

rrr

rt

22222 12)1( yxrrr zyx −−=+++

yyxr

xyxr

ty

sx

y

x

22

22

12

12

2

1

2

2

1

2

−−=

−−=

−=

−=

IA725 – 1s2009 - Ting

5/5/2009

25

Mapeamento EsféricoExemplo

Mapa de textura Modelo texturizado

IA725 – 1s2009 - Ting

Mapeamento procedural de textura 3D

• Texturas 3D.– Também chamadas de texturas sólidas ou texturas

volumétricas.• Funções baseadas em ruído Noise(p).que modulam de

forma aleatória atributos (cor, vetor normal, etc)• Características de Noise(p)

- Invariância estatística sob rotação- Invariância estatística sob deslocamento- Banda estreita de frequência

IA725 – 1s2009 - Ting

5/5/2009

26

IA725 – 1s2009 - Ting

Função de Ruído de Perlin

http://mrl.nyu.edu/~perlin/doc/oscar.html

Texturização de Malhas PoligonaisInterpolação Bilinear

(x,y)

(u,v)

IA725 – 1s2009 - Ting

5/5/2009

27

Texturização de Malhas PoligonaisEstratégia de Interpolação: Nearest-neighbor

0

0

0

0

11

1

1 1

IA725 – 1s2009 - Ting

Texturização de Malhas PoligonaisEstratégia de Interpolação: Interpolação Bilinear

0

0

0

0

11

1

1 1

c(u,v) = (1-u’)(1-v’)cij+ u’(1-v’)c(i+1)j

+ (1-u’)v’ci(j+1)+ u’v’c(i+1) (j+1)

IA725 – 1s2009 - Ting

5/5/2009

28

Texturização de Malhas PoligonaisComparação

Vizinho mais próximo Bilinear Hermite

IA725 – 1s2009 - Ting

IA725 – 1s2009 - Ting

Subamostragem e Superamostragem

Minimizar(Superamostragem)

Magnificar(Subamostragem)

Texels Texels

Pixels Pixels

Ponto mais

próximo

Soma Ponderada

Replicação do ponto

mais próximo Interpolação

linear

5/5/2009

29

Aliasing• Resultado da subamostragem da textura.

– Em mapeamento de textura, aliasing ocorre quando dois pixels adjacentes do objeto são mapeados em texelsdiferentes, não-adjacentes, do mapa de textura.

IA725 – 1s2009 - Ting

Redução de Aliasing

– Pré-filtragem (Catmull, 1978): Cada pixel do objeto é tratado como uma área. A área do pixel é mapeada na textura. A cor média é calculada para os texels contidos nesta área.

IA725 – 1s2009 - Ting

5/5/2009

30

Redução de Aliasing

– Superamostragem (Crow, 1981): Também calcula uma cor média. No exemplo abaixo, cada canto da área do pixel é mapeado na textura. A média dos valores obtidos produz a cor final do objeto.

IA725 – 1s2009 - Ting

Redução de Aliasing

• MIP (Multum In Parvo – muito em pouco espaço).• Método de aceleração do cálculo da cor média para áreas

de amostragem da textura (Williams, 1983).– Várias versões da textura são criadas (mipmaps).– Cada texel de uma versão contém a cor média de 4

texels da versão anterior.

5/5/2009

31

• Na texturização, a área de cada pixel do objeto é mapeada no mapa de textura original.

• Cada mipmap é associado a uma medida de quantos texelsda textura original estão na área do texel do mipmap. No exemplo abaixo, a razão desses texels é de 9:1.

Redução de Aliasing

Redução de Aliasing

• Para calcular a cor final, encontramos os dois mapas de textura cujas razões de texels é a mais próxima da razão do pixel atual.

• A cor resultante é a média das cores dos pixels amostrados nos dois mapas.

5/5/2009

32

Redução de AliasingExemplos

IA725 – 1s2009 - Ting

Redução de Aliasing

• Superamostragem

Sem mipmapping Com mipmappingIA725 – 1s2009 - Ting

Efeito de Moiré