IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008 Shirley, capítulo 11 Red Book,...

31
IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008 Shirley, capítulo 11 Red Book, capítulo 9

Transcript of IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008 Shirley, capítulo 11 Red Book,...

Page 1: IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008 Shirley, capítulo 11 Red Book, capítulo 9.

IA725 – Computação Gráfica I

Mapeamento de textura27/05/2008

Shirley, capítulo 11Red Book, capítulo 9

Page 2: IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008 Shirley, capítulo 11 Red Book, capítulo 9.

Visão geral• Introdução.• Mapeamento de texturas 3D.• Arranjos de textura e tipos de interpolação.

– Vizinho mais próximo, bilinear, bicúbica.• Mapeamento de texturas 2D.

– Esférico, planar, cilíndrico, cúbico.– Mapeamento em superfícies paramétricas.– Mapeamento em malhas triangulares.

Page 3: IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008 Shirley, capítulo 11 Red Book, capítulo 9.

Introdução• Para que serve a texturização?

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

Page 4: IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008 Shirley, capítulo 11 Red Book, capítulo 9.

Introdução• O que são mapas de texturas?

– Funções ou imagens que são mapeadas sobre uma superfície. Tal função ou imagem é chamada de mapa de textura.

– Analogia com colagem de decalque sobre um objeto.

Mapa de textura Modelo Modelo texturizado

Page 5: IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008 Shirley, capítulo 11 Red Book, capítulo 9.

Introdução• Classificação do tipo de mapeamento de textura:

– Segundo as dimensões da textura (1D, 2D, 3D).– A correspondência entre os pontos da superfície e os

pontos da função de textura.– Se a função de textura é procedural ou definida por uma

tabela de valores pré-escolhidos.

Page 6: IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008 Shirley, capítulo 11 Red Book, capítulo 9.

Mapeamento de textura 3D• Texturas 3D.

– Também chamadas de texturas sólidas ou texturas volumétricas.

• Considere um objeto cuja cor sólida mude para cada ponto.– Seja cr(p) uma função que mapeia pontos 3D p para

valores de reflectância difusa. – Tal função pode ser uma textura 3D que define uma cor

RGB para cada ponto do espaço 3D.

Page 7: IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008 Shirley, capítulo 11 Red Book, capítulo 9.

Mapeamento de textura 3D• Textura 3D com faixas de cores c0 e c1:

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

return c0

elsereturn c1

Page 8: IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008 Shirley, capítulo 11 Red Book, capítulo 9.

Mapeamento de textura 3D• Textura 3D com faixas 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.

Page 9: IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008 Shirley, capítulo 11 Red Book, capítulo 9.

Mapeamento de textura 3D• Textura 3D com faixas de cores c0 e c1:

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

return (1-t)c0+tc1

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

Page 10: IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008 Shirley, capítulo 11 Red Book, capítulo 9.

Mapeamento de textura 3D

Seção cruzadada textura 3D

Objeto com textura 3D mapeada

Page 11: IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008 Shirley, capítulo 11 Red Book, capítulo 9.

Arranjos de textura• Armazenar um arranjo de cores (3D ou 2D) e associá-los a

uma posição espacial.• Assuma, para o caso 2D, que as dimensões nas quais a

textura será mapeada são as dimensões u e v.– O mapa de texturas (imagem) tem dimensões nx e ny.

nx

ny

uv

Page 12: IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008 Shirley, capítulo 11 Red Book, capítulo 9.

Arranjos de textura• Como associar cada uv a uma cor da imagem?

– Vamos assumir que a parte inteira de uv é removida tal que (u,v)[0,1]2. O efeito resultante é o ladrilhamento da imagem no plano uv:

nx

ny

u

v

Page 13: IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008 Shirley, capítulo 11 Red Book, capítulo 9.

Arranjos de textura• Como associar cada uv a uma cor da imagem?

– Estratégias de interpolação: (1) Vizinho mais próximo (nearest-neighbor). Cada pixel (i,j) da textura é um retângulo de cor sólida.• c(u,v) = cij é a cor da textura em uv.• cij é a cor do pixel para índices i = nxu , j= nyv .

0

0

0

0

11

1

1 1

Page 14: IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008 Shirley, capítulo 11 Red Book, capítulo 9.

Arranjos de textura• Como associar cada uv a uma cor da imagem?

– Estratégias de interpolação: (2) Interpolação bilinear.• 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)

onde u’= nxu - nxu e v’= nyv - nyv .

0

0

0

0

11

1

1 1

Page 15: IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008 Shirley, capítulo 11 Red Book, capítulo 9.

Arranjos de textura• Como associar cada uv a uma cor da imagem?

– Estratégias de interpolação: (3) Interpolação de Hermite.• 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)

onde u’’ = 3(u’)2 - 2(u’)3 e v’’ = 3(v’)2 - 2(v’)3 .

0

0

0

0

11

1

1 1

Page 16: IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008 Shirley, capítulo 11 Red Book, capítulo 9.

Arranjos de textura• Comparação entre diferentes tipos de interpolação:

Vizinho mais próximo Bilinear Hermite

Page 17: IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008 Shirley, capítulo 11 Red Book, capítulo 9.

Mapeamento de textura 2D• Em um arranjo 2D, a textura é uma imagem de tamanho

nx, ny. Cada pixel dessa imagem é chamado de texel (texture element).

• Dependendo do mapeamento, cada texel pode ocupar vários pixels da imagem final, ou vice-versa.

nx

ny

Page 18: IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008 Shirley, capítulo 11 Red Book, capítulo 9.

Mapeamento de textura 2D• Principais tipos de mapeamento:

– Esférico: coordenadas uv são mapeadas segundo coordenadas polares esféricas.

– Planar: coordenadas uv mapeadas ortogonalmente.– Cilíndrico: coordenadas uv são mapeadas segundo

coordenadas polares cilíndricas.– Cúbico: coordenadas uv mapeadas ortogonalmente nos

seis planos de um cubo.

Page 19: IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008 Shirley, capítulo 11 Red Book, capítulo 9.

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

Page 20: IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008 Shirley, capítulo 11 Red Book, capítulo 9.

• Podemos encontrar (θ, φ) fazendo:

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

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

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

Mapeamento esférico

u = (φ+π)/2π,

v = (π-θ)/π.

φ=-πu=0

φ=πu=1

θ=πv=0

θ=0v=1

Page 21: IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008 Shirley, capítulo 11 Red Book, capítulo 9.

Mapeamento esférico• Exemplo:

Page 22: IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008 Shirley, capítulo 11 Red Book, capítulo 9.

Mapeamento planar• A textura 2D é projetada ortogonalmente em uma dada

direção de tal modo que coincida com o produto vetorial entre u e v.

Page 23: IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008 Shirley, capítulo 11 Red Book, capítulo 9.

Mapeamento cilíndrico• Mapeamento de (u,v)[0,1]2 sobre um cilindro.• Para um cilindro de raio R com eixo z em (cx, cy), a equação

paramétrica desse cilindro é:

• Para encontrar θ:

• Como θ [0, π]:

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

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

u = (π-θ)/π.

θ=πu=0

θ=0u=1

Page 24: IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008 Shirley, capítulo 11 Red Book, capítulo 9.

Mapeamento cilíndrico• Exemplo:

Page 25: IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008 Shirley, capítulo 11 Red Book, capítulo 9.

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 xy restantes são utilizadas como no mapeamento planar.

Page 26: IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008 Shirley, capítulo 11 Red Book, capítulo 9.

Mapeamento cúbico• Exemplo:

Page 27: IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008 Shirley, capítulo 11 Red Book, capítulo 9.

Mapeamento cúbico• Exemplo:

Page 28: IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008 Shirley, capítulo 11 Red Book, capítulo 9.

Outros mapeamentos• Mapeamento de superfícies paramétricas:

– Ao renderizar uma superfície paramétrica, dispensamos o tipo de forma de mapeamento (esférico, cilíndrico, cúbico) e tratamos os parâmetro uv da superfície como parâmetros uv normalizados do mapa de textura.

Page 29: IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008 Shirley, capítulo 11 Red Book, capítulo 9.

Outros mapeamentos• Mapeamento 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.

Page 30: IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008 Shirley, capítulo 11 Red Book, capítulo 9.

Outros mapeamentos• Mapeamento de textura em malhas triangulares:

– O mapeamento de superfície paramétricas pode ser estendido a objetos não-paramétricos.

– Basta designar uma coordenada uv para cada vértice.

Page 31: IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008 Shirley, capítulo 11 Red Book, capítulo 9.

Outros mapeamentos• Mapeamento de textura em malhas triangulares:

– Interpolação das coordenadas baricêntricas define coordenadas uv no interior do triângulo.