A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008

Apresentações semelhantes


Apresentação em tema: "IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008"— Transcrição da apresentação:

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

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

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

4 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

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

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

7 Mapeamento de textura 3D
Textura 3D com faixas de cores c0 e c1: RGB stripe( point p ) If (sin(px) > 0) then return c0 else return c1

8 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 else return c1 w controla a largura das faixas.

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.

10 Mapeamento de textura 3D
Objeto com textura 3D mapeada Seção cruzada da textura 3D

11 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 u ny v

12 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: u nx v ny

13 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 . 1 1 1 1 1

14 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 . 1 1 1 1 1

15 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 . 1 1 1 1 1

16 Arranjos de textura Comparação entre diferentes tipos de interpolação:
Vizinho mais próximo Bilinear Hermite

17 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

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

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

20 Mapeamento esférico Podemos encontrar (θ, φ) fazendo: Uma vez que (θ, φ)  [0, π]  [-π, π], convertemos (u, v) da seguinte forma: φ=π u=1 θ = acos((z-zc)/R), φ = atan((y-yc)/(x-xc)). θ=π v=0 u = (φ+π)/2π, v = (π-θ)/π. θ=0 v=1 φ=-π u=0

21 Mapeamento esférico Exemplo:

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

23 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θ. θ=π u=0 θ = atan((y-yc)/(x-xc)). u = (π-θ)/π. θ=0 u=1

24 Mapeamento cilíndrico
Exemplo:

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

26 Mapeamento cúbico Exemplo:

27 Mapeamento cúbico Exemplo:

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

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

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

31 Outros mapeamentos Mapeamento de textura em malhas triangulares:
Interpolação das coordenadas baricêntricas define coordenadas uv no interior do triângulo.


Carregar ppt "IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008"

Apresentações semelhantes


Anúncios Google