Você está na página 1de 29

Mapas de Textura

Processamento de Imagens e Computac¸˜ao Gr´afica

Mapas de Textura

Profa. Beatriz Trinch˜ao Andrade

Departamento de Computac¸˜ao · UFS beatriz@dcomp.ufs.br

Mapas de Textura

Sum´ario

Introduc¸˜ao

Texturas

Classificac¸˜ao Texturas 3D Texturas 2D e 1D

Mapeamento de Texturas

Referˆencias

Mapas de Textura Introduc¸˜ao

Mapas de Textura Introduc¸˜ao Sum´ario Introduc¸˜ao Texturas Classificac¸˜ao Texturas 3D Texturas 2D e 1D

Sum´ario

Introduc¸˜ao

Texturas

Classificac¸˜ao Texturas 3D Texturas 2D e 1D

Mapeamento de Texturas

Referˆencias

Mapas de Textura Introduc¸˜ao

Mapas de Textura Introduc¸˜ao Introduc¸˜ao Superf´ıcies uniformes × texturizadas Uso de pol´ıgonos

Introduc¸˜ao

Superf´ıcies uniformes × texturizadas Uso de pol´ıgonos suficientemente pequenos

Menos eficiente Nem sempre desej´avel

Mapas de Textura Introduc¸˜ao
Mapas de Textura
Introduc¸˜ao

Introduc¸˜ao

Mapas de Textura Introduc¸˜ao Introduc¸˜ao Figura: Fonte:

Figura: Fonte: http://www.dsogaming.com/wp-content/uploads/2013/07/hrt13ee_1.jpg Profa. Beatriz Trinch˜ao Andrade

5 / 29

Mapas de Textura Texturas

Mapas de Textura Texturas Sum´ario Introduc¸˜ao Texturas Classificac¸˜ao Texturas 3D Texturas 2D e 1D Mapeamento

Sum´ario

Introduc¸˜ao

Texturas

Classificac¸˜ao Texturas 3D Texturas 2D e 1D

Mapeamento de Texturas

Referˆencias

Mapas de Textura Texturas

Mapas de Textura Texturas Texturas Possibilitam uma grande variedade de escolhas de programac¸˜ao Podem representar

Texturas

Possibilitam uma grande variedade de escolhas de programac¸˜ao

Podem representar diferentes propriedades de um modelo 3D

Mapas de Textura Texturas

Mapas de Textura Texturas Texturas Figura: Fonte http://nickdesaulniers.github.io/RawWebGL/texture.gif Profa. Beatriz

Texturas

Mapas de Textura Texturas Texturas Figura: Fonte http://nickdesaulniers.github.io/RawWebGL/texture.gif Profa. Beatriz

Profa. Beatriz Trinch˜ao Andrade

8 / 29

Mapas de Textura Texturas

Mapas de Textura Texturas Texturas Mais comum que definam a cor e refletˆancia Tamb´em usada para

Texturas

Mais comum que definam a cor e refletˆancia

Tamb´em usada para mudar as normais e posic¸˜ao dos v´ertices da superf´ıcie Exemplos:

Bump mapping Displacement mapping

Mapas de Textura Texturas

Mapas de Textura Texturas Bump mapping Utiliza texturas para perturbar a direc¸˜ao do vetor normal de

Bump mapping

Utiliza texturas para perturbar a direc¸˜ao do vetor normal de cada ponto da superf´ıcie.

N˜ao modifica a geometria da superf´ıcie

Modelo de iluminac¸˜ao usa o vetor normal modificado

Mapas de Textura Texturas

Mapas de Textura Texturas Bump mapping Figura: Aula IA725 Unicamp Profa. Beatriz Trinch˜ao Andrade 11 /

Bump mapping

Mapas de Textura Texturas Bump mapping Figura: Aula IA725 Unicamp Profa. Beatriz Trinch˜ao Andrade 11 /

Figura: Aula IA725 Unicamp

Mapas de Textura Texturas

Mapas de Textura Texturas Bump mapping N˜ao modifica a silhueta Os detalhes n˜ao causam oclus˜oes nem

Bump mapping

N˜ao modifica a silhueta Os detalhes n˜ao causam oclus˜oes nem sombras

Mapas de Textura Texturas

Mapas de Textura Texturas Displacement mapping Modifica a geometria Cada texel do displacement map ´e um

Displacement mapping

Modifica a geometria

Cada texel do displacement map ´e um valor de deslocamento do v´ertice ao longo do vetor normal

Mapas de Textura Texturas

Mapas de Textura Texturas Displacement mapping Profa. Beatriz Trinch˜ao Andrade Figura: Aula IA725 Unicamp 14 /

Displacement mapping

Mapas de Textura Texturas Displacement mapping Profa. Beatriz Trinch˜ao Andrade Figura: Aula IA725 Unicamp 14 /

Profa. Beatriz Trinch˜ao Andrade

Figura: Aula IA725 Unicamp

14 / 29

Mapas de Textura Classificac¸˜ao

Mapas de Textura Classificac¸˜ao Sum´ario Introduc¸˜ao Texturas Classificac¸˜ao Texturas 3D Texturas 2D e 1D

Sum´ario

Introduc¸˜ao

Texturas

Classificac¸˜ao Texturas 3D Texturas 2D e 1D

Mapeamento de Texturas

Referˆencias

Mapas de Textura Classificac¸˜ao

Mapas de Textura Classificac¸˜ao Classificac¸˜ao Classificac¸˜ao dos tipos de mapeamento de textura: Numero´ A

Classificac¸˜ao

Classificac¸˜ao dos tipos de mapeamento de textura:

Numero´

A correspondˆencia definida entre os pontos da superf´ıcie e os pontos da func¸˜ao de textura

Se a func¸˜ao de textura ´e procedural ou definida por uma tabela de valores pr´e-definidos

de dimens˜oes da textura: 1D, 2D (mais populares), 3D

Classificac¸˜ao de acordo com numero´

de dimens˜oes (Shirley)

Mapas de Textura Classificac¸˜ao Texturas 3D

Mapas de Textura Classificac¸˜ao Texturas 3D Texturas 3D Tamb´em conhecidas como texturas s´olidas ou

Texturas 3D

Tamb´em conhecidas como texturas s´olidas ou volum´etricas Seja um objeto cuja cor s´olida mude para cada ponto

cr(p): func¸˜ao que mapeia pontos 3D p para valores de reflectˆancia difusa cr(p) pode ser uma textura 3D que define um valor RGB para cada ponto do espac¸o 3D Geralmente chamada apenas para pontos p na superf´ıcie do objeto

Exemplo: m´armore

Mapas de Textura Classificac¸˜ao Texturas 3D

Mapas de Textura Classificac¸˜ao Texturas 3D Texturas 3D Faixas de cores RGB stripe( point p if

Texturas 3D

Faixas de cores

RGB

stripe(

point

p

if

(sin(x_p) > 0)

return

c_0;

else

return

c_1;

)

point p if (sin(x_p) > 0) return c_0; else return c_1; ) Imagem: referˆencia [2] Profa.

Imagem: referˆencia [2]

Mapas de Textura Classificac¸˜ao Texturas 2D e 1D

Mapas de Textura Classificac¸˜ao Texturas 2D e 1D Texturas 2D e 1D Basicamente arrays de dados

Texturas 2D e 1D

Basicamente arrays de dados

Cor, alpha, luminˆancia

Valores individuais no array s˜ao chamados de texels Textura ´e mapeada `a primitiva

Mapas de Textura Classificac¸˜ao Texturas 2D e 1D

Mapas de Textura Classificac¸˜ao Texturas 2D e 1D Texturas 2D e 1D Pode ser distorcida durante

Texturas 2D e 1D

Pode ser distorcida durante o mapeamento

Sua aparˆencia muda de acordo com as transformac¸˜oes sofridas pela primitiva V´arios texels podem ser mapeados a um fragmento V´arios fragmentos podem ser mapeados a um texel

Operac¸˜oes caras

Muitos sistemas gr´aficos incluem suporte de hardware ao mapeamento de texturas

Mapas de Textura Mapeamento de Texturas

Mapas de Textura Mapeamento de Texturas Sum´ario Introduc¸˜ao Texturas Classificac¸˜ao Texturas 3D Texturas 2D e

Sum´ario

Introduc¸˜ao

Texturas

Classificac¸˜ao Texturas 3D Texturas 2D e 1D

Mapeamento de Texturas

Referˆencias

Mapas de Textura Mapeamento de Texturas

Mapas de Textura Mapeamento de Texturas Mapeamento de Texturas Passos 1. Criar um objeto de textura

Mapeamento de Texturas

Passos

1. Criar um objeto de textura e especificar uma textura para esse objeto

2. Indicar como a textura deve ser aplicada a cada pixel

3. Habilitar o mapeamento de texturas

4. Desenhar a cena, provendo coordenadas de geometria e textura

Acompanhar com o exemplo: 05 textura.cpp

Mapas de Textura Mapeamento de Texturas

Mapas de Textura Mapeamento de Texturas Mapeamento de Texturas - Passo 1 Criar um objeto de

Mapeamento de Texturas - Passo 1

Criar um objeto de textura e especificar uma textura para esse objeto

Pode ser uni ou bidimensional Pode ser preenchida com at´e 4 elementos por texel (coerente com o formato RGBA) glGenTextures/glBindTexture e glTexImage2D

Mapas de Textura Mapeamento de Texturas

Mapas de Textura Mapeamento de Texturas Mapeamento de Texturas - Passo 2 Indicar como a textura

Mapeamento de Texturas - Passo 2

Indicar como a textura deve ser aplicada a cada pixel Valor RGBA final ´e computado a partir da cor do fragmento e dos dados da imagem de textura. Opc¸˜oes:

Usar o valor da textura como cor final Usar o valor da textura para escalar a cor do fragmento Blending do valor da textura com cor do fragmento

glTexParameteri, glTexEnvf

Magnification and minification filters

Mapas de Textura Mapeamento de Texturas

Mapas de Textura Mapeamento de Texturas Mapeamento de Texturas - Passo 3 Habilitar o mapeamento de

Mapeamento de Texturas - Passo 3

Habilitar o mapeamento de texturas

Textura precisa ser habilitada antes que a cena seja desenhada Uso de glEnable() e glDisable() Constantes GL TEXTURE 1D ou GL TEXTURE 2D

Mapas de Textura Mapeamento de Texturas

Mapas de Textura Mapeamento de Texturas Mapeamento de Texturas - Passo 4 Desenhar a cena, provendo

Mapeamento de Texturas - Passo 4

Desenhar a cena, provendo coordenadas de geometria e textura

Como a textura ser´a alinhada aos fragmentos onde ser´a aplicada Especificac¸˜ao de coordenadas de geometria associadas a coordenadas de textura Coordenadas de textura variam em [0.0,1.0] Tratamento de coordenadas fora do intervalo: repetic¸˜ao ou clamping (glTexParameteri) Como as coordenadas de textura podem ser obtidas?

Mapas de Textura Mapeamento de Texturas

Mapas de Textura Mapeamento de Texturas Exerc´ıcio/Parte do Trabalho Pr´atico Ler imagens .ppm e utiliz´a-las como

Exerc´ıcio/Parte do Trabalho Pr´atico

Ler imagens .ppm e utiliz´a-las como textura nos modelos carregados

Formato .ppm foi visto na aula ’SVH, dispositivos de rasterizac¸˜ao e imagens’

Opc¸˜oes:

Usar mapeamento (esf´erico, planar, cil´ındrico

Adaptar a leitura do arquivo obj para aceitar as coordenadas de textura (tag vt)

); ou

Mapas de Textura Referˆencias

Mapas de Textura Referˆencias Sum´ario Introduc¸˜ao Texturas Classificac¸˜ao Texturas 3D Texturas 2D e 1D

Sum´ario

Introduc¸˜ao

Texturas

Classificac¸˜ao Texturas 3D Texturas 2D e 1D

Mapeamento de Texturas

Referˆencias

Mapas de Textura Referˆencias

Mapas de Textura Referˆencias Referˆencias: Livro do Shirley, cap´ıtulo 11 Redbook, cap´ıtulo 9 Mapeamento de

Referˆencias:

Livro do Shirley, cap´ıtulo 11

Redbook, cap´ıtulo 9

Mapeamento de Textura - Unicamp IA725 - Computac¸˜ao Gr´afica I (2008) http://www.dca.fee.unicamp.br/

T´ecnicas de mapeamento. Prof. Marcelo Walter. UFPE (2008) http://www.cin.ufpe.br/ ˜ marcelow/Marcelow/ programacao_pg_files/map.pdf